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