
org.spongycastle.asn1.DERVideotexString Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle
intended for the Android platform. Android unfortunately ships with a stripped-down version of
Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full,
up-to-date version of the Bouncy Castle cryptographic libs.
package org.spongycastle.asn1;
import java.io.IOException;
import org.spongycastle.util.Arrays;
import org.spongycastle.util.Strings;
public class DERVideotexString
extends ASN1Primitive
implements ASN1String
{
private final byte[] string;
/**
* return a Videotex String from the passed in object
*
* @param obj a DERVideotexString or an object that can be converted into one.
* @exception IllegalArgumentException if the object cannot be converted.
* @return a DERVideotexString instance, or null.
*/
public static DERVideotexString getInstance(
Object obj)
{
if (obj == null || obj instanceof DERVideotexString)
{
return (DERVideotexString)obj;
}
if (obj instanceof byte[])
{
try
{
return (DERVideotexString)fromByteArray((byte[])obj);
}
catch (Exception e)
{
throw new IllegalArgumentException("encoding error in getInstance: " + e.toString());
}
}
throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
}
/**
* return a Videotex String from a tagged object.
*
* @param obj the tagged object holding the object we want
* @param explicit true if the object is meant to be explicitly
* tagged false otherwise.
* @exception IllegalArgumentException if the tagged object cannot
* be converted.
* @return a DERVideotexString instance, or null.
*/
public static DERVideotexString getInstance(
ASN1TaggedObject obj,
boolean explicit)
{
ASN1Primitive o = obj.getObject();
if (explicit || o instanceof DERVideotexString)
{
return getInstance(o);
}
else
{
return new DERVideotexString(((ASN1OctetString)o).getOctets());
}
}
/**
* basic constructor - with bytes.
* @param string the byte encoding of the characters making up the string.
*/
public DERVideotexString(
byte[] string)
{
this.string = Arrays.clone(string);
}
public byte[] getOctets()
{
return Arrays.clone(string);
}
boolean isConstructed()
{
return false;
}
int encodedLength()
{
return 1 + StreamUtil.calculateBodyLength(string.length) + string.length;
}
void encode(
ASN1OutputStream out)
throws IOException
{
out.writeEncoded(BERTags.VIDEOTEX_STRING, string);
}
public int hashCode()
{
return Arrays.hashCode(string);
}
boolean asn1Equals(
ASN1Primitive o)
{
if (!(o instanceof DERVideotexString))
{
return false;
}
DERVideotexString s = (DERVideotexString)o;
return Arrays.areEqual(string, s.string);
}
public String getString()
{
return Strings.fromByteArray(string);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy