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

📄 x509ca.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/************************************************************************* *                                                                       * *  EJBCA: The OpenSource Certificate Authority                          * *                                                                       * *  This software is free software; you can redistribute it and/or       * *  modify it under the terms of the GNU Lesser General Public           * *  License as published by the Free Software Foundation; either         * *  version 2.1 of the License, or any later version.                    * *                                                                       * *  See terms of license at gnu.org.                                     * *                                                                       * *************************************************************************/ package org.ejbca.core.model.ca.caadmin;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.math.BigInteger;import java.security.InvalidKeyException;import java.security.KeyPair;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.PublicKey;import java.security.SignatureException;import java.security.cert.CRL;import java.security.cert.CRLException;import java.security.cert.CertStore;import java.security.cert.Certificate;import java.security.cert.CollectionCertStoreParameters;import java.security.cert.X509CRL;import java.security.cert.X509Certificate;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.StringTokenizer;import java.util.Vector;import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1InputStream;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.DERIA5String;import org.bouncycastle.asn1.DERObjectIdentifier;import org.bouncycastle.asn1.DERSequence;import org.bouncycastle.asn1.DERUTF8String;import org.bouncycastle.asn1.x509.Attribute;import org.bouncycastle.asn1.x509.AuthorityInformationAccess;import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier;import org.bouncycastle.asn1.x509.BasicConstraints;import org.bouncycastle.asn1.x509.CRLDistPoint;import org.bouncycastle.asn1.x509.CRLNumber;import org.bouncycastle.asn1.x509.DisplayText;import org.bouncycastle.asn1.x509.DistributionPoint;import org.bouncycastle.asn1.x509.DistributionPointName;import org.bouncycastle.asn1.x509.ExtendedKeyUsage;import org.bouncycastle.asn1.x509.GeneralName;import org.bouncycastle.asn1.x509.GeneralNames;import org.bouncycastle.asn1.x509.PolicyInformation;import org.bouncycastle.asn1.x509.PolicyQualifierId;import org.bouncycastle.asn1.x509.PolicyQualifierInfo;import org.bouncycastle.asn1.x509.SubjectKeyIdentifier;import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;import org.bouncycastle.asn1.x509.UserNotice;import org.bouncycastle.asn1.x509.X509DefaultEntryConverter;import org.bouncycastle.asn1.x509.X509Extensions;import org.bouncycastle.asn1.x509.X509Name;import org.bouncycastle.asn1.x509.X509NameEntryConverter;import org.bouncycastle.asn1.x509.X509ObjectIdentifiers;import org.bouncycastle.asn1.x509.qualified.ETSIQCObjectIdentifiers;import org.bouncycastle.asn1.x509.qualified.Iso4217CurrencyCode;import org.bouncycastle.asn1.x509.qualified.MonetaryValue;import org.bouncycastle.asn1.x509.qualified.QCStatement;import org.bouncycastle.asn1.x509.qualified.RFC3739QCObjectIdentifiers;import org.bouncycastle.asn1.x509.qualified.SemanticsInformation;import org.bouncycastle.cms.CMSEnvelopedData;import org.bouncycastle.cms.CMSEnvelopedDataGenerator;import org.bouncycastle.cms.CMSProcessable;import org.bouncycastle.cms.CMSProcessableByteArray;import org.bouncycastle.cms.CMSSignedData;import org.bouncycastle.cms.CMSSignedDataGenerator;import org.bouncycastle.cms.CMSSignedGenerator;import org.bouncycastle.cms.RecipientInformation;import org.bouncycastle.cms.RecipientInformationStore;import org.bouncycastle.jce.X509KeyUsage;import org.bouncycastle.x509.X509V2CRLGenerator;import org.bouncycastle.x509.X509V3CertificateGenerator;import org.ejbca.core.ejb.ca.sign.SernoGenerator;import org.ejbca.core.model.InternalResources;import org.ejbca.core.model.SecConst;import org.ejbca.core.model.ca.SignRequestSignatureException;import org.ejbca.core.model.ca.caadmin.extendedcaservices.CmsCAService;import org.ejbca.core.model.ca.caadmin.extendedcaservices.CmsCAServiceInfo;import org.ejbca.core.model.ca.caadmin.extendedcaservices.ExtendedCAServiceInfo;import org.ejbca.core.model.ca.caadmin.extendedcaservices.ExtendedCAServiceNotActiveException;import org.ejbca.core.model.ca.caadmin.extendedcaservices.ExtendedCAServiceRequest;import org.ejbca.core.model.ca.caadmin.extendedcaservices.ExtendedCAServiceRequestException;import org.ejbca.core.model.ca.caadmin.extendedcaservices.ExtendedCAServiceResponse;import org.ejbca.core.model.ca.caadmin.extendedcaservices.IllegalExtendedCAServiceRequestException;import org.ejbca.core.model.ca.caadmin.extendedcaservices.OCSPCAServiceRequest;import org.ejbca.core.model.ca.caadmin.extendedcaservices.XKMSCAService;import org.ejbca.core.model.ca.caadmin.extendedcaservices.XKMSCAServiceInfo;import org.ejbca.core.model.ca.catoken.CAToken;import org.ejbca.core.model.ca.catoken.CATokenConstants;import org.ejbca.core.model.ca.catoken.CATokenOfflineException;import org.ejbca.core.model.ca.catoken.NullCAToken;import org.ejbca.core.model.ca.certextensions.CertificateExtension;import org.ejbca.core.model.ca.certextensions.CertificateExtensionFactory;import org.ejbca.core.model.ca.certificateprofiles.CertificateProfile;import org.ejbca.core.model.ca.crl.RevokedCertInfo;import org.ejbca.core.model.ra.UserDataVO;import org.ejbca.util.CertTools;import org.ejbca.util.cert.PrintableStringEntryConverter;import org.ejbca.util.cert.SubjectDirAttrExtension;/** * X509CA is a implementation of a CA and holds data specific for Certificate and CRL generation  * according to the X509 standard.  * * @version $Id: X509CA.java,v 1.50.2.6 2007/04/02 08:22:53 jeklund Exp $ */public class X509CA extends CA implements Serializable {    private static final Logger log = Logger.getLogger(X509CA.class);    /** Internal localization of logs and errors */    private static final InternalResources intres = InternalResources.getInstance();    // Default Values    public static final float LATEST_VERSION = 11;    private byte[]  keyId = new byte[] { 1, 2, 3, 4, 5 };            // protected fields.    protected static final String POLICYID                       = "policyid";    protected static final String SUBJECTALTNAME                 = "subjectaltname";    protected static final String USEAUTHORITYKEYIDENTIFIER      = "useauthoritykeyidentifier";    protected static final String AUTHORITYKEYIDENTIFIERCRITICAL = "authoritykeyidentifiercritical";    protected static final String USECRLNUMBER                   = "usecrlnumber";    protected static final String CRLNUMBERCRITICAL              = "crlnumbercritical";    protected static final String DEFAULTCRLDISTPOINT            = "defaultcrldistpoint";    protected static final String DEFAULTCRLISSUER               = "defaultcrlissuer";    protected static final String DEFAULTOCSPSERVICELOCATOR      = "defaultocspservicelocator";    protected static final String USEUTF8POLICYTEXT              = "useutf8policytext";    protected static final String USEPRINTABLESTRINGSUBJECTDN    = "useprintablestringsubjectdn";    // Public Methods    /** Creates a new instance of CA, this constuctor should be used when a new CA is created */    public X509CA(X509CAInfo cainfo) {      super(cainfo);              data.put(POLICYID, cainfo.getPolicyId());      data.put(SUBJECTALTNAME,  cainfo.getSubjectAltName());                  setUseAuthorityKeyIdentifier(cainfo.getUseAuthorityKeyIdentifier());      setAuthorityKeyIdentifierCritical(cainfo.getAuthorityKeyIdentifierCritical());       setUseCRLNumber(cainfo.getUseCRLNumber());      setCRLNumberCritical(cainfo.getCRLNumberCritical());      setDefaultCRLDistPoint(cainfo.getDefaultCRLDistPoint());      setDefaultCRLIssuer(cainfo.getDefaultCRLIssuer());      setDefaultOCSPServiceLocator(cainfo.getDefaultOCSPServiceLocator());      setFinishUser(cainfo.getFinishUser());      setUseUTF8PolicyText(cainfo.getUseUTF8PolicyText());      setUsePrintableStringSubjectDN(cainfo.getUsePrintableStringSubjectDN());            data.put(CA.CATYPE, new Integer(CAInfo.CATYPE_X509));      data.put(VERSION, new Float(LATEST_VERSION));       }       /** Constructor used when retrieving existing X509CA from database.  * @throws IllegalKeyStoreException */    public X509CA(HashMap data, int caId, String subjectDN, String name, int status, Date updateTime) throws IllegalKeyStoreException{    	super(data);    	ArrayList externalcaserviceinfos = new ArrayList();    	Iterator iter = getExternalCAServiceTypes().iterator(); 	    	while(iter.hasNext()){    		ExtendedCAServiceInfo info = this.getExtendedCAServiceInfo(((Integer) iter.next()).intValue());    		if (info != null) {        		externalcaserviceinfos.add(info);  	    			    		}    	}        CAInfo info = new X509CAInfo(subjectDN, name, status, updateTime, getSubjectAltName() ,getCertificateProfileId(),          		  getValidity(), getExpireTime(), getCAType(), getSignedBy(), getCertificateChain(),        		  getCAToken(caId).getCATokenInfo(), getDescription(), getRevokationReason(), getRevokationDate(), getPolicyId(), getCRLPeriod(), getCRLIssueInterval(), getCRLOverlapTime(), getCRLPublishers(),        		  getUseAuthorityKeyIdentifier(), getAuthorityKeyIdentifierCritical(),        		  getUseCRLNumber(), getCRLNumberCritical(), getDefaultCRLDistPoint(), getDefaultCRLIssuer(), getDefaultOCSPServiceLocator(), getFinishUser(), externalcaserviceinfos,         		  getUseUTF8PolicyText(), getApprovalSettings(), getNumOfRequiredApprovals(), getUsePrintableStringSubjectDN());        super.setCAInfo(info);    }    // Public Methods.    public String getPolicyId(){ return (String) data.get(POLICYID);}    public void setPolicyId(String policyid){ data.put(POLICYID, policyid);}        public String getSubjectAltName() { return (String) data.get(SUBJECTALTNAME);}        public boolean  getUseAuthorityKeyIdentifier(){      return ((Boolean)data.get(USEAUTHORITYKEYIDENTIFIER)).booleanValue();    }    public void setUseAuthorityKeyIdentifier(boolean useauthoritykeyidentifier) {      data.put(USEAUTHORITYKEYIDENTIFIER, Boolean.valueOf(useauthoritykeyidentifier));    }        public boolean  getAuthorityKeyIdentifierCritical(){      return ((Boolean)data.get(AUTHORITYKEYIDENTIFIERCRITICAL)).booleanValue();    }    public void setAuthorityKeyIdentifierCritical(boolean authoritykeyidentifiercritical) {      data.put(AUTHORITYKEYIDENTIFIERCRITICAL, Boolean.valueOf(authoritykeyidentifiercritical));    }    public boolean  getUseCRLNumber(){return ((Boolean)data.get(USECRLNUMBER)).booleanValue();}    public void setUseCRLNumber(boolean usecrlnumber) {data.put(USECRLNUMBER, Boolean.valueOf(usecrlnumber));}        public boolean  getCRLNumberCritical(){return ((Boolean)data.get(CRLNUMBERCRITICAL)).booleanValue();}    public void setCRLNumberCritical(boolean crlnumbercritical) {data.put(CRLNUMBERCRITICAL, Boolean.valueOf(crlnumbercritical));}        public String  getDefaultCRLDistPoint(){return (String) data.get(DEFAULTCRLDISTPOINT);}    public void setDefaultCRLDistPoint(String defailtcrldistpoint) {    	if(defailtcrldistpoint == null){    		data.put(DEFAULTCRLDISTPOINT, "");    	}else{    		data.put(DEFAULTCRLDISTPOINT, defailtcrldistpoint);    	}         }    public String  getDefaultCRLIssuer(){return (String) data.get(DEFAULTCRLISSUER);}    public void setDefaultCRLIssuer(String defailtcrlissuer) {    	if(defailtcrlissuer == null){    		data.put(DEFAULTCRLISSUER, "");    	}else{    		data.put(DEFAULTCRLISSUER, defailtcrlissuer);    	}         }        public String  getDefaultOCSPServiceLocator(){return (String) data.get(DEFAULTOCSPSERVICELOCATOR);}    public void setDefaultOCSPServiceLocator(String defaultocsplocator) {    	if(defaultocsplocator == null){    		data.put(DEFAULTOCSPSERVICELOCATOR, "");    	}else{    		data.put(DEFAULTOCSPSERVICELOCATOR, defaultocsplocator);    	}         }    public boolean  getUseUTF8PolicyText(){        return ((Boolean)data.get(USEUTF8POLICYTEXT)).booleanValue();      }      public void setUseUTF8PolicyText(boolean useutf8) {        data.put(USEUTF8POLICYTEXT, Boolean.valueOf(useutf8));      }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -