]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: use RSA/SHA256 when testing usability of private key in
authordjm@openbsd.org <djm@openbsd.org>
Wed, 8 Mar 2023 00:05:58 +0000 (00:05 +0000)
committerDamien Miller <djm@mindrot.org>
Wed, 8 Mar 2023 00:06:57 +0000 (11:06 +1100)
agent; with/ok dtucker

OpenBSD-Commit-ID: fe1382e2fdf23fcae631308e72342bad56066a56

ssh-add.c

index 777f21e26b01edafe65f581af335e71fe24a4592..752b86dfcd8eefa34042de8ad82e0a032d72687c 100644 (file)
--- 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;
        }