Disable Dual EC DRBG.
Return an error if an attempt is made to enable the Dual EC DRBG: it is not used by default.
This commit is contained in:
parent
39aabe59c8
commit
a4870de5aa
3 changed files with 10 additions and 0 deletions
|
@ -138,6 +138,7 @@ void ERR_load_RAND_strings(void);
|
|||
#define RAND_F_SSLEAY_RAND_BYTES 100
|
||||
|
||||
/* Reason codes. */
|
||||
#define RAND_R_DUAL_EC_DRBG_DISABLED 104
|
||||
#define RAND_R_ERROR_INITIALISING_DRBG 102
|
||||
#define RAND_R_ERROR_INSTANTIATING_DRBG 103
|
||||
#define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101
|
||||
|
|
|
@ -78,6 +78,7 @@ static ERR_STRING_DATA RAND_str_functs[]=
|
|||
|
||||
static ERR_STRING_DATA RAND_str_reasons[]=
|
||||
{
|
||||
{ERR_REASON(RAND_R_DUAL_EC_DRBG_DISABLED),"dual ec drbg disabled"},
|
||||
{ERR_REASON(RAND_R_ERROR_INITIALISING_DRBG),"error initialising drbg"},
|
||||
{ERR_REASON(RAND_R_ERROR_INSTANTIATING_DRBG),"error instantiating drbg"},
|
||||
{ERR_REASON(RAND_R_NO_FIPS_RANDOM_METHOD_SET),"no fips random method set"},
|
||||
|
|
|
@ -269,6 +269,14 @@ int RAND_init_fips(void)
|
|||
DRBG_CTX *dctx;
|
||||
size_t plen;
|
||||
unsigned char pers[32], *p;
|
||||
#ifndef OPENSSL_ALLOW_DUAL_EC_DRBG
|
||||
if (fips_drbg_type >> 16)
|
||||
{
|
||||
RANDerr(RAND_F_RAND_INIT_FIPS, RAND_R_DUAL_EC_DRBG_DISABLED);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
dctx = FIPS_get_default_drbg();
|
||||
if (FIPS_drbg_init(dctx, fips_drbg_type, fips_drbg_flags) <= 0)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue