X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcssh%2Fsilcssh.c;h=89c5d1a36c4d5ef182c95ed55ebbff85d8b4f10a;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=0e4f606b05e04a17457701e840a6d2f2a5911c45;hpb=da3be98515423903e3dde1e3c287498f90c1147f;p=silc.git diff --git a/lib/silcssh/silcssh.c b/lib/silcssh/silcssh.c index 0e4f606b..89c5d1a3 100644 --- a/lib/silcssh/silcssh.c +++ b/lib/silcssh/silcssh.c @@ -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); } @@ -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); } @@ -410,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;