diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-09-24 01:36:58 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-09-24 01:36:58 +0200 |
commit | e38f2f933b3f091fa4d9beed917e31f82bcf6a1c (patch) | |
tree | 528ed58a85c5c31ec6d257559af6164d223a06b8 /src/pki_crypto.c | |
parent | 21d68112b869697a54536086956545543cbe9ec6 (diff) | |
download | libssh-e38f2f933b3f091fa4d9beed917e31f82bcf6a1c.tar.gz libssh-e38f2f933b3f091fa4d9beed917e31f82bcf6a1c.tar.xz libssh-e38f2f933b3f091fa4d9beed917e31f82bcf6a1c.zip |
pki: ssh_pki_generate
for both gcrypt and openssl
Diffstat (limited to 'src/pki_crypto.c')
-rw-r--r-- | src/pki_crypto.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/pki_crypto.c b/src/pki_crypto.c index 130b5e5b..850ea668 100644 --- a/src/pki_crypto.c +++ b/src/pki_crypto.c @@ -244,6 +244,29 @@ fail: return NULL; } +int pki_key_generate_rsa(ssh_key key, int parameter){ + key->rsa = RSA_generate_key(parameter, 65537, NULL, NULL); + if(key->rsa == NULL) + return SSH_ERROR; + return SSH_OK; +} + +int pki_key_generate_dss(ssh_key key, int parameter){ + int rc; + key->dsa = DSA_generate_parameters(parameter, NULL, 0, NULL, NULL, + NULL, NULL); + if(key->dsa == NULL){ + return SSH_ERROR; + } + rc = DSA_generate_key(key->dsa); + if (rc != 1){ + DSA_free(key->dsa); + key->dsa=NULL; + return SSH_ERROR; + } + return SSH_OK; +} + ssh_key pki_private_key_from_base64(const char *b64_key, const char *passphrase, ssh_auth_callback auth_fn, |