1 | =pod
|
---|
2 |
|
---|
3 | =head1 NAME
|
---|
4 |
|
---|
5 | X509_NAME_print_ex, X509_NAME_print_ex_fp, X509_NAME_print,
|
---|
6 | X509_NAME_oneline - X509_NAME printing routines
|
---|
7 |
|
---|
8 | =head1 SYNOPSIS
|
---|
9 |
|
---|
10 | #include <openssl/x509.h>
|
---|
11 |
|
---|
12 | int X509_NAME_print_ex(BIO *out, const X509_NAME *nm,
|
---|
13 | int indent, unsigned long flags);
|
---|
14 | int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
|
---|
15 | int indent, unsigned long flags);
|
---|
16 | char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size);
|
---|
17 | int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);
|
---|
18 |
|
---|
19 | =head1 DESCRIPTION
|
---|
20 |
|
---|
21 | X509_NAME_print_ex() prints a human readable version of I<nm> to BIO I<out>.
|
---|
22 | Each line (for multiline formats) is indented by I<indent> spaces. The
|
---|
23 | output format can be extensively customised by use of the I<flags> parameter.
|
---|
24 |
|
---|
25 | X509_NAME_print_ex_fp() is identical to X509_NAME_print_ex()
|
---|
26 | except the output is written to FILE pointer I<fp>.
|
---|
27 |
|
---|
28 | X509_NAME_oneline() prints an ASCII version of I<a> to I<buf>.
|
---|
29 | This supports multi-valued RDNs and escapes B</> and B<+> characters in values.
|
---|
30 | If I<buf> is B<NULL> then a buffer is dynamically allocated and returned, and
|
---|
31 | I<size> is ignored.
|
---|
32 | Otherwise, at most I<size> bytes will be written, including the ending '\0',
|
---|
33 | and I<buf> is returned.
|
---|
34 |
|
---|
35 | X509_NAME_print() prints out I<name> to I<bp> indenting each line by I<obase>
|
---|
36 | characters. Multiple lines are used if the output (including indent) exceeds
|
---|
37 | 80 characters.
|
---|
38 |
|
---|
39 | =head1 NOTES
|
---|
40 |
|
---|
41 | The functions X509_NAME_oneline() and X509_NAME_print()
|
---|
42 | produce a non standard output form, they don't handle multi-character fields and
|
---|
43 | have various quirks and inconsistencies.
|
---|
44 | Their use is strongly discouraged in new applications and they could
|
---|
45 | be deprecated in a future release.
|
---|
46 |
|
---|
47 | Although there are a large number of possible flags for most purposes
|
---|
48 | B<XN_FLAG_ONELINE>, B<XN_FLAG_MULTILINE> or B<XN_FLAG_RFC2253> will suffice.
|
---|
49 | As noted on the L<ASN1_STRING_print_ex(3)> manual page
|
---|
50 | for UTF8 terminals the B<ASN1_STRFLGS_ESC_MSB> should be unset: so for example
|
---|
51 | B<XN_FLAG_ONELINE & ~ASN1_STRFLGS_ESC_MSB> would be used.
|
---|
52 |
|
---|
53 | The complete set of the flags supported by X509_NAME_print_ex() is listed below.
|
---|
54 |
|
---|
55 | Several options can be ored together.
|
---|
56 |
|
---|
57 | The options B<XN_FLAG_SEP_COMMA_PLUS>, B<XN_FLAG_SEP_CPLUS_SPC>,
|
---|
58 | B<XN_FLAG_SEP_SPLUS_SPC> and B<XN_FLAG_SEP_MULTILINE>
|
---|
59 | determine the field separators to use.
|
---|
60 | Two distinct separators are used between distinct RelativeDistinguishedName
|
---|
61 | components and separate values in the same RDN for a multi-valued RDN.
|
---|
62 | Multi-valued RDNs are currently very rare
|
---|
63 | so the second separator will hardly ever be used.
|
---|
64 |
|
---|
65 | B<XN_FLAG_SEP_COMMA_PLUS> uses comma and plus as separators.
|
---|
66 | B<XN_FLAG_SEP_CPLUS_SPC> uses comma and plus with spaces:
|
---|
67 | this is more readable that plain comma and plus.
|
---|
68 | B<XN_FLAG_SEP_SPLUS_SPC> uses spaced semicolon and plus.
|
---|
69 | B<XN_FLAG_SEP_MULTILINE> uses spaced newline and plus respectively.
|
---|
70 |
|
---|
71 | If B<XN_FLAG_DN_REV> is set the whole DN is printed in reversed order.
|
---|
72 |
|
---|
73 | The fields B<XN_FLAG_FN_SN>, B<XN_FLAG_FN_LN>, B<XN_FLAG_FN_OID>,
|
---|
74 | B<XN_FLAG_FN_NONE> determine how a field name is displayed. It will
|
---|
75 | use the short name (e.g. CN) the long name (e.g. commonName) always
|
---|
76 | use OID numerical form (normally OIDs are only used if the field name is not
|
---|
77 | recognised) and no field name respectively.
|
---|
78 |
|
---|
79 | If B<XN_FLAG_SPC_EQ> is set then spaces will be placed around the '=' character
|
---|
80 | separating field names and values.
|
---|
81 |
|
---|
82 | If B<XN_FLAG_DUMP_UNKNOWN_FIELDS> is set then the encoding of unknown fields is
|
---|
83 | printed instead of the values.
|
---|
84 |
|
---|
85 | If B<XN_FLAG_FN_ALIGN> is set then field names are padded to 20 characters: this
|
---|
86 | is only of use for multiline format.
|
---|
87 |
|
---|
88 | Additionally all the options supported by ASN1_STRING_print_ex() can be used to
|
---|
89 | control how each field value is displayed.
|
---|
90 |
|
---|
91 | In addition a number options can be set for commonly used formats.
|
---|
92 |
|
---|
93 | B<XN_FLAG_RFC2253> sets options which produce an output compatible with RFC2253.
|
---|
94 | It is equivalent to:
|
---|
95 | C<ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV
|
---|
96 | | XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS>
|
---|
97 |
|
---|
98 | B<XN_FLAG_ONELINE> is a more readable one line format which is the same as:
|
---|
99 | C<ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC
|
---|
100 | | XN_FLAG_SPC_EQ | XN_FLAG_FN_SN>
|
---|
101 |
|
---|
102 | B<XN_FLAG_MULTILINE> is a multiline format which is the same as:
|
---|
103 | C<ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | XN_FLAG_SEP_MULTILINE
|
---|
104 | | XN_FLAG_SPC_EQ | XN_FLAG_FN_LN | XN_FLAG_FN_ALIGN>
|
---|
105 |
|
---|
106 | B<XN_FLAG_COMPAT> uses a format identical to X509_NAME_print():
|
---|
107 | in fact it calls X509_NAME_print() internally.
|
---|
108 |
|
---|
109 | =head1 RETURN VALUES
|
---|
110 |
|
---|
111 | X509_NAME_oneline() returns a valid string on success or NULL on error.
|
---|
112 |
|
---|
113 | X509_NAME_print() returns 1 on success or 0 on error.
|
---|
114 |
|
---|
115 | X509_NAME_print_ex() and X509_NAME_print_ex_fp() return 1 on success or 0 on
|
---|
116 | error if the B<XN_FLAG_COMPAT> is set, which is the same as X509_NAME_print().
|
---|
117 | Otherwise, it returns -1 on error or other values on success.
|
---|
118 |
|
---|
119 | =head1 SEE ALSO
|
---|
120 |
|
---|
121 | L<ASN1_STRING_print_ex(3)>
|
---|
122 |
|
---|
123 | =head1 COPYRIGHT
|
---|
124 |
|
---|
125 | Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved.
|
---|
126 |
|
---|
127 | Licensed under the Apache License 2.0 (the "License"). You may not use
|
---|
128 | this file except in compliance with the License. You can obtain a copy
|
---|
129 | in the file LICENSE in the source distribution or at
|
---|
130 | L<https://www.openssl.org/source/license.html>.
|
---|
131 |
|
---|
132 | =cut
|
---|