As suggested by Kurt.
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/3970)
}
/*
- * Set the reseed internal. Used mainly for the KATs.
+ * Set the reseed interval. Used mainly for the KATs.
*/
-void RAND_DRBG_set_reseed_interval(DRBG_CTX *dctx, int interval)
+int RAND_DRBG_set_reseed_interval(DRBG_CTX *dctx, int interval)
{
+ if (interval < 0 || interval > MAX_RESEED)
+ return 0;
dctx->reseed_interval = interval;
+ return 1;
}
/*
}
dctx->max_request = 1 << 16;
- dctx->reseed_interval = 1 << 24;
+ dctx->reseed_interval = MAX_RESEED;
return 1;
}
/* we require 256 bits of randomness */
# define RANDOMNESS_NEEDED (256 / 8)
+/* Maximum count allowed in reseeding */
+#define MAX_RESEED (1 << 24)
+
/* DRBG status values */
#define DRBG_STATUS_UNINITIALISED 0
#define DRBG_STATUS_READY 1
void (*cleanup_nonce)(DRBG_CTX *ctx, unsigned char *out, size_t olen)
);
-void RAND_DRBG_set_reseed_interval(DRBG_CTX *dctx, int interval);
+int RAND_DRBG_set_reseed_interval(DRBG_CTX *dctx, int interval);
#define RAND_DRBG_get_ex_new_index(l, p, newf, dupf, freef) \
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DRBG, l, p, newf, dupf, freef)