(key_a: int, key_b: int, mode: str)
| 12 | |
| 13 | |
| 14 | def 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 | |
| 38 | def encrypt_message(key: int, message: str) -> str: |
no test coverage detected