无法将PEM编码的私钥从Pyjks加载到PKey对象中

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

我正在将Pyjks PrivateKeyEntry对象加载到PEM中,然后尝试将pem编码的字符串加载到Pkey对象中。正如您可能已经猜到的那样,我正在尝试将PrivateKeyEntry及其证书链导出到文件中。我们有一个能够将证书和p12容器导入java密钥库的UI,我也试图让它们可以下载。

pkey_pem = pkey_as_pem(keystore_entry)
load_privatekey(crypto.FILETYPE_PEM, pkey_pem)

但是,我从OpenSSL.crypto库得到的错误至少可以说:

OpenSSL.crypto.Error: [('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_item_embed_d2i', 'nested asn1 error'), ('rsa routines', 'old_rsa_priv_decode', 'RSA lib'), ('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_item_embed_d2i', 'nested asn1 error'), ('PEM routines', 'PEM_read_bio_PrivateKey', 'ASN1 lib')]

Pyjks也表明这是以同样的方式完成的:https://github.com/kurtbrose/pyjks/blob/master/tools/readks.py我能够输出这样的证书就好了。

编辑:也尝试使用load_privatekey(crypto.FILETYPE_ASN1, pkey_pem._pkey),导致类似的神秘错误消息:

{Error}[('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_template_noexp_d2i', 'nested asn1 error'), ('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_item_embed_d2i', 'nested asn1 error'), ('rsa routines', 'old_rsa_priv_decode', 'RSA lib'), ('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_item_embed_d2i', 'nested asn1 error')]
pyopenssl p12 pyjks
1个回答
0
投票

从我自己的代码中发现了一个错误(实际上监督听起来更好),这实际上在导入到jks期间搞砸了pkey,这就是它在OpenSSL中失败的原因。

© www.soinside.com 2019 - 2024. All rights reserved.