Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

public class ASN1Integer
extends ASN1Primitive

Class representing the ASN.1 INTEGER type.

Field Summary
`static ASN1Integer` | `FIVE`
`static ASN1Integer` | `FOUR`
`static ASN1Integer` | `ONE`
`static ASN1Integer` | `THREE`
`static ASN1Integer` | `TWO`
`static ASN1Integer` | `ZERO`

Constructor Summary
`ASN1Integer(java.math.BigInteger value)` Construct an INTEGER from the passed in BigInteger value.
`ASN1Integer(byte[] bytes)` Construct an INTEGER from the passed in byte array.
`ASN1Integer(int value)` Construct an INTEGER from the passed in int value.
`ASN1Integer(long value)` Construct an INTEGER from the passed in long value.

Method Summary
`static ASN1Integer` | `getInstance(ASN1TaggedObject taggedObject, boolean declaredExplicit)` Return an Integer from a tagged object.
`static ASN1Integer` | `getInstance(java.lang.Object obj)` Return an integer from the passed in object.
`java.math.BigInteger` | `getPositiveValue()` Force the ASN.1 INTEGER encoding to be interpreted as unsigned; in some cases positive values get crammed into a space that's not quite big enough[])
`static ASN1Integer` | `getTagged(ASN1TaggedObject taggedObject, boolean declaredExplicit)`
`java.math.BigInteger` | `getValue()`
`int` | `hashCode()`
`boolean` | `hasValue(java.math.BigInteger x)`
`boolean` | `hasValue(int x)`
`boolean` | `hasValue(long x)`
`int` | `intPositiveValueExact()` Force the ASN.1 INTEGER encoding to be interpreted as unsigned; in some cases positive values get crammed into a space that's not quite big enough[])
`int` | `intValueExact()`
`boolean` | `isNegative()`
`long` | `longValueExact()`
`java.lang.String` | `toString()`
`static ASN1Integer` | `valueOf(int value)`
`static ASN1Integer` | `valueOf(long value)`

Methods inherited from class org.bouncycastle.asn1.ASN1Primitive
`encodeTo, encodeTo, equals, equals, equals, fromByteArray, fromStream, toASN1Primitive`

Methods inherited from class org.bouncycastle.asn1.ASN1Object
`getEncoded, getEncoded, hasEncodedTagValue`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### ZERO

    public static final ASN1Integer ZERO

### ONE

    public static final ASN1Integer ONE

### TWO

    public static final ASN1Integer TWO

### THREE

    public static final ASN1Integer THREE

### FOUR

    public static final ASN1Integer FOUR

### FIVE

    public static final ASN1Integer FIVE

Constructor Detail

### ASN1Integer

    public ASN1Integer(int value)

  Construct an INTEGER from the passed in int value.

Parameters:
  `value` - the int representing the value desired.

### 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 taggedObject,
                                          boolean declaredExplicit)

  Return an Integer from a tagged object.

  Parameters:
    `taggedObject` - the tagged object holding the object we want
    `declaredExplicit` - 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.

### getTagged

    public static ASN1Integer getTagged(ASN1TaggedObject taggedObject,
                                        boolean declaredExplicit)

### valueOf

    public static ASN1Integer valueOf(int value)

### valueOf

    public static ASN1Integer valueOf(long value)

### getPositiveValue

    public java.math.BigInteger getPositiveValue()

  Force the ASN.1 INTEGER encoding to be interpreted as unsigned; 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(int x)

### hasValue

    public boolean hasValue(long x)

### hasValue

    public boolean hasValue(java.math.BigInteger x)

### intPositiveValueExact

    public int intPositiveValueExact()

  Force the ASN.1 INTEGER encoding to be interpreted as unsigned; in some cases positive values get crammed into a space that's not quite big enough[])

  Returns:
    the int that results from treating this ASN.1 INTEGER as unsigned.

### intValueExact

    public int intValueExact()

### longValueExact

    public long longValueExact()

### isNegative

    public boolean isNegative()

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in class `ASN1Primitive`

### toString

    public java.lang.String toString()

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD