class sun.security.util.DerIndefLenConverter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.util.DerIndefLenConverter
super_class: java.lang.Object
{
private static final int TAG_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 31
private static final int FORM_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int CLASS_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 192
private static final int LEN_LONG;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private static final int LEN_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 127
private static final int SKIP_EOC_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private byte[] data;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] newData;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int newDataPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int dataPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int dataSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int index;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int unresolved;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.ArrayList<java.lang.Object> ndefsList;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/lang/Object;>;
private int numOfTotalLenBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean isEOC(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 31
iand
ifne 4
1: iload 1
bipush 32
iand
ifne 4
2: iload 1
sipush 192
iand
ifne 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/util/DerIndefLenConverter;
0 5 1 tag I
MethodParameters:
Name Flags
tag
static boolean isLongForm(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
sipush 128
iand
sipush 128
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 lengthByte I
MethodParameters:
Name Flags
lengthByte
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.unresolved:I
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.util.DerIndefLenConverter.ndefsList:Ljava/util/ArrayList;
3: aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.numOfTotalLenBytes:I
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/util/DerIndefLenConverter;
static boolean isIndefinite(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
invokestatic sun.security.util.DerIndefLenConverter.isLongForm:(I)Z
ifeq 1
iload 0
bipush 127
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 lengthByte I
MethodParameters:
Name Flags
lengthByte
private void parseTag();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
invokevirtual sun.security.util.DerIndefLenConverter.isEOC:(I)Z
ifeq 20
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iconst_1
iadd
baload
ifne 20
1: iconst_0
istore 1
start local 1 2: aconst_null
astore 2
start local 2 3: aload 0
getfield sun.security.util.DerIndefLenConverter.ndefsList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 3
start local 3 4: goto 10
5: StackMap locals: int java.lang.Object int
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.ndefsList:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
astore 2
6: aload 2
instanceof java.lang.Integer
ifeq 8
7: goto 11
8: StackMap locals:
StackMap stack:
iload 1
aload 2
checkcast byte[]
arraylength
iconst_3
isub
iadd
istore 1
9: iinc 3 -1
StackMap locals:
StackMap stack:
10: iload 3
ifge 5
11: StackMap locals:
StackMap stack:
iload 3
ifge 13
12: new java.io.IOException
dup
ldc "EOC does not have matching indefinite-length tag"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 2
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
isub
14: iload 1
15: iadd
istore 4
start local 4 16: aload 0
iload 4
invokevirtual sun.security.util.DerIndefLenConverter.getLengthBytes:(I)[B
astore 5
start local 5 17: aload 0
getfield sun.security.util.DerIndefLenConverter.ndefsList:Ljava/util/ArrayList;
iload 3
aload 5
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.unresolved:I
iconst_1
isub
putfield sun.security.util.DerIndefLenConverter.unresolved:I
19: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.numOfTotalLenBytes:I
aload 5
arraylength
iconst_3
isub
iadd
putfield sun.security.util.DerIndefLenConverter.numOfTotalLenBytes:I
end local 5 end local 4 end local 3 end local 2 end local 1 20: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
21: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/security/util/DerIndefLenConverter;
2 20 1 numOfEncapsulatedLenBytes I
3 20 2 elem Ljava/lang/Object;
4 20 3 index I
16 20 4 sectionLen I
17 20 5 sectionLenBytes [B
Exceptions:
throws java.io.IOException
private void writeTag();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
istore 1
start local 1 3: aload 0
iload 1
invokevirtual sun.security.util.DerIndefLenConverter.isEOC:(I)Z
ifeq 7
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
ifne 7
4: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
5: aload 0
invokevirtual sun.security.util.DerIndefLenConverter.writeTag:()V
6: goto 8
7: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
i2b
bastore
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/util/DerIndefLenConverter;
3 9 1 tag I
private int parseLength();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmpne 3
2: iload 1
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
sipush 255
iand
istore 2
start local 2 4: iload 2
invokestatic sun.security.util.DerIndefLenConverter.isIndefinite:(I)Z
ifeq 8
5: aload 0
getfield sun.security.util.DerIndefLenConverter.ndefsList:Ljava/util/ArrayList;
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
6: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.unresolved:I
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.unresolved:I
7: iload 1
ireturn
8: StackMap locals: int
StackMap stack:
iload 2
invokestatic sun.security.util.DerIndefLenConverter.isLongForm:(I)Z
ifeq 21
9: iload 2
bipush 127
iand
istore 2
10: iload 2
iconst_4
if_icmple 12
11: new java.io.IOException
dup
ldc "Too much data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
isub
iload 2
iconst_1
iadd
if_icmpge 14
13: iconst_m1
ireturn
14: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 15: goto 18
16: StackMap locals: int
StackMap stack:
iload 1
bipush 8
ishl
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
sipush 255
iand
iadd
istore 1
17: iinc 3 1
StackMap locals:
StackMap stack:
18: iload 3
iload 2
if_icmplt 16
end local 3 19: iload 1
ifge 22
20: new java.io.IOException
dup
ldc "Invalid length bytes"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
iload 2
bipush 127
iand
istore 1
22: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/security/util/DerIndefLenConverter;
1 23 1 curLen I
4 23 2 lenByte I
15 19 3 i I
Exceptions:
throws java.io.IOException
private void writeLengthAndValue();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmpne 2
1: return
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
sipush 255
iand
istore 2
start local 2 4: iload 2
invokestatic sun.security.util.DerIndefLenConverter.isIndefinite:(I)Z
ifeq 11
5: aload 0
getfield sun.security.util.DerIndefLenConverter.ndefsList:Ljava/util/ArrayList;
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.index:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.index:I
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast byte[]
astore 3
start local 3 6: aload 3
iconst_0
aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
7: aload 3
arraylength
8: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
aload 3
arraylength
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
10: return
end local 3 11: StackMap locals: int int
StackMap stack:
iload 2
invokestatic sun.security.util.DerIndefLenConverter.isLongForm:(I)Z
ifeq 20
12: iload 2
bipush 127
iand
istore 2
13: iconst_0
istore 3
start local 3 14: goto 17
15: StackMap locals: int
StackMap stack:
iload 1
bipush 8
ishl
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
sipush 255
iand
iadd
istore 1
16: iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
iload 2
if_icmplt 15
end local 3 18: iload 1
ifge 21
19: new java.io.IOException
dup
ldc "Invalid length bytes"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
iload 2
bipush 127
iand
istore 1
21: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.security.util.DerIndefLenConverter.writeLength:(I)V
22: aload 0
iload 1
invokevirtual sun.security.util.DerIndefLenConverter.writeValue:(I)V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/util/DerIndefLenConverter;
3 24 1 curLen I
4 24 2 lenByte I
6 11 3 lenBytes [B
14 18 3 i I
Exceptions:
throws java.io.IOException
private void writeLength(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
sipush 128
if_icmpge 3
1: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
i2b
bastore
2: goto 23
StackMap locals:
StackMap stack:
3: iload 1
sipush 256
if_icmpge 7
4: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
bipush -127
bastore
5: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
i2b
bastore
6: goto 23
StackMap locals:
StackMap stack:
7: iload 1
ldc 65536
if_icmpge 12
8: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
bipush -126
bastore
9: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
bipush 8
ishr
i2b
bastore
10: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
i2b
bastore
11: goto 23
StackMap locals:
StackMap stack:
12: iload 1
ldc 16777216
if_icmpge 18
13: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
bipush -125
bastore
14: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
bipush 16
ishr
i2b
bastore
15: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
bipush 8
ishr
i2b
bastore
16: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
i2b
bastore
17: goto 23
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
bipush -124
bastore
19: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
bipush 24
ishr
i2b
bastore
20: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
bipush 16
ishr
i2b
bastore
21: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
bipush 8
ishr
i2b
bastore
22: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
iload 1
i2b
bastore
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/util/DerIndefLenConverter;
0 24 1 curLen I
MethodParameters:
Name Flags
curLen
private byte[] getLengthBytes(int);
descriptor: (I)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: iload 1
sipush 128
if_icmpge 5
2: iconst_1
newarray 8
astore 2
start local 2 3: aload 2
iload 3
iinc 3 1
iload 1
i2b
bastore
4: goto 29
end local 2 StackMap locals: sun.security.util.DerIndefLenConverter int top int
StackMap stack:
5: iload 1
sipush 256
if_icmpge 10
6: iconst_2
newarray 8
astore 2
start local 2 7: aload 2
iload 3
iinc 3 1
bipush -127
bastore
8: aload 2
iload 3
iinc 3 1
iload 1
i2b
bastore
9: goto 29
end local 2 StackMap locals:
StackMap stack:
10: iload 1
ldc 65536
if_icmpge 16
11: iconst_3
newarray 8
astore 2
start local 2 12: aload 2
iload 3
iinc 3 1
bipush -126
bastore
13: aload 2
iload 3
iinc 3 1
iload 1
bipush 8
ishr
i2b
bastore
14: aload 2
iload 3
iinc 3 1
iload 1
i2b
bastore
15: goto 29
end local 2 StackMap locals:
StackMap stack:
16: iload 1
ldc 16777216
if_icmpge 23
17: iconst_4
newarray 8
astore 2
start local 2 18: aload 2
iload 3
iinc 3 1
bipush -125
bastore
19: aload 2
iload 3
iinc 3 1
iload 1
bipush 16
ishr
i2b
bastore
20: aload 2
iload 3
iinc 3 1
iload 1
bipush 8
ishr
i2b
bastore
21: aload 2
iload 3
iinc 3 1
iload 1
i2b
bastore
22: goto 29
end local 2 23: StackMap locals:
StackMap stack:
iconst_5
newarray 8
astore 2
start local 2 24: aload 2
iload 3
iinc 3 1
bipush -124
bastore
25: aload 2
iload 3
iinc 3 1
iload 1
bipush 24
ishr
i2b
bastore
26: aload 2
iload 3
iinc 3 1
iload 1
bipush 16
ishr
i2b
bastore
27: aload 2
iload 3
iinc 3 1
iload 1
bipush 8
ishr
i2b
bastore
28: aload 2
iload 3
iinc 3 1
iload 1
i2b
bastore
29: StackMap locals: sun.security.util.DerIndefLenConverter int byte[] int
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/security/util/DerIndefLenConverter;
0 30 1 curLen I
3 5 2 lenBytes [B
7 10 2 lenBytes [B
12 16 2 lenBytes [B
18 23 2 lenBytes [B
24 30 2 lenBytes [B
1 30 3 index I
MethodParameters:
Name Flags
curLen
private int getNumOfLenBytes(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iload 1
sipush 128
if_icmpge 4
2: iconst_1
istore 2
3: goto 14
StackMap locals: int
StackMap stack:
4: iload 1
sipush 256
if_icmpge 7
5: iconst_2
istore 2
6: goto 14
StackMap locals:
StackMap stack:
7: iload 1
ldc 65536
if_icmpge 10
8: iconst_3
istore 2
9: goto 14
StackMap locals:
StackMap stack:
10: iload 1
ldc 16777216
if_icmpge 13
11: iconst_4
istore 2
12: goto 14
13: StackMap locals:
StackMap stack:
iconst_5
istore 2
14: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/util/DerIndefLenConverter;
0 15 1 len I
1 15 2 numOfLenBytes I
MethodParameters:
Name Flags
len
private void parseValue(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iload 1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/DerIndefLenConverter;
0 2 1 curLen I
MethodParameters:
Name Flags
curLen
private void writeValue(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.newDataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
baload
bastore
3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 1
if_icmplt 2
end local 2 5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/DerIndefLenConverter;
0 6 1 curLen I
1 5 2 i I
MethodParameters:
Name Flags
curLen
byte[] convertBytes(byte[]);
descriptor: ([B)[B
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield sun.security.util.DerIndefLenConverter.data:[B
1: aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.index:I
2: aload 0
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
arraylength
putfield sun.security.util.DerIndefLenConverter.dataSize:I
3: iconst_0
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 17
6: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iconst_2
iadd
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmple 8
7: aconst_null
areturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.util.DerIndefLenConverter.parseTag:()V
9: aload 0
invokevirtual sun.security.util.DerIndefLenConverter.parseLength:()I
istore 2
10: iload 2
ifge 12
11: aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual sun.security.util.DerIndefLenConverter.parseValue:(I)V
13: aload 0
getfield sun.security.util.DerIndefLenConverter.unresolved:I
ifne 17
14: aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
isub
istore 3
15: aload 0
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
putfield sun.security.util.DerIndefLenConverter.dataSize:I
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmplt 6
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.unresolved:I
ifeq 20
19: aconst_null
areturn
20: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
aload 0
getfield sun.security.util.DerIndefLenConverter.numOfTotalLenBytes:I
iadd
iload 3
iadd
newarray 8
putfield sun.security.util.DerIndefLenConverter.newData:[B
21: aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.newDataPos:I
aload 0
iconst_0
putfield sun.security.util.DerIndefLenConverter.index:I
22: goto 25
23: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.util.DerIndefLenConverter.writeTag:()V
24: aload 0
invokevirtual sun.security.util.DerIndefLenConverter.writeLengthAndValue:()V
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmplt 23
26: aload 1
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
27: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
aload 0
getfield sun.security.util.DerIndefLenConverter.numOfTotalLenBytes:I
iadd
iload 3
28: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
29: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/security/util/DerIndefLenConverter;
0 30 1 indefData [B
4 30 2 len I
5 30 3 unused I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
indefData
public static byte[] convertStream(java.io.InputStream, byte);
descriptor: (Ljava/io/InputStream;B)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: iconst_2
istore 2
start local 2 1: aload 0
invokevirtual java.io.InputStream.available:()I
istore 3
start local 3 2: iload 3
iload 2
iadd
newarray 8
astore 4
start local 4 3: aload 4
iconst_0
iload 1
bastore
4: aload 4
iconst_1
bipush -128
bastore
5: StackMap locals: int int byte[]
StackMap stack:
aload 0
aload 4
iload 2
iload 3
invokevirtual java.io.InputStream.readNBytes:([BII)I
istore 5
start local 5 6: iload 5
iload 3
if_icmpeq 9
7: iload 5
istore 3
8: aload 4
iload 2
iload 5
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
9: StackMap locals: int
StackMap stack:
new sun.security.util.DerIndefLenConverter
dup
invokespecial sun.security.util.DerIndefLenConverter.<init>:()V
astore 6
start local 6 10: aload 6
aload 4
invokevirtual sun.security.util.DerIndefLenConverter.convertBytes:([B)[B
astore 7
start local 7 11: aload 7
ifnonnull 21
12: aload 0
invokevirtual java.io.InputStream.read:()I
istore 8
start local 8 13: iload 8
iconst_m1
if_icmpne 15
14: new java.io.IOException
dup
ldc "not all indef len BER resolved"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: sun.security.util.DerIndefLenConverter byte[] int
StackMap stack:
aload 0
invokevirtual java.io.InputStream.available:()I
istore 9
start local 9 16: aload 4
iload 2
iload 3
iadd
iconst_1
iadd
iload 9
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
17: aload 4
iload 2
iload 3
iadd
iload 8
i2b
bastore
18: iload 2
iload 3
iadd
iconst_1
iadd
istore 2
19: iload 9
istore 3
end local 9 end local 8 20: goto 5
21: StackMap locals:
StackMap stack:
aload 7
areturn
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 22 0 in Ljava/io/InputStream;
0 22 1 tag B
1 22 2 offset I
2 22 3 readLen I
3 22 4 indefData [B
6 22 5 bytesRead I
10 22 6 derIn Lsun/security/util/DerIndefLenConverter;
11 22 7 result [B
13 20 8 next I
16 20 9 more I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
tag
}
SourceFile: "DerIndefLenConverter.java"