如何从python(密码模块)中的公共字节或公共数字恢复EC公共密钥

问题描述 投票:0回答:1

我正在尝试将公共密钥发送到远程对等方,以计算共享密钥。我正在使用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密钥转换为公钥对象,它将起作用。

python ssl cryptography rsa
1个回答
0
投票

我知道了。通过导入像这样的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())
© www.soinside.com 2019 - 2024. All rights reserved.