summaryrefslogtreecommitdiff
path: root/key.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2017-12-18 02:25:15 +0000
committerDamien Miller <djm@mindrot.org>2017-12-19 15:21:37 +1100
commit04c7e28f83062dc42f2380d1bb3a6bf0190852c0 (patch)
treebc2c59d39a33aba84e0576039474668ada2546d2 /key.c
parent931c78dfd7fe30669681a59e536bbe66535f3ee9 (diff)
upstream commit
pass negotiated signing algorithm though to sshkey_verify() and check that the negotiated algorithm matches the type in the signature (only matters for RSA SHA1/SHA2 sigs). ok markus@ OpenBSD-Commit-ID: 735fb15bf4adc060d3bee9d047a4bcaaa81b1af9
Diffstat (limited to 'key.c')
-rw-r--r--key.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/key.c b/key.c
index 6e338c495..a05fdd3c0 100644
--- a/key.c
+++ b/key.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: key.c,v 1.131 2017/05/30 14:16:41 markus Exp $ */ 1/* $OpenBSD: key.c,v 1.132 2017/12/18 02:25:15 djm Exp $ */
2/* 2/*
3 * placed in the public domain 3 * placed in the public domain
4 */ 4 */
@@ -95,21 +95,6 @@ key_sign(const Key *key, u_char **sigp, u_int *lenp,
95 return 0; 95 return 0;
96} 96}
97 97
98int
99key_verify(const Key *key, const u_char *signature, u_int signaturelen,
100 const u_char *data, u_int datalen)
101{
102 int r;
103
104 if ((r = sshkey_verify(key, signature, signaturelen,
105 data, datalen, datafellows)) != 0) {
106 fatal_on_fatal_errors(r, __func__, 0);
107 error("%s: %s", __func__, ssh_err(r));
108 return r == SSH_ERR_SIGNATURE_INVALID ? 0 : -1;
109 }
110 return 1;
111}
112
113Key * 98Key *
114key_demote(const Key *k) 99key_demote(const Key *k)
115{ 100{