Class DirStrConverter

java.lang.Object
org.mozilla.jss.netscape.security.x509.DirStrConverter
All Implemented Interfaces:
AVAValueConverter

public class DirStrConverter extends Object implements AVAValueConverter
A DirStrConverter converts a string to a DerValue of ASN.1 Directory String, which is a CHOICE of Printable (subset of ASCII), T.61 (Teletex) or Universal String (UCS-4), and vice versa.

The string to DerValue conversion is done as follows. If the string has only PrintableString characters it is converted to a ASN.1 Printable String using the PrintableString encoder from the global default ASN1CharStrConvMap. If it has only characters covered in the PrintableString or T.61 character set it is converted to a ASN.1 T.61 string using the T.61 encoder from the ASN1CharStrCovnMap. Otherwise it is converted to a ASN.1 UniversalString (UCS-4 character set) which covers all characters.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static byte[]
    Converts a string to a DER encoded ASN1 Directory String, which is a CHOICE of PrintableString, T.61String or UniversalString.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a DirStrConverter.
  • Method Summary

    Modifier and Type
    Method
    Description
    Converts a DerValue to a string.
    getValue(byte[] berByteStream)
    Creates a DerValue from a BER encoded value, obtained from for example a attribute value in octothorpe form of a Ldap DN string.
    Converts a string to a DER encoded attribute value.
    getValue(String valueString, byte[] tags)
    Like getValue(String) with specified DER tags as encoding order.
    static void
    setDefEncodingOrder(byte[] defEncodingOrder)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DefEncodingOrder

      private static byte[] DefEncodingOrder
      Converts a string to a DER encoded ASN1 Directory String, which is a CHOICE of PrintableString, T.61String or UniversalString. The string is taken as is i.e. should not be in Ldap DN string syntax.
  • Constructor Details

    • DirStrConverter

      public DirStrConverter()
      Constructs a DirStrConverter.
  • Method Details

    • setDefEncodingOrder

      public static void setDefEncodingOrder(byte[] defEncodingOrder)
    • getValue

      public DerValue getValue(String ds) throws IOException
      Description copied from interface: AVAValueConverter
      Converts a string to a DER encoded attribute value.
      Specified by:
      getValue in interface AVAValueConverter
      Parameters:
      ds - An AVA value string not encoded in any form.
      Returns:
      A DerValue object.
      Throws:
      IOException - if an error occurs during the conversion.
    • getValue

      public DerValue getValue(String valueString, byte[] tags) throws IOException
      Like getValue(String) with specified DER tags as encoding order.
      Specified by:
      getValue in interface AVAValueConverter
      Parameters:
      valueString - An AVA value string not encoded in any form.
      Returns:
      A DerValue object.
      Throws:
      IOException - if an error occurs during the conversion.
    • getValue

      public DerValue getValue(byte[] berByteStream) throws IOException
      Creates a DerValue from a BER encoded value, obtained from for example a attribute value in octothorpe form of a Ldap DN string. Checks if the BER encoded value is legal for a DirectoryString. NOTE: currently only supports DER encoding for the BER encoded value.
      Specified by:
      getValue in interface AVAValueConverter
      Parameters:
      berByteStream - Byte array of a BER encoded value.
      Returns:
      DerValue object.
      Throws:
      IOException - If the BER value cannot be converted to a valid Directory String DER value.
    • getAsString

      public String getAsString(DerValue avaValue) throws IOException
      Converts a DerValue to a string. The string is not in any syntax, such as RFC1779 string syntax.
      Specified by:
      getAsString in interface AVAValueConverter
      Parameters:
      avaValue - a DerValue
      Returns:
      a string if the value can be converted.
      Throws:
      IOException - if a decoder needed for the conversion is not available.