import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.ArrayDeque;
+import java.util.Arrays;
import java.util.Deque;
import java.util.HashMap;
private final String link;
+ private static final CACertificate[] instances;
+
+ private static ObjectCache<CACertificate> myCache = new ObjectCache<>();
+
private CACertificate(int id) {
this.id = id;
int parentRoot;
static {
try {
update();
+ try (GigiPreparedStatement q = new GigiPreparedStatement("SELECT `id` FROM `cacerts`", true)) {
+ GigiResultSet res = q.executeQuery();
+ res.last();
+ CACertificate[] certs = new CACertificate[res.getRow()];
+ res.beforeFirst();
+ int i = 0;
+ while (res.next()) {
+ certs[i++] = getById(res.getInt(1));
+ }
+ instances = certs;
+ }
} catch (CertificateException e) {
throw new Error(e);
} catch (FileNotFoundException e) {
return id;
}
- private static ObjectCache<CACertificate> myCache = new ObjectCache<>();
-
public String getKeyname() {
return keyname;
}
return this == getParent();
}
+ public static synchronized CACertificate[] getAll() {
+ return Arrays.copyOf(instances, instances.length);
+ }
+
}