Added SILC Thread Queue API
[silc.git] / lib / silcssh / silcssh.c
index 818a0fa2893e96302114f3b50ae8bb1d2d9bd10d..89c5d1a36c4d5ef182c95ed55ebbff85d8b4f10a 100644 (file)
@@ -71,8 +71,8 @@ SilcBool silc_ssh_parse_line(SilcBuffer key, SilcBuffer line,
 
 SilcHashTable silc_ssh_allocate_fields(void)
 {
-  return silc_hash_table_alloc(NULL, 0, silc_hash_string, NULL,
-                              silc_hash_string_compare, NULL,
+  return silc_hash_table_alloc(NULL, 0, silc_hash_string_case, NULL,
+                              silc_hash_string_case_compare, NULL,
                               silc_ssh_field_dest, NULL, TRUE);
 }
 
@@ -251,7 +251,7 @@ SilcBool silc_ssh_generate_key(const char *algorithm,
   }
 
   if (subject)
-    silc_ssh_public_key_add_field(pubkey, "Subject", strdup(subject));
+    silc_ssh_public_key_add_field(pubkey, "Subject", subject);
 
   return TRUE;
 }
@@ -383,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);
 }
 
@@ -414,8 +416,8 @@ SilcBool silc_ssh_public_key_add_field(SilcSshPublicKey public_key,
 
   if (!public_key->fields) {
     public_key->fields =
-      silc_hash_table_alloc(NULL, 0, silc_hash_string, NULL,
-                           silc_hash_string_compare, NULL,
+      silc_hash_table_alloc(NULL, 0, silc_hash_string_case, NULL,
+                           silc_hash_string_case_compare, NULL,
                            silc_ssh_field_dest, NULL, TRUE);
     if (!public_key->fields)
       return FALSE;