summaryrefslogtreecommitdiffstats
path: root/src/pki_crypto.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pki_crypto.c')
-rw-r--r--src/pki_crypto.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/pki_crypto.c b/src/pki_crypto.c
index 29e589f..32ee13d 100644
--- a/src/pki_crypto.c
+++ b/src/pki_crypto.c
@@ -519,6 +519,35 @@ fail:
return NULL;
}
+int pki_export_pubkey_rsa1(const ssh_key key,
+ const char *host,
+ char *rsa1,
+ size_t rsa1_len)
+{
+ char *e;
+ char *n;
+ int rsa_size = RSA_size(key->rsa);
+
+ e = bignum_bn2dec(key->rsa->e);
+ if (e == NULL) {
+ return SSH_ERROR;
+ }
+
+ n = bignum_bn2dec(key->rsa->n);
+ if (n == NULL) {
+ OPENSSL_free(e);
+ return SSH_ERROR;
+ }
+
+ snprintf(rsa1, rsa1_len,
+ "%s %d %s %s\n",
+ host, rsa_size << 3, e, n);
+ OPENSSL_free(e);
+ OPENSSL_free(n);
+
+ return SSH_OK;
+}
+
/**
* @internal
*