Class DERPrintableString

All Implemented Interfaces:
ASN1Encodable, ASN1String, Encodable

public class DERPrintableString extends ASN1Primitive implements ASN1String
DER PrintableString object.

X.680 section 37.4 defines PrintableString character codes as ASCII subset of following characters:

  • Latin capital letters: 'A' .. 'Z'
  • Latin small letters: 'a' .. 'z'
  • Digits: '0'..'9'
  • Space
  • Apostrophe: '\''
  • Left parenthesis: '('
  • Right parenthesis: ')'
  • Plus sign: '+'
  • Comma: ','
  • Hyphen-minus: '-'
  • Full stop: '.'
  • Solidus: '/'
  • Colon: ':'
  • Equals sign: '='
  • Question mark: '?'

Explicit character set escape sequences are not allowed.

  • Constructor Details

    • DERPrintableString

      public DERPrintableString(String string)
      Basic constructor - this does not validate the string
    • DERPrintableString

      public DERPrintableString(String string, boolean validate)
      Constructor with optional validation.
      Parameters:
      string - the base string to wrap.
      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.
  • Method Details

    • getInstance

      public static DERPrintableString getInstance(Object obj)
      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:
      IllegalArgumentException - if the object cannot be converted.
    • getInstance

      public static DERPrintableString getInstance(ASN1TaggedObject obj, boolean explicit)
      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:
      IllegalArgumentException - if the tagged object cannot be converted.
    • getString

      public String getString()
      Description copied from interface: ASN1String
      Return a Java String representation of this STRING type's content.
      Specified by:
      getString in interface ASN1String
      Returns:
      a Java String representation of this STRING.
    • getOctets

      public byte[] getOctets()
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class ASN1Primitive
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isPrintableString

      public static boolean isPrintableString(String str)
      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.