public class org.bouncycastle.asn1.ASN1InputStream extends java.io.FilterInputStream implements org.bouncycastle.asn1.BERTags
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.asn1.ASN1InputStream
super_class: java.io.FilterInputStream
{
private final int limit;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean lazyEvaluate;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[][] tmpBuffers;
descriptor: [[B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
invokestatic org.bouncycastle.asn1.StreamUtil.findLimit:(Ljava/io/InputStream;)I
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 2 1 is Ljava/io/InputStream;
MethodParameters:
Name Flags
is
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.io.ByteArrayInputStream
dup
aload 1
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
aload 1
arraylength
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 2 1 input [B
MethodParameters:
Name Flags
input
public void <init>(byte[], boolean);
descriptor: ([BZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new java.io.ByteArrayInputStream
dup
aload 1
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
aload 1
arraylength
iload 2
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;IZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 2 1 input [B
0 2 2 lazyEvaluate Z
MethodParameters:
Name Flags
input
lazyEvaluate
public void <init>(java.io.InputStream, int);
descriptor: (Ljava/io/InputStream;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
iconst_0
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;IZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 2 1 input Ljava/io/InputStream;
0 2 2 limit I
MethodParameters:
Name Flags
input
limit
public void <init>(java.io.InputStream, boolean);
descriptor: (Ljava/io/InputStream;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
invokestatic org.bouncycastle.asn1.StreamUtil.findLimit:(Ljava/io/InputStream;)I
iload 2
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;IZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 2 1 input Ljava/io/InputStream;
0 2 2 lazyEvaluate Z
MethodParameters:
Name Flags
input
lazyEvaluate
public void <init>(java.io.InputStream, int, boolean);
descriptor: (Ljava/io/InputStream;IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial java.io.FilterInputStream.<init>:(Ljava/io/InputStream;)V
1: aload 0
iload 2
putfield org.bouncycastle.asn1.ASN1InputStream.limit:I
2: aload 0
iload 3
putfield org.bouncycastle.asn1.ASN1InputStream.lazyEvaluate:Z
3: aload 0
bipush 11
anewarray byte[]
putfield org.bouncycastle.asn1.ASN1InputStream.tmpBuffers:[[B
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 5 1 input Ljava/io/InputStream;
0 5 2 limit I
0 5 3 lazyEvaluate Z
MethodParameters:
Name Flags
input
limit
lazyEvaluate
int getLimit();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.asn1.ASN1InputStream.limit:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
protected int readLength();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.bouncycastle.asn1.ASN1InputStream.limit:I
invokestatic org.bouncycastle.asn1.ASN1InputStream.readLength:(Ljava/io/InputStream;I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
Exceptions:
throws java.io.IOException
protected void readFully(byte[]);
descriptor: ([B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.bouncycastle.util.io.Streams.readFully:(Ljava/io/InputStream;[B)I
aload 1
arraylength
if_icmpeq 2
1: new java.io.EOFException
dup
ldc "EOF encountered in middle of object"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 3 1 bytes [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bytes
protected org.bouncycastle.asn1.ASN1Primitive buildObject(int, int, int);
descriptor: (III)Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
bipush 32
iand
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 4
start local 4 3: new org.bouncycastle.asn1.DefiniteLengthInputStream
dup
aload 0
iload 3
invokespecial org.bouncycastle.asn1.DefiniteLengthInputStream.<init>:(Ljava/io/InputStream;I)V
astore 5
start local 5 4: iload 1
bipush 64
iand
ifeq 6
5: new org.bouncycastle.asn1.DLApplicationSpecific
dup
iload 4
iload 2
aload 5
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DLApplicationSpecific.<init>:(ZI[B)V
areturn
6: StackMap locals: int org.bouncycastle.asn1.DefiniteLengthInputStream
StackMap stack:
iload 1
sipush 128
iand
ifeq 8
7: new org.bouncycastle.asn1.ASN1StreamParser
dup
aload 5
invokespecial org.bouncycastle.asn1.ASN1StreamParser.<init>:(Ljava/io/InputStream;)V
iload 4
iload 2
invokevirtual org.bouncycastle.asn1.ASN1StreamParser.readTaggedObject:(ZI)Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
8: StackMap locals:
StackMap stack:
iload 4
ifeq 24
9: iload 2
lookupswitch { // 4
4: 10
8: 22
16: 18
17: 21
default: 23
}
10: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual org.bouncycastle.asn1.ASN1InputStream.buildDEREncodableVector:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
astore 6
start local 6 11: aload 6
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
anewarray org.bouncycastle.asn1.ASN1OctetString
astore 7
start local 7 12: iconst_0
istore 8
start local 8 13: goto 16
14: StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.ASN1OctetString[] int
StackMap stack:
aload 7
iload 8
aload 6
iload 8
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
checkcast org.bouncycastle.asn1.ASN1OctetString
aastore
15: iinc 8 1
StackMap locals:
StackMap stack:
16: iload 8
aload 7
arraylength
if_icmpne 14
end local 8 17: new org.bouncycastle.asn1.BEROctetString
dup
aload 7
invokespecial org.bouncycastle.asn1.BEROctetString.<init>:([Lorg/bouncycastle/asn1/ASN1OctetString;)V
areturn
end local 7 end local 6 18: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.asn1.ASN1InputStream.lazyEvaluate:Z
ifeq 20
19: new org.bouncycastle.asn1.LazyEncodedSequence
dup
aload 5
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.LazyEncodedSequence.<init>:([B)V
areturn
20: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual org.bouncycastle.asn1.ASN1InputStream.buildDEREncodableVector:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokestatic org.bouncycastle.asn1.DERFactory.createSequence:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)Lorg/bouncycastle/asn1/ASN1Sequence;
areturn
21: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual org.bouncycastle.asn1.ASN1InputStream.buildDEREncodableVector:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokestatic org.bouncycastle.asn1.DERFactory.createSet:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)Lorg/bouncycastle/asn1/ASN1Set;
areturn
22: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DLExternal
dup
aload 0
aload 5
invokevirtual org.bouncycastle.asn1.ASN1InputStream.buildDEREncodableVector:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
invokespecial org.bouncycastle.asn1.DLExternal.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
areturn
23: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "unknown tag "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " encountered"
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
24: StackMap locals:
StackMap stack:
iload 2
aload 5
aload 0
getfield org.bouncycastle.asn1.ASN1InputStream.tmpBuffers:[[B
invokestatic org.bouncycastle.asn1.ASN1InputStream.createPrimitiveDERObject:(ILorg/bouncycastle/asn1/DefiniteLengthInputStream;[[B)Lorg/bouncycastle/asn1/ASN1Primitive;
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 25 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 25 1 tag I
0 25 2 tagNo I
0 25 3 length I
3 25 4 isConstructed Z
4 25 5 defIn Lorg/bouncycastle/asn1/DefiniteLengthInputStream;
11 18 6 v Lorg/bouncycastle/asn1/ASN1EncodableVector;
12 18 7 strings [Lorg/bouncycastle/asn1/ASN1OctetString;
13 17 8 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tag
tagNo
length
org.bouncycastle.asn1.ASN1EncodableVector buildEncodableVector();
descriptor: ()Lorg/bouncycastle/asn1/ASN1EncodableVector;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: new org.bouncycastle.asn1.ASN1EncodableVector
dup
invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
astore 1
start local 1 1: goto 3
start local 2 2: StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.ASN1Primitive
StackMap stack:
aload 1
aload 2
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
dup
astore 2
start local 2 4: ifnonnull 2
5: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
1 6 1 v Lorg/bouncycastle/asn1/ASN1EncodableVector;
2 3 2 o Lorg/bouncycastle/asn1/ASN1Primitive;
4 6 2 o Lorg/bouncycastle/asn1/ASN1Primitive;
Exceptions:
throws java.io.IOException
org.bouncycastle.asn1.ASN1EncodableVector buildDEREncodableVector(org.bouncycastle.asn1.DefiniteLengthInputStream);
descriptor: (Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.asn1.ASN1InputStream
dup
aload 1
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;)V
invokevirtual org.bouncycastle.asn1.ASN1InputStream.buildEncodableVector:()Lorg/bouncycastle/asn1/ASN1EncodableVector;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
0 1 1 dIn Lorg/bouncycastle/asn1/DefiniteLengthInputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dIn
public org.bouncycastle.asn1.ASN1Primitive readObject();
descriptor: ()Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.asn1.ASN1InputStream.read:()I
istore 1
start local 1 1: iload 1
ifgt 5
2: iload 1
ifne 4
3: new java.io.IOException
dup
ldc "unexpected end-of-contents marker"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic org.bouncycastle.asn1.ASN1InputStream.readTagNumber:(Ljava/io/InputStream;I)I
istore 2
start local 2 6: iload 1
bipush 32
iand
ifeq 7
iconst_1
goto 8
StackMap locals: int
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 3
start local 3 9: aload 0
invokevirtual org.bouncycastle.asn1.ASN1InputStream.readLength:()I
istore 4
start local 4 10: iload 4
ifge 25
11: iload 3
ifne 13
12: new java.io.IOException
dup
ldc "indefinite-length primitive encoding encountered"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: int int
StackMap stack:
new org.bouncycastle.asn1.IndefiniteLengthInputStream
dup
aload 0
aload 0
getfield org.bouncycastle.asn1.ASN1InputStream.limit:I
invokespecial org.bouncycastle.asn1.IndefiniteLengthInputStream.<init>:(Ljava/io/InputStream;I)V
astore 5
start local 5 14: new org.bouncycastle.asn1.ASN1StreamParser
dup
aload 5
aload 0
getfield org.bouncycastle.asn1.ASN1InputStream.limit:I
invokespecial org.bouncycastle.asn1.ASN1StreamParser.<init>:(Ljava/io/InputStream;I)V
astore 6
start local 6 15: iload 1
bipush 64
iand
ifeq 17
16: new org.bouncycastle.asn1.BERApplicationSpecificParser
dup
iload 2
aload 6
invokespecial org.bouncycastle.asn1.BERApplicationSpecificParser.<init>:(ILorg/bouncycastle/asn1/ASN1StreamParser;)V
invokevirtual org.bouncycastle.asn1.BERApplicationSpecificParser.getLoadedObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
17: StackMap locals: org.bouncycastle.asn1.IndefiniteLengthInputStream org.bouncycastle.asn1.ASN1StreamParser
StackMap stack:
iload 1
sipush 128
iand
ifeq 19
18: new org.bouncycastle.asn1.BERTaggedObjectParser
dup
iconst_1
iload 2
aload 6
invokespecial org.bouncycastle.asn1.BERTaggedObjectParser.<init>:(ZILorg/bouncycastle/asn1/ASN1StreamParser;)V
invokevirtual org.bouncycastle.asn1.BERTaggedObjectParser.getLoadedObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
19: StackMap locals:
StackMap stack:
iload 2
lookupswitch { // 4
4: 20
8: 23
16: 21
17: 22
default: 24
}
20: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.BEROctetStringParser
dup
aload 6
invokespecial org.bouncycastle.asn1.BEROctetStringParser.<init>:(Lorg/bouncycastle/asn1/ASN1StreamParser;)V
invokevirtual org.bouncycastle.asn1.BEROctetStringParser.getLoadedObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
21: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.BERSequenceParser
dup
aload 6
invokespecial org.bouncycastle.asn1.BERSequenceParser.<init>:(Lorg/bouncycastle/asn1/ASN1StreamParser;)V
invokevirtual org.bouncycastle.asn1.BERSequenceParser.getLoadedObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
22: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.BERSetParser
dup
aload 6
invokespecial org.bouncycastle.asn1.BERSetParser.<init>:(Lorg/bouncycastle/asn1/ASN1StreamParser;)V
invokevirtual org.bouncycastle.asn1.BERSetParser.getLoadedObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
23: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERExternalParser
dup
aload 6
invokespecial org.bouncycastle.asn1.DERExternalParser.<init>:(Lorg/bouncycastle/asn1/ASN1StreamParser;)V
invokevirtual org.bouncycastle.asn1.DERExternalParser.getLoadedObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
24: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "unknown BER object encountered"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 25: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
iload 4
invokevirtual org.bouncycastle.asn1.ASN1InputStream.buildObject:(III)Lorg/bouncycastle/asn1/ASN1Primitive;
26: areturn
27: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 5
start local 5 28: new org.bouncycastle.asn1.ASN1Exception
dup
ldc "corrupted stream detected"
aload 5
invokespecial org.bouncycastle.asn1.ASN1Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/bouncycastle/asn1/ASN1InputStream;
1 29 1 tag I
6 29 2 tagNo I
9 29 3 isConstructed Z
10 29 4 length I
14 25 5 indIn Lorg/bouncycastle/asn1/IndefiniteLengthInputStream;
15 25 6 sp Lorg/bouncycastle/asn1/ASN1StreamParser;
28 29 5 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
25 26 27 Class java.lang.IllegalArgumentException
Exceptions:
throws java.io.IOException
static int readTagNumber(java.io.InputStream, int);
descriptor: (Ljava/io/InputStream;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iload 1
bipush 31
iand
istore 2
start local 2 1: iload 2
bipush 31
if_icmpne 13
2: iconst_0
istore 2
3: aload 0
invokevirtual java.io.InputStream.read:()I
istore 3
start local 3 4: iload 3
bipush 127
iand
ifne 9
5: new java.io.IOException
dup
ldc "corrupted stream - invalid high tag number found"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int int
StackMap stack:
iload 2
iload 3
bipush 127
iand
ior
istore 2
7: iload 2
bipush 7
ishl
istore 2
8: aload 0
invokevirtual java.io.InputStream.read:()I
istore 3
9: StackMap locals:
StackMap stack:
iload 3
iflt 10
iload 3
sipush 128
iand
ifne 6
10: StackMap locals:
StackMap stack:
iload 3
ifge 12
11: new java.io.EOFException
dup
ldc "EOF found inside tag value."
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
iload 2
iload 3
bipush 127
iand
ior
istore 2
end local 3 13: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 s Ljava/io/InputStream;
0 14 1 tag I
1 14 2 tagNo I
4 13 3 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
tag
static int readLength(java.io.InputStream, int);
descriptor: (Ljava/io/InputStream;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.io.InputStream.read:()I
istore 2
start local 2 1: iload 2
ifge 3
2: new java.io.EOFException
dup
ldc "EOF found when length expected"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
iload 2
sipush 128
if_icmpne 5
4: iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
iload 2
bipush 127
if_icmple 22
6: iload 2
bipush 127
iand
istore 3
start local 3 7: iload 3
iconst_4
if_icmple 9
8: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "DER length more than 4 bytes: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
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
9: StackMap locals: int
StackMap stack:
iconst_0
istore 2
10: iconst_0
istore 4
start local 4 11: goto 17
12: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.io.InputStream.read:()I
istore 5
start local 5 13: iload 5
ifge 15
14: new java.io.EOFException
dup
ldc "EOF found reading length"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: int
StackMap stack:
iload 2
bipush 8
ishl
iload 5
iadd
istore 2
end local 5 16: iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
iload 3
if_icmplt 12
end local 4 18: iload 2
ifge 20
19: new java.io.IOException
dup
ldc "corrupted stream - negative length found"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
iload 2
iload 1
if_icmplt 22
21: new java.io.IOException
dup
ldc "corrupted stream - out of bounds length found"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 3 22: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 s Ljava/io/InputStream;
0 23 1 limit I
1 23 2 length I
7 22 3 size I
11 18 4 i I
13 16 5 next I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
limit
private static byte[] getBuffer(org.bouncycastle.asn1.DefiniteLengthInputStream, byte[][]);
descriptor: (Lorg/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.getRemaining:()I
istore 2
start local 2 1: aload 0
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.getRemaining:()I
aload 1
arraylength
if_icmpge 7
2: aload 1
iload 2
aaload
astore 3
start local 3 3: aload 3
ifnonnull 5
4: aload 1
iload 2
iload 2
newarray 8
dup_x2
aastore
astore 3
5: StackMap locals: int byte[]
StackMap stack:
aload 0
aload 3
invokestatic org.bouncycastle.util.io.Streams.readFully:(Ljava/io/InputStream;[B)I
pop
6: aload 3
areturn
end local 3 7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 defIn Lorg/bouncycastle/asn1/DefiniteLengthInputStream;
0 8 1 tmpBuffers [[B
1 8 2 len I
3 7 3 buf [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
defIn
tmpBuffers
private static char[] getBMPCharBuffer(org.bouncycastle.asn1.DefiniteLengthInputStream);
descriptor: (Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)[C
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.getRemaining:()I
iconst_2
idiv
istore 1
start local 1 1: iload 1
newarray 5
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 11
4: StackMap locals: int char[] int
StackMap stack:
aload 0
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.read:()I
istore 4
start local 4 5: iload 4
ifge 7
6: goto 12
7: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.read:()I
istore 5
start local 5 8: iload 5
ifge 10
9: goto 12
10: StackMap locals: int
StackMap stack:
aload 2
iload 3
iinc 3 1
iload 4
bipush 8
ishl
iload 5
sipush 255
iand
ior
i2c
castore
end local 5 end local 4 11: StackMap locals:
StackMap stack:
iload 3
iload 1
if_icmplt 4
12: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 defIn Lorg/bouncycastle/asn1/DefiniteLengthInputStream;
1 13 1 len I
2 13 2 buf [C
3 13 3 totalRead I
5 11 4 ch1 I
8 11 5 ch2 I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
defIn
static org.bouncycastle.asn1.ASN1Primitive createPrimitiveDERObject(int, org.bouncycastle.asn1.DefiniteLengthInputStream, byte[][]);
descriptor: (ILorg/bouncycastle/asn1/DefiniteLengthInputStream;[[B)Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 0
tableswitch { // 1 - 30
1: 3
2: 8
3: 1
4: 12
5: 9
6: 11
7: 21
8: 21
9: 21
10: 4
11: 21
12: 17
13: 21
14: 21
15: 21
16: 21
17: 21
18: 10
19: 13
20: 14
21: 20
22: 7
23: 16
24: 5
25: 19
26: 18
27: 6
28: 15
29: 21
30: 2
default: 21
}
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.getRemaining:()I
aload 1
invokestatic org.bouncycastle.asn1.ASN1BitString.fromInputStream:(ILjava/io/InputStream;)Lorg/bouncycastle/asn1/ASN1BitString;
areturn
2: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERBMPString
dup
aload 1
invokestatic org.bouncycastle.asn1.ASN1InputStream.getBMPCharBuffer:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;)[C
invokespecial org.bouncycastle.asn1.DERBMPString.<init>:([C)V
areturn
3: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.bouncycastle.asn1.ASN1InputStream.getBuffer:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
invokestatic org.bouncycastle.asn1.ASN1Boolean.fromOctetString:([B)Lorg/bouncycastle/asn1/ASN1Boolean;
areturn
4: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.bouncycastle.asn1.ASN1InputStream.getBuffer:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
invokestatic org.bouncycastle.asn1.ASN1Enumerated.fromOctetString:([B)Lorg/bouncycastle/asn1/ASN1Enumerated;
areturn
5: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.ASN1GeneralizedTime
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.ASN1GeneralizedTime.<init>:([B)V
areturn
6: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERGeneralString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERGeneralString.<init>:([B)V
areturn
7: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERIA5String
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERIA5String.<init>:([B)V
areturn
8: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.ASN1Integer
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
iconst_0
invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:([BZ)V
areturn
9: StackMap locals:
StackMap stack:
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
areturn
10: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERNumericString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERNumericString.<init>:([B)V
areturn
11: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.bouncycastle.asn1.ASN1InputStream.getBuffer:(Lorg/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
invokestatic org.bouncycastle.asn1.ASN1ObjectIdentifier.fromOctetString:([B)Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
areturn
12: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DEROctetString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
areturn
13: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERPrintableString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERPrintableString.<init>:([B)V
areturn
14: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERT61String
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERT61String.<init>:([B)V
areturn
15: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERUniversalString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERUniversalString.<init>:([B)V
areturn
16: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.ASN1UTCTime
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.ASN1UTCTime.<init>:([B)V
areturn
17: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERUTF8String
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERUTF8String.<init>:([B)V
areturn
18: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERVisibleString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERVisibleString.<init>:([B)V
areturn
19: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERGraphicString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERGraphicString.<init>:([B)V
areturn
20: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERVideotexString
dup
aload 1
invokevirtual org.bouncycastle.asn1.DefiniteLengthInputStream.toByteArray:()[B
invokespecial org.bouncycastle.asn1.DERVideotexString.<init>:([B)V
areturn
21: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "unknown tag "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " encountered"
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
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 tagNo I
0 22 1 defIn Lorg/bouncycastle/asn1/DefiniteLengthInputStream;
0 22 2 tmpBuffers [[B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tagNo
defIn
tmpBuffers
}
SourceFile: "ASN1InputStream.java"