summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2023-03-08 00:05:58 +0000
committerDamien Miller <djm@mindrot.org>2023-03-08 11:06:57 +1100
commit147ae57d4dfa0508109f93b78a7d8b92819e1f83 (patch)
tree16383b115c624df0bd76496b36062513341ccba1
parent27fd251bc906a763e70ce0f27c8abdf8bbd1e416 (diff)
upstream: use RSA/SHA256 when testing usability of private key in
agent; with/ok dtucker OpenBSD-Commit-ID: fe1382e2fdf23fcae631308e72342bad56066a56
-rw-r--r--ssh-add.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ssh-add.c b/ssh-add.c
index 777f21e2..752b86df 100644
--- a/ssh-add.c
+++ b/ssh-add.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-add.c,v 1.166 2022/06/18 02:17:16 dtucker Exp $ */
+/* $OpenBSD: ssh-add.c,v 1.167 2023/03/08 00:05:58 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -477,6 +477,7 @@ test_key(int agent_fd, const char *filename)
{
struct sshkey *key = NULL;
u_char *sig = NULL;
+ const char *alg = NULL;
size_t slen = 0;
int r, ret = -1;
char data[1024];
@@ -485,14 +486,16 @@ test_key(int agent_fd, const char *filename)
error_r(r, "Couldn't read public key %s", filename);
return -1;
}
+ if (sshkey_type_plain(key->type) == KEY_RSA)
+ alg = "rsa-sha2-256";
arc4random_buf(data, sizeof(data));
if ((r = ssh_agent_sign(agent_fd, key, &sig, &slen, data, sizeof(data),
- NULL, 0)) != 0) {
+ alg, 0)) != 0) {
error_r(r, "Agent signature failed for %s", filename);
goto done;
}
if ((r = sshkey_verify(key, sig, slen, data, sizeof(data),
- NULL, 0, NULL)) != 0) {
+ alg, 0, NULL)) != 0) {
error_r(r, "Signature verification failed for %s", filename);
goto done;
}