org.apache.commons.ssl.asn1

## Class DERBitString

- java.lang.Object
- - org.apache.commons.ssl.asn1.ASN1Encodable
  - - org.apache.commons.ssl.asn1.DERObject
    - - org.apache.commons.ssl.asn1.ASN1Object
      - - org.apache.commons.ssl.asn1.DERBitString

All Implemented Interfaces:
  DEREncodable, DERString, DERTags

    public class DERBitString
    extends ASN1Object
    implements DERString

### Field Summary

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

### Fields inherited from class org.apache.commons.ssl.asn1.ASN1Encodable

`BER, DER`

### Fields inherited from interface org.apache.commons.ssl.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

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

### Method Summary

Methods
`protected boolean` `asn1Equals(DERObject o)`
`(package private) void` `encode(DEROutputStream out)`
`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()`
`int` `intValue()`
`java.lang.String` `toString()`

### Methods inherited from class org.apache.commons.ssl.asn1.ASN1Object

`equals, fromByteArray`

### Methods inherited from class org.apache.commons.ssl.asn1.DERObject

`toASN1Object`

### Methods inherited from class org.apache.commons.ssl.asn1.ASN1Encodable

`getDEREncoded, getDERObject, getEncoded, getEncoded`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, 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()

#### intValue

    public int intValue()

Returns:
  the value of the bit string as an int (truncating if necessary)

#### encode

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

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

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in class `ASN1Object`

#### asn1Equals

    protected boolean asn1Equals(DERObject o)

Specified by:
  `asn1Equals` in class `ASN1Object`

#### getString

    public java.lang.String getString()

Specified by:
  `getString` in interface `DERString`

#### toString

    public java.lang.String toString()

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