]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3
MFC: r340703
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / X509_NAME_add_entry_by_txt.3
1 .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 .    ds C`
42 .    ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el       .ds Aq '
48 .\"
49 .\" If the F register is >0, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD.  Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
56 ..
57 .if !\nF .nr F 0
58 .if \nF>0 \{\
59 .    de IX
60 .    tm Index:\\$1\t\\n%\t"\\$2"
61 ..
62 .    if !\nF==2 \{\
63 .        nr % 0
64 .        nr F 2
65 .    \}
66 .\}
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "X509_NAME_ADD_ENTRY_BY_TXT 3"
132 .TH X509_NAME_ADD_ENTRY_BY_TXT 3 "2018-11-20" "1.1.1a" "OpenSSL"
133 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
134 .\" way too many mistakes in technical documents.
135 .if n .ad l
136 .nh
137 .SH "NAME"
138 X509_NAME_add_entry_by_txt, X509_NAME_add_entry_by_OBJ, X509_NAME_add_entry_by_NID, X509_NAME_add_entry, X509_NAME_delete_entry \- X509_NAME modification functions
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/x509.h>
143 \&
144 \& int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type,
145 \&                                const unsigned char *bytes, int len, int loc, int set);
146 \&
147 \& int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type,
148 \&                                const unsigned char *bytes, int len, int loc, int set);
149 \&
150 \& int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,
151 \&                                const unsigned char *bytes, int len, int loc, int set);
152 \&
153 \& int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, int loc, int set);
154 \&
155 \& X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc);
156 .Ve
157 .SH "DESCRIPTION"
158 .IX Header "DESCRIPTION"
159 \&\fIX509_NAME_add_entry_by_txt()\fR, \fIX509_NAME_add_entry_by_OBJ()\fR and
160 \&\fIX509_NAME_add_entry_by_NID()\fR add a field whose name is defined
161 by a string \fBfield\fR, an object \fBobj\fR or a \s-1NID\s0 \fBnid\fR respectively.
162 The field value to be added is in \fBbytes\fR of length \fBlen\fR. If
163 \&\fBlen\fR is \-1 then the field length is calculated internally using
164 strlen(bytes).
165 .PP
166 The type of field is determined by \fBtype\fR which can either be a
167 definition of the type of \fBbytes\fR (such as \fB\s-1MBSTRING_ASC\s0\fR) or a
168 standard \s-1ASN1\s0 type (such as \fBV_ASN1_IA5STRING\fR). The new entry is
169 added to a position determined by \fBloc\fR and \fBset\fR.
170 .PP
171 \&\fIX509_NAME_add_entry()\fR adds a copy of \fBX509_NAME_ENTRY\fR structure \fBne\fR
172 to \fBname\fR. The new entry is added to a position determined by \fBloc\fR
173 and \fBset\fR. Since a copy of \fBne\fR is added \fBne\fR must be freed up after
174 the call.
175 .PP
176 \&\fIX509_NAME_delete_entry()\fR deletes an entry from \fBname\fR at position
177 \&\fBloc\fR. The deleted entry is returned and must be freed up.
178 .SH "NOTES"
179 .IX Header "NOTES"
180 The use of string types such as \fB\s-1MBSTRING_ASC\s0\fR or \fB\s-1MBSTRING_UTF8\s0\fR
181 is strongly recommended for the \fBtype\fR parameter. This allows the
182 internal code to correctly determine the type of the field and to
183 apply length checks according to the relevant standards. This is
184 done using \fIASN1_STRING_set_by_NID()\fR.
185 .PP
186 If instead an \s-1ASN1\s0 type is used no checks are performed and the
187 supplied data in \fBbytes\fR is used directly.
188 .PP
189 In \fIX509_NAME_add_entry_by_txt()\fR the \fBfield\fR string represents
190 the field name using OBJ_txt2obj(field, 0).
191 .PP
192 The \fBloc\fR and \fBset\fR parameters determine where a new entry should
193 be added. For almost all applications \fBloc\fR can be set to \-1 and \fBset\fR
194 to 0. This adds a new entry to the end of \fBname\fR as a single valued
195 RelativeDistinguishedName (\s-1RDN\s0).
196 .PP
197 \&\fBloc\fR actually determines the index where the new entry is inserted:
198 if it is \-1 it is appended.
199 .PP
200 \&\fBset\fR determines how the new type is added. If it is zero a
201 new \s-1RDN\s0 is created.
202 .PP
203 If \fBset\fR is \-1 or 1 it is added to the previous or next \s-1RDN\s0
204 structure respectively. This will then be a multivalued \s-1RDN:\s0
205 since multivalues RDNs are very seldom used \fBset\fR is almost
206 always set to zero.
207 .SH "EXAMPLES"
208 .IX Header "EXAMPLES"
209 Create an \fBX509_NAME\fR structure:
210 .PP
211 \&\*(L"C=UK, O=Disorganized Organization, CN=Joe Bloggs\*(R"
212 .PP
213 .Vb 1
214 \& X509_NAME *nm;
215 \&
216 \& nm = X509_NAME_new();
217 \& if (nm == NULL)
218 \&     /* Some error */
219 \& if (!X509_NAME_add_entry_by_txt(nm, "C", MBSTRING_ASC,
220 \&                                 "UK", \-1, \-1, 0))
221 \&     /* Error */
222 \& if (!X509_NAME_add_entry_by_txt(nm, "O", MBSTRING_ASC,
223 \&                                 "Disorganized Organization", \-1, \-1, 0))
224 \&     /* Error */
225 \& if (!X509_NAME_add_entry_by_txt(nm, "CN", MBSTRING_ASC,
226 \&                                 "Joe Bloggs", \-1, \-1, 0))
227 \&     /* Error */
228 .Ve
229 .SH "RETURN VALUES"
230 .IX Header "RETURN VALUES"
231 \&\fIX509_NAME_add_entry_by_txt()\fR, \fIX509_NAME_add_entry_by_OBJ()\fR,
232 \&\fIX509_NAME_add_entry_by_NID()\fR and \fIX509_NAME_add_entry()\fR return 1 for
233 success of 0 if an error occurred.
234 .PP
235 \&\fIX509_NAME_delete_entry()\fR returns either the deleted \fBX509_NAME_ENTRY\fR
236 structure of \fB\s-1NULL\s0\fR if an error occurred.
237 .SH "BUGS"
238 .IX Header "BUGS"
239 \&\fBtype\fR can still be set to \fBV_ASN1_APP_CHOOSE\fR to use a
240 different algorithm to determine field types. Since this form does
241 not understand multicharacter types, performs no length checks and
242 can result in invalid field types its use is strongly discouraged.
243 .SH "SEE ALSO"
244 .IX Header "SEE ALSO"
245 \&\fIERR_get_error\fR\|(3), \fId2i_X509_NAME\fR\|(3)
246 .SH "COPYRIGHT"
247 .IX Header "COPYRIGHT"
248 Copyright 2002\-2016 The OpenSSL Project Authors. All Rights Reserved.
249 .PP
250 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
251 this file except in compliance with the License.  You can obtain a copy
252 in the file \s-1LICENSE\s0 in the source distribution or at
253 <https://www.openssl.org/source/license.html>.