Class IntegerType

  • All Implemented Interfaces:
    DEREncoder

    public class IntegerType
    extends AbstractDERType
    implements DEREncoder
    Converts arbitrary-precision integers to and from their DER encoded format.
    • Field Detail

      • derItem

        private final byte[] derItem
        Integer to encode.
    • Constructor Detail

      • IntegerType

        public IntegerType​(BigInteger item)
        Creates a new integer type.
        Parameters:
        item - to DER encode
      • IntegerType

        public IntegerType​(int item)
        Creates a new integer type.
        Parameters:
        item - to DER encode
      • IntegerType

        public IntegerType​(DERTag tag,
                           BigInteger item)
        Creates a new integer type.
        Parameters:
        tag - der tag associated with this type
        item - to DER encode
        Throws:
        IllegalArgumentException - if the der tag is constructed
      • IntegerType

        public IntegerType​(DERTag tag,
                           int item)
        Creates a new integer type.
        Parameters:
        tag - der tag associated with this type
        item - to DER encode
        Throws:
        IllegalArgumentException - if the der tag is constructed
    • Method Detail

      • encode

        public byte[] encode()
        Description copied from interface: DEREncoder
        Encode this object into its DER type.
        Specified by:
        encode in interface DEREncoder
        Returns:
        DER encoded object
      • decode

        public static BigInteger decode​(DERBuffer encoded)
        Converts bytes in the buffer to an integer by reading from the current position to the limit, which assumes the bytes of the integer are in big-endian order.
        Parameters:
        encoded - buffer containing DER-encoded data where the buffer is positioned at the start of integer bytes and the limit is set beyond the last byte of integer data.
        Returns:
        decoded bytes as an integer of arbitrary size.
      • decodeUnsigned

        public static BigInteger decodeUnsigned​(DERBuffer encoded)
        Converts bytes in the buffer to an unsigned integer by reading from the current position to the limit, which assumes the bytes of the integer are in big-endian order.
        Parameters:
        encoded - buffer containing DER-encoded data where the buffer is positioned at the start of integer bytes and the limit is set beyond the last byte of integer data.
        Returns:
        decoded bytes as an unsigned integer of arbitrary size.
      • decodeUnsignedPrimitive

        public static int decodeUnsignedPrimitive​(DERBuffer encoded)
        Converts bytes in the buffer to an unsigned primitive integer by reading from the current position to the limit, which assumes the bytes of the integer are in big-endian order. This method reads up to 4 bytes from the buffer.
        Parameters:
        encoded - buffer containing DER-encoded data where the buffer is positioned at the start of integer bytes and the limit is set beyond the last byte of integer data.
        Returns:
        decoded bytes as an unsigned integer.
        Throws:
        IllegalArgumentException - if the buffer contains more than 4 bytes
      • toBytes

        public static byte[] toBytes​(BigInteger i)
        Converts the supplied big integer to a byte array.
        Parameters:
        i - to convert
        Returns:
        byte array