Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获得证书';Java中签名验证的s撤销时间_Java_Certificate_Signature - Fatal编程技术网

获得证书';Java中签名验证的s撤销时间

获得证书';Java中签名验证的s撤销时间,java,certificate,signature,Java,Certificate,Signature,我需要得到撤销日期,以便与签名验证框架中的签名时间进行比较。下一个代码,使用CertPathValidator java类,允许我验证证书链,但如果链中有任何证书被吊销,它会引发异常 private boolean validateChain(List<X509Certificate> certificates) { PKIXParameters params; CertPath certPath; CertPathValidator certPathValidator; B

我需要得到撤销日期,以便与签名验证框架中的签名时间进行比较。下一个代码,使用CertPathValidator java类,允许我验证证书链,但如果链中有任何证书被吊销,它会引发异常

private boolean validateChain(List<X509Certificate> certificates) {
 PKIXParameters params;
 CertPath certPath;
 CertPathValidator certPathValidator;
 Boolean valid = Boolean.FALSE;

 params = new PKIXParameters(keyStore);
 params.setRevocationEnabled(true);
 Security.setProperty("ocsp.enable", "true");

 certPath = cf.generateCertPath(certificates);
 certPathValidator = CertPathValidator.getInstance("PKIX");

 PKIXCertPathValidatorResult result = (PKIXCertPathValidatorResult)  
 certPathValidator.validate(certPath, params);

 if(null != result) {
    valid = Boolean.TRUE;
 }
 return valid;
}
private boolean validateChain(列出证书){
PKIXParameters参数;
CertPath-CertPath;
CertPathValidator CertPathValidator;
Boolean valid=Boolean.FALSE;
params=新的PKIXParameters(密钥库);
参数setRevocationEnabled(true);
Security.setProperty(“ocsp.enable”、“true”);
certPath=cf.generateCertPath(证书);
certPathValidator=certPathValidator.getInstance(“PKIX”);
PKIXCertPathValidatorResult=(PKIXCertPathValidatorResult)
验证(certPath,params);
if(null!=结果){
valid=Boolean.TRUE;
}
返回有效;
}
我需要一些方法来检查链中是否存在被吊销的证书,而不引发异常并停止验证过程。此外,我需要得到撤销的日期,因为最后的代码不允许它。
我需要一个非专有的解决方案,因为我已经知道Sun类OCSP,最后我找到了一个解决方案。可以确定路径有效性作为参数的日期。我无法恢复每个证书的吊销日期,但添加了以下行:

params.setDate(signingDate)

此时将检查CertPath的有效性

您可以尝试使用Bouncy Castle库: