Class ASN1Integer

    • Constructor Detail

      • ASN1Integer

        public ASN1Integer​(long value)
        Construct an INTEGER from the passed in long value.
        Parameters:
        value - the long representing the value desired.
      • ASN1Integer

        public ASN1Integer​(java.math.BigInteger value)
        Construct an INTEGER from the passed in BigInteger value.
        Parameters:
        value - the BigInteger representing the value desired.
      • ASN1Integer

        public ASN1Integer​(byte[] bytes)
        Construct an INTEGER from the passed in byte array.

        NB: Strict Validation applied by default.

        It has turned out that there are still a few applications that struggle with the ASN.1 BER encoding rules for an INTEGER as described in: https://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf Section 8.3.2.

        Users can set the 'org.bouncycastle.asn1.allow_unsafe_integer' to 'true' and a looser validation will be applied. Users must recognise that this is not ideal and may pave the way for an exploit based around a faulty encoding in the future.

        Parameters:
        bytes - the byte array representing a 2's complement encoding of a BigInteger.
    • Method Detail

      • getInstance

        public static ASN1Integer getInstance​(java.lang.Object obj)
        Return an integer from the passed in object.
        Parameters:
        obj - an ASN1Integer or an object that can be converted into one.
        Returns:
        an ASN1Integer instance.
        Throws:
        java.lang.IllegalArgumentException - if the object cannot be converted.
      • getInstance

        public static ASN1Integer getInstance​(ASN1TaggedObject obj,
                                              boolean explicit)
        Return an Integer 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:
        an ASN1Integer instance.
        Throws:
        java.lang.IllegalArgumentException - if the tagged object cannot be converted.
      • getPositiveValue

        public java.math.BigInteger getPositiveValue()
        in some cases positive values get crammed into a space, that's not quite big enough...
        Returns:
        the BigInteger that results from treating this ASN.1 INTEGER as unsigned.
      • getValue

        public java.math.BigInteger getValue()
      • hasValue

        public boolean hasValue​(java.math.BigInteger x)
      • intPositiveValueExact

        public int intPositiveValueExact()
      • intValueExact

        public int intValueExact()
      • longValueExact

        public long longValueExact()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object