class sun.security.util.DerInputBuffer extends java.io.ByteArrayInputStream implements java.lang.Cloneable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.util.DerInputBuffer
super_class: java.io.ByteArrayInputStream
{
boolean allowBER;
descriptor: Z
flags: (0x0000)
void <init>(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokespecial sun.security.util.DerInputBuffer.<init>:([BZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/DerInputBuffer;
0 2 1 buf [B
MethodParameters:
Name Flags
buf
void <init>(byte[], boolean);
descriptor: ([BZ)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
1: aload 0
iconst_1
putfield sun.security.util.DerInputBuffer.allowBER:Z
2: aload 0
iload 2
putfield sun.security.util.DerInputBuffer.allowBER:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/util/DerInputBuffer;
0 4 1 buf [B
0 4 2 allowBER Z
MethodParameters:
Name Flags
buf
allowBER
void <init>(byte[], int, int, boolean);
descriptor: ([BIIZ)V
flags: (0x0000)
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 0
aload 1
iload 2
iload 3
invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
1: aload 0
iconst_1
putfield sun.security.util.DerInputBuffer.allowBER:Z
2: aload 0
iload 4
putfield sun.security.util.DerInputBuffer.allowBER:Z
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 Lsun/security/util/DerInputBuffer;
0 4 1 buf [B
0 4 2 offset I
0 4 3 len I
0 4 4 allowBER Z
MethodParameters:
Name Flags
buf
offset
len
allowBER
sun.security.util.DerInputBuffer dup();
descriptor: ()Lsun/security/util/DerInputBuffer;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.clone:()Ljava/lang/Object;
checkcast sun.security.util.DerInputBuffer
astore 1
start local 1 1: aload 1
ldc 2147483647
invokevirtual sun.security.util.DerInputBuffer.mark:(I)V
2: aload 1
3: areturn
end local 1 4: StackMap locals:
StackMap stack: java.lang.CloneNotSupportedException
astore 1
start local 1 5: new java.lang.IllegalArgumentException
dup
aload 1
invokevirtual java.lang.CloneNotSupportedException.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/DerInputBuffer;
1 4 1 retval Lsun/security/util/DerInputBuffer;
5 6 1 e Ljava/lang/CloneNotSupportedException;
Exception table:
from to target type
0 3 4 Class java.lang.CloneNotSupportedException
byte[] toByteArray();
descriptor: ()[B
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
istore 1
start local 1 1: iload 1
ifgt 3
2: aconst_null
areturn
3: StackMap locals: int
StackMap stack:
iload 1
newarray 8
astore 2
start local 2 4: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
aload 2
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/DerInputBuffer;
1 6 1 len I
4 6 2 retval [B
int peek();
descriptor: ()I
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.util.DerInputBuffer.pos:I
aload 0
getfield sun.security.util.DerInputBuffer.count:I
if_icmplt 2
1: new java.io.IOException
dup
ldc "out of data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/util/DerInputBuffer;
Exceptions:
throws java.io.IOException
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof sun.security.util.DerInputBuffer
ifeq 2
1: aload 0
aload 1
checkcast sun.security.util.DerInputBuffer
invokevirtual sun.security.util.DerInputBuffer.equals:(Lsun/security/util/DerInputBuffer;)Z
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/util/DerInputBuffer;
0 3 1 other Ljava/lang/Object;
MethodParameters:
Name Flags
other
boolean equals(sun.security.util.DerInputBuffer);
descriptor: (Lsun/security/util/DerInputBuffer;)Z
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
istore 2
start local 2 3: aload 1
invokevirtual sun.security.util.DerInputBuffer.available:()I
iload 2
if_icmpeq 5
4: iconst_0
ireturn
5: StackMap locals: int
StackMap stack:
iconst_0
istore 3
start local 3 6: goto 10
7: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
iload 3
iadd
baload
aload 1
getfield sun.security.util.DerInputBuffer.buf:[B
aload 1
getfield sun.security.util.DerInputBuffer.pos:I
iload 3
iadd
baload
if_icmpeq 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 2
if_icmplt 7
end local 3 11: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/util/DerInputBuffer;
0 12 1 other Lsun/security/util/DerInputBuffer;
3 12 2 max I
6 11 3 i I
MethodParameters:
Name Flags
other
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
istore 2
start local 2 2: aload 0
getfield sun.security.util.DerInputBuffer.pos:I
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 7
5: StackMap locals: sun.security.util.DerInputBuffer int int int int
StackMap stack:
iload 1
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
iload 3
iload 4
iadd
baload
iload 4
imul
iadd
istore 1
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 2
if_icmplt 5
end local 4 8: iload 1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/util/DerInputBuffer;
1 9 1 retval I
2 9 2 len I
3 9 3 p I
4 8 4 i I
void truncate(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
if_icmple 2
1: new java.io.IOException
dup
ldc "insufficient data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
iload 1
iadd
putfield sun.security.util.DerInputBuffer.count:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/util/DerInputBuffer;
0 4 1 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
java.math.BigInteger getBigInteger(int, boolean);
descriptor: (IZ)Ljava/math/BigInteger;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
if_icmple 2
1: new java.io.IOException
dup
ldc "short read of integer"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
ifne 4
3: new java.io.IOException
dup
ldc "Invalid encoding: zero length Int value"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 1
newarray 8
astore 3
start local 3 5: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
aload 3
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
iload 1
i2l
invokevirtual sun.security.util.DerInputBuffer.skip:(J)J
pop2
7: aload 0
getfield sun.security.util.DerInputBuffer.allowBER:Z
ifne 9
iload 1
iconst_2
if_icmplt 9
aload 3
iconst_0
baload
ifne 9
aload 3
iconst_1
baload
iflt 9
8: new java.io.IOException
dup
ldc "Invalid encoding: redundant leading 0s"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: byte[]
StackMap stack:
iload 2
ifeq 11
10: new java.math.BigInteger
dup
iconst_1
aload 3
invokespecial java.math.BigInteger.<init>:(I[B)V
areturn
11: StackMap locals:
StackMap stack:
new java.math.BigInteger
dup
aload 3
invokespecial java.math.BigInteger.<init>:([B)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/util/DerInputBuffer;
0 12 1 len I
0 12 2 makePositive Z
5 12 3 bytes [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
makePositive
public int getInteger(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_0
invokevirtual sun.security.util.DerInputBuffer.getBigInteger:(IZ)Ljava/math/BigInteger;
astore 2
start local 2 1: aload 2
ldc -2147483648
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 3
2: new java.io.IOException
dup
ldc "Integer below minimum valid value"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.math.BigInteger
StackMap stack:
aload 2
ldc 2147483647
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifle 5
4: new java.io.IOException
dup
ldc "Integer exceeds maximum valid value"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.math.BigInteger.intValue:()I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/DerInputBuffer;
0 6 1 len I
1 6 2 result Ljava/math/BigInteger;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
public byte[] getBitString(int);
descriptor: (I)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: iload 1
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
if_icmple 2
1: new java.io.IOException
dup
ldc "short read of bit string"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
ifne 4
3: new java.io.IOException
dup
ldc "Invalid encoding: zero length bit string"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
istore 2
start local 2 5: iload 2
iflt 6
iload 2
bipush 7
if_icmple 7
6: StackMap locals: int
StackMap stack:
new java.io.IOException
dup
ldc "Invalid number of padding bits"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iload 1
iconst_1
isub
newarray 8
astore 3
start local 3 8: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
iconst_1
iadd
aload 3
iconst_0
iload 1
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: iload 2
ifeq 11
10: aload 3
iload 1
iconst_2
isub
dup2
baload
sipush 255
iload 2
ishl
iand
i2b
bastore
11: StackMap locals: byte[]
StackMap stack:
aload 0
iload 1
i2l
invokevirtual sun.security.util.DerInputBuffer.skip:(J)J
pop2
12: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/util/DerInputBuffer;
0 13 1 len I
5 13 2 numOfPadBits I
8 13 3 retval [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
byte[] getBitString();
descriptor: ()[B
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
invokevirtual sun.security.util.DerInputBuffer.getBitString:(I)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/DerInputBuffer;
Exceptions:
throws java.io.IOException
sun.security.util.BitArray getUnalignedBitString();
descriptor: ()Lsun/security/util/BitArray;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.security.util.DerInputBuffer.pos:I
aload 0
getfield sun.security.util.DerInputBuffer.count:I
if_icmplt 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
istore 1
start local 1 3: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
sipush 255
iand
istore 2
start local 2 4: iload 2
bipush 7
if_icmple 6
5: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Invalid value for unused bits: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int int
StackMap stack:
iload 1
iconst_1
isub
newarray 8
astore 3
start local 3 7: aload 3
arraylength
ifne 8
iconst_0
goto 9
StackMap locals: byte[]
StackMap stack:
8: aload 3
arraylength
bipush 8
imul
iload 2
isub
StackMap locals:
StackMap stack: int
9: istore 4
start local 4 10: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
iconst_1
iadd
aload 3
iconst_0
iload 1
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: new sun.security.util.BitArray
dup
iload 4
aload 3
invokespecial sun.security.util.BitArray.<init>:(I[B)V
astore 5
start local 5 12: aload 0
aload 0
getfield sun.security.util.DerInputBuffer.count:I
putfield sun.security.util.DerInputBuffer.pos:I
13: aload 5
areturn
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 14 0 this Lsun/security/util/DerInputBuffer;
3 14 1 len I
4 14 2 unusedBits I
7 14 3 bits [B
10 14 4 length I
12 14 5 bitArray Lsun/security/util/BitArray;
Exceptions:
throws java.io.IOException
public java.util.Date getUTCTime(int);
descriptor: (I)Ljava/util/Date;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
if_icmple 2
1: new java.io.IOException
dup
ldc "short read of DER UTC Time"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
bipush 11
if_icmplt 3
iload 1
bipush 17
if_icmple 4
3: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "DER UTC Time length error"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_0
invokevirtual sun.security.util.DerInputBuffer.getTime:(IZ)Ljava/util/Date;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/util/DerInputBuffer;
0 5 1 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
public java.util.Date getGeneralizedTime(int);
descriptor: (I)Ljava/util/Date;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
invokevirtual sun.security.util.DerInputBuffer.available:()I
if_icmple 2
1: new java.io.IOException
dup
ldc "short read of DER Generalized Time"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
bipush 13
if_icmpge 4
3: new java.io.IOException
dup
ldc "DER Generalized Time length error"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_1
invokevirtual sun.security.util.DerInputBuffer.getTime:(IZ)Ljava/util/Date;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/util/DerInputBuffer;
0 5 1 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
private java.util.Date getTime(int, boolean);
descriptor: (IZ)Ljava/util/Date;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 10
start local 10 1: iload 2
ifeq 9
2: ldc "Generalized"
astore 10
3: sipush 1000
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 3
start local 3 4: iload 3
bipush 100
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
iadd
istore 3
5: iload 3
bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
iadd
istore 3
6: iload 3
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 3
7: iinc 1 -2
8: goto 15
end local 3 9: StackMap locals: sun.security.util.DerInputBuffer int int top top top top top top top java.lang.String
StackMap stack:
ldc "UTC"
astore 10
10: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 3
start local 3 11: iload 3
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 3
12: iload 3
bipush 50
if_icmpge 14
13: iinc 3 2000
goto 15
14: StackMap locals: sun.security.util.DerInputBuffer int int int top top top top top top java.lang.String
StackMap stack:
iinc 3 1900
15: StackMap locals:
StackMap stack:
bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 4
start local 4 16: iload 4
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 4
17: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 5
start local 5 18: iload 5
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 5
19: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 6
start local 6 20: iload 6
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 6
21: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 7
start local 7 22: iload 7
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 7
23: iinc 1 -10
24: iconst_0
istore 9
start local 9 25: iload 1
iconst_2
if_icmple 59
26: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 8
start local 8 27: iload 8
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 8
28: iinc 1 -2
29: iload 2
ifeq 60
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
bipush 46
if_icmpeq 30
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
bipush 44
if_icmpne 60
30: StackMap locals: sun.security.util.DerInputBuffer int int int int int int int int int java.lang.String
StackMap stack:
iinc 1 -1
31: iload 1
ifne 35
32: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc " time, empty fractional part"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
36: iconst_0
istore 11
start local 11 37: goto 52
38: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
istore 12
start local 12 39: iinc 11 1
40: iinc 1 -1
41: iload 1
ifne 45
42: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
43: ldc " time, invalid fractional part"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals: int
StackMap stack:
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
46: iload 11
tableswitch { // 1 - 3
1: 47
2: 49
3: 51
default: 52
}
47: StackMap locals:
StackMap stack:
iload 9
bipush 100
iload 12
imul
iadd
istore 9
48: goto 52
49: StackMap locals:
StackMap stack:
iload 9
bipush 10
iload 12
imul
iadd
istore 9
50: goto 52
51: StackMap locals:
StackMap stack:
iload 9
iload 12
iadd
istore 9
end local 12 52: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
bipush 90
if_icmpeq 55
53: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
bipush 43
if_icmpeq 55
54: aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
getfield sun.security.util.DerInputBuffer.pos:I
baload
bipush 45
if_icmpne 38
55: StackMap locals:
StackMap stack:
iload 11
ifne 60
56: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
57: ldc " time, empty fractional part"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
58: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 11 end local 8 59: StackMap locals: sun.security.util.DerInputBuffer int int int int int int int top int java.lang.String
StackMap stack:
iconst_0
istore 8
start local 8 60: StackMap locals: sun.security.util.DerInputBuffer int int int int int int int int int java.lang.String
StackMap stack:
iload 4
ifeq 63
iload 5
ifeq 63
61: iload 4
bipush 12
if_icmpgt 63
iload 5
bipush 31
if_icmpgt 63
62: iload 6
bipush 24
if_icmpge 63
iload 7
bipush 60
if_icmpge 63
iload 8
bipush 60
if_icmplt 64
63: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, invalid format"
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
64: StackMap locals:
StackMap stack:
invokestatic sun.util.calendar.CalendarSystem.getGregorianCalendar:()Lsun/util/calendar/Gregorian;
astore 11
start local 11 65: aload 11
aconst_null
invokevirtual sun.util.calendar.CalendarSystem.newCalendarDate:(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate;
astore 12
start local 12 66: aload 12
iload 3
iload 4
iload 5
invokevirtual sun.util.calendar.CalendarDate.setDate:(III)Lsun/util/calendar/CalendarDate;
pop
67: aload 12
iload 6
iload 7
iload 8
iload 9
invokevirtual sun.util.calendar.CalendarDate.setTimeOfDay:(IIII)Lsun/util/calendar/CalendarDate;
pop
68: aload 11
aload 12
invokevirtual sun.util.calendar.CalendarSystem.getTime:(Lsun/util/calendar/CalendarDate;)J
lstore 13
start local 13 69: iload 1
iconst_1
if_icmpeq 71
iload 1
iconst_5
if_icmpeq 71
70: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, invalid offset"
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
71: StackMap locals: sun.util.calendar.CalendarSystem sun.util.calendar.CalendarDate long
StackMap stack:
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
lookupswitch { // 3
43: 72
45: 82
90: 92
default: 94
}
72: StackMap locals:
StackMap stack:
iload 1
iconst_5
if_icmpeq 74
73: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, invalid offset"
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
74: StackMap locals:
StackMap stack:
bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 15
start local 15 75: iload 15
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 15
76: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 16
start local 16 77: iload 16
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 16
78: iload 15
bipush 24
if_icmpge 79
iload 16
bipush 60
if_icmplt 80
79: StackMap locals: int int
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, +hhmm"
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
80: StackMap locals:
StackMap stack:
lload 13
iload 15
bipush 60
imul
iload 16
iadd
bipush 60
imul
sipush 1000
imul
i2l
lsub
lstore 13
81: goto 95
end local 16 end local 15 82: StackMap locals:
StackMap stack:
iload 1
iconst_5
if_icmpeq 84
83: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, invalid offset"
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
84: StackMap locals:
StackMap stack:
bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 15
start local 15 85: iload 15
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 15
86: bipush 10
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
imul
istore 16
start local 16 87: iload 16
aload 0
getfield sun.security.util.DerInputBuffer.buf:[B
aload 0
dup
getfield sun.security.util.DerInputBuffer.pos:I
dup_x1
iconst_1
iadd
putfield sun.security.util.DerInputBuffer.pos:I
baload
aload 10
invokestatic sun.security.util.DerInputBuffer.toDigit:(BLjava/lang/String;)I
iadd
istore 16
88: iload 15
bipush 24
if_icmpge 89
iload 16
bipush 60
if_icmplt 90
89: StackMap locals: int int
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, -hhmm"
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
90: StackMap locals:
StackMap stack:
lload 13
iload 15
bipush 60
imul
iload 16
iadd
bipush 60
imul
sipush 1000
imul
i2l
ladd
lstore 13
91: goto 95
end local 16 end local 15 92: StackMap locals:
StackMap stack:
iload 1
iconst_1
if_icmpeq 95
93: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, invalid format"
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
94: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, garbage offset"
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
95: StackMap locals:
StackMap stack:
new java.util.Date
dup
lload 13
invokespecial java.util.Date.<init>:(J)V
areturn
end local 13 end local 12 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 96 0 this Lsun/security/util/DerInputBuffer;
0 96 1 len I
0 96 2 generalized Z
4 9 3 year I
11 96 3 year I
16 96 4 month I
18 96 5 day I
20 96 6 hour I
22 96 7 minute I
27 59 8 second I
60 96 8 second I
25 96 9 millis I
1 96 10 type Ljava/lang/String;
37 59 11 precision I
39 52 12 thisDigit I
65 96 11 gcal Lsun/util/calendar/CalendarSystem;
66 96 12 date Lsun/util/calendar/CalendarDate;
69 96 13 time J
75 82 15 hr I
85 92 15 hr I
77 82 16 min I
87 92 16 min I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
generalized
private static int toDigit(byte, java.lang.String);
descriptor: (BLjava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 0
bipush 48
if_icmplt 1
iload 0
bipush 57
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Parse "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " time, invalid format"
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
2: StackMap locals:
StackMap stack:
iload 0
bipush 48
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 b B
0 3 1 type Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
type
}
SourceFile: "DerInputBuffer.java"