Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2007 Pekka Riikonen
+ Copyright (C) 2007 - 2008 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#include "silc.h"
+#include "silccrypto.h"
/************************* Static utility functions *************************/
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);
}
SilcBool silc_ssh_generate_key(const char *algorithm,
int bits_len, SilcRng rng,
+ const char *subject,
SilcPublicKey *ret_public_key,
SilcPrivateKey *ret_private_key)
{
return FALSE;
}
+ if (subject)
+ silc_ssh_public_key_add_field(pubkey, "Subject", subject);
+
return TRUE;
}
SILC_STR_ADVANCE,
SILC_STR_UI32_STRING_ALLOC(&type),
SILC_STR_END) < 0) {
- SILC_LOG_ERROR(("Malformed SSH2 public key"));
+ SILC_LOG_DEBUG(("Malformed SSH2 public key"));
goto err;
}
{
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);
}
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;