From 69d2457762e1c910bd762bcb02a7f759f55fef8c Mon Sep 17 00:00:00 2001 From: milo Date: Wed, 9 Mar 2011 13:19:16 +0100 Subject: [pki] Added ssh_pki_import_privkey_base64() --- src/pki.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/pki.c') diff --git a/src/pki.c b/src/pki.c index aec7690c..6e1e4512 100644 --- a/src/pki.c +++ b/src/pki.c @@ -114,6 +114,31 @@ int ssh_key_import_private(ssh_key key, ssh_session session, const char *filenam return SSH_OK; } +int ssh_pki_import_privkey_base64(ssh_key key, ssh_session session, + const char *b64_key, const char *passphrase) { + ssh_private_key priv; + + if(b64_key == NULL || !*b64_key) { + return SSH_ERROR; + } + + priv = privatekey_from_base64(session, b64_key, 0, passphrase); + if(priv == NULL) { + return SSH_ERROR; + } + + ssh_key_clean(key); + + key->dsa = priv->dsa_priv; + key->rsa = priv->rsa_priv; + key->type = priv->type; + key->flags = SSH_KEY_FLAG_PRIVATE | SSH_KEY_FLAG_PUBLIC; + key->type_c = ssh_type_to_char(key->type); + + SAFE_FREE(priv); + return SSH_OK; +} + /** * @} */ -- cgit v1.2.3