1
1
import random
2
2
import sys
3
3
from sympy import isprime , mod_inverse
4
+ from typing import Tuple , List
4
5
5
- def generate_prime_candidate (length ) :
6
+ def generate_prime_candidate (length : int ) -> int :
6
7
"""
7
8
Generate a large prime number candidate.
8
9
@@ -15,7 +16,7 @@ def generate_prime_candidate(length):
15
16
p = random .getrandbits (length )
16
17
return p
17
18
18
- def generate_keys (keysize ) :
19
+ def generate_keys (keysize : int ) -> Tuple [ Tuple [ int , int ], Tuple [ int , int ]] :
19
20
"""
20
21
Generate RSA keys.
21
22
@@ -53,7 +54,7 @@ def generate_keys(keysize):
53
54
print (f"Unexpected error generating keys: { ex } " , file = sys .stderr )
54
55
sys .exit (1 )
55
56
56
- def gcd (a , b ) :
57
+ def gcd (a : int , b : int ) -> int :
57
58
"""
58
59
Compute the greatest common divisor of a and b.
59
60
@@ -64,7 +65,7 @@ def gcd(a, b):
64
65
a , b = b , a % b
65
66
return a
66
67
67
- def encrypt (pk , plaintext ) :
68
+ def encrypt (pk : Tuple [ int , int ], plaintext : str ) -> List [ int ] :
68
69
"""
69
70
Encrypt a message with a public key.
70
71
@@ -84,7 +85,7 @@ def encrypt(pk, plaintext):
84
85
print (f"Unexpected error during encryption: { ex } " , file = sys .stderr )
85
86
return None
86
87
87
- def decrypt (pk , ciphertext ) :
88
+ def decrypt (pk : Tuple [ int , int ], ciphertext : List [ int ]) -> str :
88
89
"""
89
90
Decrypt a message with a private key.
90
91
0 commit comments