Я пытаюсь загрузить закрытый ключ, сгенерированный с использованием OpenSSL, с помощью модуля шифрования Python.
openssl genrsa -out rootCA.key 4096
Ключ был сгенерирован как:
И он загружаетсяas:
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives.serialization import load_der_private_key
import os
with open(os.getcwd() + '/rootCA.key', 'rb') as f:
der_data=bytes(f.read())
key = load_der_private_key(der_data, password=None, backend=default_backend())
print (key)
Но я получаю эту ошибку:
File "loading_key.py", line 9, in <module>
key = load_der_private_key(der_data, password=None, backend=default_backend())
File "/usr/local/lib/python3.6/dist-packages/cryptography/hazmat/primitives/serialization/base.py", line 28, in load_der_private_key
return backend.load_der_private_key(data, password)
File "/usr/local/lib/python3.6/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 1080, in load_der_private_key
password,
File "/usr/local/lib/python3.6/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 1251, in _load_key
self._handle_key_loading_error()
File "/usr/local/lib/python3.6/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 1309, in _handle_key_loading_error
raise ValueError("Could not deserialize key data.")
ValueError: Could not deserialize key data.
Может ли кто-нибудь помочь с этим?Кажется, я не могу выяснить проблему, так как она кажется очень простой.Я не мог видеть никакой другой команды в модуле cryptography
относительно этого, поэтому я не уверен, что это неправильный способ решения проблем.
РЕДАКТИРОВАТЬ:
Для справочных целей или тех, кто сталкивается с аналогичной проблемой, вот как выглядит окончательное решение:
with open(os.getcwd() + '/rootCA.key', "rb") as key_file:
private_key = serialization.load_pem_private_key(
key_file.read(),
password=None,
backend=default_backend()
)