aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2011-12-30 11:10:38 +0100
committerAndreas Schneider <asn@cryptomilk.org>2012-02-04 18:37:04 +0100
commit33b0cfc199a1f8657a23ae9ce05d2fd4b8261257 (patch)
tree7574c66ed98ddfdd61a085178f4cd4b65ed3c55f /src
parente9f5c7421e3e7e4a0eaefddf1694571f37e54007 (diff)
downloadlibssh-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.c14
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;