class org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1 extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1
super_class: java.io.InputStream
{
private boolean isInitialized;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private javax.crypto.CipherInputStream cipherInputStream;
descriptor: Ljavax/crypto/CipherInputStream;
flags: (0x0002) ACC_PRIVATE
final org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder this$0;
descriptor: Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final org.apache.commons.compress.archivers.sevenz.Coder val$coder;
descriptor: Lorg/apache/commons/compress/archivers/sevenz/Coder;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.lang.String val$archiveName;
descriptor: Ljava/lang/String;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final byte[] val$passwordBytes;
descriptor: [B
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.io.InputStream val$in;
descriptor: Ljava/io/InputStream;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder, org.apache.commons.compress.archivers.sevenz.Coder, java.lang.String, byte[], java.io.InputStream);
descriptor: (Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder;Lorg/apache/commons/compress/archivers/sevenz/Coder;Ljava/lang/String;[BLjava/io/InputStream;)V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=6
start local 0 0: aload 0
aload 1
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.this$0:Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder;
aload 0
aload 2
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$coder:Lorg/apache/commons/compress/archivers/sevenz/Coder;
aload 0
aload 3
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$archiveName:Ljava/lang/String;
aload 0
aload 4
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$passwordBytes:[B
aload 0
aload 5
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$in:Ljava/io/InputStream;
aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_0
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.isInitialized:Z
2: aload 0
aconst_null
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.cipherInputStream:Ljavax/crypto/CipherInputStream;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder$1;
MethodParameters:
Name Flags
this$0 final
val$coder final
val$archiveName final
val$passwordBytes final
val$in final
private javax.crypto.CipherInputStream init();
descriptor: ()Ljavax/crypto/CipherInputStream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=14, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.isInitialized:Z
ifeq 2
1: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.cipherInputStream:Ljavax/crypto/CipherInputStream;
areturn
2: StackMap locals:
StackMap stack:
sipush 255
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$coder:Lorg/apache/commons/compress/archivers/sevenz/Coder;
getfield org.apache.commons.compress.archivers.sevenz.Coder.properties:[B
iconst_0
baload
iand
istore 1
start local 1 3: iload 1
bipush 63
iand
istore 2
start local 2 4: sipush 255
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$coder:Lorg/apache/commons/compress/archivers/sevenz/Coder;
getfield org.apache.commons.compress.archivers.sevenz.Coder.properties:[B
iconst_1
baload
iand
istore 3
start local 3 5: iload 1
bipush 6
ishr
iconst_1
iand
iload 3
bipush 15
iand
iadd
istore 4
start local 4 6: iload 1
bipush 7
ishr
iconst_1
iand
iload 3
iconst_4
ishr
iadd
istore 5
start local 5 7: iconst_2
iload 5
iadd
iload 4
iadd
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$coder:Lorg/apache/commons/compress/archivers/sevenz/Coder;
getfield org.apache.commons.compress.archivers.sevenz.Coder.properties:[B
arraylength
if_icmple 9
8: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Salt size + IV size too long in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$archiveName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1 int int int int int
StackMap stack:
iload 5
newarray 8
astore 6
start local 6 10: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$coder:Lorg/apache/commons/compress/archivers/sevenz/Coder;
getfield org.apache.commons.compress.archivers.sevenz.Coder.properties:[B
iconst_2
aload 6
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: bipush 16
newarray 8
astore 7
start local 7 12: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$coder:Lorg/apache/commons/compress/archivers/sevenz/Coder;
getfield org.apache.commons.compress.archivers.sevenz.Coder.properties:[B
iconst_2
iload 5
iadd
aload 7
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$passwordBytes:[B
ifnonnull 15
14: new org.apache.commons.compress.PasswordRequiredException
dup
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$archiveName:Ljava/lang/String;
invokespecial org.apache.commons.compress.PasswordRequiredException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: byte[] byte[]
StackMap stack:
iload 2
bipush 63
if_icmpne 22
16: bipush 32
newarray 8
astore 8
start local 8 17: aload 6
iconst_0
aload 8
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$passwordBytes:[B
iconst_0
aload 8
iload 5
19: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$passwordBytes:[B
arraylength
aload 8
arraylength
iload 5
isub
invokestatic java.lang.Math.min:(II)I
20: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: goto 44
end local 8 22: StackMap locals:
StackMap stack:
ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 9
start local 9 23: goto 28
end local 9 StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
24: astore 10
start local 10 25: new java.io.IOException
dup
ldc "SHA-256 is unsupported by your Java implementation"
26: aload 10
27: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 10 start local 9 28: StackMap locals: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1 int int int int int byte[] byte[] top java.security.MessageDigest
StackMap stack:
bipush 8
newarray 8
astore 10
start local 10 29: lconst_0
lstore 11
start local 11 30: goto 42
31: StackMap locals: byte[] long
StackMap stack:
aload 9
aload 6
invokevirtual java.security.MessageDigest.update:([B)V
32: aload 9
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$passwordBytes:[B
invokevirtual java.security.MessageDigest.update:([B)V
33: aload 9
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
34: iconst_0
istore 13
start local 13 35: goto 40
36: StackMap locals: int
StackMap stack:
aload 10
iload 13
dup2
baload
iconst_1
iadd
i2b
bastore
37: aload 10
iload 13
baload
ifeq 39
38: goto 41
39: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
40: iload 13
aload 10
arraylength
if_icmplt 36
end local 13 41: StackMap locals:
StackMap stack:
lload 11
lconst_1
ladd
lstore 11
StackMap locals:
StackMap stack:
42: lload 11
lconst_1
iload 2
lshl
lcmp
iflt 31
end local 11 43: aload 9
invokevirtual java.security.MessageDigest.digest:()[B
astore 8
end local 10 end local 9 start local 8 44: StackMap locals: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1 int int int int int byte[] byte[] byte[]
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 8
ldc "AES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 9
start local 9 45: ldc "AES/CBC/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 10
start local 10 46: aload 10
iconst_2
aload 9
new javax.crypto.spec.IvParameterSpec
dup
aload 7
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
47: aload 0
new javax.crypto.CipherInputStream
dup
aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.val$in:Ljava/io/InputStream;
aload 10
invokespecial javax.crypto.CipherInputStream.<init>:(Ljava/io/InputStream;Ljavax/crypto/Cipher;)V
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.cipherInputStream:Ljavax/crypto/CipherInputStream;
48: aload 0
iconst_1
putfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.isInitialized:Z
49: aload 0
getfield org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.cipherInputStream:Ljavax/crypto/CipherInputStream;
50: areturn
end local 10 51: StackMap locals: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1 int int int int int byte[] byte[] byte[] javax.crypto.SecretKey
StackMap stack: java.security.GeneralSecurityException
astore 10
start local 10 52: new java.io.IOException
dup
ldc "Decryption error (do you have the JCE Unlimited Strength Jurisdiction Policy Files installed?)"
53: aload 10
54: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 55 0 this Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder$1;
3 55 1 byte0 I
4 55 2 numCyclesPower I
5 55 3 byte1 I
6 55 4 ivSize I
7 55 5 saltSize I
10 55 6 salt [B
12 55 7 iv [B
17 22 8 aesKeyBytes [B
44 55 8 aesKeyBytes [B
23 24 9 digest Ljava/security/MessageDigest;
28 44 9 digest Ljava/security/MessageDigest;
25 28 10 noSuchAlgorithmException Ljava/security/NoSuchAlgorithmException;
29 44 10 extra [B
30 43 11 j J
35 41 13 k I
45 55 9 aesKey Ljavax/crypto/SecretKey;
46 51 10 cipher Ljavax/crypto/Cipher;
52 55 10 generalSecurityException Ljava/security/GeneralSecurityException;
Exception table:
from to target type
22 23 24 Class java.security.NoSuchAlgorithmException
45 50 51 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.init:()Ljavax/crypto/CipherInputStream;
invokevirtual javax.crypto.CipherInputStream.read:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder$1;
Exceptions:
throws java.io.IOException
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.init:()Ljavax/crypto/CipherInputStream;
aload 1
iload 2
iload 3
invokevirtual javax.crypto.CipherInputStream.read:([BII)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder$1;
0 1 1 b [B
0 1 2 off I
0 1 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b final
off final
len final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder$1;
}
SourceFile: "AES256SHA256Decoder.java"
EnclosingMethod: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder.decode:(Ljava/lang/String;Ljava/io/InputStream;JLorg/apache/commons/compress/archivers/sevenz/Coder;[B)Ljava/io/InputStream;
NestHost: org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder
InnerClasses:
org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1