diff --git a/crypto/bn/bn_rand.c b/crypto/bn/bn_rand.c index b1163f7ec44172078a4a15564862db72ed752233..21ecbc04ed0aa53e88a22a8f0e5b9935b4704b13 100644 --- a/crypto/bn/bn_rand.c +++ b/crypto/bn/bn_rand.c @@ -68,6 +68,12 @@ static int bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom) int ret=0,bit,bytes,mask; time_t tim; + if (bits == 0) + { + BN_zero(rnd); + return 1; + } + bytes=(bits+7)/8; bit=(bits-1)%8; mask=0xff<