какой алгоритм шифрования выполняет сериализацию. BestAvailableEncryption (b'mypassword ') использовать в python криптографии lib? - PullRequest
1 голос
/ 12 апреля 2020

Я нашел этот фрагмент кода, здесь он сериализует закрытый ключ RSA в зашифрованный зашифрованный текст. Я хотел знать, какой алгоритм в этом коде serialization.BestAvailableEncryption(b'mypassword') будет использоваться для этого.

from cryptography.hazmat.primitives import serialization
pem = private_key.private_bytes(
      encoding=serialization.Encoding.PEM,
      format=serialization.PrivateFormat.PKCS8,
      encryption_algorithm=serialization.BestAvailableEncryption(b'mypassword')
)

1 Ответ

1 голос
/ 12 апреля 2020

Это зависит от реализации объекта private_key. BestAvailableEncryption просто говорит о том, что у вас нет заданного предпочтения c, и вы хотите, чтобы библиотека выбрала для вас тип шифрования для ключа.

В бэкэнде OpenSSL (который является единственным Вроде бы), лучшее шифрование выбрано здесь , где в настоящее время выбирается шифр 'aes-256-cbc'. Это может измениться в будущих версиях. Оставить выбор до реализации - причина иметь класс BestAvailableEncryption.

...