|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | ASN1_STRING_print_ex, ASN1_STRING_print_ex_fp - ASN1_STRING output routines. | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/asn1.h> | 
|  |  | 
|  | int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); | 
|  | int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); | 
|  | int ASN1_STRING_print(BIO *out, ASN1_STRING *str); | 
|  |  | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | These functions output an B<ASN1_STRING> structure. B<ASN1_STRING> is used to | 
|  | represent all the ASN1 string types. | 
|  |  | 
|  | ASN1_STRING_print_ex() outputs B<str> to B<out>, the format is determined by | 
|  | the options B<flags>. ASN1_STRING_print_ex_fp() is identical except it outputs | 
|  | to B<fp> instead. | 
|  |  | 
|  | ASN1_STRING_print() prints B<str> to B<out> but using a different format to | 
|  | ASN1_STRING_print_ex(). It replaces unprintable characters (other than CR, LF) | 
|  | with '.'. | 
|  |  | 
|  | =head1 NOTES | 
|  |  | 
|  | ASN1_STRING_print() is a legacy function which should be avoided in new applications. | 
|  |  | 
|  | Although there are a large number of options frequently B<ASN1_STRFLGS_RFC2253> is | 
|  | suitable, or on UTF8 terminals B<ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB>. | 
|  |  | 
|  | The complete set of supported options for B<flags> is listed below. | 
|  |  | 
|  | Various characters can be escaped. If B<ASN1_STRFLGS_ESC_2253> is set the characters | 
|  | determined by RFC2253 are escaped. If B<ASN1_STRFLGS_ESC_CTRL> is set control | 
|  | characters are escaped. If B<ASN1_STRFLGS_ESC_MSB> is set characters with the | 
|  | MSB set are escaped: this option should B<not> be used if the terminal correctly | 
|  | interprets UTF8 sequences. | 
|  |  | 
|  | Escaping takes several forms. | 
|  |  | 
|  | If the character being escaped is a 16 bit character then the form "\UXXXX" is used | 
|  | using exactly four characters for the hex representation. If it is 32 bits then | 
|  | "\WXXXXXXXX" is used using eight characters of its hex representation. These forms | 
|  | will only be used if UTF8 conversion is not set (see below). | 
|  |  | 
|  | Printable characters are normally escaped using the backslash '\' character. If | 
|  | B<ASN1_STRFLGS_ESC_QUOTE> is set then the whole string is instead surrounded by | 
|  | double quote characters: this is arguably more readable than the backslash | 
|  | notation. Other characters use the "\XX" using exactly two characters of the hex | 
|  | representation. | 
|  |  | 
|  | If B<ASN1_STRFLGS_UTF8_CONVERT> is set then characters are converted to UTF8 | 
|  | format first. If the terminal supports the display of UTF8 sequences then this | 
|  | option will correctly display multi byte characters. | 
|  |  | 
|  | If B<ASN1_STRFLGS_IGNORE_TYPE> is set then the string type is not interpreted at | 
|  | all: everything is assumed to be one byte per character. This is primarily for | 
|  | debugging purposes and can result in confusing output in multi character strings. | 
|  |  | 
|  | If B<ASN1_STRFLGS_SHOW_TYPE> is set then the string type itself is printed out | 
|  | before its value (for example "BMPSTRING"), this actually uses ASN1_tag2str(). | 
|  |  | 
|  | The content of a string instead of being interpreted can be "dumped": this just | 
|  | outputs the value of the string using the form #XXXX using hex format for each | 
|  | octet. | 
|  |  | 
|  | If B<ASN1_STRFLGS_DUMP_ALL> is set then any type is dumped. | 
|  |  | 
|  | Normally non character string types (such as OCTET STRING) are assumed to be | 
|  | one byte per character, if B<ASN1_STRFLGS_DUMP_UNKNOWN> is set then they will | 
|  | be dumped instead. | 
|  |  | 
|  | When a type is dumped normally just the content octets are printed, if | 
|  | B<ASN1_STRFLGS_DUMP_DER> is set then the complete encoding is dumped | 
|  | instead (including tag and length octets). | 
|  |  | 
|  | B<ASN1_STRFLGS_RFC2253> includes all the flags required by RFC2253. It is | 
|  | equivalent to: | 
|  | ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | | 
|  | ASN1_STRFLGS_UTF8_CONVERT | ASN1_STRFLGS_DUMP_UNKNOWN ASN1_STRFLGS_DUMP_DER | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<X509_NAME_print_ex(3)|X509_NAME_print_ex(3)>, | 
|  | L<ASN1_tag2str(3)|ASN1_tag2str(3)> | 
|  |  | 
|  | =head1 HISTORY | 
|  |  | 
|  | TBA | 
|  |  | 
|  | =cut |