0

最近、単純な 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());

具体的には、受信者ナンス。

問題は、最初のリクエストから属性を取得するのに苦労していることです。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);

シーケンスは有効ですが、コメントアウトされた行はすべて失敗します。何かご意見は?

ありがとう!

4

1 に答える 1

2

それを見つけた。JSCEPには、すべての解析を行う「PKIMessage」というクラスがあります。

于 2010-09-14T17:43:49.923 に答える