Skip to content

Commit 55844f5

Browse files
committed
rsa key doctest
1 parent 1158294 commit 55844f5

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

Diff for: ciphers/rsa_key_generator.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import random
33
import sys
44

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
77

88

99
def main() -> None:
@@ -13,20 +13,26 @@ def main() -> None:
1313

1414

1515
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)
2026
n = p * q
2127

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)
2329
while True:
2430
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:
2632
break
2733

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))
3036

3137
public_key = (n, e)
3238
private_key = (n, d)

0 commit comments

Comments
 (0)