来自SCEP请求的Java PKIHeader

时间:2010-09-07 01:59:34

标签: java certificate pki

最近我开始研究开发一个简单的CA / SCEP服务器。虽然CA没有太大的问题(也不是很多CA),但是SCEP服务器已经让我在某个特定的地方进行了一些循环。

到目前为止,我正确回应了“GetCACert”和“GetCACaps”请求。现在我试图回应“PKIOperation”请求。我实际上能够创建一个带有请求的证书,签名和所有好东西。问题是我必须在响应中添加一些“属性”......

gen1.addSigner(this.rootKeyPair.getPrivate(), this.getRootCertificate(), CMSSignedGenerator.DIGEST_SHA1, new AttributeTable(attributes), null);
CMSSignedData finalData = gen1.generate(msg, true, new BouncyCastleProvider());

特别是recipientNonce。

问题在于我正在努力从初始请求中获取属性。由于reciepientNonce应该是senderNonce的副本,我一直在尝试从PKIOperation消息中提取该特定属性。到目前为止,这是我的代码......

Base64 base64 = new Base64();
ASN1Object object = ASN1Object.fromByteArray(base64.decode(request));
//The "request" is the "message" from scep 
ASN1Sequence sequence = ASN1Sequence.getInstance(object);
//   PKIMessage.getInstance(sequence);
//   PKIHeader.getInstance(sequence);
//   PKIConfirmContent.getInstance(sequence);
//   PKIBody.getInstance(sequence);
//   PKIStatusInfo.getInstance(sequence);
//   PKIFreeText.getInstance(sequence);
//   PKIFailureInfo.getInstance(sequence);
//   PKIStatus.getInstance(sequence);

序列有效,但所有注释掉的行都失败了。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

找到它。 JSCEP有一个名为“PKIMessage”的类,它为您完成所有解析。