2
2
import random
3
3
import sys
4
4
5
- from . import cryptomath_module as cryptoMath # noqa: N812
6
- from . import rabin_miller as rabinMiller # noqa: N812
5
+ import cryptomath_module
6
+ import rabin_miller
7
7
8
8
9
9
def main () -> None :
@@ -13,20 +13,26 @@ def main() -> None:
13
13
14
14
15
15
def generate_key (key_size : int ) -> tuple [tuple [int , int ], tuple [int , int ]]:
16
- print ("Generating prime p..." )
17
- p = rabinMiller .generate_large_prime (key_size )
18
- print ("Generating prime q..." )
19
- q = rabinMiller .generate_large_prime (key_size )
16
+ """
17
+ >>> random.seed(0) # for repeatability
18
+ >>> public_key, private_key = generate_key(8)
19
+ >>> public_key
20
+ (46513, 197)
21
+ >>> private_key
22
+ (46513, 2573)
23
+ """
24
+ p = rabin_miller .generate_large_prime (key_size )
25
+ q = rabin_miller .generate_large_prime (key_size )
20
26
n = p * q
21
27
22
- print ( "Generating e that is relatively prime to (p - 1) * (q - 1)..." )
28
+ # Generate e that is relatively prime to (p - 1) * (q - 1)
23
29
while True :
24
30
e = random .randrange (2 ** (key_size - 1 ), 2 ** (key_size ))
25
- if cryptoMath .gcd (e , (p - 1 ) * (q - 1 )) == 1 :
31
+ if cryptomath_module .gcd (e , (p - 1 ) * (q - 1 )) == 1 :
26
32
break
27
33
28
- print ( "Calculating d that is mod inverse of e..." )
29
- d = cryptoMath .find_mod_inverse (e , (p - 1 ) * (q - 1 ))
34
+ # Calculate d that is mod inverse of e
35
+ d = cryptomath_module .find_mod_inverse (e , (p - 1 ) * (q - 1 ))
30
36
31
37
public_key = (n , e )
32
38
private_key = (n , d )
0 commit comments