亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? batchmakep12.java

?? 一套JAVA的CA證書簽發系統.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************* *                                                                       * *  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 se.anatom.ejbca.batch;import java.io.*;import java.security.GeneralSecurityException;import java.security.KeyPair;import java.security.KeyStore;import java.security.KeyStoreException;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.UnrecoverableKeyException;import java.security.cert.*;import java.util.Collection;import java.util.Iterator;import javax.naming.Context;import javax.naming.NamingException;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;import se.anatom.ejbca.ra.raadmin.IRaAdminSessionHome;import se.anatom.ejbca.ra.raadmin.IRaAdminSessionRemote;import se.anatom.ejbca.SecConst;import se.anatom.ejbca.ca.sign.ISignSessionHome;import se.anatom.ejbca.ca.sign.ISignSessionRemote;import se.anatom.ejbca.keyrecovery.IKeyRecoverySessionHome;import se.anatom.ejbca.keyrecovery.IKeyRecoverySessionRemote;import se.anatom.ejbca.keyrecovery.KeyRecoveryData;import se.anatom.ejbca.log.Admin;import se.anatom.ejbca.ra.IUserAdminSessionHome;import se.anatom.ejbca.ra.IUserAdminSessionRemote;import se.anatom.ejbca.ra.UserAdminData;import se.anatom.ejbca.ra.UserDataLocal;import se.anatom.ejbca.util.CertTools;import se.anatom.ejbca.util.KeyTools;import se.anatom.ejbca.util.P12toPEM;/** * This class generates keys and request certificates for all users with status NEW. The result is * generated PKCS12-files. * * @version $Id: BatchMakeP12.java,v 1.48 2004/04/16 07:38:56 anatom Exp $ */public class BatchMakeP12 {    /** For logging */    private static Logger log = Logger.getLogger(BatchMakeP12.class);    /** Where created P12-files are stored, default username.p12 */    private String mainStoreDir = "";    private IUserAdminSessionHome adminhome;    private IRaAdminSessionHome raadminhome;        private ISignSessionHome signhome;    private IKeyRecoverySessionHome keyrecoveryhome;    private Admin administrator;    private boolean usekeyrecovery = false;    /**     * Gets an initial context     *     * @return new initial context     *     * @throws NamingException if we can't find jndi name     */    public static Context getInitialContext() throws NamingException {        log.debug(">GetInitialContext");        // jndi.properties must exist in classpath        Context ctx = new javax.naming.InitialContext();        log.debug("<GetInitialContext");        return ctx;    }    /**     * Creates new BatchMakeP12 object.     *     * @exception javax.naming.NamingException     * @exception CreateException     * @exception RemoteException     */    public BatchMakeP12()        throws javax.naming.NamingException, javax.ejb.CreateException, java.rmi.RemoteException,             java.io.IOException {        log.debug(">BatchMakeP12:");        administrator = new Admin(Admin.TYPE_BATCHCOMMANDLINE_USER);        // Bouncy Castle security provider        CertTools.installBCProvider();        Context jndiContext = getInitialContext();        Object obj = jndiContext.lookup("UserAdminSession");        adminhome = (IUserAdminSessionHome) javax.rmi.PortableRemoteObject.narrow(obj, IUserAdminSessionHome.class);        obj = jndiContext.lookup("RaAdminSession");        raadminhome = (IRaAdminSessionHome) javax.rmi.PortableRemoteObject.narrow(obj, IRaAdminSessionHome.class);                obj = jndiContext.lookup("RSASignSession");        signhome = (ISignSessionHome) javax.rmi.PortableRemoteObject.narrow(obj, ISignSessionHome.class);        IRaAdminSessionRemote raadmin = raadminhome.create();                usekeyrecovery = (raadmin.loadGlobalConfiguration(administrator)).getEnableKeyRecovery();        if(usekeyrecovery){          obj = jndiContext.lookup("KeyRecoverySession");          keyrecoveryhome = (IKeyRecoverySessionHome) javax.rmi.PortableRemoteObject.narrow(obj, IKeyRecoverySessionHome.class);        }                 log.debug("<BatchMakeP12:");    } // BatchMakeP12    /**     * Gets CA-certificate(s).     *     * @return X509Certificate     */    private X509Certificate getCACertificate(int caid)      throws Exception {        log.debug(">getCACertificate()");        ISignSessionRemote ss = signhome.create();        Certificate[] chain = (Certificate[]) ss.getCertificateChain(administrator, caid).toArray(new Certificate[0]);        X509Certificate rootcert = (X509Certificate)chain[chain.length-1];        log.debug("<getCACertificate()");        return rootcert;    } // getCACertificate    /**     * Gets full CA-certificate chain.     *     * @return Certificate[]     */    private Certificate[] getCACertChain(int caid)      throws Exception {        log.debug(">getCACertChain()");        ISignSessionRemote ss = signhome.create();        Certificate[] chain = (Certificate[]) ss.getCertificateChain(administrator, caid).toArray(new Certificate[0]);        log.debug("<getCACertChain()");        return chain;    } // getCACertificate    /**     * Sets the location where generated P12-files will be stored, full name will be:     * mainStoreDir/username.p12.     *     * @param dir existing directory     */    public void setMainStoreDir(String dir) {        mainStoreDir = dir;    }    /**     * Stores keystore.     *     * @param ks KeyStore     * @param username username, the owner of the keystore     * @param kspassword the password used to protect the peystore     * @param createJKS if a jks should be created     * @param createPEM if pem files should be created     *     * @exception IOException if directory to store keystore cannot be created     */    private void storeKeyStore(KeyStore ks, String username, String kspassword, boolean createJKS,        boolean createPEM)        throws IOException, KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException,             NoSuchProviderException, CertificateException {        log.debug(">storeKeyStore: ks=" + ks.toString() + ", username=" + username);        // Where to store it?        if (mainStoreDir == null) {            throw new IOException("Can't find directory to store keystore in.");        }        String keyStoreFilename = mainStoreDir + "/" + username;        if (createJKS) {            keyStoreFilename += ".jks";        } else {            keyStoreFilename += ".p12";        }        // If we should also create PEM-files, do that        if (createPEM) {            String PEMfilename = mainStoreDir + "/pem";            P12toPEM p12topem = new P12toPEM(ks, kspassword, true);            p12topem.setExportPath(PEMfilename);            p12topem.createPEM();        }else{			FileOutputStream os = new FileOutputStream(keyStoreFilename);			ks.store(os, kspassword.toCharArray());        	        }        log.debug("Keystore stored in " + keyStoreFilename);        log.debug("<storeKeyStore: ks=" + ks.toString() + ", username=" + username);    } // storeKeyStore    /**     * Creates files for a user, sends request to CA, receives reploy and creates P12.     *     * @param username username     * @param password user's password     * @param id of CA used to issue the keystore certificates     * @param rsaKeys a previously generated RSA keypair     * @param createJKS if a jks should be created     * @param createPEM if pem files should be created     * @param savekeys if generated keys should be saved in db (key recovery)     *     * @exception Exception if the certificate is not an X509 certificate     * @exception Exception if the CA-certificate is corrupt     * @exception Exception if verification of certificate or CA-cert fails     * @exception Exception if keyfile (generated by ourselves) is corrupt     */    private void createUser(String username, String password, int caid, KeyPair rsaKeys, boolean createJKS, boolean createPEM, boolean savekeys)      throws Exception {        log.debug(">createUser: username=" + username);        // Send the certificate request to the CA        ISignSessionRemote ss = signhome.create();        X509Certificate cert = (X509Certificate) ss.createCertificate(administrator, username,                password, rsaKeys.getPublic());        //System.out.println("issuer " + CertTools.getIssuerDN(cert) + ", " + cert.getClass().getName());        // Make a certificate chain from the certificate and the CA-certificate        Certificate[] cachain = getCACertChain(caid);        // Verify CA-certificate        if (CertTools.isSelfSigned((X509Certificate) cachain[cachain.length - 1])) {            try {                cachain[cachain.length - 1].verify(cachain[cachain.length - 1].getPublicKey());            } catch (GeneralSecurityException se) {                throw new Exception("RootCA certificate does not verify");            }        } else {            throw new Exception("RootCA certificate not self-signed");        }        // Verify that the user-certificate is signed by our CA        try {            cert.verify(cachain[0].getPublicKey());        } catch (GeneralSecurityException se) {            throw new Exception("Generated certificate does not verify using CA-certificate.");        }        if (usekeyrecovery && savekeys) {            // Save generated keys to database.            IKeyRecoverySessionRemote keyrecoverysession = keyrecoveryhome.create();            keyrecoverysession.addKeyRecoveryData(administrator, cert, username, rsaKeys);        }        // Use CN if as alias in the keystore, if CN is not present use username        String alias = CertTools.getPartFromDN(CertTools.getSubjectDN(cert), "CN");        if (alias == null) alias = username;        // Store keys and certificates in keystore.        KeyStore ks = null;        if (createJKS) {            ks = KeyTools.createJKS(alias, rsaKeys.getPrivate(), password, cert, cachain);        } else {            ks = KeyTools.createP12(alias, rsaKeys.getPrivate(), cert, cachain);        }        storeKeyStore(ks, username, password, createJKS, createPEM);        log.info("Created Keystore for " + username + ".");        log.debug("<createUser: username=" + username);    } // createUser    /**     * Does the deed with one user...     *     * @param data user data for user     * @param createJKS if a jks should be created     * @param createPEM if pem files should be created

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合精品久久久| 日韩一级二级三级精品视频| www一区二区| 精品在线观看视频| 精品国产乱码久久久久久图片| 免费美女久久99| 亚洲精品在线免费播放| 国产成人在线观看| 亚洲少妇最新在线视频| 欧洲视频一区二区| 亚洲永久免费av| 7777精品久久久大香线蕉| 美女精品自拍一二三四| 国产校园另类小说区| 成人免费视频播放| 亚洲日本韩国一区| 91精品国产免费| 国产成人精品一区二| 亚洲九九爱视频| 精品国产乱码久久久久久1区2区 | 亚洲欧美中日韩| 日本久久精品电影| 狠狠狠色丁香婷婷综合激情| 国产精品久久国产精麻豆99网站 | 日韩中文字幕亚洲一区二区va在线| 成人黄色国产精品网站大全在线免费观看| 日本一区二区三区电影| 欧美午夜精品一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 日韩精品一二三四| 日本一区二区三区国色天香| 在线免费视频一区二区| 国产美女精品人人做人人爽| 成人免费看视频| 激情综合网激情| 免费观看日韩电影| 麻豆精品精品国产自在97香蕉| 17c精品麻豆一区二区免费| 精品三级av在线| 欧美变态口味重另类| 欧美一级xxx| 欧美性极品少妇| 日本韩国精品在线| 成人av手机在线观看| 成人涩涩免费视频| 成人性色生活片| 一本大道av伊人久久综合| 中文字幕欧美日韩一区| 中文av一区特黄| 亚洲精品国产第一综合99久久| 亚洲丝袜精品丝袜在线| 亚洲制服丝袜av| 日韩精品电影在线| 午夜精品久久久久久| 免费在线观看视频一区| 91毛片在线观看| 自拍视频在线观看一区二区| 久久综合久色欧美综合狠狠| 久久久国产精品麻豆| 亚洲精品视频在线观看网站| 亚洲国产精品麻豆| 免费成人性网站| 99久久综合色| 丝袜美腿成人在线| 韩国v欧美v亚洲v日本v| 色999日韩国产欧美一区二区| 波多野结衣中文字幕一区| 欧美剧情片在线观看| 久久久久久免费网| 亚洲mv在线观看| 国产精品66部| 精彩视频一区二区三区| 精品视频一区二区不卡| 2020国产成人综合网| 日精品一区二区三区| 天天综合天天做天天综合| 成人性生交大片| 久久综合久久综合久久| 免费在线一区观看| 在线观看免费成人| 丁香婷婷综合激情五月色| 欧美一区二区不卡视频| 亚洲一级二级在线| 91免费版pro下载短视频| 国产精品你懂的在线欣赏| 麻豆91在线播放| 久久在线免费观看| 久久se这里有精品| 久久精品在线观看| 欧美精品一区二区在线播放| 日韩黄色免费电影| 欧美精品一区二区三区四区| 精品在线免费观看| 国产日韩欧美一区二区三区乱码| 国产v综合v亚洲欧| 国产精品国产自产拍高清av王其 | 国产精品欧美一区喷水| 成人免费视频免费观看| 91香蕉视频在线| 亚洲国产精品嫩草影院| 日韩精品影音先锋| 91成人网在线| 九九在线精品视频| 一区二区三区加勒比av| 欧美成人福利视频| 日本韩国一区二区三区| 狂野欧美性猛交blacked| 国产精品二三区| 精品日韩在线一区| 欧美在线播放高清精品| 国产高清视频一区| 国产尤物一区二区| 亚洲一区中文日韩| 亚洲欧美成人一区二区三区| 欧美一区在线视频| 欧美在线一二三| hitomi一区二区三区精品| 国产一区欧美一区| 麻豆精品国产91久久久久久| 一区二区三区欧美在线观看| 国产精品理论在线观看| 国产亚洲1区2区3区| 日韩欧美不卡一区| 日韩欧美一级片| 欧美一区二区大片| 日韩三级高清在线| 日韩欧美一二三区| 欧美一级欧美一级在线播放| 国产一区二区剧情av在线| 日本麻豆一区二区三区视频| 久久www免费人成看片高清| 国内成+人亚洲+欧美+综合在线| 波多野结衣亚洲| 亚洲同性gay激情无套| 94-欧美-setu| 日韩欧美一级二级| 欧美亚洲另类激情小说| 色综合天天性综合| 在线免费观看不卡av| 亚洲影院久久精品| 国产乱一区二区| 国产a久久麻豆| 午夜免费欧美电影| 日本韩国一区二区三区视频| 欧美高清在线一区二区| 欧美一区二区三区在线看| 五月天网站亚洲| 欧美一区二区三区免费| 亚洲一区二区三区四区在线观看| av福利精品导航| 亚洲在线成人精品| 不卡av在线免费观看| 亚洲天天做日日做天天谢日日欢| 91免费视频观看| 日日夜夜一区二区| 精品精品欲导航| 精品国产精品网麻豆系列| 国产成人精品一区二区三区网站观看| 国产日韩精品一区二区浪潮av | 精品欧美黑人一区二区三区| 国产精品资源在线看| 樱花影视一区二区| 国产偷v国产偷v亚洲高清| 精品美女在线观看| 91色porny在线视频| 精品一区二区三区香蕉蜜桃| 日韩精品中文字幕一区| 欧美久久久久免费| av亚洲精华国产精华| 美女一区二区久久| 夜夜嗨av一区二区三区中文字幕| 精品视频在线免费看| 色av成人天堂桃色av| 国产精品一区二区三区99| 亚洲第一成年网| 一区二区激情小说| 亚洲天堂2016| 中文字幕中文乱码欧美一区二区| 日韩三级精品电影久久久| 日韩一区二区三区三四区视频在线观看| www.亚洲在线| 成人一级视频在线观看| 国产精品123| 成人涩涩免费视频| 99免费精品视频| 91热门视频在线观看| 色久综合一二码| 色综合视频在线观看| 国产a久久麻豆| 97se亚洲国产综合自在线观| 色老头久久综合| 日韩一区二区三区视频在线观看| 日韩视频免费观看高清在线视频| 91美女片黄在线| 精品粉嫩超白一线天av| 国产午夜亚洲精品不卡| 国产精品久久777777| 亚洲综合另类小说| 国产成人超碰人人澡人人澡| 欧美一区二区在线视频|