public abstract class org.bouncycastle.asn1.ASN1BitString extends org.bouncycastle.asn1.ASN1Primitive implements org.bouncycastle.asn1.ASN1String
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.asn1.ASN1BitString
super_class: org.bouncycastle.asn1.ASN1Primitive
{
private static final char[] table;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected final byte[] data;
descriptor: [B
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int padBits;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
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.ASN1BitString.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: iconst_0
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: iload 0
ifne 2
1: iconst_0
newarray 8
areturn
2: StackMap locals:
StackMap stack:
iconst_4
istore 1
start local 1 3: iconst_3
istore 2
start local 2 4: goto 9
5: StackMap locals: int int
StackMap stack:
iload 0
sipush 255
iload 2
bipush 8
imul
ishl
iand
ifeq 7
6: goto 10
7: StackMap locals:
StackMap stack:
iinc 1 -1
8: iinc 2 -1
StackMap locals:
StackMap stack:
9: iload 2
iconst_1
if_icmpge 5
end local 2 10: StackMap locals:
StackMap stack:
iload 1
newarray 8
astore 2
start local 2 11: iconst_0
istore 3
start local 3 12: goto 15
13: StackMap locals: byte[] int
StackMap stack:
aload 2
iload 3
iload 0
iload 3
bipush 8
imul
ishr
sipush 255
iand
i2b
bastore
14: iinc 3 1
StackMap locals:
StackMap stack:
15: iload 3
iload 1
if_icmplt 13
end local 3 16: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 bitString I
3 17 1 bytes I
4 10 2 i I
11 17 2 result [B
12 16 3 i I
MethodParameters:
Name Flags
bitString
public void <init>(byte[], int);
descriptor: ([BI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.bouncycastle.asn1.ASN1Primitive.<init>:()V
1: aload 1
ifnonnull 3
2: new java.lang.NullPointerException
dup
ldc "data cannot be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.bouncycastle.asn1.ASN1BitString byte[] int
StackMap stack:
aload 1
arraylength
ifne 5
iload 2
ifeq 5
4: new java.lang.IllegalArgumentException
dup
ldc "zero length data with non-zero pad bits"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iload 2
bipush 7
if_icmpgt 6
iload 2
ifge 7
6: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "pad bits cannot be greater than 7 or less than 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.asn1.ASN1BitString.data:[B
8: aload 0
iload 2
putfield org.bouncycastle.asn1.ASN1BitString.padBits:I
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/asn1/ASN1BitString;
0 10 1 data [B
0 10 2 padBits I
MethodParameters:
Name Flags
data
padBits
public java.lang.String getString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
4: goto 7
5: StackMap locals: org.bouncycastle.asn1.ASN1BitString java.lang.StringBuffer java.io.ByteArrayOutputStream org.bouncycastle.asn1.ASN1OutputStream
StackMap stack: java.io.IOException
astore 4
start local 4 6: new org.bouncycastle.asn1.ASN1ParsingException
dup
new java.lang.StringBuilder
dup
ldc "Internal error encoding BitString: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.bouncycastle.asn1.ASN1ParsingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 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.ASN1BitString.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.ASN1BitString.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/ASN1BitString;
1 15 1 buf Ljava/lang/StringBuffer;
2 15 2 bOut Ljava/io/ByteArrayOutputStream;
3 15 3 aOut Lorg/bouncycastle/asn1/ASN1OutputStream;
6 7 4 e Ljava/io/IOException;
8 15 4 string [B
9 14 5 i I
Exception table:
from to target type
3 4 5 Class java.io.IOException
public int intValue();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
astore 2
start local 2 2: aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
ifle 4
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
arraylength
iconst_4
if_icmpgt 4
3: aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
invokestatic org.bouncycastle.asn1.ASN1BitString.derForm:([BI)[B
astore 2
4: StackMap locals: int byte[]
StackMap stack:
iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: int
StackMap stack:
iload 1
aload 2
iload 3
baload
sipush 255
iand
bipush 8
iload 3
imul
ishl
ior
istore 1
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 2
arraylength
if_icmpeq 9
iload 3
iconst_4
if_icmpne 6
end local 3 9: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/asn1/ASN1BitString;
1 10 1 value I
2 10 2 string [B
5 9 3 i I
public byte[] getOctets();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "attempt to get non-octet aligned data from BIT STRING"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/asn1/ASN1BitString;
public byte[] getBytes();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
invokestatic org.bouncycastle.asn1.ASN1BitString.derForm:([BI)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1BitString;
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.ASN1BitString.padBits:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1BitString;
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.ASN1BitString.getString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1BitString;
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.ASN1BitString.padBits:I
aload 0
invokevirtual org.bouncycastle.asn1.ASN1BitString.getBytes:()[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/ASN1BitString;
protected boolean asn1Equals(org.bouncycastle.asn1.ASN1Primitive);
descriptor: (Lorg/bouncycastle/asn1/ASN1Primitive;)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.ASN1BitString
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.asn1.ASN1BitString
astore 2
start local 2 3: aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
aload 2
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
if_icmpne 6
4: aload 0
invokevirtual org.bouncycastle.asn1.ASN1BitString.getBytes:()[B
aload 2
invokevirtual org.bouncycastle.asn1.ASN1BitString.getBytes:()[B
invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
ifeq 6
5: iconst_1
ireturn
StackMap locals: org.bouncycastle.asn1.ASN1BitString
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/ASN1BitString;
0 7 1 o Lorg/bouncycastle/asn1/ASN1Primitive;
3 7 2 other Lorg/bouncycastle/asn1/ASN1BitString;
MethodParameters:
Name Flags
o
protected static byte[] derForm(byte[], int);
descriptor: ([BI)[B
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
astore 2
start local 2 1: iload 1
ifle 3
2: aload 2
aload 0
arraylength
iconst_1
isub
dup2
baload
sipush 255
iload 1
ishl
iand
i2b
bastore
3: StackMap locals: byte[]
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 data [B
0 4 1 padBits I
1 4 2 rv [B
MethodParameters:
Name Flags
data
padBits
static org.bouncycastle.asn1.ASN1BitString fromInputStream(int, java.io.InputStream);
descriptor: (ILjava/io/InputStream;)Lorg/bouncycastle/asn1/ASN1BitString;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
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 1
invokevirtual java.io.InputStream.read:()I
istore 2
start local 2 3: iload 0
iconst_1
isub
newarray 8
astore 3
start local 3 4: aload 3
arraylength
ifeq 10
5: aload 1
aload 3
invokestatic org.bouncycastle.util.io.Streams.readFully:(Ljava/io/InputStream;[B)I
aload 3
arraylength
if_icmpeq 7
6: new java.io.EOFException
dup
ldc "EOF encountered in middle of BIT STRING"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int byte[]
StackMap stack:
iload 2
ifle 10
iload 2
bipush 8
if_icmpge 10
8: aload 3
aload 3
arraylength
iconst_1
isub
baload
aload 3
aload 3
arraylength
iconst_1
isub
baload
sipush 255
iload 2
ishl
iand
i2b
if_icmpeq 10
9: new org.bouncycastle.asn1.DLBitString
dup
aload 3
iload 2
invokespecial org.bouncycastle.asn1.DLBitString.<init>:([BI)V
areturn
10: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.DERBitString
dup
aload 3
iload 2
invokespecial org.bouncycastle.asn1.DERBitString.<init>:([BI)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 length I
0 11 1 stream Ljava/io/InputStream;
3 11 2 padBits I
4 11 3 data [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
length
stream
public org.bouncycastle.asn1.ASN1Primitive getLoadedObject();
descriptor: ()Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.asn1.ASN1BitString.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1BitString;
org.bouncycastle.asn1.ASN1Primitive toDERObject();
descriptor: ()Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: new org.bouncycastle.asn1.DERBitString
dup
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
invokespecial org.bouncycastle.asn1.DERBitString.<init>:([BI)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1BitString;
org.bouncycastle.asn1.ASN1Primitive toDLObject();
descriptor: ()Lorg/bouncycastle/asn1/ASN1Primitive;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: new org.bouncycastle.asn1.DLBitString
dup
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.data:[B
aload 0
getfield org.bouncycastle.asn1.ASN1BitString.padBits:I
invokespecial org.bouncycastle.asn1.DLBitString.<init>:([BI)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/asn1/ASN1BitString;
abstract void encode(org.bouncycastle.asn1.ASN1OutputStream);
descriptor: (Lorg/bouncycastle/asn1/ASN1OutputStream;)V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
}
SourceFile: "ASN1BitString.java"