upstream commit
stricter encoding type checks for ssh-rsa; ok djm@ Upstream-ID: 8cca7c787599a5e8391e184d0b4f36fdc3665650
This commit is contained in:
parent
d86a3ba7af
commit
6262a0522d
10
ssh-rsa.c
10
ssh-rsa.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ssh-rsa.c,v 1.55 2015/12/04 16:41:28 markus Exp $ */
|
/* $OpenBSD: ssh-rsa.c,v 1.56 2015/12/07 20:04:09 markus Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org>
|
* Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org>
|
||||||
*
|
*
|
||||||
|
@ -53,16 +53,12 @@ rsa_hash_alg_ident(int hash_alg)
|
||||||
static int
|
static int
|
||||||
rsa_hash_alg_from_ident(const char *ident)
|
rsa_hash_alg_from_ident(const char *ident)
|
||||||
{
|
{
|
||||||
if (ident == NULL || strlen(ident) == 0)
|
|
||||||
return SSH_DIGEST_SHA1;
|
|
||||||
if (strcmp(ident, "ssh-rsa") == 0)
|
if (strcmp(ident, "ssh-rsa") == 0)
|
||||||
return SSH_DIGEST_SHA1;
|
return SSH_DIGEST_SHA1;
|
||||||
if (strcmp(ident, "rsa-sha2-256") == 0)
|
if (strcmp(ident, "rsa-sha2-256") == 0)
|
||||||
return SSH_DIGEST_SHA256;
|
return SSH_DIGEST_SHA256;
|
||||||
if (strcmp(ident, "rsa-sha2-512") == 0)
|
if (strcmp(ident, "rsa-sha2-512") == 0)
|
||||||
return SSH_DIGEST_SHA512;
|
return SSH_DIGEST_SHA512;
|
||||||
if (strncmp(ident, "ssh-rsa-cert", strlen("ssh-rsa-cert")) == 0)
|
|
||||||
return SSH_DIGEST_SHA1;
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,6 +93,10 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp,
|
||||||
if (sigp != NULL)
|
if (sigp != NULL)
|
||||||
*sigp = NULL;
|
*sigp = NULL;
|
||||||
|
|
||||||
|
if (alg_ident == NULL || strlen(alg_ident) == 0 ||
|
||||||
|
strncmp(alg_ident, "ssh-rsa-cert", strlen("ssh-rsa-cert")) == 0)
|
||||||
|
hash_alg = SSH_DIGEST_SHA1;
|
||||||
|
else
|
||||||
hash_alg = rsa_hash_alg_from_ident(alg_ident);
|
hash_alg = rsa_hash_alg_from_ident(alg_ident);
|
||||||
if (key == NULL || key->rsa == NULL || hash_alg == -1 ||
|
if (key == NULL || key->rsa == NULL || hash_alg == -1 ||
|
||||||
sshkey_type_plain(key->type) != KEY_RSA ||
|
sshkey_type_plain(key->type) != KEY_RSA ||
|
||||||
|
|
Loading…
Reference in New Issue