diff options
Diffstat (limited to 'core/src/main/java/org/bouncycastle/asn1/DERPrintableString.java')
-rw-r--r-- | core/src/main/java/org/bouncycastle/asn1/DERPrintableString.java | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/core/src/main/java/org/bouncycastle/asn1/DERPrintableString.java b/core/src/main/java/org/bouncycastle/asn1/DERPrintableString.java deleted file mode 100644 index e7c5d753..00000000 --- a/core/src/main/java/org/bouncycastle/asn1/DERPrintableString.java +++ /dev/null @@ -1,216 +0,0 @@ -package org.bouncycastle.asn1; - -import java.io.IOException; - -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.Strings; - -/** - * DER PrintableString object. - */ -public class DERPrintableString - extends ASN1Primitive - implements ASN1String -{ - private byte[] string; - - /** - * return a printable string from the passed in object. - * - * @param obj a DERPrintableString or an object that can be converted into one. - * @exception IllegalArgumentException if the object cannot be converted. - * @return a DERPrintableString instance, or null. - */ - public static DERPrintableString getInstance( - Object obj) - { - if (obj == null || obj instanceof DERPrintableString) - { - return (DERPrintableString)obj; - } - - if (obj instanceof byte[]) - { - try - { - return (DERPrintableString)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 Printable 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 DERPrintableString instance, or null. - */ - public static DERPrintableString getInstance( - ASN1TaggedObject obj, - boolean explicit) - { - ASN1Primitive o = obj.getObject(); - - if (explicit || o instanceof DERPrintableString) - { - return getInstance(o); - } - else - { - return new DERPrintableString(ASN1OctetString.getInstance(o).getOctets()); - } - } - - /** - * basic constructor - byte encoded string. - */ - DERPrintableString( - byte[] string) - { - this.string = string; - } - - /** - * basic constructor - this does not validate the string - */ - public DERPrintableString( - String string) - { - this(string, false); - } - - /** - * Constructor with optional validation. - * - * @param string the base string to wrap. - * @param validate whether or not to check the string. - * @throws IllegalArgumentException if validate is true and the string - * contains characters that should not be in a PrintableString. - */ - public DERPrintableString( - String string, - boolean validate) - { - if (validate && !isPrintableString(string)) - { - throw new IllegalArgumentException("string contains illegal characters"); - } - - this.string = Strings.toByteArray(string); - } - - public String getString() - { - return Strings.fromByteArray(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.PRINTABLE_STRING, string); - } - - public int hashCode() - { - return Arrays.hashCode(string); - } - - boolean asn1Equals( - ASN1Primitive o) - { - if (!(o instanceof DERPrintableString)) - { - return false; - } - - DERPrintableString s = (DERPrintableString)o; - - return Arrays.areEqual(string, s.string); - } - - public String toString() - { - return getString(); - } - - /** - * return true if the passed in String can be represented without - * loss as a PrintableString, false otherwise. - * - * @return true if in printable set, false otherwise. - */ - public static boolean isPrintableString( - String str) - { - for (int i = str.length() - 1; i >= 0; i--) - { - char ch = str.charAt(i); - - if (ch > 0x007f) - { - return false; - } - - if ('a' <= ch && ch <= 'z') - { - continue; - } - - if ('A' <= ch && ch <= 'Z') - { - continue; - } - - if ('0' <= ch && ch <= '9') - { - continue; - } - - switch (ch) - { - case ' ': - case '\'': - case '(': - case ')': - case '+': - case '-': - case '.': - case ':': - case '=': - case '?': - case '/': - case ',': - continue; - } - - return false; - } - - return true; - } -} |