diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2011-12-30 11:10:38 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2012-02-04 18:37:04 +0100 |
commit | 33b0cfc199a1f8657a23ae9ce05d2fd4b8261257 (patch) | |
tree | 7574c66ed98ddfdd61a085178f4cd4b65ed3c55f /src | |
parent | e9f5c7421e3e7e4a0eaefddf1694571f37e54007 (diff) | |
download | libssh-33b0cfc199a1f8657a23ae9ce05d2fd4b8261257.tar.gz libssh-33b0cfc199a1f8657a23ae9ce05d2fd4b8261257.tar.xz libssh-33b0cfc199a1f8657a23ae9ce05d2fd4b8261257.zip |
pki: Add ecdsa support for signature_verify.
Diffstat (limited to 'src')
-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 3480a9e..4030d47 100644 --- a/src/pki_crypto.c +++ b/src/pki_crypto.c @@ -1233,6 +1233,20 @@ int pki_signature_verify(ssh_session session, } break; case SSH_KEYTYPE_ECDSA: +#ifdef HAVE_OPENSSL_ECC + rc = ECDSA_do_verify(hash, + hlen, + sig->ecdsa_sig, + key->ecdsa); + if (rc <= 0) { + ssh_set_error(session, + SSH_FATAL, + "ECDSA error: %s", + ERR_error_string(ERR_get_error(), NULL)); + return SSH_ERROR; + } + break; +#endif case SSH_KEYTYPE_UNKNOWN: ssh_set_error(session, SSH_FATAL, "Unknown public key type"); return SSH_ERROR; |