upstream: put sshkey_check_rsa_length() back in sshkey.c to unbreak

OPENSSL=no builds

OpenBSD-Commit-ID: 99eec58abe382ecd14b14043b195ee1babb9cf6e
This commit is contained in:
djm@openbsd.org 2022-10-28 02:47:04 +00:00 committed by Damien Miller
parent 1192588546
commit 25c8a2bbcc
No known key found for this signature in database
2 changed files with 21 additions and 22 deletions

View File

@ -1,4 +1,4 @@
/* $OpenBSD: ssh-rsa.c,v 1.77 2022/10/28 00:44:44 djm Exp $ */
/* $OpenBSD: ssh-rsa.c,v 1.78 2022/10/28 02:47:04 djm Exp $ */
/*
* Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org>
*
@ -39,26 +39,6 @@
static int openssh_RSA_verify(int, u_char *, size_t, u_char *, size_t, RSA *);
int
sshkey_check_rsa_length(const struct sshkey *k, int min_size)
{
#ifdef WITH_OPENSSL
const BIGNUM *rsa_n;
int nbits;
if (k == NULL || k->rsa == NULL ||
(k->type != KEY_RSA && k->type != KEY_RSA_CERT))
return 0;
RSA_get0_key(k->rsa, &rsa_n, NULL, NULL);
nbits = BN_num_bits(rsa_n);
if (nbits < SSH_RSA_MINIMUM_MODULUS_SIZE ||
(min_size > 0 && nbits < min_size))
return SSH_ERR_KEY_LENGTH;
#endif /* WITH_OPENSSL */
return 0;
}
static u_int
ssh_rsa_size(const struct sshkey *key)
{

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sshkey.c,v 1.133 2022/10/28 00:44:44 djm Exp $ */
/* $OpenBSD: sshkey.c,v 1.134 2022/10/28 02:47:04 djm Exp $ */
/*
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
@ -1319,6 +1319,25 @@ sshkey_cert_type(const struct sshkey *k)
}
}
int
sshkey_check_rsa_length(const struct sshkey *k, int min_size)
{
#ifdef WITH_OPENSSL
const BIGNUM *rsa_n;
int nbits;
if (k == NULL || k->rsa == NULL ||
(k->type != KEY_RSA && k->type != KEY_RSA_CERT))
return 0;
RSA_get0_key(k->rsa, &rsa_n, NULL, NULL);
nbits = BN_num_bits(rsa_n);
if (nbits < SSH_RSA_MINIMUM_MODULUS_SIZE ||
(min_size > 0 && nbits < min_size))
return SSH_ERR_KEY_LENGTH;
#endif /* WITH_OPENSSL */
return 0;
}
#ifdef WITH_OPENSSL
# ifdef OPENSSL_HAS_ECC
int