Merged silc_1_1_branch to trunk.
[silc.git] / lib / silccrypt / silcpkcs.c
index 6bd2eaacf020c32d897d29781ae7e1667072c325..74fd6f03ab8b5a3ed35d106a288ec8853d05e7b9 100644 (file)
@@ -489,6 +489,7 @@ SilcBool silc_pkcs_public_key_alloc(SilcPKCSType type,
 void silc_pkcs_public_key_free(SilcPublicKey public_key)
 {
   public_key->pkcs->public_key_free(public_key->public_key);
+  silc_free(public_key);
 }
 
 /* Exports public key */
@@ -512,7 +513,7 @@ SilcUInt32 silc_pkcs_public_key_get_len(SilcPublicKey public_key)
 void *silc_pkcs_get_context(SilcPKCSType type, SilcPublicKey public_key)
 {
   if (public_key->pkcs->type != type)
-    return FALSE;
+    return NULL;
   return public_key->public_key;
 }
 
@@ -564,6 +565,7 @@ SilcUInt32 silc_pkcs_private_key_get_len(SilcPrivateKey private_key)
 void silc_pkcs_private_key_free(SilcPrivateKey private_key)
 {
   private_key->pkcs->private_key_free(private_key->private_key);
+  silc_free(private_key);
 }
 
 /* Encrypts */
@@ -691,6 +693,7 @@ SilcBool silc_pkcs_load_public_key(const char *filename,
 
   silc_free(data);
   silc_free(public_key);
+  *ret_public_key = NULL;
   return FALSE;
 }
 
@@ -776,6 +779,7 @@ SilcBool silc_pkcs_load_private_key(const char *filename,
 
   silc_free(data);
   silc_free(private_key);
+  *ret_private_key = NULL;
   return FALSE;
 }