diff --git a/.gitignore b/.gitignore index faed101..6d0752b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.venv/ /keys/ +*.pem diff --git a/main.py b/main.py index 0e7be40..63718da 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ import os -from encrypt import encrypt_message -from decrypt import decrypt_message -from generate_save import generate_private_key, generate_public_key, save_private_key, save_public_key +from utilits.encrypt import encrypt_message +from utilits.decrypt import decrypt_message +from utilits.generate_save import generate_private_key, generate_public_key, save_private_key, save_public_key KEYS_DIR = 'keys' PRIVATE_KEY_FILE = f'{KEYS_DIR}/private-key.pem' @@ -10,15 +10,13 @@ PUBLIC_KEY_FILE = f'{KEYS_DIR}/public-key.pem' if not os.path.exists(KEYS_DIR): os.makedirs(KEYS_DIR) -action = input("Хотите сгенерировать новые ключи (1) или использовать существующие (2)? ") - -if action == '1': +if not os.path.exists(PRIVATE_KEY_FILE) and not os.path.exists(PUBLIC_KEY_FILE): private_key = generate_private_key() save_private_key(private_key, PRIVATE_KEY_FILE) public_key = generate_public_key(private_key) save_public_key(public_key, PUBLIC_KEY_FILE) print(f"Новые ключи сгенерированы и сохранены в '{PRIVATE_KEY_FILE}' и '{PUBLIC_KEY_FILE}'.") -elif action == '2': +else: if os.path.exists(PRIVATE_KEY_FILE) and os.path.exists(PUBLIC_KEY_FILE): pass else: diff --git a/decrypt.py b/utilits/decrypt.py similarity index 99% rename from decrypt.py rename to utilits/decrypt.py index 2ccf63d..d963731 100644 --- a/decrypt.py +++ b/utilits/decrypt.py @@ -3,6 +3,7 @@ from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import padding + def load_keys_private(private_key_file): with open(private_key_file, 'rb') as f: private_key_data = f.read() @@ -14,6 +15,7 @@ def load_keys_private(private_key_file): ) return private_key + def decrypt_message(encrypted_message, private_key_file): private_key = load_keys_private(private_key_file) encrypted_bytes = base64.b64decode(encrypted_message) diff --git a/encrypt.py b/utilits/encrypt.py similarity index 99% rename from encrypt.py rename to utilits/encrypt.py index e0970e7..d7a4d63 100644 --- a/encrypt.py +++ b/utilits/encrypt.py @@ -26,4 +26,3 @@ def encrypt_message(message, public_key_file): ) ) return base64.b64encode(encrypted).decode('utf-8') - diff --git a/generate_save.py b/utilits/generate_save.py similarity index 80% rename from generate_save.py rename to utilits/generate_save.py index 205d54c..3a36e14 100644 --- a/generate_save.py +++ b/utilits/generate_save.py @@ -32,12 +32,3 @@ def save_public_key(public_key, public_key_file): encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo )) - - -# Пример использования -if __name__ == "__main__": - private_key = generate_private_key() - public_key = generate_public_key(private_key) - - save_private_key(private_key, 'private_key.pem') - save_public_key(public_key, 'public_key.pem') \ No newline at end of file