Skip to content

Commit 2a1c367

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 452470a commit 2a1c367

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

other/RSA_Algo/rsa_algo.py

+15-9
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
def generate_prime_candidate(length: int) -> int:
88
"""
99
Generate a large prime number candidate.
10-
10+
1111
>>> p = generate_prime_candidate(16)
1212
>>> isprime(p)
1313
True
@@ -17,10 +17,11 @@ def generate_prime_candidate(length: int) -> int:
1717
p = random.getrandbits(length)
1818
return p
1919

20+
2021
def generate_keys(keysize: int) -> Tuple[Tuple[int, int], Tuple[int, int]]:
2122
"""
2223
Generate RSA keys.
23-
24+
2425
>>> public, private = generate_keys(16)
2526
>>> len(bin(public)) - 2 # Check bit length of n
2627
32
@@ -32,7 +33,7 @@ def generate_keys(keysize: int) -> Tuple[Tuple[int, int], Tuple[int, int]]:
3233

3334
p = generate_prime_candidate(keysize)
3435
q = generate_prime_candidate(keysize)
35-
36+
3637
n = p * q
3738
phi = (p - 1) * (q - 1)
3839

@@ -55,21 +56,23 @@ def generate_keys(keysize: int) -> Tuple[Tuple[int, int], Tuple[int, int]]:
5556
print(f"Arithmetic error generating keys: {ex}", file=sys.stderr)
5657
sys.exit(1)
5758

59+
5860
def gcd(a: int, b: int) -> int:
5961
"""
6062
Compute the greatest common divisor of a and b.
61-
63+
6264
>>> gcd(48, 18)
6365
6
6466
"""
6567
while b != 0:
6668
a, b = b, a % b
6769
return a
6870

71+
6972
def encrypt(pk: Tuple[int, int], plaintext: str) -> List[int]:
7073
"""
7174
Encrypt a message with a public key.
72-
75+
7376
>>> public, private = generate_keys(16)
7477
>>> encrypted = encrypt(public, "test")
7578
>>> isinstance(encrypted, list)
@@ -89,10 +92,11 @@ def encrypt(pk: Tuple[int, int], plaintext: str) -> List[int]:
8992
print(f"Overflow error during encryption: {ex}", file=sys.stderr)
9093
return None
9194

95+
9296
def decrypt(pk: Tuple[int, int], ciphertext: List[int]) -> str:
9397
"""
9498
Decrypt a message with a private key.
95-
99+
96100
>>> public, private = generate_keys(16)
97101
>>> encrypted = encrypt(public, "test")
98102
>>> decrypted = decrypt(private, encrypted)
@@ -101,8 +105,8 @@ def decrypt(pk: Tuple[int, int], ciphertext: List[int]) -> str:
101105
"""
102106
try:
103107
key, n = pk
104-
plain = [chr((char ** key) % n) for char in ciphertext]
105-
return ''.join(plain)
108+
plain = [chr((char**key) % n) for char in ciphertext]
109+
return "".join(plain)
106110
except TypeError as ex:
107111
print(f"Type error during decryption: {ex}", file=sys.stderr)
108112
return None
@@ -113,8 +117,10 @@ def decrypt(pk: Tuple[int, int], ciphertext: List[int]) -> str:
113117
print(f"Overflow error during decryption: {ex}", file=sys.stderr)
114118
return None
115119

116-
if __name__ == '__main__':
120+
121+
if __name__ == "__main__":
117122
import doctest
123+
118124
doctest.testmod()
119125

120126
try:

0 commit comments

Comments
 (0)