public class org.bouncycastle.asn1.DERBitString extends org.bouncycastle.asn1.ASN1Object implements org.bouncycastle.asn1.DERString
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.asn1.DERBitString
super_class: org.bouncycastle.asn1.ASN1Object
{
private static final char[] table;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected byte[] data;
descriptor: [B
flags: (0x0004) ACC_PROTECTED
protected int padBits;
descriptor: I
flags: (0x0004) ACC_PROTECTED
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 16
newarray 5
dup
iconst_0
bipush 48
castore
dup
iconst_1
bipush 49
castore
dup
iconst_2
bipush 50
castore
dup
iconst_3
bipush 51
castore
dup
iconst_4
bipush 52
castore
dup
iconst_5
bipush 53
castore
dup
bipush 6
bipush 54
castore
dup
bipush 7
bipush 55
castore
dup
bipush 8
bipush 56
castore
dup
bipush 9
bipush 57
castore
dup
bipush 10
bipush 65
castore
dup
bipush 11
bipush 66
castore
dup
bipush 12
bipush 67
castore
dup
bipush 13
bipush 68
castore
dup
bipush 14
bipush 69
castore
dup
bipush 15
bipush 70
castore
putstatic org.bouncycastle.asn1.DERBitString.table:[C
return
LocalVariableTable:
Start End Slot Name Signature
protected static int getPadBits(int);
descriptor: (I)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_3
istore 2
start local 2 2: goto 11
3: StackMap locals: int int
StackMap stack:
iload 2
ifeq 7
4: iload 0
iload 2
bipush 8
imul
ishr
ifeq 10
5: iload 0
iload 2
bipush 8
imul
ishr
sipush 255
iand
istore 1
6: goto 12
7: StackMap locals:
StackMap stack:
iload 0
ifeq 10
8: iload 0
sipush 255
iand
istore 1
9: goto 12
10: StackMap locals:
StackMap stack:
iinc 2 -1
StackMap locals:
StackMap stack:
11: iload 2
ifge 3
end local 2 12: StackMap locals:
StackMap stack:
iload 1
ifne 14
13: bipush 7
ireturn
14: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 15: goto 17
16: StackMap locals: int
StackMap stack:
iinc 2 1
17: StackMap locals:
StackMap stack:
iload 1
iconst_1
ishl
dup
istore 1
sipush 255
iand
ifne 16
18: bipush 8
iload 2
isub
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 bitString I
1 19 1 val I
2 12 2 i I
15 19 2 bits I
MethodParameters:
Name Flags
bitString
protected static byte[] getBytes(int);
descriptor: (I)[B
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: iconst_4
istore 1
start local 1 1: iconst_3
istore 2
start local 2 2: goto 7
3: StackMap locals: int int
StackMap stack:
iload 0
sipush 255
iload 2
bipush 8
imul
ishl
iand
ifeq 5
4: goto 8
5: StackMap locals:
StackMap stack:
iinc 1 -1
6: iinc 2 -1
StackMap locals:
StackMap stack:
7: iload 2
iconst_1
if_icmpge 3
end local 2 8: StackMap locals:
StackMap stack:
iload 1
newarray 8
astore 2
start local 2 9: iconst_0
istore 3
start local 3 10: goto 13
11: StackMap locals: byte[] int
StackMap stack:
aload 2
iload 3
iload 0
iload 3
bipush 8
imul
ishr
sipush 255
iand
i2b
bastore
12: iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
iload 1
if_icmplt 11
end local 3 14: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 bitString I
1 15 1 bytes I
2 8 2 i I
9 15 2 result [B
10 14 3 i I
MethodParameters:
Name Flags
bitString
public static org.bouncycastle.asn1.DERBitString getInstance(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lorg/bouncycastle/asn1/DERBitString;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
instanceof org.bouncycastle.asn1.DERBitString
ifeq 2
1: StackMap locals:
StackMap stack:
aload 0
checkcast org.bouncycastle.asn1.DERBitString
areturn
2: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "illegal object in getInstance: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public static org.bouncycastle.asn1.DERBitString getInstance(org.bouncycastle.asn1.ASN1TaggedObject, boolean);
descriptor: (Lorg/bouncycastle/asn1/ASN1TaggedObject;Z)Lorg/bouncycastle/asn1/DERBitString;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.asn1.ASN1TaggedObject.getObject:()Lorg/bouncycastle/asn1/DERObject;
astore 2
start local 2 1: iload 1
ifne 2
aload 2
instanceof org.bouncycastle.asn1.DERBitString
ifeq 3
2: StackMap locals: org.bouncycastle.asn1.DERObject
StackMap stack:
aload 2
invokestatic org.bouncycastle.asn1.DERBitString.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/DERBitString;
areturn
3: StackMap locals:
StackMap stack:
aload 2
checkcast org.bouncycastle.asn1.ASN1OctetString
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokestatic org.bouncycastle.asn1.DERBitString.fromOctetString:([B)Lorg/bouncycastle/asn1/DERBitString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 obj Lorg/bouncycastle/asn1/ASN1TaggedObject;
0 4 1 explicit Z
1 4 2 o Lorg/bouncycastle/asn1/DERObject;
MethodParameters:
Name Flags
obj
explicit
protected void <init>(byte, int);
descriptor: (BI)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.bouncycastle.asn1.ASN1Object.<init>:()V
1: aload 0
iconst_1
newarray 8
putfield org.bouncycastle.asn1.DERBitString.data:[B
2: aload 0
getfield org.bouncycastle.asn1.DERBitString.data:[B
iconst_0
iload 1
bastore
3: aload 0
iload 2
putfield org.bouncycastle.asn1.DERBitString.padBits:I
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/asn1/DERBitString;
0 5 1 data B
0 5 2 padBits I
MethodParameters:
Name Flags
data
padBits
public void <init>(byte[], int);
descriptor: ([BI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.bouncycastle.asn1.ASN1Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.asn1.DERBitString.data:[B
2: aload 0
iload 2
putfield org.bouncycastle.asn1.DERBitString.padBits:I
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/asn1/DERBitString;
0 4 1 data [B
0 4 2 padBits I
MethodParameters:
Name Flags
data
padBits
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokespecial org.bouncycastle.asn1.DERBitString.<init>:([BI)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/asn1/DERBitString;
0 2 1 data [B
MethodParameters:
Name Flags
data
public void <init>(org.bouncycastle.asn1.DEREncodable);
descriptor: (Lorg/bouncycastle/asn1/DEREncodable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.bouncycastle.asn1.ASN1Object.<init>:()V
1: aload 0
aload 1
invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
ldc "DER"
invokevirtual org.bouncycastle.asn1.DERObject.getEncoded:(Ljava/lang/String;)[B
putfield org.bouncycastle.asn1.DERBitString.data:[B
2: aload 0
iconst_0
putfield org.bouncycastle.asn1.DERBitString.padBits:I
3: goto 6
4: StackMap locals: org.bouncycastle.asn1.DERBitString org.bouncycastle.asn1.DEREncodable
StackMap stack: java.io.IOException
astore 2
start local 2 5: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Error processing object : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/asn1/DERBitString;
0 7 1 obj Lorg/bouncycastle/asn1/DEREncodable;
5 6 2 e Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
MethodParameters:
Name Flags
obj
public byte[] getBytes();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.asn1.DERBitString.data:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/DERBitString;
public int getPadBits();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.asn1.DERBitString.padBits:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/DERBitString;
public int intValue();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int int
StackMap stack:
iload 1
aload 0
getfield org.bouncycastle.asn1.DERBitString.data:[B
iload 2
baload
sipush 255
iand
bipush 8
iload 2
imul
ishl
ior
istore 1
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield org.bouncycastle.asn1.DERBitString.data:[B
arraylength
if_icmpeq 6
iload 2
iconst_4
if_icmpne 3
end local 2 6: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/asn1/DERBitString;
1 7 1 value I
2 6 2 i I
void encode(org.bouncycastle.asn1.DEROutputStream);
descriptor: (Lorg/bouncycastle/asn1/DEROutputStream;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
arraylength
iconst_1
iadd
newarray 8
astore 2
start local 2 1: aload 2
iconst_0
aload 0
invokevirtual org.bouncycastle.asn1.DERBitString.getPadBits:()I
i2b
bastore
2: aload 0
invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
iconst_0
aload 2
iconst_1
aload 2
arraylength
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 1
iconst_3
aload 2
invokevirtual org.bouncycastle.asn1.DEROutputStream.writeEncoded:(I[B)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/asn1/DERBitString;
0 5 1 out Lorg/bouncycastle/asn1/DEROutputStream;
1 5 2 bytes [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.asn1.DERBitString.padBits:I
aload 0
getfield org.bouncycastle.asn1.DERBitString.data:[B
invokestatic org.bouncycastle.util.Arrays.hashCode:([B)I
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/DERBitString;
protected boolean asn1Equals(org.bouncycastle.asn1.DERObject);
descriptor: (Lorg/bouncycastle/asn1/DERObject;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.bouncycastle.asn1.DERBitString
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.asn1.DERBitString
astore 2
start local 2 3: aload 0
getfield org.bouncycastle.asn1.DERBitString.padBits:I
aload 2
getfield org.bouncycastle.asn1.DERBitString.padBits:I
if_icmpne 6
4: aload 0
getfield org.bouncycastle.asn1.DERBitString.data:[B
aload 2
getfield org.bouncycastle.asn1.DERBitString.data:[B
invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
ifeq 6
5: iconst_1
ireturn
StackMap locals: org.bouncycastle.asn1.DERBitString
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/asn1/DERBitString;
0 7 1 o Lorg/bouncycastle/asn1/DERObject;
3 7 2 other Lorg/bouncycastle/asn1/DERBitString;
MethodParameters:
Name Flags
o
public java.lang.String getString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: new java.lang.StringBuffer
dup
ldc "#"
invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 2
start local 2 2: new org.bouncycastle.asn1.ASN1OutputStream
dup
aload 2
invokespecial org.bouncycastle.asn1.ASN1OutputStream.<init>:(Ljava/io/OutputStream;)V
astore 3
start local 3 3: aload 3
aload 0
invokevirtual org.bouncycastle.asn1.ASN1OutputStream.writeObject:(Ljava/lang/Object;)V
4: goto 7
5: StackMap locals: org.bouncycastle.asn1.DERBitString java.lang.StringBuffer java.io.ByteArrayOutputStream org.bouncycastle.asn1.ASN1OutputStream
StackMap stack: java.io.IOException
pop
6: new java.lang.RuntimeException
dup
ldc "internal error encoding BitString"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 4
start local 4 8: iconst_0
istore 5
start local 5 9: goto 13
10: StackMap locals: byte[] int
StackMap stack:
aload 1
getstatic org.bouncycastle.asn1.DERBitString.table:[C
aload 4
iload 5
baload
iconst_4
iushr
bipush 15
iand
caload
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
11: aload 1
getstatic org.bouncycastle.asn1.DERBitString.table:[C
aload 4
iload 5
baload
bipush 15
iand
caload
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
12: iinc 5 1
StackMap locals:
StackMap stack:
13: iload 5
aload 4
arraylength
if_icmpne 10
end local 5 14: aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/bouncycastle/asn1/DERBitString;
1 15 1 buf Ljava/lang/StringBuffer;
2 15 2 bOut Ljava/io/ByteArrayOutputStream;
3 15 3 aOut Lorg/bouncycastle/asn1/ASN1OutputStream;
8 15 4 string [B
9 14 5 i I
Exception table:
from to target type
3 4 5 Class java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.asn1.DERBitString.getString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/DERBitString;
static org.bouncycastle.asn1.DERBitString fromOctetString(byte[]);
descriptor: ([B)Lorg/bouncycastle/asn1/DERBitString;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
if_icmpge 2
1: new java.lang.IllegalArgumentException
dup
ldc "truncated BIT STRING detected"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
baload
istore 1
start local 1 3: aload 0
arraylength
iconst_1
isub
newarray 8
astore 2
start local 2 4: aload 2
arraylength
ifeq 6
5: aload 0
iconst_1
aload 2
iconst_0
aload 0
arraylength
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: StackMap locals: int byte[]
StackMap stack:
new org.bouncycastle.asn1.DERBitString
dup
aload 2
iload 1
invokespecial org.bouncycastle.asn1.DERBitString.<init>:([BI)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 bytes [B
3 7 1 padBits I
4 7 2 data [B
MethodParameters:
Name Flags
bytes
}
SourceFile: "DERBitString.java"