mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-25 19:35:39 +01:00
RSA: Use MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR
This commit is contained in:
parent
a3cb7eb8ad
commit
b8fc1b02ee
@ -502,6 +502,7 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
mbedtls_mpi H, G, L;
|
mbedtls_mpi H, G, L;
|
||||||
|
int prime_quality = 0;
|
||||||
|
|
||||||
if( f_rng == NULL || nbits < 128 || exponent < 3 )
|
if( f_rng == NULL || nbits < 128 || exponent < 3 )
|
||||||
return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
|
return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
|
||||||
@ -509,6 +510,14 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx,
|
|||||||
if( nbits % 2 )
|
if( nbits % 2 )
|
||||||
return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
|
return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the modulus is 1024 bit long or shorter, then the security strength of
|
||||||
|
* the RSA algorithm is less than or equal to 80 bits and therefore an error
|
||||||
|
* rate of 2^-80 is sufficient.
|
||||||
|
*/
|
||||||
|
if( nbits > 1024 )
|
||||||
|
prime_quality = MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR;
|
||||||
|
|
||||||
mbedtls_mpi_init( &H );
|
mbedtls_mpi_init( &H );
|
||||||
mbedtls_mpi_init( &G );
|
mbedtls_mpi_init( &G );
|
||||||
mbedtls_mpi_init( &L );
|
mbedtls_mpi_init( &L );
|
||||||
@ -523,11 +532,11 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx,
|
|||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_gen_prime( &ctx->P, nbits >> 1, 0,
|
MBEDTLS_MPI_CHK( mbedtls_mpi_gen_prime( &ctx->P, nbits >> 1,
|
||||||
f_rng, p_rng ) );
|
prime_quality, f_rng, p_rng ) );
|
||||||
|
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_gen_prime( &ctx->Q, nbits >> 1, 0,
|
MBEDTLS_MPI_CHK( mbedtls_mpi_gen_prime( &ctx->Q, nbits >> 1,
|
||||||
f_rng, p_rng ) );
|
prime_quality, f_rng, p_rng ) );
|
||||||
|
|
||||||
/* make sure the difference between p and q is not too small (FIPS 186-4 §B.3.3 step 5.4) */
|
/* make sure the difference between p and q is not too small (FIPS 186-4 §B.3.3 step 5.4) */
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &H, &ctx->P, &ctx->Q ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &H, &ctx->P, &ctx->Q ) );
|
||||||
|
Loading…
Reference in New Issue
Block a user