2017-12-31 26 views
0

Bouncy CastleとC#を使用して証明書を含むタイムスタンプトークンを要求しています(timestampRequestGenerator.SetCertReq(true))。SetCertReqfalseに設定した場合よりも応答が大幅に大きくなります。私は応答がどこかタイムスタンプを生成するために使用される公開鍵証明書を持っていると仮定します。Bouncy Castleのタイムスタンプ応答から証明書を抽出する方法

Bouncy Castleを使用してこれらの証明書にアクセスするにはどうすればよいですか? Visual Studioでレスポンスオブジェクトを調べましたが、証明書がどこにあるのかわかりませんでした。

Stream inputFile = File.OpenRead("response-with-certs.tsr"); 
TimeStampResponse response = new TimeStampResponse(inputFile); 
inputFile.Close(); 
+0

たぶん(ここで見た後:https://www.bouncycastle.org/docs/pkixdocs1 .4/org/bouncycastle/tsp/TimeStampResponse.html)には 'Encoded'プロパティまたは' GetEncoded() 'メソッドがあります。これを(Convert.ToBase64String'を使用して)キャプチャすれば、asn1を一緒に検査して証明書がどこにあるかを調べることができます。 – zaitsman

+0

実際には、いくつかのサンプルコードがここにあります:https://www.digistamp.com/toolkitDoc/comNetToolkit/DigiStampCS.txt したがって、あなたは 'response.TimeStampToken.GetCertificates(" Collection ")'を実行して証明書を取得できますコレクションを – zaitsman

+0

@ azitsmanありがとう、それは働いた。もし私がそれを受け入れるには、答えとして書くことができますか? – Victor

答えて

0

コメントで述べたように、あなたがそうのような証明書のコレクションを取得することができるはずです。

response.TimeStampToken.GetCertificates("Collection"); 
関連する問題