SniX509KeyManagerFactory Class — netty Architecture
Architecture documentation for the SniX509KeyManagerFactory class in SniClientJava8TestUtil.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a72d3a33_546a_77c0_628c_f56e0af014b1["SniX509KeyManagerFactory"] b26d2292_889b_aec4_10cf_88501f539099["SniClientJava8TestUtil.java"] a72d3a33_546a_77c0_628c_f56e0af014b1 -->|defined in| b26d2292_889b_aec4_10cf_88501f539099 f882bf99_3cd9_9a35_c5f8_5874c37a2048["SniX509KeyManagerFactory()"] a72d3a33_546a_77c0_628c_f56e0af014b1 -->|method| f882bf99_3cd9_9a35_c5f8_5874c37a2048
Relationship Graph
Source Code
handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java lines 268–346
private static final class SniX509KeyManagerFactory extends KeyManagerFactory {
SniX509KeyManagerFactory(final SNIServerName name, final KeyManagerFactory factory) {
super(new KeyManagerFactorySpi() {
@Override
protected void engineInit(KeyStore keyStore, char[] chars)
throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
factory.init(keyStore, chars);
}
@Override
protected void engineInit(ManagerFactoryParameters managerFactoryParameters)
throws InvalidAlgorithmParameterException {
factory.init(managerFactoryParameters);
}
@Override
protected KeyManager[] engineGetKeyManagers() {
List<KeyManager> managers = new ArrayList<KeyManager>();
for (final KeyManager km: factory.getKeyManagers()) {
if (km instanceof X509ExtendedKeyManager) {
managers.add(new X509ExtendedKeyManager() {
@Override
public String[] getClientAliases(String s, Principal[] principals) {
return ((X509ExtendedKeyManager) km).getClientAliases(s, principals);
}
@Override
public String chooseClientAlias(String[] strings, Principal[] principals,
Socket socket) {
return ((X509ExtendedKeyManager) km).chooseClientAlias(strings, principals, socket);
}
@Override
public String[] getServerAliases(String s, Principal[] principals) {
return ((X509ExtendedKeyManager) km).getServerAliases(s, principals);
}
@Override
public String chooseServerAlias(String s, Principal[] principals, Socket socket) {
return ((X509ExtendedKeyManager) km).chooseServerAlias(s, principals, socket);
}
@Override
public X509Certificate[] getCertificateChain(String s) {
return ((X509ExtendedKeyManager) km).getCertificateChain(s);
}
@Override
public PrivateKey getPrivateKey(String s) {
return ((X509ExtendedKeyManager) km).getPrivateKey(s);
}
@Override
public String chooseEngineClientAlias(String[] strings, Principal[] principals,
SSLEngine sslEngine) {
return ((X509ExtendedKeyManager) km)
.chooseEngineClientAlias(strings, principals, sslEngine);
}
@Override
public String chooseEngineServerAlias(String s, Principal[] principals,
SSLEngine sslEngine) {
SSLSession session = sslEngine.getHandshakeSession();
assertSSLSession(sslEngine.getUseClientMode(), session, name);
return ((X509ExtendedKeyManager) km)
.chooseEngineServerAlias(s, principals, sslEngine);
}
});
} else {
managers.add(km);
}
}
return managers.toArray(new KeyManager[0]);
}
}, factory.getProvider(), factory.getAlgorithm());
}
}
Source
Frequently Asked Questions
What is the SniX509KeyManagerFactory class?
SniX509KeyManagerFactory is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java.
Where is SniX509KeyManagerFactory defined?
SniX509KeyManagerFactory is defined in handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java at line 268.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free