如何导入没有密码创建的.pfx文件?

时间:2015-05-08 08:43:50

标签: bouncycastle pfx pkcs#12

我使用java bouncycastle库创建了一个PFX PDU。在PFX PDU内部,有两个证书和两个加密的私钥。所有内容都用作PKCS#7数据内容(即没有加密,存储为八位字符串)。我根据PKCS#12(RFC 7292 Section 5)的指导原则组织了元素。然后我将DER编码的字节数组写入文件。

我在十六进制编辑器中打开文件,看到对象结构正常。我还阅读了文件内容并从中构建了一个bouncycastle PFX对象。但是当我尝试从我的文件系统打开.pfx文件时,证书导入向导会要求输入私钥的密码。我没有使用任何密码来创建PFX对象。我曾尝试使用空字符串和用于加密私钥的密码,但它们不起作用。它显示“您输入的密码不正确。”。

我在这里错过了什么吗?如何获取导入证书所需的密码?

1 个答案:

答案 0 :(得分:1)

在RFC 7292的4.1节,第41页中,描述了AuthenticatedSafe的详细信息。 AutthenticatedSafe是序列OF ContentInfo,可以是三种类型之一。

AuthenticatedSafe ::= SEQUENCE OF ContentInfo
-- Data if unencrypted
-- EncryptedData if password-encrypted
-- EnvelopedData if public key-encrypted

将authenticatedSafe数据设为EncryptedData,您需要使用SecretKeyFactory和PBEParameterSpec从密码生成的SecretKey加密AuthenticatedSafe的BERencoded值。

希望,这会对你有所帮助。干杯!!!