2010-09-07 57 views
0

最近我開始研究開發一個簡單的CA/SCEP服務器。雖然CA並不是什麼大問題(CA也不是很多),但是SCEP服務器讓我在某個特定的地方發生了一些循環。來自SCEP請求的Java PKIHeader

到目前爲止,我正確迴應了「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()); 

具體收件人不。

問題是我努力從初始請求中獲取屬性。由於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); 

的順序是有效的,但所有的註釋掉線全部失敗。有什麼想法嗎?

謝謝!

回答

2

找到它。 JSCEP有一個叫做「PKIMessage」的類,它可以爲你做所有的解析。