ключи Python RSA не сохраняются до выхода - PullRequest
0 голосов
/ 10 октября 2018

Итак, я генерирую пару ключей RSA в python со следующим кодом, который прекрасно работает

from cryptography.hazmat.primitives import serialization as crypto_serialization
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.backends import default_backend as crypto_default_backend



class RSA():

    def __init__(self, key_size=2048):
        self._key_size = key_size

    def generate(self):
        key = rsa.generate_private_key(
            backend=crypto_default_backend(),
            public_exponent=65537,
            key_size=self._key_size
        )
        private_key = key.private_bytes(
            crypto_serialization.Encoding.PEM,
            crypto_serialization.PrivateFormat.PKCS8,
            crypto_serialization.NoEncryption())
        public_key = key.public_key().public_bytes(
            crypto_serialization.Encoding.OpenSSH,
            crypto_serialization.PublicFormat.OpenSSH
        )
        return (private_key, public_key)

, а затем вызываю этот класс с использованием следующего

import os
import time

from Crypto.Key import RSA

if not os.path.exists("./keys"):
    os.mkdir("./keys")
    rsa = RSA()
    priv, pub = rsa.generate()
    with open("./keys/priv.ppk", "a+") as priv_file:
        priv_file.write(priv)
    with open("./keys/pub.pub", "a+") as pub_file:
        pub_file.write(pub)
else:
    print("./keys exists")
time.sleep(30)

Однако я 'Я столкнулся с проблемой, когда он создает ключи нормально, но не сохранит их в файл, пока программа не выйдет, является ли это причиной безопасности для этого или проблемой библиотеки или, скорее всего, проблемой на моем конце?

...