updates. New data types.
[silc.git] / lib / silccrypt / silcpkcs.h
index 9614bb8d4927bd994ef73ccce324700603baf2bf..baaff0c68decd32b878637111e63cd3aa7a756f7 100644 (file)
@@ -27,23 +27,23 @@ typedef struct SilcPKCSObjectStruct {
   char *name;
   void *data_context;
 
-  int (*init)(void *, unsigned int, SilcRng);
+  int (*init)(void *, uint32, SilcRng);
   void (*clear_keys)(void *);
-  unsigned char *(*get_public_key)(void *, unsigned int *);
-  unsigned char *(*get_private_key)(void *, unsigned int *);
-  int (*set_public_key)(void *, unsigned char *, unsigned int);
-  int (*set_private_key)(void *, unsigned char *, unsigned int);
-  unsigned int (*context_len)();
-  unsigned int (*data_context_len)();
+  unsigned char *(*get_public_key)(void *, uint32 *);
+  unsigned char *(*get_private_key)(void *, uint32 *);
+  int (*set_public_key)(void *, unsigned char *, uint32);
+  int (*set_private_key)(void *, unsigned char *, uint32);
+  uint32 (*context_len)();
+  uint32 (*data_context_len)();
   int (*set_arg)(void *, void *, int, SilcInt);
-  int (*encrypt)(void *, unsigned char *, unsigned int,
-                unsigned char *, unsigned int *);
-  int (*decrypt)(void *, unsigned char *, unsigned int,
-                unsigned char *, unsigned int *);
-  int (*sign)(void *, unsigned char *, unsigned int,
-             unsigned char *, unsigned int *);
-  int (*verify)(void *, unsigned char *, unsigned int,
-               unsigned char *, unsigned int);
+  int (*encrypt)(void *, unsigned char *, uint32,
+                unsigned char *, uint32 *);
+  int (*decrypt)(void *, unsigned char *, uint32,
+                unsigned char *, uint32 *);
+  int (*sign)(void *, unsigned char *, uint32,
+             unsigned char *, uint32 *);
+  int (*verify)(void *, unsigned char *, uint32,
+               unsigned char *, uint32);
 } SilcPKCSObject;
 
 /* The main SILC PKCS structure. Use SilcPKCS instead of SilcPKCSStruct.
@@ -51,9 +51,9 @@ typedef struct SilcPKCSObjectStruct {
 typedef struct SilcPKCSStruct {
   void *context;
   SilcPKCSObject *pkcs;
-  unsigned int key_len;
+  uint32 key_len;
 
-  unsigned int (*get_key_len)(struct SilcPKCSStruct *);
+  uint32 (*get_key_len)(struct SilcPKCSStruct *);
 } *SilcPKCS;
 
 /* List of all PKCS in SILC. */
@@ -63,11 +63,11 @@ extern SilcPKCSObject silc_pkcs_list[];
    object. Public keys received from network must be in this format as 
    well. */
 typedef struct {
-  unsigned int len;
+  uint32 len;
   char *name;
   char *identifier;
   unsigned char *pk;
-  unsigned int pk_len;
+  uint32 pk_len;
 } *SilcPublicKey;
 
 /* SILC style private key object. Private key is read from file to this
@@ -75,7 +75,7 @@ typedef struct {
 typedef struct {
   char *name;
   unsigned char *prv;
-  unsigned int prv_len;
+  uint32 prv_len;
 } *SilcPrivateKey;
 
 /* Public and private key file headers */
@@ -102,7 +102,7 @@ typedef struct {
    would look something like this:
 
    #define SILC_PKCS_API_INIT(pkcs) \
-   inline int silc_##pkcs##_init(void *context, unsigned int keylen, \
+   inline int silc_##pkcs##_init(void *context, uint32 keylen, \
                                  void *p1, void *p2)
 
    Now we wouldn't have to send the SilcRng object since the primes are 
@@ -114,26 +114,26 @@ typedef struct {
 */
 
 #define SILC_PKCS_API_INIT(pkcs) \
-int silc_##pkcs##_init(void *context, unsigned int keylen, \
+int silc_##pkcs##_init(void *context, uint32 keylen, \
                       SilcRng rng)
 #define SILC_PKCS_API_CLEAR_KEYS(pkcs) \
 void silc_##pkcs##_clear_keys(void *context)
 #define SILC_PKCS_API_GET_PUBLIC_KEY(pkcs) \
 unsigned char *silc_##pkcs##_get_public_key(void *context, \
