📄 xkmsclibasecommand.java
字号:
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 + -