[英]Deserializing public key with python's cryptography module
我正在編寫一個涉及通過網絡發送公鑰的 python 腳本。 我正在使用 < https://cryptography.io/en/latest/hazmat/primitives/asymmetric/serialization/ 。>
public_key = self.node.public_key
pem = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
deserialized_key = load_pem_public_key(pem)
我收到錯誤:
TypeError: load_pem_public_key() missing 1 required positional argument: 'backend'
因此,我無法反序列化密鑰 - 我很困惑,因為根據文檔,load_pem_public_key() 需要 1 個必需參數(數據)和 1 個可選參數(后端)。
看起來您使用cryptography==3.0
或更低版本,其中需要backend
參數https://github.com/pyca/cryptography/blob/3.0/src/cryptography/hazmat/primitives/serialization/base.py#L19
撞到cryptography==3.1
或將一些東西放到backend
arg
即使使用cryptography==3.1
我仍然有問題。
我也無法提供backend
arg,因為它是在庫 ( python-jose==3.1
) 中觸發的。 升級到python-jose==3.2
(=當前最新)也沒有幫助。
安裝python-jose-cryptodome==1.3.2
確實有幫助。
python-jose
文檔的相關部分:
[e naive python] 后端始終安裝,但如果安裝了任何其他后端,則將優先。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.