if (L == 2048 && N == 256)
return 112;
if (L == 3072 && N == 256)
- return 112;
+ return 128;
return 0;
}
}
mdsize = M_EVP_MD_size(evpmd);
+ /* If unverificable g generation only don't need seed */
+ if (!ret->p || !ret->q || idx >= 0)
+ {
+ if (seed_len == 0)
+ seed_len = mdsize;
- if (seed_len == 0)
- seed_len = mdsize;
+ seed = OPENSSL_malloc(seed_len);
- seed = OPENSSL_malloc(seed_len);
+ if (seed_out)
+ seed_tmp = seed_out;
+ else
+ seed_tmp = OPENSSL_malloc(seed_len);
- if (seed_out)
- seed_tmp = seed_out;
- else
- seed_tmp = OPENSSL_malloc(seed_len);
+ if (!seed || !seed_tmp)
+ goto err;
- if (!seed || !seed_tmp)
- goto err;
+ if (seed_in)
+ memcpy(seed, seed_in, seed_len);
- if (seed_in)
- memcpy(seed, seed_in, seed_len);
+ }
if ((ctx=BN_CTX_new()) == NULL)
goto err;
{
p = ret->p;
q = ret->q;
- memcpy(seed_tmp, seed, seed_len);
+ if (idx >= 0)
+ memcpy(seed_tmp, seed, seed_len);
goto g_only;
}
else
for (;;)
{
+ __fips_constseg
static const unsigned char ggen[4] = {0x67,0x67,0x65,0x6e};
if (idx >= 0)
{