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

📄 keystorehandler.java

📁 wendang for java. 124342423 432
💻 JAVA
字号:
package javasec.samples.ch10;import java.io.*;import java.security.*;import java.security.cert.*;public class KeyStoreHandler {    KeyStore ks;    private char[] pw;    // We'll use this to lookup the keystore in the default location.    // You can specify a password if you like, but this will also    // work if you pass null (in which case the keystore isn't    // verified).    public KeyStoreHandler(char[] pw) {        // Make a private copy so the original can be collected so        // that other objects can't locate it.        if (pw != null) {            this.pw = new char[pw.length];            System.arraycopy(pw, 0, this.pw, 0, pw.length);        }        else this.pw = null;        // Load from the default location        try {            ks = KeyStore.getInstance(KeyStore.getDefaultType());            String fname = System.getProperty("user.home") +                                File.separator + ".keystore";            FileInputStream fis = new FileInputStream(fname);            ks.load(fis, pw);        } catch (Exception e) {            throw new IllegalArgumentException(e.toString());        }    }    public KeyStore getKeyStore() {        return ks;    }    // Store to the default location    public void store() throws FileNotFoundException,                               KeyStoreException, IOException,                               NoSuchAlgorithmException,                               CertificateException {        // If we didn't read with a password, we can't store        if (pw == null) {            throw new IllegalArgumentException("Can't store without pw");        }        FileOutputStream fos = new FileOutputStream(        			    System.getProperty("user.home") +      				    File.separator + ".keystore");        ks.store(fos, pw);        fos.close();    }    public static void main(String args[]) {        try {            KeyStore ks = new KeyStoreHandler(null).getKeyStore();            if (ks.isKeyEntry(args[0])) {                System.out.println(args[0] +                                " is a key entry in the keystore");                char c[] = new char[args[1].length()];                args[1].getChars(0, c.length, c, 0);                System.out.println("The private key for " + args[0] +                             " is " + ks.getKey(args[0], c));                java.security.cert.Certificate certs[] = ks.getCertificateChain(args[0]);                if (certs[0] instanceof X509Certificate) {                    X509Certificate x509 = (X509Certificate) certs[0];                    System.out.println(args[0] + " is really " +                        x509.getSubjectDN());                }                if (certs[certs.length - 1] instanceof                                     X509Certificate) {                    X509Certificate x509 = (X509Certificate)                                         certs[certs.length - 1];                    System.out.println(args[0] + " was verified by " +                        x509.getIssuerDN());                }            }            else if (ks.isCertificateEntry(args[0])) {                System.out.println(args[0] +                            " is a certificate entry in the keystore");                java.security.cert.Certificate c = ks.getCertificate(args[0]);                if (c instanceof X509Certificate) {                    X509Certificate x509 = (X509Certificate) c;                    System.out.println(args[0] + " is really " +                        x509.getSubjectDN());                    System.out.println(args[0] + " was verified by " +                        x509.getIssuerDN());                }            }            else {                System.out.println(args[0] +                        " is unknown to this keystore");            }        } catch (Exception e) {            e.printStackTrace();        }    }}

⌨️ 快捷键说明

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