public class org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient extends java.lang.Object implements javax.security.sasl.SaslClient
{
private static final org.slf4j.Logger log;
private final org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism;
private final javax.security.auth.callback.CallbackHandler callbackHandler;
private final org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter;
private java.lang.String clientNonce;
private org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State state;
private byte[] saltedPassword;
private org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage clientFirstMessage;
private org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage;
private org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage clientFinalMessage;
public void <init>(org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism, javax.security.auth.callback.CallbackHandler) throws java.security.NoSuchAlgorithmException
{
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism v;
javax.security.auth.callback.CallbackHandler v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism;
v := @parameter: javax.security.auth.callback.CallbackHandler;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism> = v;
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: javax.security.auth.callback.CallbackHandler callbackHandler> = v;
v = new org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: void <init>(org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism)>(v);
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter> = v;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State SEND_CLIENT_FIRST_MESSAGE>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: void setState(org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)>(v);
return;
}
public java.lang.String getMechanismName()
{
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism v;
java.lang.String v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism: java.lang.String mechanismName()>();
return v;
}
public boolean hasInitialResponse()
{
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
return 1;
}
public byte[] evaluateChallenge(byte[]) throws javax.security.sasl.SaslException
{
byte[] v, v, v, v;
javax.security.auth.callback.UnsupportedCallbackException v;
javax.security.sasl.SaslException v, v, v, v, v, v, v;
java.util.Map v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
java.lang.Throwable v, v;
javax.security.auth.callback.Callback[] v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v, v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State v, v, v, v, v, v;
javax.security.auth.callback.NameCallback v;
char[] v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter v, v;
javax.security.auth.callback.CallbackHandler v, v, v, v;
int[] v;
boolean v;
javax.security.auth.callback.PasswordCallback v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism v, v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFinalMessage v;
int v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v, v;
org.slf4j.Logger v;
org.apache.kafkaesqueesque.common.security.scram.ScramExtensionsCallback v;
org.apache.kafkaesqueesque.common.errors.IllegalSaslStateException v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: byte[];
label:
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$1: int[] $SwitchMap$org$apache$kafka$common$security$scram$internals$ScramSaslClient$State>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State state>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
if v == null goto label;
v = lengthof v;
if v == 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Expected empty challenge");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: java.lang.String secureRandomString()>();
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: java.lang.String clientNonce> = v;
v = new javax.security.auth.callback.NameCallback;
specialinvoke v.<javax.security.auth.callback.NameCallback: void <init>(java.lang.String)>("Name:");
v = new org.apache.kafkaesqueesque.common.security.scram.ScramExtensionsCallback;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.ScramExtensionsCallback: void <init>()>();
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: javax.security.auth.callback.CallbackHandler callbackHandler>;
v = newarray (javax.security.auth.callback.Callback)[1];
v[0] = v;
interfaceinvoke v.<javax.security.auth.callback.CallbackHandler: void handle(javax.security.auth.callback.Callback[])>(v);
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: javax.security.auth.callback.CallbackHandler callbackHandler>;
v = newarray (javax.security.auth.callback.Callback)[1];
v[0] = v;
interfaceinvoke v.<javax.security.auth.callback.CallbackHandler: void handle(javax.security.auth.callback.Callback[])>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: javax.security.auth.callback.CallbackHandler callbackHandler>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Extensions callback is not supported by client callback handler {}, no extensions will be added", v);
label:
goto label;
label:
v := @caughtexception;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String,java.lang.Throwable)>("User name or extensions could not be obtained", v);
throw v;
label:
v = virtualinvoke v.<javax.security.auth.callback.NameCallback: java.lang.String getName()>();
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: java.lang.String saslName(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.ScramExtensionsCallback: java.util.Map extensions()>();
v = new org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: java.lang.String clientNonce>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage: void <init>(java.lang.String,java.lang.String,java.util.Map)>(v, v, v);
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage clientFirstMessage> = v;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State RECEIVE_SERVER_FIRST_MESSAGE>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: void setState(org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)>(v);
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage clientFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage: byte[] toBytes()>();
label:
return v;
label:
v = new org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: void <init>(byte[])>(v);
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage> = v;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: java.lang.String nonce()>();
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: java.lang.String clientNonce>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v != 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Invalid server nonce: does not start with client nonce");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: int iterations()>();
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism: int minIterations()>();
if v >= v goto label;
v = new javax.security.sasl.SaslException;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: int iterations()>();
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism: int minIterations()>();
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int,org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism)>(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[])>("Requested iterations \u is less than the minimum \u for \u0001");
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new javax.security.auth.callback.PasswordCallback;
specialinvoke v.<javax.security.auth.callback.PasswordCallback: void <init>(java.lang.String,boolean)>("Password:", 0);
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: javax.security.auth.callback.CallbackHandler callbackHandler>;
v = newarray (javax.security.auth.callback.Callback)[1];
v[0] = v;
interfaceinvoke v.<javax.security.auth.callback.CallbackHandler: void handle(javax.security.auth.callback.Callback[])>(v);
label:
goto label;
label:
v := @caughtexception;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String,java.lang.Throwable)>("User name could not be obtained", v);
throw v;
label:
v = virtualinvoke v.<javax.security.auth.callback.PasswordCallback: char[] getPassword()>();
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage handleServerFirstMessage(char[])>(v);
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage clientFinalMessage> = v;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State RECEIVE_SERVER_FINAL_MESSAGE>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: void setState(org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)>(v);
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage clientFinalMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage: byte[] toBytes()>();
label:
return v;
label:
v = new org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFinalMessage;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFinalMessage: void <init>(byte[])>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFinalMessage: java.lang.String error()>();
if v == null goto label;
v = new javax.security.sasl.SaslException;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFinalMessage: java.lang.String error()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism,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[])>("Sasl authentication using \u failed with error: \u0001");
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFinalMessage: byte[] serverSignature()>();
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: void handleServerFinalMessage(byte[])>(v);
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State COMPLETE>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: void setState(org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)>(v);
label:
return null;
label:
v = new org.apache.kafkaesqueesque.common.errors.IllegalSaslStateException;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State state>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)>(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[])>("Unexpected challenge in Sasl client state \u0001");
specialinvoke v.<org.apache.kafkaesqueesque.common.errors.IllegalSaslStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State FAILED>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: void setState(org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)>(v);
throw v;
catch javax.security.auth.callback.UnsupportedCallbackException 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;
catch javax.security.sasl.SaslException from label to label with label;
catch javax.security.sasl.SaslException from label to label with label;
catch javax.security.sasl.SaslException from label to label with label;
}
public boolean isComplete()
{
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State state>;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State COMPLETE>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public byte[] unwrap(byte[], int, int)
{
byte[] v, v;
java.lang.IllegalStateException v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
int v, v, v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: boolean isComplete()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
v = v + v;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, v);
return v;
}
public byte[] wrap(byte[], int, int)
{
byte[] v, v;
java.lang.IllegalStateException v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
int v, v, v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: boolean isComplete()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
v = v + v;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, v);
return v;
}
public java.lang.Object getNegotiatedProperty(java.lang.String)
{
java.lang.IllegalStateException v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
java.lang.String v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: boolean isComplete()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
return null;
}
public void dispose()
{
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
return;
}
private void setState(org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State)
{
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism v;
org.slf4j.Logger v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State;
v = <org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMechanism mechanism>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Setting SASL/{} client state to {}", v, v);
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient$State state> = v;
return;
}
private org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage handleServerFirstMessage(char[]) throws javax.security.sasl.SaslException
{
byte[] v, v, v, v, v, v;
javax.security.sasl.SaslException v;
java.nio.charset.Charset v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v;
int v;
java.lang.String v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v, v, v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
char[] v;
java.security.InvalidKeyException v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter v, v, v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: char[];
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: byte[] normalize(java.lang.String)>(v);
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: byte[] salt()>();
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: int iterations()>();
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: byte[] hi(byte[],byte[],int)>(v, v, v);
v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: byte[] saltedPassword> = v;
v = new org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage;
v = "n,,";
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: java.lang.String nonce()>();
specialinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage: void <init>(byte[],java.lang.String)>(v, v);
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: byte[] saltedPassword>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage clientFirstMessage>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: byte[] clientProof(byte[],org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage,org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage,org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage)>(v, v, v, v);
virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage: void proof(byte[])>(v);
label:
return v;
label:
v := @caughtexception;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String,java.lang.Throwable)>("Client final message could not be created", v);
throw v;
catch java.security.InvalidKeyException from label to label with label;
}
private void handleServerFinalMessage(byte[]) throws javax.security.sasl.SaslException
{
byte[] v, v, v, v;
javax.security.sasl.SaslException v, v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v;
java.security.InvalidKeyException v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v;
org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter v, v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient;
v := @parameter: byte[];
label:
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: byte[] saltedPassword>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: byte[] serverKey(byte[])>(v);
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter formatter>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage clientFirstMessage>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage serverFirstMessage>;
v = v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage clientFinalMessage>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.scram.internals.ScramFormatter: byte[] serverSignature(byte[],org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage,org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage,org.apache.kafkaesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage)>(v, v, v, v);
v = staticinvoke <java.util.Arrays: boolean equals(byte[],byte[])>(v, v);
if v != 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Invalid server signature in server final message");
throw v;
label:
v := @caughtexception;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String,java.lang.Throwable)>("Sasl server signature verification failed", v);
throw v;
label:
return;
catch java.security.InvalidKeyException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/kafkaesqueesque/common/security/scram/internals/ScramSaslClient;");
<org.apache.kafkaesqueesque.common.security.scram.internals.ScramSaslClient: org.slf4j.Logger log> = v;
return;
}
}