public abstract class oadd.org.apache.zookeeper.common.X509Util extends java.lang.Object implements java.io.Closeable, java.lang.AutoCloseable
{
private static final org.slf4j.Logger LOG;
private static final java.lang.String REJECT_CLIENT_RENEGOTIATION_PROPERTY;
public static final java.lang.String DEFAULT_PROTOCOL;
private static final java.lang.String[] DEFAULT_CIPHERS_JAVA8;
private static final java.lang.String[] DEFAULT_CIPHERS_JAVA9;
public static final int DEFAULT_HANDSHAKE_DETECTION_TIMEOUT_MILLIS;
private java.lang.String sslProtocolProperty;
private java.lang.String sslEnabledProtocolsProperty;
private java.lang.String cipherSuitesProperty;
private java.lang.String sslKeystoreLocationProperty;
private java.lang.String sslKeystorePasswdProperty;
private java.lang.String sslKeystoreTypeProperty;
private java.lang.String sslTruststoreLocationProperty;
private java.lang.String sslTruststorePasswdProperty;
private java.lang.String sslTruststoreTypeProperty;
private java.lang.String sslHostnameVerificationEnabledProperty;
private java.lang.String sslCrlEnabledProperty;
private java.lang.String sslOcspEnabledProperty;
private java.lang.String sslClientAuthProperty;
private java.lang.String sslHandshakeDetectionTimeoutMillisProperty;
private oadd.org.apache.zookeeper.common.ZKConfig zkConfig;
private java.util.concurrent.atomic.AtomicReference defaultSSLContextAndOptions;
private oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher;
private oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher;
private static java.lang.String[] getGCMCiphers()
{
java.lang.String[] v;
v = newarray (java.lang.String)[4];
v[0] = "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256";
v[1] = "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256";
v[2] = "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384";
v[3] = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384";
return v;
}
private static java.lang.String[] getCBCCiphers()
{
java.lang.String[] v;
v = newarray (java.lang.String)[8];
v[0] = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256";
v[1] = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256";
v[2] = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA";
v[3] = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA";
v[4] = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384";
v[5] = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384";
v[6] = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA";
v[7] = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA";
return v;
}
private static java.lang.String[] concatArrays(java.lang.String[], java.lang.String[])
{
java.lang.String[] v, v, v;
int v, v, v, v, v, v;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v = lengthof v;
v = lengthof v;
v = v + v;
v = newarray (java.lang.String)[v];
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = lengthof v;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, v, v);
return v;
}
public void <init>()
{
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Util: void <init>(oadd.org.apache.zookeeper.common.ZKConfig)>(null);
return;
}
public void <init>(oadd.org.apache.zookeeper.common.ZKConfig)
{
java.util.concurrent.atomic.AtomicReference v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.common.ZKConfig v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: oadd.org.apache.zookeeper.common.ZKConfig;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001protocol");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslProtocolProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001enabledProtocols");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslEnabledProtocolsProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001ciphersuites");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String cipherSuitesProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001keyStore.location");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreLocationProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001keyStore.password");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystorePasswdProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001keyStore.type");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreTypeProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001trustStore.location");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreLocationProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001trustStore.password");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststorePasswdProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001trustStore.type");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreTypeProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001hostnameVerification");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslHostnameVerificationEnabledProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001crl");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslCrlEnabledProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001ocsp");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslOcspEnabledProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001clientAuth");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslClientAuthProperty> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getConfigPrefix()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001handshakeDetectionTimeoutMillis");
v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslHandshakeDetectionTimeoutMillisProperty> = v;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(null);
v.<oadd.org.apache.zookeeper.common.X509Util: java.util.concurrent.atomic.AtomicReference defaultSSLContextAndOptions> = v;
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.ZKConfig zkConfig> = v;
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher> = null;
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher> = null;
return;
}
protected abstract java.lang.String getConfigPrefix();
protected abstract boolean shouldVerifyClientHostname();
public java.lang.String getSslProtocolProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslProtocolProperty>;
return v;
}
public java.lang.String getSslEnabledProtocolsProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslEnabledProtocolsProperty>;
return v;
}
public java.lang.String getCipherSuitesProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String cipherSuitesProperty>;
return v;
}
public java.lang.String getSslKeystoreLocationProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreLocationProperty>;
return v;
}
public java.lang.String getSslCipherSuitesProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String cipherSuitesProperty>;
return v;
}
public java.lang.String getSslKeystorePasswdProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystorePasswdProperty>;
return v;
}
public java.lang.String getSslKeystoreTypeProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreTypeProperty>;
return v;
}
public java.lang.String getSslTruststoreLocationProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreLocationProperty>;
return v;
}
public java.lang.String getSslTruststorePasswdProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststorePasswdProperty>;
return v;
}
public java.lang.String getSslTruststoreTypeProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreTypeProperty>;
return v;
}
public java.lang.String getSslHostnameVerificationEnabledProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslHostnameVerificationEnabledProperty>;
return v;
}
public java.lang.String getSslCrlEnabledProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslCrlEnabledProperty>;
return v;
}
public java.lang.String getSslOcspEnabledProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslOcspEnabledProperty>;
return v;
}
public java.lang.String getSslClientAuthProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslClientAuthProperty>;
return v;
}
public java.lang.String getSslHandshakeDetectionTimeoutMillisProperty()
{
java.lang.String v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslHandshakeDetectionTimeoutMillisProperty>;
return v;
}
public javax.net.ssl.SSLContext getDefaultSSLContext() throws oadd.org.apache.zookeeper.common.X509Exception$SSLContextException
{
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
javax.net.ssl.SSLContext v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: javax.net.ssl.SSLContext getSSLContext()>();
return v;
}
public javax.net.ssl.SSLContext createSSLContext(oadd.org.apache.zookeeper.common.ZKConfig) throws oadd.org.apache.zookeeper.common.X509Exception$SSLContextException
{
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
javax.net.ssl.SSLContext v;
oadd.org.apache.zookeeper.common.ZKConfig v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: oadd.org.apache.zookeeper.common.ZKConfig;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions createSSLContextAndOptions(oadd.org.apache.zookeeper.common.ZKConfig)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: javax.net.ssl.SSLContext getSSLContext()>();
return v;
}
public oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions() throws oadd.org.apache.zookeeper.common.X509Exception$SSLContextException
{
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v, v, v;
oadd.org.apache.zookeeper.common.X509Util v;
boolean v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.util.concurrent.atomic.AtomicReference defaultSSLContextAndOptions>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v != null goto label;
v = specialinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions createSSLContextAndOptions()>();
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.util.concurrent.atomic.AtomicReference defaultSSLContextAndOptions>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v != 0 goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.util.concurrent.atomic.AtomicReference defaultSSLContextAndOptions>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
label:
return v;
}
private void resetDefaultSSLContextAndOptions() throws oadd.org.apache.zookeeper.common.X509Exception$SSLContextException
{
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
java.util.concurrent.atomic.AtomicReference v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = specialinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions createSSLContextAndOptions()>();
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.util.concurrent.atomic.AtomicReference defaultSSLContextAndOptions>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
return;
}
private oadd.org.apache.zookeeper.common.SSLContextAndOptions createSSLContextAndOptions() throws oadd.org.apache.zookeeper.common.X509Exception$SSLContextException
{
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
oadd.org.apache.zookeeper.common.ZKConfig v, v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.ZKConfig zkConfig>;
if v != null goto label;
v = new oadd.org.apache.zookeeper.common.ZKConfig;
specialinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: void <init>()>();
goto label;
label:
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.ZKConfig zkConfig>;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions createSSLContextAndOptions(oadd.org.apache.zookeeper.common.ZKConfig)>(v);
return v;
}
public int getSslHandshakeTimeoutMillis()
{
oadd.org.apache.zookeeper.common.X509Exception$SSLContextException v;
org.slf4j.Logger v, v;
java.lang.Exception v;
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
int v;
java.lang.String v, v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: int getHandshakeDetectionTimeoutMillis()>();
label:
return v;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Error creating SSL context and options", v);
return 5000;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getSslHandshakeDetectionTimeoutMillisProperty()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error parsing config property \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
return 5000;
catch oadd.org.apache.zookeeper.common.X509Exception$SSLContextException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public oadd.org.apache.zookeeper.common.SSLContextAndOptions createSSLContextAndOptions(oadd.org.apache.zookeeper.common.ZKConfig) throws oadd.org.apache.zookeeper.common.X509Exception$SSLContextException
{
javax.net.ssl.X509KeyManager v;
javax.net.ssl.SSLContext v;
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
java.security.GeneralSecurityException v;
boolean v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException v;
oadd.org.apache.zookeeper.common.X509Exception$SSLContextException v, v, v, v, v;
org.slf4j.Logger v, v;
java.lang.IllegalArgumentException v, v;
oadd.org.apache.zookeeper.common.ZKConfig v;
javax.net.ssl.TrustManager[] v, v;
javax.net.ssl.X509TrustManager v;
oadd.org.apache.zookeeper.common.X509Util v;
javax.net.ssl.KeyManager[] v, v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: oadd.org.apache.zookeeper.common.ZKConfig;
v = null;
v = null;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreLocationProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String,java.lang.String)>(v, "");
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystorePasswdProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String,java.lang.String)>(v, "");
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreTypeProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getSslKeystoreLocationProperty()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u not specified");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
goto label;
label:
v = newarray (javax.net.ssl.KeyManager)[1];
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: javax.net.ssl.X509KeyManager createKeyManager(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v[0] = v;
v = v;
label:
goto label;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$SSLContextException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$SSLContextException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to create KeyManager", v);
throw v;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$SSLContextException;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreTypeProperty>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Bad value for \u0001: \u0001");
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$SSLContextException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreLocationProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String,java.lang.String)>(v, "");
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststorePasswdProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String,java.lang.String)>(v, "");
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreTypeProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String)>(v);
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslCrlEnabledProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: boolean getBoolean(java.lang.String)>(v);
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslOcspEnabledProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: boolean getBoolean(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getSslHostnameVerificationEnabledProperty()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: boolean getBoolean(java.lang.String,boolean)>(v, 1);
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: boolean shouldVerifyClientHostname()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String getSslTruststoreLocationProperty()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u not specified");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
goto label;
label:
v = newarray (javax.net.ssl.TrustManager)[1];
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: javax.net.ssl.X509TrustManager createTrustManager(java.lang.String,java.lang.String,java.lang.String,boolean,boolean,boolean,boolean)>(v, v, v, v, v, v, v);
v[0] = v;
v = v;
label:
goto label;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$SSLContextException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$SSLContextException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to create TrustManager", v);
throw v;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$SSLContextException;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreTypeProperty>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Bad value for \u0001: \u0001");
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$SSLContextException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslProtocolProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String,java.lang.String)>(v, "TLSv.2");
label:
v = staticinvoke <javax.net.ssl.SSLContext: javax.net.ssl.SSLContext getInstance(java.lang.String)>(v);
virtualinvoke v.<javax.net.ssl.SSLContext: void init(javax.net.ssl.KeyManager[],javax.net.ssl.TrustManager[],java.security.SecureRandom)>(v, v, null);
v = new oadd.org.apache.zookeeper.common.SSLContextAndOptions;
specialinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: void <init>(oadd.org.apache.zookeeper.common.X509Util,oadd.org.apache.zookeeper.common.ZKConfig,javax.net.ssl.SSLContext)>(v, v, v);
label:
return v;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$SSLContextException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$SSLContextException: void <init>(java.lang.Throwable)>(v);
throw v;
catch oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
catch oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.KeyManagementException from label to label with label;
}
public static javax.net.ssl.X509KeyManager createKeyManager(java.lang.String, java.lang.String, java.lang.String) throws oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException
{
oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder v, v, v;
oadd.org.apache.zookeeper.common.KeyStoreFileType v;
oadd.org.apache.zookeeper.common.FileKeyStoreLoader v;
int v, v;
java.lang.String v, v, v;
oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException v, v;
boolean v;
javax.net.ssl.KeyManagerFactory v;
java.security.KeyStore v;
java.lang.Exception v;
javax.net.ssl.KeyManager v;
char[] v;
javax.net.ssl.KeyManager[] v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v != null goto label;
v = "";
label:
v = staticinvoke <oadd.org.apache.zookeeper.common.KeyStoreFileType: oadd.org.apache.zookeeper.common.KeyStoreFileType fromPropertyValueOrFileName(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <oadd.org.apache.zookeeper.common.FileKeyStoreLoaderBuilderProvider: oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder getBuilderForKeyStoreFileType(oadd.org.apache.zookeeper.common.KeyStoreFileType)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder: oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder setKeyStorePath(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder: oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder setKeyStorePassword(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder: oadd.org.apache.zookeeper.common.FileKeyStoreLoader build()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader: java.security.KeyStore loadKeyStore()>();
v = staticinvoke <javax.net.ssl.KeyManagerFactory: javax.net.ssl.KeyManagerFactory getInstance(java.lang.String)>("PKIX");
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
virtualinvoke v.<javax.net.ssl.KeyManagerFactory: void init(java.security.KeyStore,char[])>(v, v);
v = virtualinvoke v.<javax.net.ssl.KeyManagerFactory: javax.net.ssl.KeyManager[] getKeyManagers()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof javax.net.ssl.X509KeyManager;
if v == 0 goto label;
label:
return v;
label:
v = v + 1;
goto label;
label:
v = new oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException: void <init>(java.lang.String)>("Couldn\'t find X509KeyManager");
throw v;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$KeyManagerException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
catch java.security.GeneralSecurityException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
}
public static javax.net.ssl.X509TrustManager createTrustManager(java.lang.String, java.lang.String, java.lang.String, boolean, boolean, boolean, boolean) throws oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException
{
oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder v, v, v;
oadd.org.apache.zookeeper.common.KeyStoreFileType v;
javax.net.ssl.CertPathTrustManagerParameters v;
javax.net.ssl.TrustManager v;
oadd.org.apache.zookeeper.common.FileKeyStoreLoader v;
oadd.org.apache.zookeeper.common.ZKTrustManager v;
int v, v;
oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v;
javax.net.ssl.TrustManagerFactory v;
java.security.cert.X509CertSelector v;
java.security.KeyStore v;
java.lang.Exception v;
java.security.cert.PKIXBuilderParameters v;
javax.net.ssl.TrustManager[] v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
if v != null goto label;
v = "";
label:
v = staticinvoke <oadd.org.apache.zookeeper.common.KeyStoreFileType: oadd.org.apache.zookeeper.common.KeyStoreFileType fromPropertyValueOrFileName(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <oadd.org.apache.zookeeper.common.FileKeyStoreLoaderBuilderProvider: oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder getBuilderForKeyStoreFileType(oadd.org.apache.zookeeper.common.KeyStoreFileType)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder: oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder setTrustStorePath(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder: oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder setTrustStorePassword(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader$Builder: oadd.org.apache.zookeeper.common.FileKeyStoreLoader build()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.FileKeyStoreLoader: java.security.KeyStore loadTrustStore()>();
v = new java.security.cert.PKIXBuilderParameters;
v = new java.security.cert.X509CertSelector;
specialinvoke v.<java.security.cert.X509CertSelector: void <init>()>();
specialinvoke v.<java.security.cert.PKIXBuilderParameters: void <init>(java.security.KeyStore,java.security.cert.CertSelector)>(v, v);
if v != 0 goto label;
if v == 0 goto label;
label:
virtualinvoke v.<java.security.cert.PKIXBuilderParameters: void setRevocationEnabled(boolean)>(1);
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("com.sun.net.ssl.checkRevocation", "true");
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("com.sun.security.enableCRLDP", "true");
if v == 0 goto label;
staticinvoke <java.security.Security: void setProperty(java.lang.String,java.lang.String)>("ocsp.enable", "true");
goto label;
label:
virtualinvoke v.<java.security.cert.PKIXBuilderParameters: void setRevocationEnabled(boolean)>(0);
label:
v = staticinvoke <javax.net.ssl.TrustManagerFactory: javax.net.ssl.TrustManagerFactory getInstance(java.lang.String)>("PKIX");
v = new javax.net.ssl.CertPathTrustManagerParameters;
specialinvoke v.<javax.net.ssl.CertPathTrustManagerParameters: void <init>(java.security.cert.CertPathParameters)>(v);
virtualinvoke v.<javax.net.ssl.TrustManagerFactory: void init(javax.net.ssl.ManagerFactoryParameters)>(v);
v = virtualinvoke v.<javax.net.ssl.TrustManagerFactory: javax.net.ssl.TrustManager[] getTrustManagers()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof javax.net.ssl.X509ExtendedTrustManager;
if v == 0 goto label;
v = new oadd.org.apache.zookeeper.common.ZKTrustManager;
specialinvoke v.<oadd.org.apache.zookeeper.common.ZKTrustManager: void <init>(javax.net.ssl.X509ExtendedTrustManager,boolean,boolean)>(v, v, v);
label:
return v;
label:
v = v + 1;
goto label;
label:
v = new oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException: void <init>(java.lang.String)>("Couldn\'t find X509TrustManager");
throw v;
label:
v := @caughtexception;
v = new oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException;
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Exception$TrustManagerException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
catch java.security.GeneralSecurityException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
}
public javax.net.ssl.SSLSocket createSSLSocket() throws oadd.org.apache.zookeeper.common.X509Exception, java.io.IOException
{
javax.net.ssl.SSLSocket v;
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: javax.net.ssl.SSLSocket createSSLSocket()>();
return v;
}
public javax.net.ssl.SSLSocket createSSLSocket(java.net.Socket, byte[]) throws oadd.org.apache.zookeeper.common.X509Exception, java.io.IOException
{
byte[] v;
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
java.net.Socket v;
javax.net.ssl.SSLSocket v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: java.net.Socket;
v := @parameter: byte[];
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: javax.net.ssl.SSLSocket createSSLSocket(java.net.Socket,byte[])>(v, v);
return v;
}
public javax.net.ssl.SSLServerSocket createSSLServerSocket() throws oadd.org.apache.zookeeper.common.X509Exception, java.io.IOException
{
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
oadd.org.apache.zookeeper.common.X509Util v;
javax.net.ssl.SSLServerSocket v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: javax.net.ssl.SSLServerSocket createSSLServerSocket()>();
return v;
}
public javax.net.ssl.SSLServerSocket createSSLServerSocket(int) throws oadd.org.apache.zookeeper.common.X509Exception, java.io.IOException
{
oadd.org.apache.zookeeper.common.SSLContextAndOptions v;
javax.net.ssl.SSLServerSocket v;
int v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: int;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.SSLContextAndOptions getDefaultSSLContextAndOptions()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.SSLContextAndOptions: javax.net.ssl.SSLServerSocket createSSLServerSocket(int)>(v);
return v;
}
static java.lang.String[] getDefaultCipherSuites()
{
java.lang.String[] v;
java.lang.String v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("java.specification.version");
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] getDefaultCipherSuitesForJavaVersion(java.lang.String)>(v);
return v;
}
static java.lang.String[] getDefaultCipherSuitesForJavaVersion(java.lang.String)
{
org.slf4j.Logger v, v, v;
java.lang.String[] v, v, v;
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.String;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("\\d+");
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Using Java+ optimized cipher suites for Java version {}", v);
v = <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] DEFAULT_CIPHERS_JAVA9>;
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("1.");
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Using Java optimized cipher suites for Java version {}", v);
v = <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] DEFAULT_CIPHERS_JAVA8>;
return v;
label:
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Could not parse java version {}, using Java optimized cipher suites", v);
v = <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] DEFAULT_CIPHERS_JAVA8>;
return v;
}
private oadd.org.apache.zookeeper.common.FileChangeWatcher newFileChangeWatcher(java.lang.String) throws java.io.IOException
{
java.io.IOException v;
java.lang.String[] v;
oadd.org.apache.zookeeper.common.FileChangeWatcher v;
java.util.function.Consumer v;
java.lang.String v, v;
java.nio.file.Path v, v, v;
oadd.org.apache.zookeeper.common.X509Util v;
boolean v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
return null;
label:
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path toAbsolutePath()>();
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path getParent()>();
if v != null goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Key/trust store path does not have a parent: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new oadd.org.apache.zookeeper.common.FileChangeWatcher;
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util$lambda_newFileChangeWatcher_0__976: java.util.function.Consumer bootstrap$(oadd.org.apache.zookeeper.common.X509Util,java.nio.file.Path)>(v, v);
specialinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void <init>(java.nio.file.Path,java.util.function.Consumer)>(v, v);
return v;
}
public void enableCertFileReloading() throws java.io.IOException
{
java.lang.String v, v, v, v;
org.slf4j.Logger v;
oadd.org.apache.zookeeper.common.FileChangeWatcher v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.common.ZKConfig v, v, v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("enabling cert file reloading");
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.ZKConfig zkConfig>;
if v != null goto label;
v = new oadd.org.apache.zookeeper.common.ZKConfig;
specialinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: void <init>()>();
goto label;
label:
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.ZKConfig zkConfig>;
label:
v = v;
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslKeystoreLocationProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String)>(v);
v = specialinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher newFileChangeWatcher(java.lang.String)>(v);
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher>;
virtualinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void stop()>();
label:
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher> = v;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher>;
virtualinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void start()>();
label:
v = v.<oadd.org.apache.zookeeper.common.X509Util: java.lang.String sslTruststoreLocationProperty>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String)>(v);
v = specialinvoke v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher newFileChangeWatcher(java.lang.String)>(v);
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher>;
virtualinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void stop()>();
label:
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher> = v;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher>;
virtualinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void start()>();
label:
return;
}
public void close()
{
oadd.org.apache.zookeeper.common.FileChangeWatcher v, v, v, v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher>;
virtualinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void stop()>();
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher keyStoreFileWatcher> = null;
label:
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher>;
virtualinvoke v.<oadd.org.apache.zookeeper.common.FileChangeWatcher: void stop()>();
v.<oadd.org.apache.zookeeper.common.X509Util: oadd.org.apache.zookeeper.common.FileChangeWatcher trustStoreFileWatcher> = null;
label:
return;
}
private void handleWatchEvent(java.nio.file.Path, java.nio.file.WatchEvent)
{
java.nio.file.WatchEvent$Kind v, v, v, v, v, v, v, v;
java.lang.String v, v;
java.nio.file.Path v, v, v;
boolean v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.common.X509Exception$SSLContextException v;
org.slf4j.Logger v, v, v, v;
java.nio.file.WatchEvent v;
java.lang.RuntimeException v;
java.lang.Object v, v, v;
oadd.org.apache.zookeeper.common.X509Util v;
v := @this: oadd.org.apache.zookeeper.common.X509Util;
v := @parameter: java.nio.file.Path;
v := @parameter: java.nio.file.WatchEvent;
v = 0;
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path getParent()>();
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.nio.file.WatchEvent$Kind kind()>();
v = <java.nio.file.StandardWatchEventKinds: java.nio.file.WatchEvent$Kind OVERFLOW>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.nio.file.WatchEvent$Kind kind()>();
v = <java.nio.file.StandardWatchEventKinds: java.nio.file.WatchEvent$Kind ENTRY_MODIFY>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.nio.file.WatchEvent$Kind kind()>();
v = <java.nio.file.StandardWatchEventKinds: java.nio.file.WatchEvent$Kind ENTRY_CREATE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.lang.Object context()>();
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path resolve(java.nio.file.Path)>(v);
v = interfaceinvoke v.<java.nio.file.Path: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.nio.file.WatchEvent$Kind kind()>();
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.lang.Object context()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.WatchEvent$Kind,java.lang.Object)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Attempting to reset default SSL context after receiving watch event: \u with context: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
specialinvoke v.<oadd.org.apache.zookeeper.common.X509Util: void resetDefaultSSLContextAndOptions()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.nio.file.WatchEvent$Kind kind()>();
v = interfaceinvoke v.<java.nio.file.WatchEvent: java.lang.Object context()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.WatchEvent$Kind,java.lang.Object)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Ignoring watch event and keeping previous default SSL context. Event kind: \u with context: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
return;
catch oadd.org.apache.zookeeper.common.X509Exception$SSLContextException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v, v;
java.lang.String[] v, v, v, v, v, v;
java.lang.Boolean v;
java.lang.String v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/zookeeper/common/X509Util;");
<oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("jdk.tls.rejectClientInitiatedRenegotiation");
if v != null goto label;
v = <oadd.org.apache.zookeeper.common.X509Util: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Setting -D {}=true to disable client-initiated TLS renegotiation", "jdk.tls.rejectClientInitiatedRenegotiation");
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
v = virtualinvoke v.<java.lang.Boolean: java.lang.String toString()>();
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("jdk.tls.rejectClientInitiatedRenegotiation", v);
label:
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] getCBCCiphers()>();
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] getGCMCiphers()>();
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] concatArrays(java.lang.String[],java.lang.String[])>(v, v);
<oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] DEFAULT_CIPHERS_JAVA8> = v;
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] getGCMCiphers()>();
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] getCBCCiphers()>();
v = staticinvoke <oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] concatArrays(java.lang.String[],java.lang.String[])>(v, v);
<oadd.org.apache.zookeeper.common.X509Util: java.lang.String[] DEFAULT_CIPHERS_JAVA9> = v;
return;
}
}