簡體   English   中英

如何從python中的公共字節或公共數字恢復EC公鑰(加密模塊)

[英]How to restore a EC public key from public bytes or public numbers in python (cryptography module)

我正在嘗試將公鑰發送到遠程對等方以計算共享密鑰。 我使用的是 python 的cryptography模塊,我使用的是ec而不是rsa

我可以發公眾號:

value = ecdh_public_key.public_numbers()

或公共字節:

value = ecdh_public_key.public_bytes()

但在這兩種情況下,我都不知道如何將它們轉換回另一側的 ec 公鑰對象。

整個代碼:

# Generating ECDH private/public key
ecdh_private_key = ec.generate_private_key(ec.SECP256R1(), default_backend())
ecdh_public_key = ecdh_private_key.public_key()

# exchange public keys
value = ecdh_public_key.public_numbers()

編輯:使用public_bytes()后得到的值是 PKCS1 密鑰。 因此,如果有一種方法可以將 PKCS1 密鑰轉換為公鑰對象,它將起作用。

我想到了。 通過像這樣導入load_pem_public_key方法:

from cryptography.hazmat.primitives.serialization import load_pem_public_key

然后使用它從公共字節創建一個公鑰對象:

public_key = load_pem_public_key(remote_public_bytes, default_backend())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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