summaryrefslogtreecommitdiff
path: root/bcprov/src/main/java/org/bouncycastle/jce/provider/ProvCrlRevocationChecker.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jce/provider/ProvCrlRevocationChecker.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/jce/provider/ProvCrlRevocationChecker.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jce/provider/ProvCrlRevocationChecker.java b/bcprov/src/main/java/org/bouncycastle/jce/provider/ProvCrlRevocationChecker.java
new file mode 100644
index 00000000..6f62483e
--- /dev/null
+++ b/bcprov/src/main/java/org/bouncycastle/jce/provider/ProvCrlRevocationChecker.java
@@ -0,0 +1,67 @@
+package org.bouncycastle.jce.provider;
+
+import java.security.cert.CertPathValidatorException;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.util.Date;
+
+import org.bouncycastle.jcajce.PKIXCertRevocationChecker;
+import org.bouncycastle.jcajce.PKIXCertRevocationCheckerParameters;
+import org.bouncycastle.jcajce.util.JcaJceHelper;
+
+class ProvCrlRevocationChecker
+ implements PKIXCertRevocationChecker
+{
+ private final JcaJceHelper helper;
+
+ private PKIXCertRevocationCheckerParameters params;
+ private Date currentDate = null;
+
+ public ProvCrlRevocationChecker(JcaJceHelper helper)
+ {
+ this.helper = helper;
+ }
+
+ public void setParameter(String name, Object value)
+ {
+
+ }
+
+ public void initialize(PKIXCertRevocationCheckerParameters params)
+ {
+ this.params = params;
+ this.currentDate = new Date();
+ }
+
+ public void init(boolean forForward)
+ throws CertPathValidatorException
+ {
+ if (forForward)
+ {
+ throw new CertPathValidatorException("forward checking not supported");
+ }
+
+ this.params = null;
+ this.currentDate = new Date();
+ }
+
+ public void check(Certificate certificate)
+ throws CertPathValidatorException
+ {
+ try
+ {
+ RFC3280CertPathUtilities.checkCRLs(params, params.getParamsPKIX(), currentDate, params.getValidDate(),
+ (X509Certificate)certificate, params.getSigningCert(), params.getWorkingPublicKey(),
+ params.getCertPath().getCertificates(), helper);
+ }
+ catch (AnnotatedException e)
+ {
+ Throwable cause = e;
+ if (null != e.getCause())
+ {
+ cause = e.getCause();
+ }
+ throw new CertPathValidatorException(e.getMessage(), cause, params.getCertPath(), params.getIndex());
+ }
+ }
+}