⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 certificatestore.java

📁 这是linux下ssl vpn的实现程序
💻 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 + -