X509NameEntryConverter (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.asn1.x509

## Class X509NameEntryConverter

- java.lang.Object
- - org.bouncycastle.asn1.x509.X509NameEntryConverter

- Direct Known Subclasses:
    X509DefaultEntryConverter

      public abstract class X509NameEntryConverter
      extends java.lang.Object

  It turns out that the number of standard ways the fields in a DN should be encoded into their ASN.1 counterparts is rapidly approaching the number of machines on the internet. By default the X509Name class will produce UTF8Strings in line with the current recommendations (RFC 3280).

  An example of an encoder look like below:

       public class X509DirEntryConverter
           extends X509NameEntryConverter
       {
           public ASN1Primitive getConvertedValue(
               ASN1ObjectIdentifier  oid,
               String               value)
           {
               if (str.length() != 0 && str.charAt(0) == '#')
               {
                   return convertHexEncoded(str, 1);
               }
               if (oid.equals(EmailAddress))
               {
                   return new DERIA5String(str);
               }
               else if (canBePrintable(str))
               {
                   return new DERPrintableString(str);
               }
               else if (canBeUTF8(str))
               {
                   return new DERUTF8String(str);
               }
               else
               {
                   return new DERBMPString(str);
               }
           }
       }

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `X509NameEntryConverter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `canBePrintable(java.lang.String str)` return true if the passed in String can be represented without loss as a PrintableString, false otherwise.
    `protected ASN1Primitive` | `convertHexEncoded(java.lang.String str, int off)` Convert an inline encoded hex string rendition of an ASN.1 object back into its corresponding ASN.1 object.
    `abstract ASN1Primitive` | `getConvertedValue(ASN1ObjectIdentifier oid, java.lang.String value)` Convert the passed in String value into the appropriate ASN.1 encoded object.

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### X509NameEntryConverter

          public X509NameEntryConverter()

  - ### Method Detail

    - #### convertHexEncoded

          protected ASN1Primitive convertHexEncoded(java.lang.String str,
                                        int off)
                                             throws java.io.IOException

      Convert an inline encoded hex string rendition of an ASN.1 object back into its corresponding ASN.1 object.
      Parameters:
        `str` - the hex encoded object
        `off` - the index at which the encoding starts
      Returns:
        the decoded object
      Throws:
        `java.io.IOException`

    - #### canBePrintable

          protected boolean canBePrintable(java.lang.String str)

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

    - #### getConvertedValue

          public abstract ASN1Primitive getConvertedValue(ASN1ObjectIdentifier oid,
                                        java.lang.String value)

      Convert the passed in String value into the appropriate ASN.1 encoded object.
      Parameters:
        `oid` - the oid associated with the value in the DN.
        `value` - the value of the particular DN component.
      Returns:
        the ASN.1 equivalent for the value.