1
TimeStampToken類中有兩個驗證方法(bctsp-jdk16-1.46.jar),其中一個已棄用。如何使用文件系統中的.cer文件驗證TimeStampToken?
不推薦使用的方法使用X509Certificate作爲參數,這很容易創建。
InputStream inPFX = getClass().getClassLoader().getResourceAsStream("tsp.cer");
CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");
X509Certificate cert = (X509Certificate) cf.generateCertificate(inPFX);
// The validate method just takes the X509Certificate object
token.validate(cert, "BC");
新方法使用SignerInformationVerifier對象。我找到了一種創建SignerInformationVerifier的方法(不確定它是否正確),但我仍然需要一個X509CertificateHolder對象。
- 我如何在文件系統中創建該文件中的X509CertificateHolder(* .CER文件)
- 這是正確的方式來創建一個SignerInformationVerifier驗證時間戳標記?
我當前的代碼如下所示:
TimeStampToken token = new TimeStampToken(new CMSSignedData(response));
X509CertificateHolder x = // HOW TODO THIS?
// create the SignerInformationVerifier object
DigestAlgorithmIdentifierFinder daif = new DefaultDigestAlgorithmIdentifierFinder();
DigestCalculatorProvider dcp = new BcDigestCalculatorProvider();
SignerInformationVerifier siv = new BcRSASignerInfoVerifierBuilder(daif, dcp).build(x509ch);
// use the new validate method
token.validate(siv);