Итак, я генерирую пару ключей 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)
Однако я 'Я столкнулся с проблемой, когда он создает ключи нормально, но не сохранит их в файл, пока программа не выйдет, является ли это причиной безопасности для этого или проблемой библиотеки или, скорее всего, проблемой на моем конце?