簡體   English   中英

使用 python 的加密模塊反序列化公鑰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM