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
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
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 22
aload 0
getfield sun.security.util.DerIndefLenConverter.data:[B
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iconst_1
iadd
baload
ifne 22
3: iconst_0
istore 1
start local 1 4: aconst_null
astore 2
start local 2 5: 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 6: goto 12
7: 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
8: aload 2
instanceof java.lang.Integer
ifeq 10
9: goto 13
10: StackMap locals:
StackMap stack:
iload 1
aload 2
checkcast byte[]
arraylength
iconst_3
isub
iadd
istore 1
11: iinc 3 -1
StackMap locals:
StackMap stack:
12: iload 3
ifge 7
13: StackMap locals:
StackMap stack:
iload 3
ifge 15
14: new java.io.IOException
dup
ldc "EOC does not have matching indefinite-length tag"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: 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
16: iload 1
17: iadd
istore 4
start local 4 18: aload 0
iload 4
invokevirtual sun.security.util.DerIndefLenConverter.getLengthBytes:(I)[B
astore 5
start local 5 19: 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
20: aload 0
dup
getfield sun.security.util.DerIndefLenConverter.unresolved:I
iconst_1
isub
putfield sun.security.util.DerIndefLenConverter.unresolved:I
21: 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 22: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.util.DerIndefLenConverter.dataPos:I
iconst_1
iadd
putfield sun.security.util.DerIndefLenConverter.dataPos:I
23: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/util/DerIndefLenConverter;
4 22 1 numOfEncapsulatedLenBytes I
5 22 2 elem Ljava/lang/Object;
6 22 3 index I
18 22 4 sectionLen I
19 22 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;
new java.lang.Integer
dup
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
invokespecial java.lang.Integer.<init>:(I)V
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: new java.io.IOException
dup
ldc "Too little data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
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[] convert(byte[]);
descriptor: ([B)[B
flags: (0x0000)
Code:
stack=3, locals=3, 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: goto 8
5: StackMap locals: int
StackMap stack:
aload 0
invokevirtual sun.security.util.DerIndefLenConverter.parseTag:()V
6: aload 0
invokevirtual sun.security.util.DerIndefLenConverter.parseLength:()I
istore 2
7: aload 0
iload 2
invokevirtual sun.security.util.DerIndefLenConverter.parseValue:(I)V
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmplt 5
9: aload 0
getfield sun.security.util.DerIndefLenConverter.unresolved:I
ifeq 11
10: new java.io.IOException
dup
ldc "not all indef len BER resolved"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
11: 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
newarray 8
putfield sun.security.util.DerIndefLenConverter.newData:[B
12: 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
13: goto 16
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.util.DerIndefLenConverter.writeTag:()V
15: aload 0
invokevirtual sun.security.util.DerIndefLenConverter.writeLengthAndValue:()V
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerIndefLenConverter.dataPos:I
aload 0
getfield sun.security.util.DerIndefLenConverter.dataSize:I
if_icmplt 14
17: aload 0
getfield sun.security.util.DerIndefLenConverter.newData:[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/util/DerIndefLenConverter;
0 18 1 indefData [B
4 18 2 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
indefData
}
SourceFile: "DerIndefLenConverter.java"