public class com.google.crypto.tink.subtle.SubtleUtil
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.google.crypto.tink.subtle.SubtleUtil
super_class: java.lang.Object
{
private static volatile int[] $SWITCH_TABLE$com$google$crypto$tink$subtle$Enums$HashType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/crypto/tink/subtle/SubtleUtil;
public static java.lang.String toEcdsaAlgo(com.google.crypto.tink.subtle.Enums$HashType);
descriptor: (Lcom/google/crypto/tink/subtle/Enums$HashType;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.google.crypto.tink.subtle.Validators.validateSignatureHash:(Lcom/google/crypto/tink/subtle/Enums$HashType;)V
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "withECDSA"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 hash Lcom/google/crypto/tink/subtle/Enums$HashType;
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
hash
public static java.lang.String toRsaSsaPkcs1Algo(com.google.crypto.tink.subtle.Enums$HashType);
descriptor: (Lcom/google/crypto/tink/subtle/Enums$HashType;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.google.crypto.tink.subtle.Validators.validateSignatureHash:(Lcom/google/crypto/tink/subtle/Enums$HashType;)V
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "withRSA"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 hash Lcom/google/crypto/tink/subtle/Enums$HashType;
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
hash
public static java.lang.String toDigestAlgo(com.google.crypto.tink.subtle.Enums$HashType);
descriptor: (Lcom/google/crypto/tink/subtle/Enums$HashType;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: invokestatic com.google.crypto.tink.subtle.SubtleUtil.$SWITCH_TABLE$com$google$crypto$tink$subtle$Enums$HashType:()[I
aload 0
invokevirtual com.google.crypto.tink.subtle.Enums$HashType.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 1
2: 2
3: 3
4: 4
default: 5
}
1: StackMap locals:
StackMap stack:
ldc "SHA-1"
areturn
2: StackMap locals:
StackMap stack:
ldc "SHA-256"
areturn
3: StackMap locals:
StackMap stack:
ldc "SHA-384"
areturn
4: StackMap locals:
StackMap stack:
ldc "SHA-512"
areturn
5: StackMap locals:
StackMap stack:
new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported hash "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 hash Lcom/google/crypto/tink/subtle/Enums$HashType;
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
hash
public static boolean isAndroid();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "android.app.Application"
iconst_0
aconst_null
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
pop
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack: java.lang.Exception
pop
3: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public static int androidApiLevel();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "android.os.Build$VERSION"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 0
start local 0 1: aload 0
ldc "SDK_INT"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.getInt:(Ljava/lang/Object;)I
2: ireturn
end local 0 3: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
pop
4: iconst_m1
ireturn
LocalVariableTable:
Start End Slot Name Signature
1 3 0 buildVersion Ljava/lang/Class<*>;
Exception table:
from to target type
0 2 3 Class java.lang.ClassNotFoundException
0 2 3 Class java.lang.NoSuchFieldException
0 2 3 Class java.lang.IllegalAccessException
public static java.math.BigInteger bytes2Integer(byte[]);
descriptor: ([B)Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.math.BigInteger
dup
iconst_1
aload 0
invokespecial java.math.BigInteger.<init>:(I[B)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bs [B
MethodParameters:
Name Flags
bs
public static byte[] integer2Bytes(java.math.BigInteger, int);
descriptor: (Ljava/math/BigInteger;I)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 2
start local 2 1: aload 2
arraylength
iload 1
if_icmpne 3
2: aload 2
areturn
3: StackMap locals: byte[]
StackMap stack:
aload 2
arraylength
iload 1
iconst_1
iadd
if_icmple 5
4: new java.security.GeneralSecurityException
dup
ldc "integer too large"
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 2
arraylength
iload 1
iconst_1
iadd
if_icmpne 9
6: aload 2
iconst_0
baload
ifne 8
7: aload 2
iconst_1
aload 2
arraylength
invokestatic java.util.Arrays.copyOfRange:([BII)[B
areturn
8: StackMap locals:
StackMap stack:
new java.security.GeneralSecurityException
dup
ldc "integer too large"
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iload 1
newarray 8
astore 3
start local 3 10: aload 2
iconst_0
aload 3
iload 1
aload 2
arraylength
isub
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 num Ljava/math/BigInteger;
0 12 1 intendedLength I
1 12 2 b [B
10 12 3 res [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
num
intendedLength
public static byte[] mgf1(byte[], int, com.google.crypto.tink.subtle.Enums$HashType);
descriptor: ([BILcom/google/crypto/tink/subtle/Enums$HashType;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.google.crypto.tink.subtle.EngineFactory.MESSAGE_DIGEST:Lcom/google/crypto/tink/subtle/EngineFactory;
aload 2
invokestatic com.google.crypto.tink.subtle.SubtleUtil.toDigestAlgo:(Lcom/google/crypto/tink/subtle/Enums$HashType;)Ljava/lang/String;
invokevirtual com.google.crypto.tink.subtle.EngineFactory.getInstance:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.security.MessageDigest
1: astore 3
start local 3 2: aload 3
invokevirtual java.security.MessageDigest.getDigestLength:()I
istore 4
start local 4 3: iload 1
newarray 8
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 14
7: StackMap locals: byte[] int com.google.crypto.tink.subtle.Enums$HashType java.security.MessageDigest int byte[] int int
StackMap stack:
aload 3
invokevirtual java.security.MessageDigest.reset:()V
8: aload 3
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
9: aload 3
iload 7
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
iconst_4
invokestatic com.google.crypto.tink.subtle.SubtleUtil.integer2Bytes:(Ljava/math/BigInteger;I)[B
invokevirtual java.security.MessageDigest.update:([B)V
10: aload 3
invokevirtual java.security.MessageDigest.digest:()[B
astore 8
start local 8 11: aload 8
iconst_0
aload 5
iload 6
aload 8
arraylength
aload 5
arraylength
iload 6
isub
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: iload 6
aload 8
arraylength
iadd
istore 6
end local 8 13: iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iload 1
iconst_1
isub
iload 4
idiv
if_icmple 7
end local 7 15: aload 5
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 mgfSeed [B
0 16 1 maskLen I
0 16 2 mgfHash Lcom/google/crypto/tink/subtle/Enums$HashType;
2 16 3 digest Ljava/security/MessageDigest;
3 16 4 hLen I
4 16 5 t [B
5 16 6 tPos I
6 15 7 counter I
11 13 8 c [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
mgfSeed
maskLen
mgfHash
public static void putAsUnsigedInt(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lconst_0
lload 1
lcmp
ifgt 1
lload 1
ldc 4294967296
lcmp
iflt 2
1: StackMap locals:
StackMap stack:
new java.security.GeneralSecurityException
dup
ldc "Index out of range"
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
lload 1
l2i
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 buffer Ljava/nio/ByteBuffer;
0 4 1 value J
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
buffer
value
static int[] $SWITCH_TABLE$com$google$crypto$tink$subtle$Enums$HashType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.google.crypto.tink.subtle.SubtleUtil.$SWITCH_TABLE$com$google$crypto$tink$subtle$Enums$HashType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.google.crypto.tink.subtle.Enums$HashType.values:()[Lcom/google/crypto/tink/subtle/Enums$HashType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.google.crypto.tink.subtle.Enums$HashType.SHA1:Lcom/google/crypto/tink/subtle/Enums$HashType;
invokevirtual com.google.crypto.tink.subtle.Enums$HashType.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.google.crypto.tink.subtle.Enums$HashType.SHA256:Lcom/google/crypto/tink/subtle/Enums$HashType;
invokevirtual com.google.crypto.tink.subtle.Enums$HashType.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.google.crypto.tink.subtle.Enums$HashType.SHA384:Lcom/google/crypto/tink/subtle/Enums$HashType;
invokevirtual com.google.crypto.tink.subtle.Enums$HashType.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.google.crypto.tink.subtle.Enums$HashType.SHA512:Lcom/google/crypto/tink/subtle/Enums$HashType;
invokevirtual com.google.crypto.tink.subtle.Enums$HashType.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic com.google.crypto.tink.subtle.SubtleUtil.$SWITCH_TABLE$com$google$crypto$tink$subtle$Enums$HashType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
SourceFile: "SubtleUtil.java"
InnerClasses:
public final HashType = com.google.crypto.tink.subtle.Enums$HashType of com.google.crypto.tink.subtle.Enums