public class org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory extends java.lang.Object
{
private static final java.util.logging.Logger _logger;
private static final java.lang.String TLS_PROTOCOL;
private static final java.lang.reflect.Constructor pemParserCons;
private static final java.lang.reflect.Method pemReadMethod;
private static final java.lang.reflect.Constructor JcaPEMKeyConverterCons;
private static final java.lang.Class PEMKeyPairClass;
private static final java.lang.reflect.Method getKeyPairMethod;
private static final java.lang.reflect.Method getPrivateKeyMethod;
private static final java.lang.Class PEMEncryptedKeyPairClass;
private static final java.lang.reflect.Method decryptKeyPairMethod;
private static final java.lang.reflect.Constructor JcePEMDecryptorProviderBuilderCons;
private static final java.lang.reflect.Method builderMethod;
private static final java.lang.Class PrivateKeyInfoClass;
private static final java.lang.Exception bouncyCastleSetupException;
private static final java.util.List ANONYMOUS_CIPHER_SUITES;
private javax.net.ssl.SSLContext _sslContext;
private static final java.lang.String SSLV3_PROTOCOL;
static void registerBouncyCastleProvider() throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.NoSuchMethodException
{
java.lang.Throwable v;
java.lang.Object[] v;
java.lang.Class[] v;
java.lang.reflect.Constructor v;
java.security.Provider v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.jce.provider.BouncyCastleProvider");
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
entermonitor class "Ljava/security/Security;";
label:
v = virtualinvoke v.<java.security.Provider: java.lang.String getName()>();
v = staticinvoke <java.security.Security: java.security.Provider getProvider(java.lang.String)>(v);
if v != null goto label;
staticinvoke <java.security.Security: int addProvider(java.security.Provider)>(v);
label:
exitmonitor class "Ljava/security/Security;";
label:
goto label;
label:
v := @caughtexception;
exitmonitor class "Ljava/security/Security;";
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void <init>()
{
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public org.apache.qpid.proton.engine.impl.ssl.ProtonSslEngine createProtonSslEngine(org.apache.qpid.proton.engine.SslDomain, org.apache.qpid.proton.engine.SslPeerDetails)
{
org.apache.qpid.proton.engine.impl.ssl.DefaultSslEngineFacade v;
java.util.logging.Logger v, v;
java.util.logging.Level v;
javax.net.ssl.SSLEngine v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
org.apache.qpid.proton.engine.SslPeerDetails v;
java.lang.String v, v;
org.apache.qpid.proton.engine.SslDomain v;
boolean v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: org.apache.qpid.proton.engine.SslDomain;
v := @parameter: org.apache.qpid.proton.engine.SslPeerDetails;
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLEngine createAndInitialiseSslEngine(org.apache.qpid.proton.engine.SslDomain,org.apache.qpid.proton.engine.SslPeerDetails)>(v, v);
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.String engineToString(javax.net.ssl.SSLEngine)>(v);
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[])>("Created SSL engine: \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = new org.apache.qpid.proton.engine.impl.ssl.DefaultSslEngineFacade;
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.DefaultSslEngineFacade: void <init>(javax.net.ssl.SSLEngine)>(v);
return v;
}
public void resetCache()
{
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext _sslContext> = null;
return;
}
private javax.net.ssl.SSLEngine createAndInitialiseSslEngine(org.apache.qpid.proton.engine.SslDomain, org.apache.qpid.proton.engine.SslPeerDetails)
{
javax.net.ssl.SSLContext v;
javax.net.ssl.SSLParameters v;
java.lang.String[] v;
java.util.logging.Level v, v;
javax.net.ssl.SSLEngine v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
org.apache.qpid.proton.engine.SslDomain$VerifyMode v, v, v, v;
org.apache.qpid.proton.engine.SslPeerDetails v;
java.lang.String v;
org.apache.qpid.proton.engine.SslDomain v;
boolean v, v;
java.util.logging.Logger v, v;
org.apache.qpid.proton.engine.SslDomain$Mode v, v, v;
java.util.List v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: org.apache.qpid.proton.engine.SslDomain;
v := @parameter: org.apache.qpid.proton.engine.SslPeerDetails;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: org.apache.qpid.proton.engine.SslDomain$Mode getMode()>();
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext getOrCreateSslContext(org.apache.qpid.proton.engine.SslDomain)>(v);
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLEngine createSslEngine(javax.net.ssl.SSLContext,org.apache.qpid.proton.engine.SslPeerDetails)>(v, v);
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: org.apache.qpid.proton.engine.SslDomain$VerifyMode getPeerAuthentication()>();
v = <org.apache.qpid.proton.engine.SslDomain$VerifyMode: org.apache.qpid.proton.engine.SslDomain$VerifyMode ANONYMOUS_PEER>;
if v != v goto label;
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void addAnonymousCipherSuites(javax.net.ssl.SSLEngine)>(v);
goto label;
label:
v = <org.apache.qpid.proton.engine.SslDomain$Mode: org.apache.qpid.proton.engine.SslDomain$Mode SERVER>;
if v != v goto label;
virtualinvoke v.<javax.net.ssl.SSLEngine: void setNeedClientAuth(boolean)>(1);
label:
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: org.apache.qpid.proton.engine.SslDomain$VerifyMode getPeerAuthentication()>();
v = <org.apache.qpid.proton.engine.SslDomain$VerifyMode: org.apache.qpid.proton.engine.SslDomain$VerifyMode VERIFY_PEER_NAME>;
if v != v goto label;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLParameters getSSLParameters()>();
virtualinvoke v.<javax.net.ssl.SSLParameters: void setEndpointIdentificationAlgorithm(java.lang.String)>("HTTPS");
virtualinvoke v.<javax.net.ssl.SSLEngine: void setSSLParameters(javax.net.ssl.SSLParameters)>(v);
label:
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.String[] getEnabledCipherSuites()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.qpid.proton.engine.SslDomain$Mode,java.util.List)>(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[])>("\u Enabled cipher suites \u0001");
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
label:
v = <org.apache.qpid.proton.engine.SslDomain$Mode: org.apache.qpid.proton.engine.SslDomain$Mode CLIENT>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<javax.net.ssl.SSLEngine: void setUseClientMode(boolean)>(v);
staticinvoke <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void removeSSLv3Support(javax.net.ssl.SSLEngine)>(v);
return v;
}
private static void removeSSLv3Support(javax.net.ssl.SSLEngine)
{
java.lang.Object[] v;
java.lang.String[] v, v;
java.util.ArrayList v;
javax.net.ssl.SSLEngine v;
java.util.List v;
int v;
boolean v;
v := @parameter: javax.net.ssl.SSLEngine;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.String[] getEnabledProtocols()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>("SSLv3");
if v == 0 goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>("SSLv3");
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (java.lang.String)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
virtualinvoke v.<javax.net.ssl.SSLEngine: void setEnabledProtocols(java.lang.String[])>(v);
label:
return;
}
private javax.net.ssl.SSLEngine createSslEngine(javax.net.ssl.SSLContext, org.apache.qpid.proton.engine.SslPeerDetails)
{
javax.net.ssl.SSLContext v;
int v;
org.apache.qpid.proton.engine.SslPeerDetails v;
java.lang.String v;
javax.net.ssl.SSLEngine v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: javax.net.ssl.SSLContext;
v := @parameter: org.apache.qpid.proton.engine.SslPeerDetails;
if v != null goto label;
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLEngine createSSLEngine()>();
goto label;
label:
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslPeerDetails: java.lang.String getHostname()>();
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslPeerDetails: int getPort()>();
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLEngine createSSLEngine(java.lang.String,int)>(v, v);
label:
return v;
}
private javax.net.ssl.SSLContext getOrCreateSslContext(org.apache.qpid.proton.engine.SslDomain)
{
javax.net.ssl.SSLContext v, v, v, v, v, v;
java.security.KeyStoreException v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory$AlwaysTrustingTrustManager v;
org.apache.qpid.proton.engine.SslDomain$VerifyMode v, v;
boolean v;
javax.net.ssl.TrustManagerFactory v;
java.security.KeyStore v;
java.security.KeyManagementException v;
java.util.logging.Logger v, v;
java.security.NoSuchAlgorithmException v;
org.apache.qpid.proton.engine.TransportException v, v, v, v;
java.util.logging.Level v;
java.security.UnrecoverableKeyException v;
java.lang.String v, v, v, v;
org.apache.qpid.proton.engine.SslDomain v;
javax.net.ssl.KeyManagerFactory v;
javax.net.ssl.TrustManager[] v, v;
char[] v;
javax.net.ssl.KeyManager[] v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: org.apache.qpid.proton.engine.SslDomain;
v = v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext _sslContext>;
if v != null goto label;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: javax.net.ssl.SSLContext getSslContext()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: javax.net.ssl.SSLContext getSslContext()>();
v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext _sslContext> = v;
goto label;
label:
v = v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext _sslContext>;
if v != null goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.qpid.proton.engine.SslDomain)>(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[])>("lazily creating new SSLContext using domain \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = "unused-passphrase";
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
label:
v = staticinvoke <javax.net.ssl.SSLContext: javax.net.ssl.SSLContext getInstance(java.lang.String)>("TLS");
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.security.KeyStore createKeyStoreFrom(org.apache.qpid.proton.engine.SslDomain,char[])>(v, v);
v = staticinvoke <javax.net.ssl.KeyManagerFactory: java.lang.String getDefaultAlgorithm()>();
v = staticinvoke <javax.net.ssl.KeyManagerFactory: javax.net.ssl.KeyManagerFactory getInstance(java.lang.String)>(v);
virtualinvoke v.<javax.net.ssl.KeyManagerFactory: void init(java.security.KeyStore,char[])>(v, v);
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: org.apache.qpid.proton.engine.SslDomain$VerifyMode getPeerAuthentication()>();
v = <org.apache.qpid.proton.engine.SslDomain$VerifyMode: org.apache.qpid.proton.engine.SslDomain$VerifyMode ANONYMOUS_PEER>;
if v != v goto label;
v = newarray (javax.net.ssl.TrustManager)[1];
v = new org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory$AlwaysTrustingTrustManager;
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory$AlwaysTrustingTrustManager: void <init>()>();
v[0] = v;
v = v;
goto label;
label:
v = staticinvoke <javax.net.ssl.TrustManagerFactory: java.lang.String getDefaultAlgorithm()>();
v = staticinvoke <javax.net.ssl.TrustManagerFactory: javax.net.ssl.TrustManagerFactory getInstance(java.lang.String)>(v);
virtualinvoke v.<javax.net.ssl.TrustManagerFactory: void init(java.security.KeyStore)>(v);
v = virtualinvoke v.<javax.net.ssl.TrustManagerFactory: javax.net.ssl.TrustManager[] getTrustManagers()>();
label:
v = virtualinvoke v.<javax.net.ssl.KeyManagerFactory: javax.net.ssl.KeyManager[] getKeyManagers()>();
virtualinvoke v.<javax.net.ssl.SSLContext: void init(javax.net.ssl.KeyManager[],javax.net.ssl.TrustManager[],java.security.SecureRandom)>(v, v, null);
v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext _sslContext> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating SSLContext", v);
throw v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating SSLContext", v);
throw v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating SSLContext", v);
throw v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating SSLContext", v);
throw v;
label:
v = v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: javax.net.ssl.SSLContext _sslContext>;
return v;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.KeyStoreException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
catch java.security.KeyManagementException from label to label with label;
}
private java.security.KeyStore createKeyStoreFrom(org.apache.qpid.proton.engine.SslDomain, char[])
{
java.security.KeyStoreException v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
boolean v, v;
java.util.Collection v;
java.security.KeyStore v;
java.util.logging.Logger v, v;
java.security.cert.Certificate v;
java.security.PrivateKey v;
java.security.NoSuchAlgorithmException v;
java.security.cert.Certificate[] v;
org.apache.qpid.proton.engine.TransportException v, v, v, v;
java.util.logging.Level v, v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
org.apache.qpid.proton.engine.SslDomain v;
java.util.Iterator v;
java.io.IOException v;
java.security.cert.CertificateException v;
char[] v;
java.lang.Object v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: org.apache.qpid.proton.engine.SslDomain;
v := @parameter: char[];
label:
v = staticinvoke <java.security.KeyStore: java.lang.String getDefaultType()>();
v = staticinvoke <java.security.KeyStore: java.security.KeyStore getInstance(java.lang.String)>(v);
virtualinvoke v.<java.security.KeyStore: void load(java.io.InputStream,char[])>(null, null);
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getTrustedCaDb()>();
if v == null goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getTrustedCaDb()>();
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[])>("_sslParams.getTrustedCaDb() : \u0001");
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
label:
v = 1;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getTrustedCaDb()>();
v = virtualinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.Collection readCertificates(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v;
v = v + 1;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>("cacert", 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[])>("\u0001\u0001");
virtualinvoke v.<java.security.KeyStore: void setCertificateEntry(java.lang.String,java.security.cert.Certificate)>(v, v);
goto label;
label:
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getCertificateFile()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getPrivateKeyFile()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getCertificateFile()>();
v = virtualinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.security.cert.Certificate readCertificate(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getPrivateKeyFile()>();
v = interfaceinvoke v.<org.apache.qpid.proton.engine.SslDomain: java.lang.String getPrivateKeyPassword()>();
v = virtualinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.security.PrivateKey readPrivateKey(java.lang.String,java.lang.String)>(v, v);
v = newarray (java.security.cert.Certificate)[1];
v[0] = v;
virtualinvoke v.<java.security.KeyStore: void setKeyEntry(java.lang.String,java.security.Key,char[],java.security.cert.Certificate[])>("clientPrivateKey", v, v, v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating keystore", v);
throw v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating keystore", v);
throw v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating keystore", v);
throw v;
label:
v := @caughtexception;
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception creating keystore", v);
throw v;
catch java.security.KeyStoreException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.cert.CertificateException from label to label with label;
catch java.io.IOException from label to label with label;
}
private void addAnonymousCipherSuites(javax.net.ssl.SSLEngine)
{
java.lang.Object[] v;
java.lang.String[] v, v, v;
javax.net.ssl.SSLEngine v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
java.util.List v, v, v, v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: javax.net.ssl.SSLEngine;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.String[] getSupportedCipherSuites()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.String[] getEnabledCipherSuites()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.List ANONYMOUS_CIPHER_SUITES>;
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.List buildEnabledSuitesIncludingAnonymous(java.util.List,java.util.List,java.util.List)>(v, v, v);
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
virtualinvoke v.<javax.net.ssl.SSLEngine: void setEnabledCipherSuites(java.lang.String[])>(v);
return;
}
private java.util.List buildEnabledSuitesIncludingAnonymous(java.util.List, java.util.List, java.util.List)
{
java.util.ArrayList v;
java.util.logging.Level v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
int v, v, v, v;
java.lang.String v;
boolean v, v, v;
java.util.Iterator v;
java.util.logging.Logger v, v;
java.util.List v, v, v;
java.lang.Object v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = 0;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
if v <= 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int,int,int)>(v, v, 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[])>("There are now \u cipher suites enabled (previously \u), including \u out of the \u requested anonymous ones.");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
return v;
}
private java.lang.String engineToString(javax.net.ssl.SSLEngine)
{
javax.net.ssl.SSLEngine v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
int v;
java.lang.StringBuilder v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: javax.net.ssl.SSLEngine;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("[ ");
v = virtualinvoke v.<javax.net.ssl.SSLEngine: boolean getNeedClientAuth()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngine: boolean getUseClientMode()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.String getPeerHost()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngine: int getPeerPort()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.net.ssl.SSLEngine,boolean,boolean,java.lang.String,int)>(v, v, v, 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[])>("\u, needClientAuth=\u, useClientMode=\u, peerHost=\u, peerPort=\u ]");
return v;
}
java.security.cert.Certificate readCertificate(java.lang.String)
{
java.lang.Throwable v;
java.security.cert.CertificateFactory v;
org.apache.qpid.proton.engine.TransportException v, v;
java.util.logging.Level v, v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
java.lang.String v, v, v;
java.io.FileInputStream v, v;
java.security.cert.CertificateException v;
java.util.logging.Logger v, v;
java.io.FileNotFoundException v;
java.security.cert.Certificate v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.lang.String;
v = null;
label:
v = staticinvoke <java.security.cert.CertificateFactory: java.security.cert.CertificateFactory getInstance(java.lang.String)>("X.509");
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.lang.String)>(v);
v = v;
v = virtualinvoke v.<java.security.cert.CertificateFactory: java.security.cert.Certificate generateCertificate(java.io.InputStream)>(v);
label:
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void closeSafely(java.io.Closeable)>(v);
return v;
label:
v := @caughtexception;
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[])>("Failed to load certificate [\u]");
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
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[])>("Certificate file not found [\u]");
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void closeSafely(java.io.Closeable)>(v);
throw v;
catch java.security.cert.CertificateException from label to label with label;
catch java.io.FileNotFoundException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
java.util.Collection readCertificates(java.lang.String)
{
java.lang.Throwable v;
java.security.cert.CertificateFactory v;
org.apache.qpid.proton.engine.TransportException v, v;
java.util.logging.Level v, v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
java.lang.String v, v, v;
java.util.Collection v;
java.io.FileInputStream v, v;
java.security.cert.CertificateException v;
java.util.logging.Logger v, v;
java.io.FileNotFoundException v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.lang.String;
v = null;
label:
v = staticinvoke <java.security.cert.CertificateFactory: java.security.cert.CertificateFactory getInstance(java.lang.String)>("X.509");
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.lang.String)>(v);
v = v;
v = virtualinvoke v.<java.security.cert.CertificateFactory: java.util.Collection generateCertificates(java.io.InputStream)>(v);
label:
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void closeSafely(java.io.Closeable)>(v);
return v;
label:
v := @caughtexception;
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[])>("Failed to load certificates [\u]");
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
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[])>("Certificates file not found [\u]");
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void closeSafely(java.io.Closeable)>(v);
throw v;
catch java.security.cert.CertificateException from label to label with label;
catch java.io.FileNotFoundException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
java.security.PrivateKey readPrivateKey(java.lang.String, java.lang.String)
{
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
java.lang.reflect.Method v, v, v, v, v;
boolean v, v, v;
java.util.logging.Logger v;
java.lang.Exception v, v, v;
java.lang.Object[] v, v, v, v, v, v, v;
org.apache.qpid.proton.engine.TransportException v, v, v;
java.lang.reflect.Constructor v, v;
java.util.logging.Level v;
java.lang.String v, v, v, v, v, v;
char[] v;
java.lang.Class v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Exception bouncyCastleSetupException>;
if v == null goto label;
v = new org.apache.qpid.proton.engine.TransportException;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Exception bouncyCastleSetupException>;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>("BouncyCastle failed to load", v);
throw v;
label:
v = specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Object readPemObject(java.lang.String)>(v);
label:
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcaPEMKeyConverterCons>;
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void setProvider(java.lang.Object,java.lang.String)>(v, "BC");
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMEncryptedKeyPairClass>;
v = virtualinvoke v.<java.lang.Class: boolean isInstance(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcePEMDecryptorProviderBuilderCons>;
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method builderMethod>;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method decryptKeyPairMethod>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getKeyPairMethod>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
virtualinvoke v.<java.security.KeyPair: java.security.PrivateKey getPrivate()>();
goto label;
label:
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMKeyPairClass>;
v = virtualinvoke v.<java.lang.Class: boolean isInstance(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getKeyPairMethod>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
virtualinvoke v.<java.security.KeyPair: java.security.PrivateKey getPrivate()>();
goto label;
label:
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PrivateKeyInfoClass>;
v = virtualinvoke v.<java.lang.Class: boolean isInstance(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getPrivateKeyMethod>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("Unable to load PrivateKey, Unpexected Object [\u]");
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
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[])>("Failed to process key file [\u] - \u0001");
v = new org.apache.qpid.proton.engine.TransportException;
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return v;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.NoSuchMethodException from label to label with label;
catch java.lang.SecurityException from label to label with label;
}
private java.lang.Object readPemObject(java.lang.String)
{
java.lang.Throwable v;
java.lang.Object[] v, v;
org.apache.qpid.proton.engine.TransportException v;
java.lang.reflect.Constructor v;
java.util.logging.Level v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
java.lang.String v, v;
java.lang.reflect.Method v;
java.util.logging.Logger v;
java.lang.Exception v;
java.lang.Object v, v;
java.io.FileReader v, v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.lang.String;
v = null;
label:
v = new java.io.FileReader;
specialinvoke v.<java.io.FileReader: void <init>(java.lang.String)>(v);
v = v;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor pemParserCons>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method pemReadMethod>;
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void closeSafely(java.io.Closeable)>(v);
goto label;
label:
v := @caughtexception;
v = <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "Unable to read PEM object. Perhaps you need the unlimited strength libraries in <java-home>/jre/lib/security/ ?", v);
v = new org.apache.qpid.proton.engine.TransportException;
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[])>("Unable to read PEM object from file \u0001");
specialinvoke v.<org.apache.qpid.proton.engine.TransportException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
specialinvoke v.<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void closeSafely(java.io.Closeable)>(v);
throw v;
label:
return v;
catch java.io.IOException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void setProvider(java.lang.Object, java.lang.String) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException, java.lang.NoSuchMethodException, java.lang.SecurityException
{
java.lang.Object[] v;
java.lang.Class[] v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
java.lang.reflect.Method v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/lang/String;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("setProvider", v);
v = newarray (java.lang.Object)[1];
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
return;
}
private void closeSafely(java.io.Closeable)
{
java.io.Closeable v;
org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory v;
v := @this: org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory;
v := @parameter: java.io.Closeable;
return;
}
static void <clinit>()
{
java.lang.Throwable v;
java.lang.String[] v;
java.lang.reflect.Constructor v, v, v;
java.lang.String v;
java.lang.reflect.Method v, v, v, v, v;
java.lang.Class[] v, v, v, v, v, v, v, v;
java.util.logging.Logger v;
java.lang.Exception v;
java.util.List v;
java.lang.Class v, v, v, v, v, v, v, v;
v = class "Lorg/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>(v);
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.logging.Logger _logger> = v;
v = null;
v = null;
v = null;
v = null;
v = null;
v = null;
v = null;
v = null;
v = null;
v = null;
v = null;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.openssl.PEMParser");
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/io/Reader;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("readObject", v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter");
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.openssl.PEMKeyPair");
v = newarray (java.lang.Class)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("getKeyPair", v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.openssl.PEMDecryptorProvider");
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.openssl.PEMEncryptedKeyPair");
v = newarray (java.lang.Class)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("decryptKeyPair", v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder");
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Class)[1];
v[0] = class "[C";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("build", v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.bouncycastle.asn.pkcs.PrivateKeyInfo");
v = newarray (java.lang.Class)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("getPrivateKey", v);
staticinvoke <org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: void registerBouncyCastleProvider()>();
label:
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor pemParserCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method pemReadMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcaPEMKeyConverterCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMKeyPairClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getKeyPairMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getPrivateKeyMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMEncryptedKeyPairClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method decryptKeyPairMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcePEMDecryptorProviderBuilderCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method builderMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PrivateKeyInfoClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Exception bouncyCastleSetupException> = null;
goto label;
label:
v := @caughtexception;
label:
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor pemParserCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method pemReadMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcaPEMKeyConverterCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMKeyPairClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getKeyPairMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getPrivateKeyMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMEncryptedKeyPairClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method decryptKeyPairMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcePEMDecryptorProviderBuilderCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method builderMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PrivateKeyInfoClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Exception bouncyCastleSetupException> = v;
goto label;
label:
v := @caughtexception;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor pemParserCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method pemReadMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcaPEMKeyConverterCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMKeyPairClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getKeyPairMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method getPrivateKeyMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PEMEncryptedKeyPairClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method decryptKeyPairMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Constructor JcePEMDecryptorProviderBuilderCons> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.reflect.Method builderMethod> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Class PrivateKeyInfoClass> = v;
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.lang.Exception bouncyCastleSetupException> = null;
throw v;
label:
v = newarray (java.lang.String)[4];
v[0] = "TLS_DH_anon_WITH_AES_128_CBC_SHA";
v[1] = "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA";
v[2] = "SSL_DH_anon_WITH_DES_CBC_SHA";
v[3] = "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA";
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
<org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory: java.util.List ANONYMOUS_CIPHER_SUITES> = v;
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
}