diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2011-12-30 11:11:10 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2012-02-04 18:37:04 +0100 |
commit | 79383cf8eee729183d88e73d38fcd23a32d67202 (patch) | |
tree | 4e8c5d10cd1fee87c63cef42c55405d8239f3aeb /src/pki_crypto.c | |
parent | 33b0cfc199a1f8657a23ae9ce05d2fd4b8261257 (diff) | |
download | libssh-79383cf8eee729183d88e73d38fcd23a32d67202.tar.gz libssh-79383cf8eee729183d88e73d38fcd23a32d67202.tar.xz libssh-79383cf8eee729183d88e73d38fcd23a32d67202.zip |
pki: Add ecdsa support to do_sign.
Diffstat (limited to 'src/pki_crypto.c')
-rw-r--r-- | src/pki_crypto.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/pki_crypto.c b/src/pki_crypto.c index 4030d479..772cf23b 100644 --- a/src/pki_crypto.c +++ b/src/pki_crypto.c @@ -1291,6 +1291,20 @@ ssh_signature pki_do_sign(const ssh_key privkey, sig->dsa_sig = NULL; break; case SSH_KEYTYPE_ECDSA: +#ifdef HAVE_OPENSSL_ECC + sig->ecdsa_sig = ECDSA_do_sign(hash, hlen, privkey->ecdsa); + if (sig->ecdsa_sig == NULL) { + ssh_signature_free(sig); + return NULL; + } + +# ifdef DEBUG_CRYPTO + ssh_print_bignum("r", sig->ecdsa_sig->r); + ssh_print_bignum("s", sig->ecdsa_sig->s); +# endif /* DEBUG_CRYPTO */ + + break; +#endif /* HAVE_OPENSSL_ECC */ case SSH_KEYTYPE_UNKNOWN: ssh_signature_free(sig); return NULL; |