From 9bed334da3b0f18eee326300b5a8a8b4ff5d5875 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 7 Aug 2011 17:49:02 +0200 Subject: [PATCH] pki: Add ssh_pki_convert_key_to_privatekey(). --- include/libssh/pki.h | 1 + src/pki.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/libssh/pki.h b/include/libssh/pki.h index f7ce4ccb..182079f2 100644 --- a/include/libssh/pki.h +++ b/include/libssh/pki.h @@ -54,6 +54,7 @@ ssh_string ssh_pki_do_sign(ssh_session session, ssh_buffer sigbuf, /* temporary functions, to be removed after migration to ssh_key */ ssh_public_key ssh_pki_convert_key_to_publickey(ssh_key key); +ssh_private_key ssh_pki_convert_key_to_privatekey(ssh_key key); enum ssh_keytypes_e pki_privatekey_type_from_string(const char *privkey); diff --git a/src/pki.c b/src/pki.c index 57b3ad29..593cc413 100644 --- a/src/pki.c +++ b/src/pki.c @@ -293,6 +293,22 @@ ssh_public_key ssh_pki_convert_key_to_publickey(ssh_key key) { return pub; } +ssh_private_key ssh_pki_convert_key_to_privatekey(ssh_key key) { + ssh_private_key privkey; + + privkey = malloc(sizeof(struct ssh_private_key_struct)); + if (privkey == NULL) { + ssh_key_free(key); + return NULL; + } + + privkey->type = key->type; + privkey->dsa_priv = key->dsa; + privkey->rsa_priv = key->rsa; + + return privkey; +} + /** @brief import a base64 formated key from a memory c-string * * @param key The key to fill, created with ssh_key_new()