Python:如何从“ .cert”文件中提取公钥?

时间:2019-01-23 01:46:37

标签: python cryptography

我已经使用openssl生成了X.509自签名,如下所示:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

这生成了两个文件:cert.pem和key.pem文件。

我的cert.pem文件包含公用密钥。如何使用Python提取它?
我无法使用python的OpenSSl库。我可以使用加密库。
我当前的代码:

cert = x509.load_pem_x509_certificate(pem_data, default_backend())
print(cert.public_key)

1 个答案:

答案 0 :(得分:0)

除非我对您的问题有误解,否则您将执行与使用python读取任何其他文件内容相同的操作。

这样的事情应该让您入门:

#!/usr/bin/env python

from subprocess import Popen, PIPE, STDOUT
p = Popen(["openssl", "rsa", "-in", "key.pem", "-pubout", "-out", "key.pub"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
p.stdout.readline().rstrip()

pubkey_file=open('key.pub', 'r')
for line in pubkey_file.readlines():
    data=line.strip('\n')
    print(data)
pubkey_file.close()