summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2011-11-06 13:08:54 +0000
committerDr. Stephen Henson <steve@openssl.org>2011-11-06 13:08:54 +0000
commit79f2c9d1cddd9ac7d68c4e3e39c228f01ac79b7e (patch)
treea4da9aac8e55b55f074b5a2e37825fa418dca7d6
parent8a794abd9d427fb58519c03e2dd8fa6da08ee6f1 (diff)
check for unset entropy and nonce callbacks
-rw-r--r--fips/rand/fips_drbg_lib.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fips/rand/fips_drbg_lib.c b/fips/rand/fips_drbg_lib.c
index e0e1d75091..ee162d05eb 100644
--- a/fips/rand/fips_drbg_lib.c
+++ b/fips/rand/fips_drbg_lib.c
@@ -154,6 +154,8 @@ static size_t fips_get_entropy(DRBG_CTX *dctx, unsigned char **pout,
{
unsigned char *tout, *p;
size_t bl = dctx->entropy_blocklen, rv;
+ if (!dctx->get_entropy)
+ return 0;
if (dctx->xflags & DRBG_FLAG_TEST || !bl)
return dctx->get_entropy(dctx, pout, entropy, min_len, max_len);
rv = dctx->get_entropy(dctx, &tout, entropy + bl,
@@ -241,7 +243,7 @@ int FIPS_drbg_instantiate(DRBG_CTX *dctx,
goto end;
}
- if (dctx->max_nonce > 0)
+ if (dctx->max_nonce > 0 && dctx->get_nonce)
{
noncelen = dctx->get_nonce(dctx, &nonce,
dctx->strength / 2,