abstract class com.sun.crypto.provider.AESWrapCipher extends javax.crypto.CipherSpi
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.crypto.provider.AESWrapCipher
super_class: javax.crypto.CipherSpi
{
private static final byte[] IV;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int blksize;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private com.sun.crypto.provider.AESCrypt cipher;
descriptor: Lcom/sun/crypto/provider/AESCrypt;
flags: (0x0002) ACC_PRIVATE
private boolean decrypting;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final int fixedKeySize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 8
newarray 8
dup
iconst_0
1: bipush -90
bastore
dup
iconst_1
bipush -90
bastore
dup
iconst_2
bipush -90
bastore
dup
iconst_3
bipush -90
bastore
dup
iconst_4
2: bipush -90
bastore
dup
iconst_5
bipush -90
bastore
dup
bipush 6
bipush -90
bastore
dup
bipush 7
bipush -90
bastore
3: putstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial javax.crypto.CipherSpi.<init>:()V
1: aload 0
iconst_0
putfield com.sun.crypto.provider.AESWrapCipher.decrypting:Z
2: aload 0
new com.sun.crypto.provider.AESCrypt
dup
invokespecial com.sun.crypto.provider.AESCrypt.<init>:()V
putfield com.sun.crypto.provider.AESWrapCipher.cipher:Lcom/sun/crypto/provider/AESCrypt;
3: aload 0
iload 1
putfield com.sun.crypto.provider.AESWrapCipher.fixedKeySize:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 5 1 keySize I
MethodParameters:
Name Flags
keySize
protected void engineSetMode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "ECB"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 2
1: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " cannot be used"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 3 1 mode Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
protected void engineSetPadding(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "NoPadding"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 2
1: new javax.crypto.NoSuchPaddingException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " cannot be used"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 3 1 padding Ljava/lang/String;
Exceptions:
throws javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
padding
protected int engineGetBlockSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 16
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
protected int engineGetOutputSize(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield com.sun.crypto.provider.AESWrapCipher.decrypting:Z
ifeq 4
2: iload 1
bipush 8
isub
istore 2
3: goto 5
4: StackMap locals: int
StackMap stack:
iload 1
bipush 8
invokestatic com.sun.crypto.provider.CipherCore.addExact:(II)I
istore 2
5: StackMap locals:
StackMap stack:
iload 2
ifge 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iload 2
StackMap locals:
StackMap stack: int
7: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 8 1 inputLen I
1 8 2 result I
MethodParameters:
Name Flags
inputLen
protected byte[] engineGetIV();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
protected void engineInit(int, java.security.Key, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iconst_3
if_icmpne 3
1: aload 0
iconst_0
putfield com.sun.crypto.provider.AESWrapCipher.decrypting:Z
2: goto 7
StackMap locals:
StackMap stack:
3: iload 1
iconst_4
if_icmpne 6
4: aload 0
iconst_1
putfield com.sun.crypto.provider.AESWrapCipher.decrypting:Z
5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
ldc "This cipher can only be used for key wrapping and unwrapping"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield com.sun.crypto.provider.AESWrapCipher.fixedKeySize:I
invokestatic com.sun.crypto.provider.AESCipher.checkKeySize:(Ljava/security/Key;I)V
8: aload 0
getfield com.sun.crypto.provider.AESWrapCipher.cipher:Lcom/sun/crypto/provider/AESCrypt;
aload 0
getfield com.sun.crypto.provider.AESWrapCipher.decrypting:Z
aload 2
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokevirtual com.sun.crypto.provider.AESCrypt.init:(ZLjava/lang/String;[B)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 10 1 opmode I
0 10 2 key Ljava/security/Key;
0 10 3 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
opmode
key
random
protected void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "This cipher does not accept any parameters"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
aload 4
invokevirtual com.sun.crypto.provider.AESWrapCipher.engineInit:(ILjava/security/Key;Ljava/security/SecureRandom;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 4 1 opmode I
0 4 2 key Ljava/security/Key;
0 4 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 4 4 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "This cipher does not accept any parameters"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
aload 4
invokevirtual com.sun.crypto.provider.AESWrapCipher.engineInit:(ILjava/security/Key;Ljava/security/SecureRandom;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 4 1 opmode I
0 4 2 key Ljava/security/Key;
0 4 3 params Ljava/security/AlgorithmParameters;
0 4 4 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected byte[] engineUpdate(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.IllegalStateException
dup
ldc "Cipher has not been initialized"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 1 1 in [B
0 1 2 inOffset I
0 1 3 inLen I
MethodParameters:
Name Flags
in
inOffset
inLen
protected int engineUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.lang.IllegalStateException
dup
ldc "Cipher has not been initialized"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
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 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 1 1 in [B
0 1 2 inOffset I
0 1 3 inLen I
0 1 4 out [B
0 1 5 outOffset I
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
in
inOffset
inLen
out
outOffset
protected byte[] engineDoFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.IllegalStateException
dup
ldc "Cipher has not been initialized"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
protected int engineDoFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.lang.IllegalStateException
dup
ldc "Cipher has not been initialized"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
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 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 1 1 in [B
0 1 2 inOffset I
0 1 3 inLen I
0 1 4 out [B
0 1 5 outOffset I
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
in
inOffset
inLen
out
outOffset
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/AESWrapCipher;
protected int engineGetKeySize(java.security.Key);
descriptor: (Ljava/security/Key;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 2
start local 2 1: aload 2
arraylength
invokestatic com.sun.crypto.provider.AESCrypt.isKeySizeValid:(I)Z
ifne 5
2: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 2
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: byte[]
StackMap stack:
aload 2
arraylength
bipush 8
invokestatic com.sun.crypto.provider.CipherCore.multiplyExact:(II)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 6 1 key Ljava/security/Key;
1 6 2 encoded [B
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
protected byte[] engineWrap(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
arraylength
ifne 3
2: StackMap locals: byte[]
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Cannot get an encoding of the key to be wrapped"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 2
arraylength
bipush 8
invokestatic com.sun.crypto.provider.CipherCore.addExact:(II)I
newarray 8
astore 3
start local 3 4: aload 2
arraylength
bipush 8
if_icmpne 9
5: getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
iconst_0
aload 3
iconst_0
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 2
iconst_0
aload 3
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 0
getfield com.sun.crypto.provider.AESWrapCipher.cipher:Lcom/sun/crypto/provider/AESCrypt;
aload 3
iconst_0
aload 3
iconst_0
invokevirtual com.sun.crypto.provider.AESCrypt.encryptBlock:([BI[BI)V
8: goto 36
9: StackMap locals: byte[]
StackMap stack:
aload 2
arraylength
bipush 8
irem
ifeq 11
10: new javax.crypto.IllegalBlockSizeException
dup
ldc "length of the to be wrapped key should be multiples of 8 bytes"
invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
iconst_0
aload 3
iconst_0
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 2
iconst_0
aload 3
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 2
arraylength
bipush 8
idiv
istore 4
start local 4 14: bipush 16
newarray 8
astore 5
start local 5 15: iconst_0
istore 6
start local 6 16: goto 35
17: StackMap locals: int byte[] int
StackMap stack:
iconst_1
istore 7
start local 7 18: goto 33
19: StackMap locals: int
StackMap stack:
iload 7
iload 6
iload 4
imul
iadd
istore 8
start local 8 20: aload 3
iconst_0
aload 5
iconst_0
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: aload 3
iload 7
bipush 8
imul
aload 5
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: aload 0
getfield com.sun.crypto.provider.AESWrapCipher.cipher:Lcom/sun/crypto/provider/AESCrypt;
aload 5
iconst_0
aload 5
iconst_0
invokevirtual com.sun.crypto.provider.AESCrypt.encryptBlock:([BI[BI)V
23: iconst_1
istore 9
start local 9 24: goto 29
25: StackMap locals: int int
StackMap stack:
iload 8
i2b
istore 10
start local 10 26: aload 5
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
iload 9
isub
dup2
baload
iload 10
ixor
i2b
bastore
27: iload 8
bipush 8
iushr
istore 8
end local 10 28: iinc 9 1
StackMap locals:
StackMap stack:
29: iload 8
ifne 25
end local 9 30: aload 5
iconst_0
aload 3
iconst_0
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: aload 5
bipush 8
aload 3
bipush 8
iload 7
imul
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 32: iinc 7 1
StackMap locals:
StackMap stack:
33: iload 7
iload 4
if_icmple 19
end local 7 34: iinc 6 1
StackMap locals:
StackMap stack:
35: iload 6
bipush 6
if_icmplt 17
end local 6 end local 5 end local 4 36: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 37 1 key Ljava/security/Key;
1 37 2 keyVal [B
4 37 3 out [B
14 36 4 N I
15 36 5 buffer [B
16 36 6 j I
18 34 7 i I
20 32 8 T I
24 30 9 k I
26 28 10 v B
Exceptions:
throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
MethodParameters:
Name Flags
key
protected java.security.Key engineUnwrap(byte[], java.lang.String, int);
descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
arraylength
istore 4
start local 4 1: iload 4
ifne 3
2: new java.security.InvalidKeyException
dup
ldc "The wrapped key is empty"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
iload 4
bipush 8
irem
ifeq 7
4: new java.security.InvalidKeyException
dup
5: ldc "The wrapped key has invalid key length"
6: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iload 4
bipush 8
isub
newarray 8
astore 5
start local 5 8: bipush 16
newarray 8
astore 6
start local 6 9: iload 4
bipush 16
if_icmpne 19
10: aload 0
getfield com.sun.crypto.provider.AESWrapCipher.cipher:Lcom/sun/crypto/provider/AESCrypt;
aload 1
iconst_0
aload 6
iconst_0
invokevirtual com.sun.crypto.provider.AESCrypt.decryptBlock:([BI[BI)V
11: iconst_0
istore 7
start local 7 12: goto 16
13: StackMap locals: byte[] byte[] int
StackMap stack:
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
iload 7
baload
aload 6
iload 7
baload
if_icmpeq 15
14: new java.security.InvalidKeyException
dup
ldc "Integrity check failed"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
16: iload 7
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
if_icmplt 13
end local 7 17: aload 6
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
aload 5
iconst_0
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: goto 47
19: StackMap locals:
StackMap stack:
aload 1
iconst_0
aload 6
iconst_0
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
20: aload 1
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
aload 5
iconst_0
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: aload 5
arraylength
bipush 8
idiv
istore 7
start local 7 22: iconst_5
istore 8
start local 8 23: goto 40
24: StackMap locals: int int
StackMap stack:
iload 7
istore 9
start local 9 25: goto 38
26: StackMap locals: int
StackMap stack:
iload 9
iload 8
iload 7
imul
iadd
istore 10
start local 10 27: aload 5
bipush 8
iload 9
iconst_1
isub
imul
aload 6
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: iconst_1
istore 11
start local 11 29: goto 34
30: StackMap locals: int int
StackMap stack:
iload 10
i2b
istore 12
start local 12 31: aload 6
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
iload 11
isub
dup2
baload
iload 12
ixor
i2b
bastore
32: iload 10
bipush 8
iushr
istore 10
end local 12 33: iinc 11 1
StackMap locals:
StackMap stack:
34: iload 10
ifne 30
end local 11 35: aload 0
getfield com.sun.crypto.provider.AESWrapCipher.cipher:Lcom/sun/crypto/provider/AESCrypt;
aload 6
iconst_0
aload 6
iconst_0
invokevirtual com.sun.crypto.provider.AESCrypt.decryptBlock:([BI[BI)V
36: aload 6
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
aload 5
bipush 8
iload 9
iconst_1
isub
imul
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 10 37: iinc 9 -1
StackMap locals:
StackMap stack:
38: iload 9
ifgt 26
end local 9 39: iinc 8 -1
StackMap locals:
StackMap stack:
40: iload 8
ifge 24
end local 8 41: iconst_0
istore 8
start local 8 42: goto 46
43: StackMap locals:
StackMap stack:
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
iload 8
baload
aload 6
iload 8
baload
if_icmpeq 45
44: new java.security.InvalidKeyException
dup
ldc "Integrity check failed"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
46: iload 8
getstatic com.sun.crypto.provider.AESWrapCipher.IV:[B
arraylength
if_icmplt 43
end local 8 end local 7 47: StackMap locals:
StackMap stack:
aload 5
aload 2
48: iload 3
49: invokestatic com.sun.crypto.provider.ConstructKeys.constructKey:([BLjava/lang/String;I)Ljava/security/Key;
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 50 0 this Lcom/sun/crypto/provider/AESWrapCipher;
0 50 1 wrappedKey [B
0 50 2 wrappedKeyAlgorithm Ljava/lang/String;
0 50 3 wrappedKeyType I
1 50 4 wrappedKeyLen I
8 50 5 out [B
9 50 6 buffer [B
12 17 7 i I
22 47 7 N I
23 41 8 j I
25 39 9 i I
27 37 10 T I
29 35 11 k I
31 33 12 v B
42 47 8 i I
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
wrappedKey
wrappedKeyAlgorithm
wrappedKeyType
}
SourceFile: "AESWrapCipher.java"
NestMembers:
com.sun.crypto.provider.AESWrapCipher$AES128 com.sun.crypto.provider.AESWrapCipher$AES192 com.sun.crypto.provider.AESWrapCipher$AES256 com.sun.crypto.provider.AESWrapCipher$General
InnerClasses:
public final AES128 = com.sun.crypto.provider.AESWrapCipher$AES128 of com.sun.crypto.provider.AESWrapCipher
public final AES192 = com.sun.crypto.provider.AESWrapCipher$AES192 of com.sun.crypto.provider.AESWrapCipher
public final AES256 = com.sun.crypto.provider.AESWrapCipher$AES256 of com.sun.crypto.provider.AESWrapCipher
public final General = com.sun.crypto.provider.AESWrapCipher$General of com.sun.crypto.provider.AESWrapCipher