mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-12-26 03:42:07 +00:00
upstream: check private key type against requested key type in
new-style private decoding; ok markus@ OpenBSD-Commit-ID: 04d44b3a34ce12ce5187fb6f6e441a88c8c51662
This commit is contained in:
parent
6aabfb6d22
commit
421169d0e7
8
sshkey.c
8
sshkey.c
@ -1,4 +1,4 @@
|
||||
/* $OpenBSD: sshkey.c,v 1.104 2020/04/08 00:04:32 djm Exp $ */
|
||||
/* $OpenBSD: sshkey.c,v 1.105 2020/04/08 00:05:59 djm Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
|
||||
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
|
||||
@ -4326,6 +4326,12 @@ sshkey_parse_private2(struct sshbuf *blob, int type, const char *passphrase,
|
||||
&decrypted, &pubkey)) != 0)
|
||||
goto out;
|
||||
|
||||
if (type != KEY_UNSPEC &&
|
||||
sshkey_type_plain(type) != sshkey_type_plain(pubkey->type)) {
|
||||
r = SSH_ERR_KEY_TYPE_MISMATCH;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Load the private key and comment */
|
||||
if ((r = sshkey_private_deserialize(decrypted, &k)) != 0 ||
|
||||
(r = sshbuf_get_cstring(decrypted, &comment, NULL)) != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user