summaryrefslogtreecommitdiff
path: root/ssh-ecdsa.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2013-12-29 17:47:50 +1100
committerDamien Miller <djm@mindrot.org>2013-12-29 17:47:50 +1100
commit3e19295c3a253c8dc8660cf45baad7f45fccb969 (patch)
treee4c9f61c8391f3bce679cfa60f24c7c1c014cc02 /ssh-ecdsa.c
parent137977180be6254639e2c90245763e6965f8d815 (diff)
- djm@cvs.openbsd.org 2013/12/27 22:30:17
[ssh-dss.c ssh-ecdsa.c ssh-rsa.c] make the original RSA and DSA signing/verification code look more like the ECDSA/Ed25519 ones: use key_type_plain() when checking the key type rather than tediously listing all variants, use __func__ for debug/ error messages
Diffstat (limited to 'ssh-ecdsa.c')
-rw-r--r--ssh-ecdsa.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c
index 766338941..52f9e74c0 100644
--- a/ssh-ecdsa.c
+++ b/ssh-ecdsa.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-ecdsa.c,v 1.6 2013/05/17 00:13:14 djm Exp $ */ 1/* $OpenBSD: ssh-ecdsa.c,v 1.7 2013/12/27 22:30:17 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * Copyright (c) 2010 Damien Miller. All rights reserved. 4 * Copyright (c) 2010 Damien Miller. All rights reserved.
@@ -54,11 +54,12 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
54 u_int len, dlen; 54 u_int len, dlen;
55 Buffer b, bb; 55 Buffer b, bb;
56 56
57 if (key == NULL || key->ecdsa == NULL || 57 if (key == NULL || key_type_plain(key->type) != KEY_ECDSA ||
58 (key->type != KEY_ECDSA && key->type != KEY_ECDSA_CERT)) { 58 key->ecdsa == NULL) {
59 error("%s: no ECDSA key", __func__); 59 error("%s: no ECDSA key", __func__);
60 return -1; 60 return -1;
61 } 61 }
62
62 evp_md = key_ec_nid_to_evpmd(key->ecdsa_nid); 63 evp_md = key_ec_nid_to_evpmd(key->ecdsa_nid);
63 EVP_DigestInit(&md, evp_md); 64 EVP_DigestInit(&md, evp_md);
64 EVP_DigestUpdate(&md, data, datalen); 65 EVP_DigestUpdate(&md, data, datalen);
@@ -105,11 +106,12 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
105 Buffer b, bb; 106 Buffer b, bb;
106 char *ktype; 107 char *ktype;
107 108
108 if (key == NULL || key->ecdsa == NULL || 109 if (key == NULL || key_type_plain(key->type) != KEY_ECDSA ||
109 (key->type != KEY_ECDSA && key->type != KEY_ECDSA_CERT)) { 110 key->ecdsa == NULL) {
110 error("%s: no ECDSA key", __func__); 111 error("%s: no ECDSA key", __func__);
111 return -1; 112 return -1;
112 } 113 }
114
113 evp_md = key_ec_nid_to_evpmd(key->ecdsa_nid); 115 evp_md = key_ec_nid_to_evpmd(key->ecdsa_nid);
114 116
115 /* fetch signature */ 117 /* fetch signature */