Skip to content

Commit aed2d40

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

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

other/RSA_Algo/rsa_algo.py

+16-9
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
import sys
33
from sympy import isprime, mod_inverse
44

5+
56
def generate_prime_candidate(length):
67
"""
78
Generate a large prime number candidate.
8-
9+
910
>>> p = generate_prime_candidate(16)
1011
>>> isprime(p)
1112
True
@@ -15,10 +16,11 @@ def generate_prime_candidate(length):
1516
p = random.getrandbits(length)
1617
return p
1718

19+
1820
def generate_keys(keysize):
1921
"""
2022
Generate RSA keys.
21-
23+
2224
>>> public, private = generate_keys(16)
2325
>>> len(bin(public)) - 2 # Check bit length of n
2426
32
@@ -30,7 +32,7 @@ def generate_keys(keysize):
3032

3133
p = generate_prime_candidate(keysize)
3234
q = generate_prime_candidate(keysize)
33-
35+
3436
n = p * q
3537
phi = (p - 1) * (q - 1)
3638

@@ -53,21 +55,23 @@ def generate_keys(keysize):
5355
print(f"Unexpected error generating keys: {ex}", file=sys.stderr)
5456
sys.exit(1)
5557

58+
5659
def gcd(a, b):
5760
"""
5861
Compute the greatest common divisor of a and b.
59-
62+
6063
>>> gcd(48, 18)
6164
6
6265
"""
6366
while b != 0:
6467
a, b = b, a % b
6568
return a
6669

70+
6771
def encrypt(pk, plaintext):
6872
"""
6973
Encrypt a message with a public key.
70-
74+
7175
>>> public, private = generate_keys(16)
7276
>>> encrypted = encrypt(public, "test")
7377
>>> isinstance(encrypted, list)
@@ -84,10 +88,11 @@ def encrypt(pk, plaintext):
8488
print(f"Unexpected error during encryption: {ex}", file=sys.stderr)
8589
return None
8690

91+
8792
def decrypt(pk, ciphertext):
8893
"""
8994
Decrypt a message with a private key.
90-
95+
9196
>>> public, private = generate_keys(16)
9297
>>> encrypted = encrypt(public, "test")
9398
>>> decrypted = decrypt(private, encrypted)
@@ -96,17 +101,19 @@ def decrypt(pk, ciphertext):
96101
"""
97102
try:
98103
key, n = pk
99-
plain = [chr((char ** key) % n) for char in ciphertext]
100-
return ''.join(plain)
104+
plain = [chr((char**key) % n) for char in ciphertext]
105+
return "".join(plain)
101106
except TypeError as ex:
102107
print(f"Type error during decryption: {ex}", file=sys.stderr)
103108
return None
104109
except Exception as ex:
105110
print(f"Unexpected error during decryption: {ex}", file=sys.stderr)
106111
return None
107112

108-
if __name__ == '__main__':
113+
114+
if __name__ == "__main__":
109115
import doctest
116+
110117
doctest.testmod()
111118

112119
try:

0 commit comments

Comments
 (0)