Class BIT_STRING

java.lang.Object
org.mozilla.jss.asn1.BIT_STRING
All Implemented Interfaces:
ASN1Value

public class BIT_STRING extends Object implements ASN1Value
An ASN.1 BIT STRING, which is an ordered sequence of bits. The bits are stored the same way they are encoded in BER: as an array of bytes with 0-7 unused bits at the end.
  • Field Details

    • bits

      private byte[] bits
    • padCount

      private int padCount
    • removeTrailingZeroes

      private boolean removeTrailingZeroes
    • TAG

      public static final Tag TAG
    • FORM

      public static final Form FORM
    • templateInstance

      private static final BIT_STRING.Template templateInstance
  • Constructor Details

    • BIT_STRING

      public BIT_STRING(byte[] bits, int padCount) throws NumberFormatException
      Parameters:
      bits - The bits packed into an array of bytes, with padding at the end. The array may be empty (but not null), in which case padCount must be zero. The array is referenced, not cloned.
      padCount - The number of padding bits at the end of the array. Must be in the range [0,7].
      Throws:
      NumberFormatException - If padCount is not in the range [0,7], or bits is empty and padCount is non-zero.
    • BIT_STRING

      public BIT_STRING(BitSet bs, int numBits) throws NumberFormatException
      Constructs a BIT_STRING from a BitSet.
      Parameters:
      bs - A BitSet.
      numBits - The number of bits to copy from the BitSet. This is necessary because the size of a BitSet is always padded up to a multiple of 64, but not all of these bits may be significant.
      Throws:
      NumberFormatException - If numBits is larger than bs.size() or less than zero.
  • Method Details

    • getRemoveTrailingZeroes

      public boolean getRemoveTrailingZeroes()
      Determines whether the DER-encoding of this bitstring will have its trailing zeroes removed. Generally, DER requires that trailing zeroes be removed when the bitstring is used to hold flags, but not when it is used to hold binary data (such as a public key). The default is false.
      Returns:
      True if trailing zeroes are to be removed.
    • setRemoveTrailingZeroes

      public void setRemoveTrailingZeroes(boolean removeTrailingZeroes)
      Determines whether the DER-encoding of this bitstring will have its trailing zeroes removed. Generally, DER requires that trailing zeroes be removed when the bitstring is used to hold flags, but not when it is used to hold binary data (such as a public key). The default is false. If this bit string is used to hold flags, you should set this to true.
      Parameters:
      removeTrailingZeroes - True if trailing zeroes are to be removed.
    • getBits

      public byte[] getBits()
      Returns the bits packed into an array of bytes, with padding at the end. The array may be empty (but not null), in which case padCount must be zero. The array is referenced, not cloned.
      Returns:
      BIT STRING as byte array.
    • toBitSet

      public BitSet toBitSet()
      Copies this BIT STRING into a Java BitSet. Note that BitSet.size() will not accurately reflect the number of bits in the BIT STRING, because the size of a BitSet is always rounded up to the next multiple of 64. The extra bits will be set to 0.
      Returns:
      BIT STRING as BitSet.
    • toBooleanArray

      public boolean[] toBooleanArray()
      Copies this BIT STRING into a boolean array. Each element of the array represents one bit with true for 1 and false for 0.
      Returns:
      BIT STRING as boolean array.
    • getPadCount

      public int getPadCount()
      Returns the number of padding bits at the end of the array. Must be in the range [0,7].
      Returns:
      Number of padding.
    • getTag

      public Tag getTag()
      Description copied from interface: ASN1Value
      Returns the base tag for this type, not counting any tags that may be imposed on it by its context.
      Specified by:
      getTag in interface ASN1Value
      Returns:
      Base tag.
    • encode

      public void encode(OutputStream ostream) throws IOException
      Description copied from interface: ASN1Value
      Write this value's DER encoding to an output stream using its own base tag.
      Specified by:
      encode in interface ASN1Value
      Parameters:
      ostream - Output stream.
      Throws:
      IOException - If an error occurred.
    • encode

      public void encode(Tag implicitTag, OutputStream ostream) throws IOException
      Description copied from interface: ASN1Value
      Write this value's DER encoding to an output stream using an implicit tag.
      Specified by:
      encode in interface ASN1Value
      Parameters:
      implicitTag - Implicit tag.
      ostream - Output stream.
      Throws:
      IOException - If an error occurred.
    • getTemplate

      public static BIT_STRING.Template getTemplate()