DERBitString (Bouncy Castle Library 1.52 API Specification)
Date: 2015-03-01

org.bouncycastle.asn1

## Class DERBitString

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.ASN1Primitive
    - - org.bouncycastle.asn1.DERBitString

- All Implemented Interfaces:
    ASN1Encodable, ASN1String, Encodable
  Direct Known Subclasses:
    NetscapeCertType, PKIFailureInfo, ReasonFlags

      public class DERBitString
      extends ASN1Primitive
      implements ASN1String

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `data`
    `protected int` | `padBits`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `DERBitString(ASN1Encodable obj)`
    `` | `DERBitString(byte[] data)`
    `` | `DERBitString(byte[] data, int padBits)`
    `protected` | `DERBitString(byte data, int padBits)`
    `` | `DERBitString(int value)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `asn1Equals(ASN1Primitive o)`
    `byte[]` | `getBytes()`
    `protected static byte[]` | `getBytes(int bitString)`
    `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)`
    `java.lang.String` | `getString()`
    `int` | `hashCode()`
    `int` | `intValue()`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Primitive

      `equals, fromByteArray, toASN1Primitive`

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `getEncoded, getEncoded, hasEncodedTagValue, toASN1Object`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### 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(int value)

    - #### DERBitString

          public DERBitString(ASN1Encodable obj)
                       throws java.io.IOException

      Throws:
        `java.io.IOException`

  - ### Method Detail

    - #### getPadBits

          protected static int getPadBits(int bitString)

      Parameters:
        `bitString` - an int containing the BIT STRING
      Returns:
        the correct number of pad bits for a bit string defined in a 32 bit constant

    - #### getBytes

          protected static byte[] getBytes(int bitString)

      Parameters:
        `bitString` - an int containing the BIT STRING
      Returns:
        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
      Parameters:
        `obj` - a DERBitString or an object that can be converted into one.
      Returns:
        a DERBitString instance, or null.
      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.
      Returns:
        a DERBitString instance, or null.
      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)

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `ASN1Primitive`

    - #### asn1Equals

          protected boolean asn1Equals(ASN1Primitive o)

    - #### getString

          public java.lang.String getString()

      Specified by:
        `getString` in interface `ASN1String`

    - #### toString

          public java.lang.String toString()

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