]> granicus.if.org Git - openssl/commitdiff
Make BN_DEBUG_RAND less painfully slow by only consuming one byte of
authorGeoff Thorpe <geoff@openssl.org>
Sun, 30 Nov 2003 21:21:30 +0000 (21:21 +0000)
committerGeoff Thorpe <geoff@openssl.org>
Sun, 30 Nov 2003 21:21:30 +0000 (21:21 +0000)
pseudo-random data for each bn_pollute().

crypto/bn/bn.h

index 326aeca9f9ff4f6f47ed32e904a4d2bc9bdebdf7..5f16fbad00c326470304dddab99f8e8d2b4d6fca 100644 (file)
@@ -635,12 +635,14 @@ int RAND_pseudo_bytes(unsigned char *buf,int num);
        do { \
                const BIGNUM *_bnum1 = (a); \
                if(_bnum1->top < _bnum1->dmax) { \
+                       unsigned char _tmp_char; \
                        /* We cast away const without the compiler knowing, any \
                         * *genuinely* constant variables that aren't mutable \
                         * wouldn't be constructed with top!=dmax. */ \
                        BN_ULONG *_not_const; \
                        memcpy(&_not_const, &_bnum1->d, sizeof(BN_ULONG*)); \
-                       RAND_pseudo_bytes((unsigned char *)(_not_const + _bnum1->top), \
+                       RAND_pseudo_bytes(&_tmp_char, 1); \
+                       memset((unsigned char *)(_not_const + _bnum1->top), _tmp_char, \
                                (_bnum1->dmax - _bnum1->top) * sizeof(BN_ULONG)); \
                } \
        } while(0)