## com.lowagie.bc.asn1
Class DERBitString

    java.lang.Object
      com.lowagie.bc.asn1.DERObject
          com.lowagie.bc.asn1.DERBitString

All Implemented Interfaces:
  DEREncodable, DERString, DERTags

    public class DERBitString

extends DERObject
implements DERString

Field Summary
`protected byte[]` `data`
`protected int` `padBits`
`private static char[]` `table`

Fields inherited from interface com.lowagie.bc.asn1.DERTags
`APPLICATION, BIT_STRING, BMP_STRING, BOOLEAN, CONSTRUCTED, ENUMERATED, EXTERNAL, GENERAL_STRING, GENERALIZED_TIME, GRAPHIC_STRING, IA5_STRING, INTEGER, NULL, NUMERIC_STRING, OBJECT_IDENTIFIER, OCTET_STRING, PRINTABLE_STRING, SEQUENCE, SEQUENCE_OF, SET, SET_OF, T61_STRING, TAGGED, UNIVERSAL_STRING, UTC_TIME, UTF8_STRING, VIDEOTEX_STRING, VISIBLE_STRING`

Constructor Summary
`` `DERBitString(byte[] data)`
`` `DERBitString(byte[] data, int padBits)`
`protected` `DERBitString(byte data, int padBits)`
`` `DERBitString(DEREncodable obj)`

Method Summary
`(package private) void` `encode(DEROutputStream out)`
`boolean` `equals(java.lang.Object o)`
`byte[]` `getBytes()`
`protected static byte[]` `getBytes(int bitString)` return the correct number of bytes for a bit string defined in a 32 bit constant
`static DERBitString` `getInstance(ASN1TaggedObject obj, boolean explicit)` return a Bit String from a tagged object.
`static DERBitString` `getInstance(java.lang.Object obj)` return a Bit String from the passed in object
`int` `getPadBits()`
`protected static int` `getPadBits(int bitString)` return the correct number of pad bits for a bit string defined in a 32 bit constant
`java.lang.String` `getString()`
`int` `hashCode()`

Methods inherited from class com.lowagie.bc.asn1.DERObject
`getDERObject`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### table

    private static final char[] table

### data

    protected byte[] data

### padBits

    protected int padBits

Constructor Detail

### DERBitString

    protected DERBitString(byte data,
                           int padBits)

### DERBitString

    public DERBitString(byte[] data,
                        int padBits)

Parameters:
  `data` - the octets making up the bit string.
  `padBits` - the number of extra bits at the end of the string.

### DERBitString

    public DERBitString(byte[] data)

### DERBitString

    public DERBitString(DEREncodable obj)

Method Detail

### getPadBits

    protected static int getPadBits(int bitString)

  return the correct number of pad bits for a bit string defined in a 32 bit constant

### getBytes

    protected static byte[] getBytes(int bitString)

  return the correct number of bytes for a bit string defined in a 32 bit constant

### getInstance

    public static DERBitString getInstance(java.lang.Object obj)

  return a Bit String from the passed in object

  Throws:
    `java.lang.IllegalArgumentException` - if the object cannot be converted.

### getInstance

    public static DERBitString getInstance(ASN1TaggedObject obj,
                                           boolean explicit)

  return a Bit String from a tagged object.

  Parameters:
    `obj` - the tagged object holding the object we want
    `explicit` - true if the object is meant to be explicitly tagged false otherwise.
  Throws:
    `java.lang.IllegalArgumentException` - if the tagged object cannot be converted.

### getBytes

    public byte[] getBytes()

### getPadBits

    public int getPadBits()

### encode

    void encode(DEROutputStream out)
          throws java.io.IOException

  Specified by:
    `encode` in class `DERObject`
  Throws:
    `java.io.IOException`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### equals

    public boolean equals(java.lang.Object o)

  Overrides:
    `equals` in class `java.lang.Object`

### getString

    public java.lang.String getString()

  Specified by:
    `getString` in interface `DERString`