public class org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions
super_class: java.lang.Object
{
static final long kOffset;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final long lastKeyOffset;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.Class<?> AESCryptClass;
descriptor: Ljava/lang/Class;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/Class<*>;
static final int AES_BLOCK_SIZE_IN_BYTES;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 0
start local 0 1: ldc "com.sun.crypto.provider.AESCrypt"
iconst_1
aload 0
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
putstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.AESCryptClass:Ljava/lang/Class;
2: getstatic org.graalvm.compiler.hotspot.replacements.UnsafeAccess.UNSAFE:Lsun/misc/Unsafe;
getstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.AESCryptClass:Ljava/lang/Class;
ldc "K"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.kOffset:J
3: getstatic org.graalvm.compiler.hotspot.replacements.UnsafeAccess.UNSAFE:Lsun/misc/Unsafe;
getstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.AESCryptClass:Ljava/lang/Class;
ldc "lastKey"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.lastKeyOffset:J
end local 0 4: goto 7
StackMap locals:
StackMap stack: java.lang.Exception
5: astore 0
start local 0 6: new org.graalvm.compiler.debug.GraalError
dup
aload 0
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 7: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
1 4 0 cl Ljava/lang/ClassLoader;
6 7 0 ex Ljava/lang/Exception;
Exception table:
from to target type
0 4 5 Class java.lang.Exception
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 Lorg/graalvm/compiler/hotspot/replacements/AESCryptSubstitutions;
static void encryptBlock(java.lang.Object, byte[], int, byte[], int);
descriptor: (Ljava/lang/Object;[BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
iconst_1
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.crypt:(Ljava/lang/Object;[BI[BIZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rcvr Ljava/lang/Object;
0 2 1 in [B
0 2 2 inOffset I
0 2 3 out [B
0 2 4 outOffset I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
static void implEncryptBlock(java.lang.Object, byte[], int, byte[], int);
descriptor: (Ljava/lang/Object;[BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
iconst_1
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.crypt:(Ljava/lang/Object;[BI[BIZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rcvr Ljava/lang/Object;
0 2 1 in [B
0 2 2 inOffset I
0 2 3 out [B
0 2 4 outOffset I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
static void decryptBlock(java.lang.Object, byte[], int, byte[], int);
descriptor: (Ljava/lang/Object;[BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
iconst_0
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.crypt:(Ljava/lang/Object;[BI[BIZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rcvr Ljava/lang/Object;
0 2 1 in [B
0 2 2 inOffset I
0 2 3 out [B
0 2 4 outOffset I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
static void implDecryptBlock(java.lang.Object, byte[], int, byte[], int);
descriptor: (Ljava/lang/Object;[BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
iconst_0
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.crypt:(Ljava/lang/Object;[BI[BIZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rcvr Ljava/lang/Object;
0 2 1 in [B
0 2 2 inOffset I
0 2 3 out [B
0 2 4 outOffset I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
static void decryptBlockWithOriginalKey(java.lang.Object, byte[], int, byte[], int);
descriptor: (Ljava/lang/Object;[BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
iconst_0
iconst_1
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.crypt:(Ljava/lang/Object;[BI[BIZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rcvr Ljava/lang/Object;
0 2 1 in [B
0 2 2 inOffset I
0 2 3 out [B
0 2 4 outOffset I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.MethodSubstitution(value = "decryptBlock", isStatic = false)
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
static void implDecryptBlockWithOriginalKey(java.lang.Object, byte[], int, byte[], int);
descriptor: (Ljava/lang/Object;[BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
iconst_0
iconst_1
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.crypt:(Ljava/lang/Object;[BI[BIZZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rcvr Ljava/lang/Object;
0 2 1 in [B
0 2 2 inOffset I
0 2 3 out [B
0 2 4 outOffset I
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.MethodSubstitution(value = "implDecryptBlock", isStatic = false)
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
private static void crypt(java.lang.Object, byte[], int, byte[], int, boolean, boolean);
descriptor: (Ljava/lang/Object;[BI[BIZZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=14, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
iload 2
aload 3
iload 4
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.checkArgs:([BI[BI)V
1: aload 0
getstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.AESCryptClass:Ljava/lang/Class;
invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 7
start local 7 2: aload 7
getstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.kOffset:J
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/word/LocationIdentity;)Ljava/lang/Object;
astore 8
start local 8 3: aload 8
invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
astore 9
start local 9 4: aload 1
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
iload 2
iadd
i2l
invokestatic org.graalvm.compiler.hotspot.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.compiler.word.Word
astore 10
start local 10 5: aload 3
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
iload 4
iadd
i2l
invokestatic org.graalvm.compiler.hotspot.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.compiler.word.Word
astore 11
start local 11 6: iload 5
ifeq 9
7: getstatic org.graalvm.compiler.hotspot.HotSpotBackend.ENCRYPT_BLOCK:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 10
aload 11
aload 9
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.encryptBlockStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/word/Pointer;)V
8: goto 15
9: StackMap locals: java.lang.Object byte[] int byte[] int int int java.lang.Object java.lang.Object org.graalvm.word.Pointer org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
StackMap stack:
iload 6
ifeq 14
10: aload 7
getstatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.lastKeyOffset:J
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/word/LocationIdentity;)Ljava/lang/Object;
astore 12
start local 12 11: aload 12
invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
astore 13
start local 13 12: getstatic org.graalvm.compiler.hotspot.HotSpotBackend.DECRYPT_BLOCK_WITH_ORIGINAL_KEY:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 10
aload 11
aload 9
aload 13
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.decryptBlockWithOriginalKeyStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
end local 13 end local 12 13: goto 15
14: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.HotSpotBackend.DECRYPT_BLOCK:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 10
aload 11
aload 9
invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.decryptBlockStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/word/Pointer;)V
15: StackMap locals:
StackMap stack:
return
end local 11 end local 10 end local 9 end local 8 end local 7 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 rcvr Ljava/lang/Object;
0 16 1 in [B
0 16 2 inOffset I
0 16 3 out [B
0 16 4 outOffset I
0 16 5 encrypt Z
0 16 6 withOriginalKey Z
2 16 7 realReceiver Ljava/lang/Object;
3 16 8 kObject Ljava/lang/Object;
4 16 9 kAddr Lorg/graalvm/word/Pointer;
5 16 10 inAddr Lorg/graalvm/compiler/word/Word;
6 16 11 outAddr Lorg/graalvm/compiler/word/Word;
11 13 12 lastKeyObject Ljava/lang/Object;
12 13 13 lastKeyAddr Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
rcvr
in
inOffset
out
outOffset
encrypt
withOriginalKey
static void checkArgs(byte[], int, byte[], int);
descriptor: ([BI[BI)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc 0.0010000000000000009
iload 1
iflt 1
aload 0
arraylength
bipush 16
isub
iload 1
if_icmplt 1
iload 3
iflt 1
aload 2
arraylength
bipush 16
isub
iload 3
if_icmplt 1
iconst_0
goto 2
StackMap locals:
StackMap stack: double
1: iconst_1
StackMap locals: byte[] int byte[] int
StackMap stack: double int
2: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 4
3: getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint:Ljdk/vm/ci/meta/DeoptimizationReason;
invokestatic org.graalvm.compiler.nodes.DeoptimizeNode.deopt:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 in [B
0 5 1 inOffset I
0 5 2 out [B
0 5 3 outOffset I
MethodParameters:
Name Flags
in
inOffset
out
outOffset
public static native void encryptBlockStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/word/Pointer;)V
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
RuntimeVisibleParameterAnnotations:
0:
org.graalvm.compiler.graph.Node$ConstantNodeParameter()
1:
2:
3:
MethodParameters:
Name Flags
descriptor
in
out
key
public static native void decryptBlockStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/word/Pointer;)V
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
RuntimeVisibleParameterAnnotations:
0:
org.graalvm.compiler.graph.Node$ConstantNodeParameter()
1:
2:
3:
MethodParameters:
Name Flags
descriptor
in
out
key
public static native void decryptBlockWithOriginalKeyStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
RuntimeVisibleParameterAnnotations:
0:
org.graalvm.compiler.graph.Node$ConstantNodeParameter()
1:
2:
3:
4:
MethodParameters:
Name Flags
descriptor
in
out
key
originalKey
}
SourceFile: "AESCryptSubstitutions.java"
InnerClasses:
public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.ClassSubstitution(className = {"com.sun.crypto.provider.AESCrypt"}, optional = true)