Package org.bouncycastle.asn1

## Class DERPrintableString

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.ASN1Primitive
    - - org.bouncycastle.asn1.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 Summary

    Constructors
    Constructor | Description
    --- | ---
    `DERPrintableString​(java.lang.String string)` | Basic constructor - this does not validate the string
    `DERPrintableString​(java.lang.String string, boolean validate)` | Constructor with optional validation.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DERPrintableString` | `getInstance​(java.lang.Object obj)` | Return a printable string from the passed in object.
    `static DERPrintableString` | `getInstance​(ASN1TaggedObject obj, boolean explicit)` | Return a Printable String from a tagged object.
    `byte[]` | `getOctets()` |
    `java.lang.String` | `getString()` | Return a Java String representation of this STRING type's content.
    `int` | `hashCode()` |
    `static boolean` | `isPrintableString​(java.lang.String str)` | return true if the passed in String can be represented without loss as a PrintableString, false otherwise.
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Primitive

      `encodeTo, encodeTo, equals, equals, equals, fromByteArray, toASN1Primitive`

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `getEncoded, getEncoded, hasEncodedTagValue`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DERPrintableString

          public DERPrintableString​(java.lang.String string)

      Basic constructor - this does not validate the string

    - #### DERPrintableString

          public DERPrintableString​(java.lang.String string,
                                    boolean validate)

      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.

  - ### Method Detail

    - #### getInstance

          public static DERPrintableString getInstance​(java.lang.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:
        `java.lang.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:
        `java.lang.IllegalArgumentException` - if the tagged object cannot be converted.

    - #### getString

          public java.lang.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 java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### isPrintableString

          public static boolean isPrintableString​(java.lang.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.