📄 certificatestore.java
字号:
package com.maverick.ssl;
import com.maverick.crypto.asn1.DERInputStream;
import java.io.InputStream;
import com.maverick.crypto.asn1.ASN1Sequence;
import com.maverick.crypto.asn1.x509.X509CertificateStructure;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.File;
import java.util.Hashtable;
import com.maverick.crypto.asn1.x509.X509Certificate;
/* DEBUG */import org.apache.commons.logging.*;
import com.maverick.crypto.asn1.x509.CertificateException;
public class CertificateStore {
/* DEBUG */Log log = LogFactory.getLog(CertificateStore.class);
Hashtable certificates = new Hashtable();
static CertificateStore instance;
public CertificateStore() throws IOException {
addTrustedCACertificate("/gtecybertrustca.cert");
addTrustedCACertificate("/baltimorecodesigningca.cert");
addTrustedCACertificate("/baltimorecybertrustca.cert");
addTrustedCACertificate("/entrust2048ca.cert");
addTrustedCACertificate("/entrustclientca.cert");
addTrustedCACertificate("/entrustglobalclientca.cert");
addTrustedCACertificate("/entrustserverca.cert");
addTrustedCACertificate("/entrustgsslca.cert");
addTrustedCACertificate("/equifaxsecureca.cert");
addTrustedCACertificate("/equifaxsecureebusinessca1.cert");
addTrustedCACertificate("/equifaxsecureebusinessca2.cert");
addTrustedCACertificate("/equifaxsecureglobalebusinessca1.cert");
addTrustedCACertificate("/geotrustglobalca.cert");
addTrustedCACertificate("/gtecybertrustglobalca.cert");
addTrustedCACertificate("/gtecybertrust5ca.cert");
addTrustedCACertificate("/thawtepersonalbasicca.cert");
addTrustedCACertificate("/thawtepersonalfreemailca.cert");
addTrustedCACertificate("/thawtepersonalpremiumca.cert");
addTrustedCACertificate("/thawtepremiumserverca.cert");
addTrustedCACertificate("/thawteserverca.cert");
addTrustedCACertificate("/verisignclass1ca.cert");
addTrustedCACertificate("/verisignclass2ca.cert");
addTrustedCACertificate("/verisignclass3ca.cert");
addTrustedCACertificate("/verisignclass4ca.cert");
addTrustedCACertificate("/verisignserverca.cert");
//addTrustedCACertificate("/UTN-USERFirst-Hardware.cert");
addTrustedCACertificate("/AddTrustUTNServerCA.cert");
}
public static CertificateStore getInstance() throws IOException {
return instance==null ? instance = new CertificateStore() : instance;
}
public boolean contains(String dn) throws CertificateException {
return certificates.containsKey(dn);
}
public X509Certificate get(String sig) {
return (X509Certificate) certificates.get(sig);
}
public void addTrustedCACertificate(InputStream in) {
DERInputStream der = null;
try {
der = new
DERInputStream(in);
ASN1Sequence certificate =
(ASN1Sequence) der.readObject();
X509Certificate x509 = new X509Certificate(
X509CertificateStructure.getInstance(certificate));
if(certificates.containsKey(x509.getSubjectDN().toString())) {
/* DEBUG */if(log.isDebugEnabled())
/* DEBUG */ log.debug("Certificatev already exists in trust store! " + x509.getSubjectDN().toString());
}
else {
/* DEBUG */if(log.isDebugEnabled())
/* DEBUG */log.debug("Adding trusted CA cert " + x509.getSubjectDN().toString());
certificates.put(x509.getSubjectDN().toString(), x509);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
try {
if (in != null) {
in.close();
}
}
catch (IOException ex) {}
try {
if (der != null) {
der.close();
}
}
catch (IOException ex) {}
}
}
public void addTrustedCACertificate(File certificateFile) throws IOException {
InputStream in = new FileInputStream(certificateFile);
addTrustedCACertificate(in);
}
public void addTrustedCACertificate(String resource) throws IOException {
InputStream in = TrustedCACertStore.class.getResourceAsStream(resource);
if(in == null) {
throw new IOException("Could not locate trusted CA resource " + resource + " andwhere in the CLASSPATH.");
}
addTrustedCACertificate(in);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -