diff options
-rw-r--r-- | rsa/parallel.py | 5 | ||||
-rw-r--r-- | rsa/prime.py | 5 | ||||
-rw-r--r-- | rsa/randnum.py | 13 |
3 files changed, 15 insertions, 8 deletions
diff --git a/rsa/parallel.py b/rsa/parallel.py index 0efab11..8534d72 100644 --- a/rsa/parallel.py +++ b/rsa/parallel.py @@ -34,10 +34,7 @@ import rsa.randnum def _find_prime(nbits, pipe): while True: - integer = rsa.randnum.read_random_int(nbits) - - # Make sure it's odd - integer |= 1 + integer = rsa.randnum.read_random_odd_int(nbits) # Test for primeness if rsa.prime.is_prime(integer): diff --git a/rsa/prime.py b/rsa/prime.py index 4f52b85..85cb048 100644 --- a/rsa/prime.py +++ b/rsa/prime.py @@ -129,10 +129,7 @@ def getprime(nbits): """ while True: - integer = rsa.randnum.read_random_int(nbits) - - # Make sure it's odd - integer |= 1 + integer = rsa.randnum.read_random_odd_int(nbits) # Test for primeness if is_prime(integer): diff --git a/rsa/randnum.py b/rsa/randnum.py index 12a6757..3c788a5 100644 --- a/rsa/randnum.py +++ b/rsa/randnum.py @@ -59,6 +59,19 @@ def read_random_int(nbits): return value +def read_random_odd_int(nbits): + """Reads a random odd integer of approximately nbits bits. + + >>> read_random_odd_int(512) & 1 + 1 + """ + + value = read_random_int(nbits) + + # Make sure it's odd + return value | 1 + + def randint(maxvalue): """Returns a random integer x with 1 <= x <= maxvalue |