Public and private key setting now takes SilcPublicKey and
authorPekka Riikonen <priikone@silcnet.org>
Thu, 6 Jul 2000 07:12:18 +0000 (07:12 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 6 Jul 2000 07:12:18 +0000 (07:12 +0000)
SilcPrivateKey but also they can be set directly from raw data.

lib/silccrypt/silcpkcs.c
lib/silccrypt/silcpkcs.h

index 5dff154cf1f6e968d6629d8f8a87fe9d0cb37bf0..9906d7ccd127209fba23ed4b025d8e1ce6c0b6dc 100644 (file)
@@ -136,24 +136,40 @@ unsigned char *silc_pkcs_get_private_key(SilcPKCS pkcs, unsigned int *len)
   return pkcs->pkcs->get_private_key(pkcs->context, len);
 }
 
-/* Sets public key */
+/* Sets public key from SilcPublicKey. */
 
-int silc_pkcs_set_public_key(SilcPKCS pkcs, unsigned char *pk, 
-                            unsigned int pk_len)
+int silc_pkcs_public_key_set(SilcPKCS pkcs, SilcPublicKey public_key)
+{
+  return pkcs->pkcs->set_public_key(pkcs->context, public_key->pk, 
+                                   public_key->pk_len);
+}
+
+/* Sets public key from data. */
+
+int silc_pkcs_public_key_data_set(SilcPKCS pkcs, unsigned char *pk,
+                                 unsigned int pk_len)
 {
   return pkcs->pkcs->set_public_key(pkcs->context, pk, pk_len);
 }
 
-/* Sets private key */
+/* Sets private key from SilcPrivateKey. */
+
+int silc_pkcs_private_key_set(SilcPKCS pkcs, SilcPrivateKey private_key)
+{
+  return pkcs->pkcs->set_private_key(pkcs->context, private_key->prv, 
+                                    private_key->prv_len);
+}
+
+/* Sets private key from data. */
 
-int silc_pkcs_set_private_key(SilcPKCS pkcs, unsigned char *prv, 
-                             unsigned int prv_len)
+int silc_pkcs_private_key_data_set(SilcPKCS pkcs, unsigned char *prv,
+                                  unsigned int prv_len)
 {
   return pkcs->pkcs->set_private_key(pkcs->context, prv, prv_len);
 }
 
 /* Encodes and returns SILC public key identifier. If some of the 
-   arguments as NULL those are not encoded into the identifier string.
+   arguments is NULL those are not encoded into the identifier string.
    Protocol says that at least username and host must be provided. */
 
 char *silc_pkcs_encode_identifier(char *username, char *host, char *realname,
index 8bcc08316f4096741c56b46658f293acd562b761..8accedea1e75972600a62bbb126ae15003af0e03 100644 (file)
@@ -168,10 +168,12 @@ 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);
-int silc_pkcs_set_public_key(SilcPKCS pkcs, unsigned char *pk, 
-                            unsigned int pk_len);
-int silc_pkcs_set_private_key(SilcPKCS pkcs, unsigned char *prv, 
-                             unsigned int prv_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);
+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);
 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,