aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormilo <milo@r0ot.me>2011-03-09 13:49:04 +0100
committermilo <milo@r0ot.me>2011-04-14 14:05:44 +0200
commitc1f65492f7a5b80cbe76b58ae1f4798f502fad4a (patch)
treebb5c658e719a771bc481202043f2b8383fed554b /src
parentc5db7674ec1a6ce05a10f1efee3d64ec636c0026 (diff)
downloadlibssh-c1f65492f7a5b80cbe76b58ae1f4798f502fad4a.tar.gz
libssh-c1f65492f7a5b80cbe76b58ae1f4798f502fad4a.tar.xz
libssh-c1f65492f7a5b80cbe76b58ae1f4798f502fad4a.zip
[pki] Added conversion functions to migrate seemlessly to ssh_key
Diffstat (limited to 'src')
-rw-r--r--src/pki.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/pki.c b/src/pki.c
index 423a06d4..17420731 100644
--- a/src/pki.c
+++ b/src/pki.c
@@ -115,6 +115,87 @@ int ssh_key_import_private(ssh_key key, ssh_session session, const char *filenam
return SSH_OK;
}
+/* temporary function to migrate seemlessly to ssh_key */
+ssh_key ssh_pki_convert_privatekey_to_key(ssh_private_key priv) {
+ ssh_key key;
+
+ if(priv == NULL) {
+ return NULL;
+ }
+
+ key = ssh_key_new();
+
+ key->dsa = priv->dsa_priv;
+ key->rsa = priv->rsa_priv;
+ key->type = priv->type;
+ key->flags = SSH_KEY_FLAG_PRIVATE;
+ key->type_c = ssh_type_to_char(key->type);
+
+ return SSH_OK;
+}
+
+/* temporary function to migrate seemlessly to ssh_key */
+ssh_key ssh_pki_convert_publickey_to_key(ssh_public_key pub) {
+ ssh_key key;
+
+ if(pub == NULL) {
+ return NULL;
+ }
+
+ key = ssh_key_new();
+
+ key->dsa = pub->dsa_pub;
+ key->rsa = pub->rsa_pub;
+ key->type = pub->type;
+ key->flags = SSH_KEY_FLAG_PUBLIC;
+ key->type_c = ssh_type_to_char(key->type);
+
+ return SSH_OK;
+}
+
+/* temporary function to migrate seemlessly to ssh_key */
+ssh_private_key ssh_pki_convert_key_to_privatekey(ssh_key key) {
+ ssh_private_key priv;
+
+ if(key == NULL) {
+ return NULL;
+ }
+
+ priv = malloc(sizeof(struct ssh_private_key_struct));
+ if (priv == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(priv);
+
+ priv->dsa_priv = key->dsa;
+ priv->rsa_priv = key->rsa;
+ priv->type = key->type;
+
+ return priv;
+}
+
+/* temporary function to migrate seemlessly to ssh_key */
+ssh_public_key ssh_pki_convert_key_to_publickey(ssh_key key) {
+ ssh_public_key pub;
+
+ if(key == NULL) {
+ return NULL;
+ }
+
+ pub = malloc(sizeof(struct ssh_public_key_struct));
+ if (pub == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(pub);
+
+ pub->dsa_pub = key->dsa;
+ pub->rsa_pub = key->rsa;
+ pub->type = key->type;
+ pub->type_c = key->type_c;
+
+ return pub;
+}
+
int ssh_pki_import_privkey_base64(ssh_key key, ssh_session session,
const char *b64_key, const char *passphrase) {
ssh_private_key priv;