python 中等效的 openssl 命令?

openssl commands equivalent in python?

我目前正在使用

获取私钥

openssl pkcs8 -in file.key -inform DER

还有一些cer文件

openssl x509 -text -inform DER -in file.cer

我可以从 python 调用终端上的命令来处理提取,但我更愿意使用 python 库来完成。

我用 pyopenssl 寻找示例,但没有找到与我想要实现的真正相似的东西。

如何使用 python 库实现相同的结果?

看看 cryptography.io. There's DER certificate loading and private key loading 支持 PKCS#8 格式。

因为使用 python 密码学对我不起作用,所以我寻找了一个替代包。

我发现使用 chilkat 正是我所需要的。它支持 pkcs8,而且速度非常快。

我的代码如下

def get_private_key(filepath, password):
    pkey = chilkat.CkPrivateKey()
    pkey.LoadPkcs8EncryptedFile(filepath, password)
    return pkey.getPkcs8Pem()


def get_certificate_and_serial(filepath):
    cert = chilkat.CkCert()
    cert.LoadFromFile(filepath)
    serial = unhexlify(cert.serialNumber())
    return cert.exportCertPem(), serial.decode('utf-8')

可以找到 Chilkat here