Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'prov/src/main/jdk1.1/org/spongycastle/jce/provider/MultiCertStoreSpi.java')
-rw-r--r--prov/src/main/jdk1.1/org/spongycastle/jce/provider/MultiCertStoreSpi.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/prov/src/main/jdk1.1/org/spongycastle/jce/provider/MultiCertStoreSpi.java b/prov/src/main/jdk1.1/org/spongycastle/jce/provider/MultiCertStoreSpi.java
new file mode 100644
index 00000000..c6db1bdb
--- /dev/null
+++ b/prov/src/main/jdk1.1/org/spongycastle/jce/provider/MultiCertStoreSpi.java
@@ -0,0 +1,85 @@
+package org.spongycastle.jce.provider;
+
+import org.spongycastle.jce.MultiCertStoreParameters;
+
+import java.security.InvalidAlgorithmParameterException;
+import java.security.cert.CRLSelector;
+import java.security.cert.CertSelector;
+import java.security.cert.CertStore;
+import java.security.cert.CertStoreException;
+import java.security.cert.CertStoreParameters;
+import java.security.cert.CertStoreSpi;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+public class MultiCertStoreSpi
+ extends CertStoreSpi
+{
+ private MultiCertStoreParameters params;
+
+ public MultiCertStoreSpi(CertStoreParameters params)
+ throws InvalidAlgorithmParameterException
+ {
+ super(params);
+
+ if (!(params instanceof MultiCertStoreParameters))
+ {
+ throw new InvalidAlgorithmParameterException("org.spongycastle.jce.provider.MultiCertStoreSpi: parameter must be a MultiCertStoreParameters object\n" + params.toString());
+ }
+
+ this.params = (MultiCertStoreParameters)params;
+ }
+
+ public Collection engineGetCertificates(CertSelector certSelector)
+ throws CertStoreException
+ {
+ boolean searchAllStores = params.getSearchAllStores();
+ Iterator iter = params.getCertStores().iterator();
+ List allCerts = searchAllStores ? new ArrayList() : Collections.EMPTY_LIST;
+
+ while (iter.hasNext())
+ {
+ CertStore store = (CertStore)iter.next();
+ Collection certs = store.getCertificates(certSelector);
+
+ if (searchAllStores)
+ {
+ allCerts.addAll(certs);
+ }
+ else if (!certs.isEmpty())
+ {
+ return certs;
+ }
+ }
+
+ return allCerts;
+ }
+
+ public Collection engineGetCRLs(CRLSelector crlSelector)
+ throws CertStoreException
+ {
+ boolean searchAllStores = params.getSearchAllStores();
+ Iterator iter = params.getCertStores().iterator();
+ List allCRLs = searchAllStores ? new ArrayList() : Collections.EMPTY_LIST;
+
+ while (iter.hasNext())
+ {
+ CertStore store = (CertStore)iter.next();
+ Collection crls = store.getCRLs(crlSelector);
+
+ if (searchAllStores)
+ {
+ allCRLs.addAll(crls);
+ }
+ else if (!crls.isEmpty())
+ {
+ return crls;
+ }
+ }
+
+ return allCRLs;
+ }
+}