-                                            unsigned int *ret_len)
+                                            uint32 *ret_len)
 #define SILC_PKCS_API_GET_PRIVATE_KEY(pkcs) \
 unsigned char *silc_##pkcs##_get_private_key(void *context, \
-                                             unsigned int *ret_len)
+                                             uint32 *ret_len)
 #define SILC_PKCS_API_SET_PUBLIC_KEY(pkcs) \
 int silc_##pkcs##_set_public_key(void *context, unsigned char *key_data, \
-                                 unsigned int key_len)
+                                 uint32 key_len)
 #define SILC_PKCS_API_SET_PRIVATE_KEY(pkcs) \
 int silc_##pkcs##_set_private_key(void *context, unsigned char *key_data, \
-                                  unsigned int key_len)
+                                  uint32 key_len)
 #define SILC_PKCS_API_CONTEXT_LEN(pkcs) \
-unsigned int silc_##pkcs##_context_len()
+uint32 silc_##pkcs##_context_len()
 #define SILC_PKCS_API_DATA_CONTEXT_LEN(pkcs) \
-unsigned int silc_##pkcs##_data_context_len()
+uint32 silc_##pkcs##_data_context_len()
 #define SILC_PKCS_API_SET_ARG(pkcs) \
 int silc_##pkcs##_set_arg(void *context, \
                          void *data_context, \
@@ -142,98 +142,98 @@ int silc_##pkcs##_set_arg(void *context, \
 #define SILC_PKCS_API_ENCRYPT(pkcs) \
 int silc_##pkcs##_encrypt(void *context, \
                          unsigned char *src, \
-                         unsigned int src_len, \
+                         uint32 src_len, \
                          unsigned char *dst, \
-                         unsigned int *dst_len)
+                         uint32 *dst_len)
 #define SILC_PKCS_API_DECRYPT(pkcs) \
 int silc_##pkcs##_decrypt(void *context, \
                          unsigned char *src, \
-                         unsigned int src_len, \
+                         uint32 src_len, \
                          unsigned char *dst, \
-                         unsigned int *dst_len)
+                         uint32 *dst_len)
 #define SILC_PKCS_API_SIGN(pkcs) \
 int silc_##pkcs##_sign(void *context, \
                       unsigned char *src, \
-                      unsigned int src_len, \
+                      uint32 src_len, \
                       unsigned char *dst, \
-                      unsigned int *dst_len)
+                      uint32 *dst_len)
 #define SILC_PKCS_API_VERIFY(pkcs) \
 int silc_##pkcs##_verify(void *context, \
                         unsigned char *signature, \
-                        unsigned int signature_len, \
+                        uint32 signature_len, \
                         unsigned char *data, \
-                        unsigned int data_len)
+                        uint32 data_len)
 
 /* Prototypes */
 int silc_pkcs_alloc(const unsigned char *name, SilcPKCS *new_pkcs);
 void silc_pkcs_free(SilcPKCS pkcs);
 int silc_pkcs_is_supported(const unsigned char *name);
 char *silc_pkcs_get_supported();
