Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.bouncycastle.asn1;
  
  
DER PrintableString object.
 
 public class DERPrintableString
     extends ASN1Primitive
     implements ASN1String
 {
     private byte[]  string;

    
return a printable string from the passed in object.

Parameters:
obj a DERPrintableString or an object that can be converted into one.
Returns:
a DERPrintableString instance, or null.
Throws:
java.lang.IllegalArgumentException if the object cannot be converted.
 
     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.

Parameters:
obj the tagged object holding the object we want
explicit true if the object is meant to be explicitly tagged false otherwise.
Returns:
a DERPrintableString instance, or null.
Throws:
java.lang.IllegalArgumentException if the tagged object cannot be converted.
 
     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.
 
         byte[]   string)
     {
         this. = string;
     }

    
basic constructor - this does not validate the string
 
     public DERPrintableString(
         String   string)
     {
         this(stringfalse);
     }

    
Constructor with optional validation.

Parameters:
string the base string to wrap.
validate whether or not to check the string.
Throws:
java.lang.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. = Strings.toByteArray(string);
    }
    public String getString()
    {
        return Strings.fromByteArray();
    }
    public byte[] getOctets()
    {
        return Arrays.clone();
    }
    boolean isConstructed()
    {
        return false;
    }
    int encodedLength()
    {
        return 1 + StreamUtil.calculateBodyLength(.) + .;
    }
    void encode(
        ASN1OutputStream out)
        throws IOException
    {
    }
    public int hashCode()
    {
        return Arrays.hashCode();
    }
    boolean asn1Equals(
        ASN1Primitive o)
    {
        if (!(o instanceof DERPrintableString))
        {
            return false;
        }
        DERPrintableString  s = (DERPrintableString)o;
        return Arrays.areEqual(s.string);
    }
    public String toString()
    {
        return getString();
    }

    
return true if the passed in String can be represented without loss as a PrintableString, false otherwise.

Returns:
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;
    }
New to GrepCode? Check out our FAQ X