org.bouncycastle.asn1.eac.UnsignedInteger Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15to18 Show documentation
Show all versions of bcprov-jdk15to18 Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
package org.bouncycastle.asn1.eac;
import java.math.BigInteger;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.DERTaggedObject;
public class UnsignedInteger
extends ASN1Object
{
private int tagNo;
private BigInteger value;
public UnsignedInteger(int tagNo, BigInteger value)
{
this.tagNo = tagNo;
this.value = value;
}
private UnsignedInteger(ASN1TaggedObject obj)
{
this.tagNo = obj.getTagNo();
this.value = new BigInteger(1, ASN1OctetString.getInstance(obj, false).getOctets());
}
public static UnsignedInteger getInstance(Object obj)
{
if (obj instanceof UnsignedInteger)
{
return (UnsignedInteger)obj;
}
if (obj != null)
{
return new UnsignedInteger(ASN1TaggedObject.getInstance(obj));
}
return null;
}
private byte[] convertValue()
{
byte[] v = value.toByteArray();
if (v[0] == 0)
{
byte[] tmp = new byte[v.length - 1];
System.arraycopy(v, 1, tmp, 0, tmp.length);
return tmp;
}
return v;
}
public int getTagNo()
{
return tagNo;
}
public BigInteger getValue()
{
return value;
}
public ASN1Primitive toASN1Primitive()
{
return new DERTaggedObject(false, tagNo, new DEROctetString(convertValue()));
}
}