summaryrefslogtreecommitdiff
path: root/src/global.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2016-02-19 15:35:03 +0100
committerWerner Koch <wk@gnupg.org>2016-02-19 15:35:03 +0100
commit934ba2ae5a95a96fdbb3b935b51ba43df66f11df (patch)
treefbf9e6190ef0825e132eefaf26e3fe5bf2ad1c5b /src/global.c
parent7cdbd6e6a3cf1ee366b981e148d41b1187a6fdcf (diff)
downloadlibgcrypt-934ba2ae5a95a96fdbb3b935b51ba43df66f11df.tar.gz
random: Add a test case for DRBG_REINIT.
* src/global.c (_gcry_vcontrol) <DRBG_REINIT>: Test for FIPS RNG. * tests/random.c (check_drbg_reinit): New. (main): Call new test. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src/global.c')
-rw-r--r--src/global.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/global.c b/src/global.c
index 4bd928b9..4d69b27b 100644
--- a/src/global.c
+++ b/src/global.c
@@ -663,6 +663,8 @@ _gcry_vcontrol (enum gcry_ctl_cmds cmd, va_list arg_ptr)
int npers = va_arg (arg_ptr, int);
if (va_arg (arg_ptr, void *) || npers < 0)
rc = GPG_ERR_INV_ARG;
+ else if (_gcry_get_rng_type (!any_init_done) != GCRY_RNG_TYPE_FIPS)
+ rc = GPG_ERR_NOT_SUPPORTED;
else
rc = _gcry_rngdrbg_reinit (flagstr, pers, npers);
}