1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 package IceSSL; 6 7 import javax.net.ssl.X509ExtendedKeyManager; 8 9 final class X509KeyManagerI extends X509ExtendedKeyManager 10 { X509KeyManagerI(javax.net.ssl.X509ExtendedKeyManager del, String alias, boolean override)11 X509KeyManagerI(javax.net.ssl.X509ExtendedKeyManager del, String alias, boolean override) 12 { 13 _delegate = del; 14 _alias = alias; 15 _override = override; // Always use the configured alias, don't check for acceptable issuers 16 } 17 18 @Override 19 public String chooseClientAlias(String[] keyType, java.security.Principal[] issuers, java.net.Socket socket)20 chooseClientAlias(String[] keyType, java.security.Principal[] issuers, java.net.Socket socket) 21 { 22 if(!_override) // Don't bother checking for acceptable issuers if the user configured IceSSL.Alias 23 { 24 String alias = _delegate.chooseClientAlias(keyType, issuers, socket); 25 if(alias != null && !alias.isEmpty()) 26 { 27 return alias; 28 } 29 } 30 return _alias; 31 } 32 33 @Override 34 public String chooseEngineClientAlias(String[] keyType, java.security.Principal[] issuers, javax.net.ssl.SSLEngine engine)35 chooseEngineClientAlias(String[] keyType, java.security.Principal[] issuers, javax.net.ssl.SSLEngine engine) 36 { 37 if(!_override) // Don't bother checking for acceptable issuers if the user configured IceSSL.Alias 38 { 39 String alias = _delegate.chooseEngineClientAlias(keyType, issuers, engine); 40 if(alias != null && !alias.isEmpty()) 41 { 42 return alias; 43 } 44 } 45 return _alias; 46 } 47 48 @Override 49 public String chooseServerAlias(String keyType, java.security.Principal[] issuers, java.net.Socket socket)50 chooseServerAlias(String keyType, java.security.Principal[] issuers, java.net.Socket socket) 51 { 52 if(!_override) // Don't bother checking for acceptable issuers if the user configured IceSSL.Alias 53 { 54 String alias = _delegate.chooseServerAlias(keyType, issuers, socket); 55 if(alias != null && !alias.isEmpty()) 56 { 57 return alias; 58 } 59 } 60 return _alias; 61 } 62 63 @Override 64 public String chooseEngineServerAlias(String keyType, java.security.Principal[] issuers, javax.net.ssl.SSLEngine engine)65 chooseEngineServerAlias(String keyType, java.security.Principal[] issuers, javax.net.ssl.SSLEngine engine) 66 { 67 if(!_override) // Don't bother checking for acceptable issuers if the user configured IceSSL.Alias 68 { 69 String alias = _delegate.chooseEngineServerAlias(keyType, issuers, engine); 70 if(alias != null && !alias.isEmpty()) 71 { 72 return alias; 73 } 74 } 75 return _alias; 76 } 77 78 @Override 79 public java.security.cert.X509Certificate[] getCertificateChain(String alias)80 getCertificateChain(String alias) 81 { 82 return _delegate.getCertificateChain(alias); 83 } 84 85 @Override 86 public String[] getClientAliases(String keyType, java.security.Principal[] issuers)87 getClientAliases(String keyType, java.security.Principal[] issuers) 88 { 89 return _delegate.getClientAliases(keyType, issuers); 90 } 91 92 @Override 93 public String[] getServerAliases(String keyType, java.security.Principal[] issuers)94 getServerAliases(String keyType, java.security.Principal[] issuers) 95 { 96 return _delegate.getServerAliases(keyType, issuers); 97 } 98 99 @Override 100 public java.security.PrivateKey getPrivateKey(String alias)101 getPrivateKey(String alias) 102 { 103 return _delegate.getPrivateKey(alias); 104 } 105 106 private javax.net.ssl.X509ExtendedKeyManager _delegate; 107 private String _alias; 108 private boolean _override; 109 } 110