Removed wrong errno setting.
[silc.git] / lib / silcssh / silcssh.c
index 0e4f606b05e04a17457701e840a6d2f2a5911c45..6cb849fc33dc6102bf1c01abcec97512741722a9 100644 (file)
@@ -174,6 +174,7 @@ SilcHashTable silc_ssh_parse_headers(SilcBuffer key)
 
 SilcBool silc_ssh_generate_key(const char *algorithm,
                               int bits_len, SilcRng rng,
+                              const char *subject,
                               SilcPublicKey *ret_public_key,
                               SilcPrivateKey *ret_private_key)
 {
@@ -249,6 +250,9 @@ SilcBool silc_ssh_generate_key(const char *algorithm,
     return FALSE;
   }
 
+  if (subject)
+    silc_ssh_public_key_add_field(pubkey, "Subject", subject);
+
   return TRUE;
 }
 
@@ -379,6 +383,8 @@ void silc_ssh_public_key_free(SilcSshPublicKey public_key)
 {
   if (public_key->fields)
     silc_hash_table_free(public_key->fields);
+  public_key->pkcs->public_key_free(public_key->pkcs,
+                                   public_key->public_key);
   silc_free(public_key);
 }