-unsigned int silc_pkcs_get_key_len(SilcPKCS self);
-unsigned char *silc_pkcs_get_public_key(SilcPKCS pkcs, unsigned int *len);
-unsigned char *silc_pkcs_get_private_key(SilcPKCS pkcs, unsigned int *len);
+uint32 silc_pkcs_get_key_len(SilcPKCS self);
+unsigned char *silc_pkcs_get_public_key(SilcPKCS pkcs, uint32 *len);
+unsigned char *silc_pkcs_get_private_key(SilcPKCS pkcs, uint32 *len);
 int silc_pkcs_public_key_set(SilcPKCS pkcs, SilcPublicKey public_key);
 int silc_pkcs_public_key_data_set(SilcPKCS pkcs, unsigned char *pk,
-                                 unsigned int pk_len);
+                                 uint32 pk_len);
 int silc_pkcs_private_key_set(SilcPKCS pkcs, SilcPrivateKey private_key);
 int silc_pkcs_private_key_data_set(SilcPKCS pkcs, unsigned char *prv,
-                                  unsigned int prv_len);
-int silc_pkcs_encrypt(SilcPKCS pkcs, unsigned char *src, unsigned int src_len,
-                     unsigned char *dst, unsigned int *dst_len);
-int silc_pkcs_decrypt(SilcPKCS pkcs, unsigned char *src, unsigned int src_len,
-                     unsigned char *dst, unsigned int *dst_len);
-int silc_pkcs_sign(SilcPKCS pkcs, unsigned char *src, unsigned int src_len,
-                  unsigned char *dst, unsigned int *dst_len);
+                                  uint32 prv_len);
+int silc_pkcs_encrypt(SilcPKCS pkcs, unsigned char *src, uint32 src_len,
+                     unsigned char *dst, uint32 *dst_len);
+int silc_pkcs_decrypt(SilcPKCS pkcs, unsigned char *src, uint32 src_len,
+                     unsigned char *dst, uint32 *dst_len);
+int silc_pkcs_sign(SilcPKCS pkcs, unsigned char *src, uint32 src_len,
+                  unsigned char *dst, uint32 *dst_len);
 int silc_pkcs_verify(SilcPKCS pkcs, unsigned char *signature, 
-                    unsigned int signature_len, unsigned char *data, 
-                    unsigned int data_len);
+                    uint32 signature_len, unsigned char *data, 
+                    uint32 data_len);
 int silc_pkcs_sign_with_hash(SilcPKCS pkcs, SilcHash hash,
-                            unsigned char *src, unsigned int src_len,
-                            unsigned char *dst, unsigned int *dst_len);
+                            unsigned char *src, uint32 src_len,
+                            unsigned char *dst, uint32 *dst_len);
 int silc_pkcs_verify_with_hash(SilcPKCS pkcs, SilcHash hash, 
                               unsigned char *signature, 
-                              unsigned int signature_len, 
+                              uint32 signature_len, 
                               unsigned char *data, 
-                              unsigned int data_len);
+                              uint32 data_len);
 char *silc_pkcs_encode_identifier(char *username, char *host, char *realname,
                                  char *email, char *org, char *country);
 SilcPublicKey silc_pkcs_public_key_alloc(char *name, char *identifier,
                                         unsigned char *pk, 
-                                        unsigned int pk_len);
+                                        uint32 pk_len);
 void silc_pkcs_public_key_free(SilcPublicKey public_key);
 SilcPrivateKey silc_pkcs_private_key_alloc(char *name, unsigned char *prv,
-                                          unsigned int prv_len);
+                                          uint32 prv_len);
 void silc_pkcs_private_key_free(SilcPrivateKey private_key);
 unsigned char *
-silc_pkcs_public_key_encode(SilcPublicKey public_key, unsigned int *len);
+silc_pkcs_public_key_encode(SilcPublicKey public_key, uint32 *len);
 unsigned char *
-silc_pkcs_public_key_data_encode(unsigned char *pk, unsigned int pk_len,
+silc_pkcs_public_key_data_encode(unsigned char *pk, uint32 pk_len,
                                 char *pkcs, char *identifier, 
-                                unsigned int *len);
-int silc_pkcs_public_key_decode(unsigned char *data, unsigned int data_len,
+                                uint32 *len);
+int silc_pkcs_public_key_decode(unsigned char *data, uint32 data_len,
                                SilcPublicKey *public_key);
 unsigned char *
-silc_pkcs_private_key_encode(SilcPrivateKey private_key, unsigned int *len);
+silc_pkcs_private_key_encode(SilcPrivateKey private_key, uint32 *len);
 unsigned char *
-silc_pkcs_private_key_data_encode(unsigned char *prv, unsigned int prv_len,
-                                 char *pkcs, unsigned int *len);
-int silc_pkcs_private_key_decode(unsigned char *data, unsigned int data_len,
+silc_pkcs_private_key_data_encode(unsigned char *prv, uint32 prv_len,
+                                 char *pkcs, uint32 *len);
+int silc_pkcs_private_key_decode(unsigned char *data, uint32 data_len,
                                 SilcPrivateKey *private_key);
 int silc_pkcs_save_public_key(char *filename, SilcPublicKey public_key,
-                             unsigned int encoding);
+                             uint32 encoding);
 int silc_pkcs_save_public_key_data(char *filename, unsigned char *data,
-                                  unsigned int data_len,
-                                  unsigned int encoding);
+                                  uint32 data_len,
+                                  uint32 encoding);
 int silc_pkcs_save_private_key(char *filename, SilcPrivateKey private_key, 
                               unsigned char *passphrase,
-                              unsigned int encoding);
+                              uint32 encoding);
 int silc_pkcs_save_private_key_data(char *filename, unsigned char *data, 
-                                   unsigned int data_len,
+                                   uint32 data_len,
                                    unsigned char *passphrase,
-                                   unsigned int encoding);
+                                   uint32 encoding);
 int silc_pkcs_load_public_key(char *filename, SilcPublicKey *public_key,
-                             unsigned int encoding);
+                             uint32 encoding);
 int silc_pkcs_load_private_key(char *filename, SilcPrivateKey *private_key,
-                              unsigned int encoding);
+                              uint32 encoding);
 
 #endif