public class org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter extends java.lang.Object
{
private static final java.util.regex.Pattern EQUAL;
private static final java.util.regex.Pattern COMMA;
private static final java.util.regex.Pattern EQUAL_TWO_C;
private static final java.util.regex.Pattern EQUAL_THREE_D;
private final java.security.MessageDigest messageDigest;
private final javax.crypto.Mac mac;
private final java.security.SecureRandom random;
public void <init>(org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMechanism) throws java.security.NoSuchAlgorithmException
{
java.security.SecureRandom v;
java.security.MessageDigest v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMechanism v;
javax.crypto.Mac v;
java.lang.String v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMechanism;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMechanism: java.lang.String hashAlgorithm()>();
v = staticinvoke <java.security.MessageDigest: java.security.MessageDigest getInstance(java.lang.String)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.security.MessageDigest messageDigest> = v;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMechanism: java.lang.String macAlgorithm()>();
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac> = v;
v = new java.security.SecureRandom;
specialinvoke v.<java.security.SecureRandom: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.security.SecureRandom random> = v;
return;
}
public byte[] hmac(byte[], byte[]) throws java.security.InvalidKeyException
{
byte[] v, v, v;
javax.crypto.Mac v, v, v;
javax.crypto.spec.SecretKeySpec v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: byte[];
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
v = new javax.crypto.spec.SecretKeySpec;
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
v = virtualinvoke v.<javax.crypto.Mac: java.lang.String getAlgorithm()>();
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, v);
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
v = virtualinvoke v.<javax.crypto.Mac: byte[] doFinal(byte[])>(v);
return v;
}
public byte[] hash(byte[])
{
byte[] v, v;
java.security.MessageDigest v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.security.MessageDigest messageDigest>;
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest(byte[])>(v);
return v;
}
public byte[] xor(byte[], byte[])
{
byte[] v, v, v;
java.lang.IllegalArgumentException v;
byte v, v, v;
int v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: byte[];
v = lengthof v;
v = lengthof v;
if v == v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Argument arrays must be of the same length");
throw v;
label:
v = lengthof v;
v = newarray (byte)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v[v];
v = v ^ v;
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public byte[] hi(byte[], byte[], int) throws java.security.InvalidKeyException
{
byte[] v, v, v, v, v, v, v;
javax.crypto.spec.SecretKeySpec v;
int v, v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
javax.crypto.Mac v, v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: byte[];
v := @parameter: int;
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
v = new javax.crypto.spec.SecretKeySpec;
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
v = virtualinvoke v.<javax.crypto.Mac: java.lang.String getAlgorithm()>();
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, v);
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
virtualinvoke v.<javax.crypto.Mac: void update(byte[])>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: javax.crypto.Mac mac>;
v = newarray (byte)[4];
v[0] = 0;
v[1] = 0;
v[2] = 0;
v[3] = 1;
v = virtualinvoke v.<javax.crypto.Mac: byte[] doFinal(byte[])>(v);
v = v;
v = v;
v = 2;
label:
if v > v goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hmac(byte[],byte[])>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] xor(byte[],byte[])>(v, v);
v = v;
v = v + 1;
goto label;
label:
return v;
}
public byte[] normalize(java.lang.String)
{
byte[] v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] toBytes(java.lang.String)>(v);
return v;
}
public byte[] saltedPassword(java.lang.String, byte[], int) throws java.security.InvalidKeyException
{
byte[] v, v, v;
int v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v := @parameter: int;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] normalize(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hi(byte[],byte[],int)>(v, v, v);
return v;
}
public byte[] clientKey(byte[]) throws java.security.InvalidKeyException
{
byte[] v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] toBytes(java.lang.String)>("Client Key");
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hmac(byte[],byte[])>(v, v);
return v;
}
public byte[] storedKey(byte[])
{
byte[] v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hash(byte[])>(v);
return v;
}
public java.lang.String saslName(java.lang.String)
{
java.util.regex.Matcher v, v;
java.lang.String v, v, v, v, v;
java.util.regex.Pattern v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v = <org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = staticinvoke <java.util.regex.Matcher: java.lang.String quoteReplacement(java.lang.String)>("=3D");
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String replaceAll(java.lang.String)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern COMMA>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = staticinvoke <java.util.regex.Matcher: java.lang.String quoteReplacement(java.lang.String)>("=2C");
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String replaceAll(java.lang.String)>(v);
return v;
}
public java.lang.String username(java.lang.String)
{
java.util.regex.Matcher v, v, v;
int v;
java.lang.String v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
java.lang.IllegalArgumentException v;
java.util.regex.Pattern v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v = <org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL_TWO_C>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = staticinvoke <java.util.regex.Matcher: java.lang.String quoteReplacement(java.lang.String)>(",");
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String replaceAll(java.lang.String)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL_THREE_D>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = staticinvoke <java.util.regex.Matcher: java.lang.String quoteReplacement(java.lang.String)>("");
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String replaceAll(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(61);
if v < 0 goto label;
v = new java.lang.IllegalArgumentException;
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[])>("Invalid username: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL_THREE_D>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = staticinvoke <java.util.regex.Matcher: java.lang.String quoteReplacement(java.lang.String)>("=");
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String replaceAll(java.lang.String)>(v);
return v;
}
public java.lang.String authMessage(java.lang.String, java.lang.String, java.lang.String)
{
java.lang.String v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(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,\u,\u0001");
return v;
}
public byte[] clientSignature(byte[], org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage) throws java.security.InvalidKeyException
{
byte[] v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] authMessage(org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage,org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage,org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage)>(v, v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hmac(byte[],byte[])>(v, v);
return v;
}
public byte[] clientProof(byte[], org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage) throws java.security.InvalidKeyException
{
byte[] v, v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] clientKey(byte[])>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hash(byte[])>(v);
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] authMessage(org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage,org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage,org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage)>(v, v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hmac(byte[],byte[])>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] xor(byte[],byte[])>(v, v);
return v;
}
private byte[] authMessage(org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage)
{
byte[] v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v;
java.lang.String v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage: java.lang.String clientFirstMessageBare()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage: java.lang.String toMessage()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage: java.lang.String clientFinalMessageWithoutProof()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.lang.String authMessage(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] toBytes(java.lang.String)>(v);
return v;
}
public byte[] storedKey(byte[], byte[])
{
byte[] v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: byte[];
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] xor(byte[],byte[])>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hash(byte[])>(v);
return v;
}
public byte[] serverKey(byte[]) throws java.security.InvalidKeyException
{
byte[] v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] toBytes(java.lang.String)>("Server Key");
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hmac(byte[],byte[])>(v, v);
return v;
}
public byte[] serverSignature(byte[], org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage, org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage) throws java.security.InvalidKeyException
{
byte[] v, v, v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: byte[];
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] authMessage(org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFirstMessage,org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ServerFirstMessage,org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramMessages$ClientFinalMessage)>(v, v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] hmac(byte[],byte[])>(v, v);
return v;
}
public java.lang.String secureRandomString()
{
java.security.SecureRandom v;
java.math.BigInteger v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v = new java.math.BigInteger;
v = v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.security.SecureRandom random>;
specialinvoke v.<java.math.BigInteger: void <init>(int,java.util.Random)>(130, v);
v = virtualinvoke v.<java.math.BigInteger: java.lang.String toString(int)>(36);
return v;
}
public byte[] secureRandomBytes()
{
byte[] v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.lang.String secureRandomString()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] toBytes(java.lang.String)>(v);
return v;
}
public byte[] toBytes(java.lang.String)
{
byte[] v;
java.nio.charset.Charset v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
return v;
}
public org.apache.kafkaesqueesqueesque.common.security.scram.ScramCredential generateCredential(java.lang.String, int)
{
byte[] v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.KafkaException v;
int v;
java.security.InvalidKeyException v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.scram.ScramCredential v;
org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter;
v := @parameter: java.lang.String;
v := @parameter: int;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] secureRandomBytes()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] saltedPassword(java.lang.String,byte[],int)>(v, v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] clientKey(byte[])>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] storedKey(byte[])>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: byte[] serverKey(byte[])>(v);
v = new org.apache.kafkaesqueesqueesque.common.security.scram.ScramCredential;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.scram.ScramCredential: void <init>(byte[],byte[],byte[],int)>(v, v, v, v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.kafkaesqueesqueesque.common.KafkaException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.KafkaException: void <init>(java.lang.String,java.lang.Throwable)>("Could not create credential", v);
throw v;
catch java.security.InvalidKeyException from label to label with label;
}
static void <clinit>()
{
java.util.regex.Pattern v, v, v, v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>("=", 16);
<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>(",", 16);
<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern COMMA> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>("=2C", 16);
<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL_TWO_C> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>("=3D", 16);
<org.apache.kafkaesqueesqueesque.common.security.scram.internals.ScramFormatter: java.util.regex.Pattern EQUAL_THREE_D> = v;
return;
}
}