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 ASN1IntegergetInstance(Object obj) Return an integer from the passed in object.static ASN1IntegergetInstance(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()inthashCode()booleanhasValue(int x) booleanhasValue(long x) booleanintintlongtoString()Methods inherited from class org.bouncycastle.asn1.ASN1Primitive
encodeTo, encodeTo, equals, equals, equals, fromByteArray, toASN1PrimitiveMethods 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:
hashCodein classASN1Primitive
-
toString
-