mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-11-24 02:02:10 +08:00
upstream: use RSA/SHA256 when testing usability of private key in
agent; with/ok dtucker OpenBSD-Commit-ID: fe1382e2fdf23fcae631308e72342bad56066a56
This commit is contained in:
parent
27fd251bc9
commit
147ae57d4d
@ -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>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* 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;
|
struct sshkey *key = NULL;
|
||||||
u_char *sig = NULL;
|
u_char *sig = NULL;
|
||||||
|
const char *alg = NULL;
|
||||||
size_t slen = 0;
|
size_t slen = 0;
|
||||||
int r, ret = -1;
|
int r, ret = -1;
|
||||||
char data[1024];
|
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);
|
error_r(r, "Couldn't read public key %s", filename);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (sshkey_type_plain(key->type) == KEY_RSA)
|
||||||
|
alg = "rsa-sha2-256";
|
||||||
arc4random_buf(data, sizeof(data));
|
arc4random_buf(data, sizeof(data));
|
||||||
if ((r = ssh_agent_sign(agent_fd, key, &sig, &slen, 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);
|
error_r(r, "Agent signature failed for %s", filename);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if ((r = sshkey_verify(key, sig, slen, data, sizeof(data),
|
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);
|
error_r(r, "Signature verification failed for %s", filename);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user