diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2011-08-30 11:31:45 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-08-30 12:15:20 +0200 |
commit | fe246db27d69e6e27ebde35f6e72e41802ce4a26 (patch) | |
tree | 8ff21f94095cf9938b4b86cd58c719b284570e68 /src/legacy.c | |
parent | 0cbbe39e4f5a3965ae975c1eb3cc491ab4219f7c (diff) | |
download | libssh-fe246db27d69e6e27ebde35f6e72e41802ce4a26.tar.gz libssh-fe246db27d69e6e27ebde35f6e72e41802ce4a26.tar.xz libssh-fe246db27d69e6e27ebde35f6e72e41802ce4a26.zip |
keys: Move publickey_free() to legacy.c.
Diffstat (limited to 'src/legacy.c')
-rw-r--r-- | src/legacy.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/legacy.c b/src/legacy.c index 66528596..d15508c7 100644 --- a/src/legacy.c +++ b/src/legacy.c @@ -300,7 +300,6 @@ int channel_write(ssh_channel channel, const void *data, uint32_t len){ void privatekey_free(ssh_private_key prv); ssh_private_key privatekey_from_file(ssh_session session, const char *filename, int type, const char *passphrase); -void publickey_free(ssh_public_key key); int ssh_publickey_to_file(ssh_session session, const char *file, ssh_string pubkey, int type); ssh_public_key publickey_from_privatekey(ssh_private_key prv); @@ -344,6 +343,35 @@ char *string_to_char(ssh_string str){ return ssh_string_to_char(str); } +/* OLD PKI FUNCTIONS */ + +void publickey_free(ssh_public_key key) { + if (key == NULL) { + return; + } + + switch(key->type) { + case SSH_KEYTYPE_DSS: +#ifdef HAVE_LIBGCRYPT + gcry_sexp_release(key->dsa_pub); +#elif HAVE_LIBCRYPTO + DSA_free(key->dsa_pub); +#endif + break; + case SSH_KEYTYPE_RSA: + case SSH_KEYTYPE_RSA1: +#ifdef HAVE_LIBGCRYPT + gcry_sexp_release(key->rsa_pub); +#elif defined HAVE_LIBCRYPTO + RSA_free(key->rsa_pub); +#endif + break; + default: + break; + } + SAFE_FREE(key); +} + ssh_private_key privatekey_from_file(ssh_session session, const char *filename, int type, |