(linenum→info "unix/slp.c:2238")

openssl/0.9.8g/doc/crypto/ASN1_STRING_print_ex.pod

    1: =pod
    2: 
    3: =head1 NAME
    4: 
    5: ASN1_STRING_print_ex, ASN1_STRING_print_ex_fp - ASN1_STRING output routines.
    6: 
    7: =head1 SYNOPSIS
    8: 
    9:  #include <openssl/asn1.h>
   10: 
   11:  int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags);
   12:  int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
   13:  int ASN1_STRING_print(BIO *out, ASN1_STRING *str);
   14: 
   15: 
   16: =head1 DESCRIPTION
   17: 
   18: These functions output an B<ASN1_STRING> structure. B<ASN1_STRING> is used to
   19: represent all the ASN1 string types.
   20: 
   21: ASN1_STRING_print_ex() outputs B<str> to B<out>, the format is determined by
   22: the options B<flags>. ASN1_STRING_print_ex_fp() is identical except it outputs
   23: to B<fp> instead.
   24: 
   25: ASN1_STRING_print() prints B<str> to B<out> but using a different format to
   26: ASN1_STRING_print_ex(). It replaces unprintable characters (other than CR, LF)
   27: with '.'.
   28: 
   29: =head1 NOTES
   30: 
   31: ASN1_STRING_print() is a legacy function which should be avoided in new applications.
   32: 
   33: Although there are a large number of options frequently B<ASN1_STRFLGS_RFC2253> is 
   34: suitable, or on UTF8 terminals B<ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB>.
   35: 
   36: The complete set of supported options for B<flags> is listed below.
   37: 
   38: Various characters can be escaped. If B<ASN1_STRFLGS_ESC_2253> is set the characters
   39: determined by RFC2253 are escaped. If B<ASN1_STRFLGS_ESC_CTRL> is set control
   40: characters are escaped. If B<ASN1_STRFLGS_ESC_MSB> is set characters with the
   41: MSB set are escaped: this option should B<not> be used if the terminal correctly
   42: interprets UTF8 sequences.
   43: 
   44: Escaping takes several forms.
   45: 
   46: If the character being escaped is a 16 bit character then the form "\UXXXX" is used
   47: using exactly four characters for the hex representation. If it is 32 bits then
   48: "\WXXXXXXXX" is used using eight characters of its hex representation. These forms
   49: will only be used if UTF8 conversion is not set (see below).
   50: 
   51: Printable characters are normally escaped using the backslash '\' character. If
   52: B<ASN1_STRFLGS_ESC_QUOTE> is set then the whole string is instead surrounded by
   53: double quote characters: this is arguably more readable than the backslash
   54: notation. Other characters use the "\XX" using exactly two characters of the hex
   55: representation.
   56: 
   57: If B<ASN1_STRFLGS_UTF8_CONVERT> is set then characters are converted to UTF8
   58: format first. If the terminal supports the display of UTF8 sequences then this
   59: option will correctly display multi byte characters.
   60: 
   61: If B<ASN1_STRFLGS_IGNORE_TYPE> is set then the string type is not interpreted at
   62: all: everything is assumed to be one byte per character. This is primarily for
   63: debugging purposes and can result in confusing output in multi character strings.
   64: 
   65: If B<ASN1_STRFLGS_SHOW_TYPE> is set then the string type itself is printed out
   66: before its value (for example "BMPSTRING"), this actually uses ASN1_tag2str().
   67: 
   68: The content of a string instead of being interpreted can be "dumped": this just
   69: outputs the value of the string using the form #XXXX using hex format for each
   70: octet.
   71: 
   72: If B<ASN1_STRFLGS_DUMP_ALL> is set then any type is dumped.
   73: 
   74: Normally non character string types (such as OCTET STRING) are assumed to be
   75: one byte per character, if B<ASN1_STRFLGS_DUMP_UNKNOWN> is set then they will
   76: be dumped instead.
   77: 
   78: When a type is dumped normally just the content octets are printed, if 
   79: B<ASN1_STRFLGS_DUMP_DER> is set then the complete encoding is dumped
   80: instead (including tag and length octets).
   81: 
   82: B<ASN1_STRFLGS_RFC2253> includes all the flags required by RFC2253. It is
   83: equivalent to:
   84:  ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB |
   85:  ASN1_STRFLGS_UTF8_CONVERT | ASN1_STRFLGS_DUMP_UNKNOWN ASN1_STRFLGS_DUMP_DER
   86: 
   87: =head1 SEE ALSO
   88: 
   89: L<X509_NAME_print_ex(3)|X509_NAME_print_ex(3)>,
   90: L<ASN1_tag2str(3)|ASN1_tag2str(3)>
   91: 
   92: =head1 HISTORY
   93: 
   94: TBA
   95: 
   96: =cut
Syntax (Markdown)