MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / check_keys

Function check_keys

ciphers/affine_cipher.py:14–35  ·  view source on GitHub ↗
(key_a: int, key_b: int, mode: str)

Source from the content-addressed store, hash-verified

12
13
14def check_keys(key_a: int, key_b: int, mode: str) -> None:
15 if mode == "encrypt":
16 if key_a == 1:
17 sys.exit(
18 "The affine cipher becomes weak when key "
19 "A is set to 1. Choose different key"
20 )
21 if key_b == 0:
22 sys.exit(
23 "The affine cipher becomes weak when key "
24 "B is set to 0. Choose different key"
25 )
26 if key_a < 0 or key_b < 0 or key_b > len(SYMBOLS) - 1:
27 sys.exit(
28 "Key A must be greater than 0 and key B must "
29 f"be between 0 and {len(SYMBOLS) - 1}."
30 )
31 if gcd_by_iterative(key_a, len(SYMBOLS)) != 1:
32 sys.exit(
33 f"Key A {key_a} and the symbol set size {len(SYMBOLS)} "
34 "are not relatively prime. Choose a different key."
35 )
36
37
38def encrypt_message(key: int, message: str) -> str:

Callers 2

encrypt_messageFunction · 0.85
decrypt_messageFunction · 0.85

Calls 1

gcd_by_iterativeFunction · 0.90

Tested by

no test coverage detected