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

📄 xkmsclibasecommand.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	        random.nextBytes(sernobytes);	        serno = (new java.math.BigInteger(sernobytes)).abs();	       		} catch (Exception e) {			getPrintStream().println("Error generating response ID " );		}		return "_" + serno.toString();	}		/**     * Returns a collection of resonswith tags.     *      * @param arg     * @return a collection of Strings containging respond with constatns     */    protected Collection getResponseWith(String arg) {    	ArrayList retval = new ArrayList();		    	if(arg.equalsIgnoreCase(RESPONDWITH_X509CERT)){    		retval.add(XKMSConstants.RESPONDWITH_X509CERT);    		return retval;    	}    	if(arg.equalsIgnoreCase(RESPONDWITH_X509CHAIN)){    		retval.add(XKMSConstants.RESPONDWITH_X509CHAIN);    		return retval;    	}    	    	if(arg.equalsIgnoreCase(RESPONDWITH_X509CHAINANDCRL)){    		retval.add(XKMSConstants.RESPONDWITH_X509CHAIN);    		retval.add(XKMSConstants.RESPONDWITH_X509CRL);    		return retval;    	}    			getPrintStream().println("Illegal response with " + arg);        usage();    	System.exit(-1);		return null;	}		/**     * Method that loads a certificate from file      * @param filename     * @return     */    protected byte[] loadCert(String arg) {		try {			BufferedInputStream bis = new BufferedInputStream(new FileInputStream(arg));			byte[] retval = new byte[bis.available()];			bis.read(retval);			return retval;					} catch (FileNotFoundException e) {			getPrintStream().println("Couldn't find file with name " + arg);	        usage();	    	System.exit(-1);		} catch (IOException e) {			getPrintStream().println("Couldn't read file with name " + arg);	        usage();	    	System.exit(-1);		}		return null;	}		protected String getRevokeReason(int reason) {		for(int i=0;i<REASON_VALUES.length;i++){			   if(REASON_VALUES[i]==reason){				   return REASON_TEXTS[i];			   }			}				getPrintStream().println("Error : Unsupported reason " + reason);		usage();		System.exit(-1);		return null;			}		protected void displayKeyUsage(UnverifiedKeyBindingType next) {		Iterator<String> iter = next.getKeyUsage().iterator();		getPrintStream().println("  Certificate have the following key usage:");		if(next.getKeyUsage().size() == 0){			getPrintStream().println("    " + KEYUSAGE_ALL );		}		while(iter.hasNext()){			String keyUsage = iter.next();			if(keyUsage.equals(XKMSConstants.KEYUSAGE_SIGNATURE)){				getPrintStream().println("    " + KEYUSAGE_SIGNATURE );							}			if(keyUsage.equals(XKMSConstants.KEYUSAGE_ENCRYPTION)){				getPrintStream().println("    " + KEYUSAGE_ENCRYPTION);							}			if(keyUsage.equals(XKMSConstants.KEYUSAGE_EXCHANGE)){				getPrintStream().println("    " + KEYUSAGE_EXCHANGE);							}		}							}		protected void displayUseKeyWith(UnverifiedKeyBindingType next) {		Iterator<UseKeyWithType> iter = next.getUseKeyWith().iterator();		if(next.getKeyUsage().size() != 0){			getPrintStream().println("  Certificate can be used with applications:");			while(iter.hasNext()){				UseKeyWithType useKeyWith = iter.next();				if(useKeyWith.getApplication().equals(XKMSConstants.USEKEYWITH_IPSEC)){					getPrintStream().println("    " + QUERYTYPE_IPSEC + " = " + useKeyWith.getIdentifier());								}				if(useKeyWith.getApplication().equals(XKMSConstants.USEKEYWITH_PKIX)){					getPrintStream().println("    " + QUERYTYPE_PKIX + " = " + useKeyWith.getIdentifier());								}				if(useKeyWith.getApplication().equals(XKMSConstants.USEKEYWITH_SMIME)){					getPrintStream().println("    " + QUERYTYPE_SMIME + " = " + useKeyWith.getIdentifier());								}				if(useKeyWith.getApplication().equals(XKMSConstants.USEKEYWITH_TLS)){					getPrintStream().println("    " + QUERYTYPE_TLS + " = " + useKeyWith.getIdentifier());								}				if(useKeyWith.getApplication().equals(XKMSConstants.USEKEYWITH_TLSHTTP)){					getPrintStream().println("    " + QUERYTYPE_TLSHTTP + " = " + useKeyWith.getIdentifier());								}				if(useKeyWith.getApplication().equals(XKMSConstants.USEKEYWITH_TLSSMTP)){					getPrintStream().println("    " + QUERYTYPE_TLSSMTP + " = " + useKeyWith.getIdentifier());								}			}		}	}		   /**     * 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     * @throws IOException if directory to store keystore cannot be created     */    protected void storeKeyStore(KeyStore ks, String username, String kspassword, boolean createJKS,                               boolean createPEM, String mainStoreDir)            throws IOException, KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException,            NoSuchProviderException, CertificateException {               // 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();            getPrintStream().println("Keystore written successfully to the directory " + PEMfilename);        } else {            FileOutputStream os = new FileOutputStream(keyStoreFilename);            ks.store(os, kspassword.toCharArray());            getPrintStream().println("Keystore written successfully to " + keyStoreFilename);        }                    } // storeKeyStore		protected void displayStatus(KeyBindingType type) {		StatusType status = type.getStatus();		getPrintStream().println("  The certificate had the following status");		getPrintStream().println("  Valid:");		displayStatusReasons(status.getValidReason());		getPrintStream().println("  Indeterminable:");		displayStatusReasons(status.getIndeterminateReason());		getPrintStream().println("  Invalid:");		displayStatusReasons(status.getInvalidReason());			}	private void displayStatusReasons(List<String> reasons) {		if(reasons.size() == 0){			getPrintStream().println("      NONE");		}else{			Iterator<String> iter = reasons.iterator();			while(iter.hasNext()){				String next = iter.next();				if(next.equals(XKMSConstants.STATUSREASON_ISSUERTRUST)){					getPrintStream().println("      ISSUERTRUST");				}				if(next.equals(XKMSConstants.STATUSREASON_REVOCATIONSTATUS)){					getPrintStream().println("      REVOCATIONSTATUS");				}				if(next.equals(XKMSConstants.STATUSREASON_SIGNATURE)){					getPrintStream().println("      SIGNATURE");				}				if(next.equals(XKMSConstants.STATUSREASON_VALIDITYINTERVAL)){					getPrintStream().println("      VALIDITYINTERVAL");				}			}		}	}		protected abstract void usage();}

⌨️ 快捷键说明

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