public abstract class org.springframework.util.DigestUtils extends java.lang.Object
{
private static final java.lang.String MD5_ALGORITHM_NAME;
private static final char[] HEX_CHARS;
public void <init>()
{
org.springframework.util.DigestUtils v;
v := @this: org.springframework.util.DigestUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static byte[] md5Digest(byte[])
{
byte[] v, v;
v := @parameter: byte[];
v = staticinvoke <org.springframework.util.DigestUtils: byte[] digest(java.lang.String,byte[])>("MD5", v);
return v;
}
public static byte[] md5Digest(java.io.InputStream) throws java.io.IOException
{
byte[] v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v = staticinvoke <org.springframework.util.DigestUtils: byte[] digest(java.lang.String,java.io.InputStream)>("MD5", v);
return v;
}
public static java.lang.String md5DigestAsHex(byte[])
{
byte[] v;
java.lang.String v;
v := @parameter: byte[];
v = staticinvoke <org.springframework.util.DigestUtils: java.lang.String digestAsHexString(java.lang.String,byte[])>("MD5", v);
return v;
}
public static java.lang.String md5DigestAsHex(java.io.InputStream) throws java.io.IOException
{
java.lang.String v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v = staticinvoke <org.springframework.util.DigestUtils: java.lang.String digestAsHexString(java.lang.String,java.io.InputStream)>("MD5", v);
return v;
}
public static java.lang.StringBuilder appendMd5DigestAsHex(byte[], java.lang.StringBuilder)
{
byte[] v;
java.lang.StringBuilder v, v;
v := @parameter: byte[];
v := @parameter: java.lang.StringBuilder;
v = staticinvoke <org.springframework.util.DigestUtils: java.lang.StringBuilder appendDigestAsHex(java.lang.String,byte[],java.lang.StringBuilder)>("MD5", v, v);
return v;
}
public static java.lang.StringBuilder appendMd5DigestAsHex(java.io.InputStream, java.lang.StringBuilder) throws java.io.IOException
{
java.lang.StringBuilder v, v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v := @parameter: java.lang.StringBuilder;
v = staticinvoke <org.springframework.util.DigestUtils: java.lang.StringBuilder appendDigestAsHex(java.lang.String,java.io.InputStream,java.lang.StringBuilder)>("MD5", v, v);
return v;
}
private static java.security.MessageDigest getDigest(java.lang.String)
{
java.lang.IllegalStateException v;
java.security.MessageDigest v;
java.security.NoSuchAlgorithmException v;
java.lang.String v, v;
v := @parameter: java.lang.String;
label:
v = staticinvoke <java.security.MessageDigest: java.security.MessageDigest getInstance(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
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[])>("Could not find MessageDigest with algorithm \"\u0001\"");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.security.NoSuchAlgorithmException from label to label with label;
}
private static byte[] digest(java.lang.String, byte[])
{
byte[] v, v;
java.security.MessageDigest v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v = staticinvoke <org.springframework.util.DigestUtils: java.security.MessageDigest getDigest(java.lang.String)>(v);
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest(byte[])>(v);
return v;
}
private static byte[] digest(java.lang.String, java.io.InputStream) throws java.io.IOException
{
byte[] v, v, v;
java.security.MessageDigest v;
int v, v;
java.lang.String v;
boolean v;
java.io.InputStream v;
v := @parameter: java.lang.String;
v := @parameter: java.io.InputStream;
v = staticinvoke <org.springframework.util.DigestUtils: java.security.MessageDigest getDigest(java.lang.String)>(v);
v = v instanceof org.springframework.util.UpdateMessageDigestInputStream;
if v == 0 goto label;
virtualinvoke v.<org.springframework.util.UpdateMessageDigestInputStream: void updateMessageDigest(java.security.MessageDigest)>(v);
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest()>();
return v;
label:
v = newarray (byte)[4096];
label:
v = virtualinvoke v.<java.io.InputStream: int read(byte[])>(v);
v = (int) -1;
if v == v goto label;
virtualinvoke v.<java.security.MessageDigest: void update(byte[],int,int)>(v, 0, v);
goto label;
label:
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest()>();
return v;
}
private static java.lang.String digestAsHexString(java.lang.String, byte[])
{
byte[] v;
char[] v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v = staticinvoke <org.springframework.util.DigestUtils: char[] digestAsHexChars(java.lang.String,byte[])>(v, v);
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
return v;
}
private static java.lang.String digestAsHexString(java.lang.String, java.io.InputStream) throws java.io.IOException
{
char[] v;
java.lang.String v, v;
java.io.InputStream v;
v := @parameter: java.lang.String;
v := @parameter: java.io.InputStream;
v = staticinvoke <org.springframework.util.DigestUtils: char[] digestAsHexChars(java.lang.String,java.io.InputStream)>(v, v);
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
return v;
}
private static java.lang.StringBuilder appendDigestAsHex(java.lang.String, byte[], java.lang.StringBuilder)
{
byte[] v;
char[] v;
java.lang.StringBuilder v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v := @parameter: java.lang.StringBuilder;
v = staticinvoke <org.springframework.util.DigestUtils: char[] digestAsHexChars(java.lang.String,byte[])>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char[])>(v);
return v;
}
private static java.lang.StringBuilder appendDigestAsHex(java.lang.String, java.io.InputStream, java.lang.StringBuilder) throws java.io.IOException
{
char[] v;
java.lang.StringBuilder v, v;
java.lang.String v;
java.io.InputStream v;
v := @parameter: java.lang.String;
v := @parameter: java.io.InputStream;
v := @parameter: java.lang.StringBuilder;
v = staticinvoke <org.springframework.util.DigestUtils: char[] digestAsHexChars(java.lang.String,java.io.InputStream)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char[])>(v);
return v;
}
private static char[] digestAsHexChars(java.lang.String, byte[])
{
byte[] v, v;
char[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v = staticinvoke <org.springframework.util.DigestUtils: byte[] digest(java.lang.String,byte[])>(v, v);
v = staticinvoke <org.springframework.util.DigestUtils: char[] encodeHex(byte[])>(v);
return v;
}
private static char[] digestAsHexChars(java.lang.String, java.io.InputStream) throws java.io.IOException
{
byte[] v;
char[] v;
java.lang.String v;
java.io.InputStream v;
v := @parameter: java.lang.String;
v := @parameter: java.io.InputStream;
v = staticinvoke <org.springframework.util.DigestUtils: byte[] digest(java.lang.String,java.io.InputStream)>(v, v);
v = staticinvoke <org.springframework.util.DigestUtils: char[] encodeHex(byte[])>(v);
return v;
}
private static char[] encodeHex(byte[])
{
byte[] v;
char v, v;
byte v, v;
int v, v, v, v, v, v;
char[] v, v, v;
v := @parameter: byte[];
v = newarray (char)[32];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v / 2;
v = v[v];
v = <org.springframework.util.DigestUtils: char[] HEX_CHARS>;
v = v >>> 4;
v = v & 15;
v = v[v];
v[v] = v;
v = v + 1;
v = <org.springframework.util.DigestUtils: char[] HEX_CHARS>;
v = v & 15;
v = v[v];
v[v] = v;
v = v + 2;
goto label;
label:
return v;
}
static void <clinit>()
{
char[] v;
v = newarray (char)[16];
v[0] = 48;
v[1] = 49;
v[2] = 50;
v[3] = 51;
v[4] = 52;
v[5] = 53;
v[6] = 54;
v[7] = 55;
v[8] = 56;
v[9] = 57;
v[10] = 97;
v[11] = 98;
v[12] = 99;
v[13] = 100;
v[14] = 101;
v[15] = 102;
<org.springframework.util.DigestUtils: char[] HEX_CHARS> = v;
return;
}
}