92 X509Certificate issuer = issuers.get(0);
93 ValidationStatus status =
new ValidationStatus(certificate, issuer, validationDate, ValidatorSourceType.CRL, CertificateValidity.UNKNOWN);
96 Principal subjectX500Principal = certificate.getSubjectX500Principal();
100 log.error(
"CRL's URL for '" + subjectX500Principal +
"' is empty");
104 log.debug(
"CRL's URL for '" + subjectX500Principal +
"' is '" + crlURL +
"'");
106 X509CRL x509crl =
getCrl(crlURL);
107 if (!
validateCRL(x509crl, certificate, issuer, validationDate)) {
108 log.error(
"The CRL is not valid!");
109 status.setValidity(CertificateValidity.INVALID);
113 X509CRLEntry crlEntry = x509crl.getRevokedCertificate(certificate.getSerialNumber());
114 if (crlEntry == null) {
115 log.debug(
"CRL status is valid for '" + subjectX500Principal +
"'");
116 status.setValidity(CertificateValidity.VALID);
117 }
else if (crlEntry.getRevocationDate().after(validationDate)) {
118 log.warn(
"CRL revocation time after the validation date, the certificate '" + subjectX500Principal +
"' was valid at " + validationDate);
119 status.setRevocationObjectIssuingTime(x509crl.getThisUpdate());
120 status.setValidity(CertificateValidity.VALID);
122 log.info(
"CRL for certificate '" + subjectX500Principal +
"' is revoked since " + crlEntry.getRevocationDate());
123 status.setRevocationObjectIssuingTime(x509crl.getThisUpdate());
124 status.setRevocationDate(crlEntry.getRevocationDate());
125 status.setValidity(CertificateValidity.REVOKED);
127 }
catch (Exception ex) {
128 log.error(
"CRL exception: ", ex);
String getCrlUri(X509Certificate certificate)
Definition: CRLCertificateVerifier.java:240
static final Logger log
Definition: CRLCertificateVerifier.java:67
boolean validateCRL(X509CRL x509crl, X509Certificate certificate, X509Certificate issuerCertificate, Date validationDate)
Definition: CRLCertificateVerifier.java:134
X509CRL getCrl(String url)
Definition: CRLCertificateVerifier.java:186