gpt4 book ai didi

python - 从 Python 中的 PrivateKey/CertificateRequest/Certificate 中提取公钥模数,格式与 OpenSSL 相同

转载 作者:行者123 更新时间:2023-12-05 02:52:52 24 4
gpt4 key购买 nike

使用 OpenSSL,我可以使用这些命令从各种对象中提取公钥的模数:

openssl rsa -noout -modulus -in {KEY}
openssl req -noout -modulus -in {CSR}
openssl x509 -noout -modulus -in {CERT}

我正在尝试使用 cryptographypyopenssl 包在 python 中复制它。

我可以从 Python 中的所有这些对象中提取公钥,但我无法弄清楚如何对模数进行编码以匹配 OpenSSL 命令行输出——这似乎是我可以使用的格式的 base64 编码版本从这 3 个项目中的任何一个的文档或源代码中找出答案。

最佳答案

密码学中的 RSAPublicNumbers 类 ( link ) 有您要找的东西。您可以使用 pyopenssl 中 PKey 类的 to_cryptography_key 方法( link )获取它。

from OpenSSL.crypto import load_certificate
from OpenSSL.crypto import FILETYPE_PEM

with open(certfile, 'rb') as fp:
cert = load_certificate(FILETYPE_PEM, fp.read())

# This gives you the modulus in integer form
modn = cert.get_pubkey().to_cryptography_key().public_numbers().n

# Convert it to hex
print('{:X}'.format(modn))

关于python - 从 Python 中的 PrivateKey/CertificateRequest/Certificate 中提取公钥模数,格式与 OpenSSL 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62453486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com