<div dir="ltr"><div><div>In the public_key application, decoding of attributes in x509 certificates does not always decode to a string as indicated in the documentation.  The documentation says that the value of commonName (and several other attributes) should be:<br>
<br><span class=""><span style="font-family:courier new,monospace">special_string() =
      {teletexString, string()} | {printableString, string()} |
      {universalString, string()} | {utf8String, string()} |
      {bmpString, string()}</span><br><br></span></div><span class="">... however when I decode a cert I see a utf8String coming out as a binary instead of a string()....<br><br>[{'AttributeTypeAndValue',<br>  {2,5,4,3},<br>
    {utf8String,<<"Daniel Goertzen">>}}],<br><br></span></div><span class="">... and typer shows several other non-string representations (unicode characters represented by 4-tuples):<br></span><div>
<span class=""><br>-spec dec_X520CommonName(_) -><br>{'bmpString',[byte() | {byte(),byte(),byte(),byte()}] | {byte(),binary()}} |<br>{'printableString',[byte() | {byte(),byte(),byte(),byte()}] | {byte(),binary()}} |<br>
{'teletexString',[byte() | {byte(),byte(),byte(),byte()}] | {byte(),binary()}} |<br>{'universalString',[byte() | {byte(),byte(),byte(),byte()}] | {byte(),binary()}} |<br>{'utf8String',_}.<br><br><br>
<br></span></div><div><span class="">Also, encoding does not accept unicode strings (list of chars).  The example below crashes.<br></span></div><div><span class=""><br>    Subject = {rdnSequence, [<br>        [#'AttributeTypeAndValue'{<br>
            type  = ?'id-at-commonName',<br>            value = {utf8String, [16#4e09|" string starting with a chinese symbol"]}<br>        }]<br>    ]},<br><br><br><br></span></div><div><span class="">I assume that the documentation is right and the decoded representation should be "list of characters".  Instead internal representations are coming through.<br>
</span></div></div>