📄 sslkeymanager.java
字号:
package javasec.samples.ch14;import java.net.*;import java.security.cert.X509Certificate;import java.security.interfaces.*;import java.security.*;import java.util.*;import javax.net.ssl.*;import com.sun.net.ssl.*;public class SSLKeyManager implements X509KeyManager { protected String alias; protected KeyStore ks; protected char[] pw; private String type; private String issuer; SSLKeyManager(KeyStore ks, String s, char[] pw) { this.ks = ks; alias = s; this.pw = pw; try { java.security.cert.Certificate c = ks.getCertificate(s); type = c.getPublicKey().getAlgorithm(); issuer = ((X509Certificate) c).getIssuerDN().getName(); } catch (Exception e) { throw new IllegalArgumentException(s + " has a bad key"); } } public String chooseClientAlias(String type, Principal[] issuers) { if (!type.equals(this.type)) return null; if (issuers == null) return alias; for (int i = 0; i < issuers.length; i++) { if (issuer.equals(issuers[i].getName())) return alias; } return null; } public String chooseServerAlias(String type, Principal[] issuers) { return chooseClientAlias(type, issuers); } // Get the certificates -- make sure they are an X509Certificate // before copying them into the array. public X509Certificate[] getCertificateChain(String s) { try { java.security.cert.Certificate[] c = ks.getCertificateChain(s); Vector c2 = new Vector(c.length); for (int i = 0; i < c.length; i++) c2.add(c[i]); return (X509Certificate[]) c2.toArray(new X509Certificate[0]); } catch (KeyStoreException kse) { return null; } } public String[] getClientAliases(String type, Principal[] p) { String[] s; String alias = chooseClientAlias(type, p); if (alias == null) s = new String[0]; else { s = new String[1]; s[0] = alias; } return s; } public String[] getServerAliases(String type, Principal[] p) { return getClientAliases(type, p); } public PrivateKey getPrivateKey(String alias) { try { return (PrivateKey) ks.getKey(alias, pw); } catch (Exception e) { return null; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -