Package org.bouncycastle.asn1
Class ASN1Integer
java.lang.Object
org.bouncycastle.asn1.ASN1Object
org.bouncycastle.asn1.ASN1Primitive
org.bouncycastle.asn1.ASN1Integer
- All Implemented Interfaces:
ASN1Encodable
,Encodable
Class representing the ASN.1 INTEGER type.
-
Constructor Summary
ConstructorsConstructorDescriptionASN1Integer
(byte[] bytes) Construct an INTEGER from the passed in byte array.ASN1Integer
(long value) Construct an INTEGER from the passed in long value.ASN1Integer
(BigInteger value) Construct an INTEGER from the passed in BigInteger value. -
Method Summary
Modifier and TypeMethodDescriptionstatic ASN1Integer
getInstance
(Object obj) Return an integer from the passed in object.static ASN1Integer
getInstance
(ASN1TaggedObject obj, boolean explicit) Return an Integer from a tagged object.in some cases positive values get crammed into a space, that's not quite big enough...getValue()
int
hashCode()
boolean
hasValue
(int x) boolean
hasValue
(long x) boolean
int
int
long
toString()
Methods inherited from class org.bouncycastle.asn1.ASN1Primitive
encodeTo, encodeTo, equals, equals, equals, fromByteArray, toASN1Primitive
Methods inherited from class org.bouncycastle.asn1.ASN1Object
getEncoded, getEncoded, hasEncodedTagValue
-
Constructor Details
-
ASN1Integer
public ASN1Integer(long value) Construct an INTEGER from the passed in long value.- Parameters:
value
- the long representing the value desired.
-
ASN1Integer
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 Details
-
getInstance
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:
IllegalArgumentException
- if the object cannot be converted.
-
getInstance
Return an Integer from a tagged object.- Parameters:
obj
- the tagged object holding the object we wantexplicit
- true if the object is meant to be explicitly tagged false otherwise.- Returns:
- an ASN1Integer instance.
- Throws:
IllegalArgumentException
- if the tagged object cannot be converted.
-
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
-
hasValue
public boolean hasValue(int x) -
hasValue
public boolean hasValue(long x) -
hasValue
-
intPositiveValueExact
public int intPositiveValueExact() -
intValueExact
public int intValueExact() -
longValueExact
public long longValueExact() -
hashCode
public int hashCode()- Specified by:
hashCode
in classASN1Primitive
-
toString
-