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