openssl: Adjust manual pages for 1.0.1n.
[dragonfly.git] / secure / lib / libcrypto / man / X509_NAME_add_entry_by_txt.3
1 .\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
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 turned on, 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 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{
60 .    if \nF \{
61 .        de IX
62 .        tm Index:\\$1\t\\n%\t"\\$2"
63 ..
64 .        if !\nF==2 \{
65 .            nr % 0
66 .            nr F 2
67 .        \}
68 .    \}
69 .\}
70 .rr rF
71 .\"
72 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
74 .    \" fudge factors for nroff and troff
75 .if n \{\
76 .    ds #H 0
77 .    ds #V .8m
78 .    ds #F .3m
79 .    ds #[ \f1
80 .    ds #] \fP
81 .\}
82 .if t \{\
83 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84 .    ds #V .6m
85 .    ds #F 0
86 .    ds #[ \&
87 .    ds #] \&
88 .\}
89 .    \" simple accents for nroff and troff
90 .if n \{\
91 .    ds ' \&
92 .    ds ` \&
93 .    ds ^ \&
94 .    ds , \&
95 .    ds ~ ~
96 .    ds /
97 .\}
98 .if t \{\
99 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105 .\}
106 .    \" troff and (daisy-wheel) nroff accents
107 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114 .ds ae a\h'-(\w'a'u*4/10)'e
115 .ds Ae A\h'-(\w'A'u*4/10)'E
116 .    \" corrections for vroff
117 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119 .    \" for low resolution devices (crt and lpr)
120 .if \n(.H>23 .if \n(.V>19 \
121 \{\
122 .    ds : e
123 .    ds 8 ss
124 .    ds o a
125 .    ds d- d\h'-1'\(ga
126 .    ds D- D\h'-1'\(hy
127 .    ds th \o'bp'
128 .    ds Th \o'LP'
129 .    ds ae ae
130 .    ds Ae AE
131 .\}
132 .rm #[ #] #H #V #F C
133 .\" ========================================================================
134 .\"
135 .IX Title "X509_NAME_add_entry_by_txt 3"
136 .TH X509_NAME_add_entry_by_txt 3 "2015-06-11" "1.0.1n" "OpenSSL"
137 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
138 .\" way too many mistakes in technical documents.
139 .if n .ad l
140 .nh
141 .SH "NAME"
142 X509_NAME_add_entry_by_txt, X509_NAME_add_entry_by_OBJ, X509_NAME_add_entry_by_NID,
143 X509_NAME_add_entry, X509_NAME_delete_entry \- X509_NAME modification functions
144 .SH "SYNOPSIS"
145 .IX Header "SYNOPSIS"
146 .Vb 1
147 \& #include <openssl/x509.h>
148 \&
149 \& int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, const unsigned char *bytes, int len, int loc, int set);
150 \&
151 \& int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, unsigned char *bytes, int len, int loc, int set);
152 \&
153 \& int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, unsigned char *bytes, int len, int loc, int set);
154 \&
155 \& int X509_NAME_add_entry(X509_NAME *name,X509_NAME_ENTRY *ne, int loc, int set);
156 \&
157 \& X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc);
158 .Ve
159 .SH "DESCRIPTION"
160 .IX Header "DESCRIPTION"
161 \&\fIX509_NAME_add_entry_by_txt()\fR, \fIX509_NAME_add_entry_by_OBJ()\fR and
162 \&\fIX509_NAME_add_entry_by_NID()\fR add a field whose name is defined
163 by a string \fBfield\fR, an object \fBobj\fR or a \s-1NID \s0\fBnid\fR respectively.
164 The field value to be added is in \fBbytes\fR of length \fBlen\fR. If
165 \&\fBlen\fR is \-1 then the field length is calculated internally using
166 strlen(bytes).
167 .PP
168 The type of field is determined by \fBtype\fR which can either be a
169 definition of the type of \fBbytes\fR (such as \fB\s-1MBSTRING_ASC\s0\fR) or a
170 standard \s-1ASN1\s0 type (such as \fBV_ASN1_IA5STRING\fR). The new entry is
171 added to a position determined by \fBloc\fR and \fBset\fR.
172 .PP
173 \&\fIX509_NAME_add_entry()\fR adds a copy of \fBX509_NAME_ENTRY\fR structure \fBne\fR
174 to \fBname\fR. The new entry is added to a position determined by \fBloc\fR
175 and \fBset\fR. Since a copy of \fBne\fR is added \fBne\fR must be freed up after
176 the call.
177 .PP
178 \&\fIX509_NAME_delete_entry()\fR deletes an entry from \fBname\fR at position
179 \&\fBloc\fR. The deleted entry is returned and must be freed up.
180 .SH "NOTES"
181 .IX Header "NOTES"
182 The use of string types such as \fB\s-1MBSTRING_ASC\s0\fR or \fB\s-1MBSTRING_UTF8\s0\fR
183 is strongly recommened for the \fBtype\fR parameter. This allows the
184 internal code to correctly determine the type of the field and to
185 apply length checks according to the relevant standards. This is
186 done using \fIASN1_STRING_set_by_NID()\fR.
187 .PP
188 If instead an \s-1ASN1\s0 type is used no checks are performed and the
189 supplied data in \fBbytes\fR is used directly.
190 .PP
191 In \fIX509_NAME_add_entry_by_txt()\fR the \fBfield\fR string represents
192 the field name using OBJ_txt2obj(field, 0).
193 .PP
194 The \fBloc\fR and \fBset\fR parameters determine where a new entry should
195 be added. For almost all applications \fBloc\fR can be set to \-1 and \fBset\fR
196 to 0. This adds a new entry to the end of \fBname\fR as a single valued
197 RelativeDistinguishedName (\s-1RDN\s0).
198 .PP
199 \&\fBloc\fR actually determines the index where the new entry is inserted:
200 if it is \-1 it is appended.
201 .PP
202 \&\fBset\fR determines how the new type is added. If it is zero a
203 new \s-1RDN\s0 is created.
204 .PP
205 If \fBset\fR is \-1 or 1 it is added to the previous or next \s-1RDN\s0
206 structure respectively. This will then be a multivalued \s-1RDN:\s0
207 since multivalues RDNs are very seldom used \fBset\fR is almost
208 always set to zero.
209 .SH "EXAMPLES"
210 .IX Header "EXAMPLES"
211 Create an \fBX509_NAME\fR structure:
212 .PP
213 \&\*(L"C=UK, O=Disorganized Organization, CN=Joe Bloggs\*(R"
214 .PP
215 .Vb 10
216 \& X509_NAME *nm;
217 \& nm = X509_NAME_new();
218 \& if (nm == NULL)
219 \&        /* Some error */
220 \& if (!X509_NAME_add_entry_by_txt(nm, "C", MBSTRING_ASC, 
221 \&                        "UK", \-1, \-1, 0))
222 \&        /* Error */
223 \& if (!X509_NAME_add_entry_by_txt(nm, "O", MBSTRING_ASC,
224 \&                        "Disorganized Organization", \-1, \-1, 0))
225 \&        /* Error */
226 \& if (!X509_NAME_add_entry_by_txt(nm, "CN", MBSTRING_ASC,
227 \&                        "Joe Bloggs", \-1, \-1, 0))
228 \&        /* Error */
229 .Ve
230 .SH "RETURN VALUES"
231 .IX Header "RETURN VALUES"
232 \&\fIX509_NAME_add_entry_by_txt()\fR, \fIX509_NAME_add_entry_by_OBJ()\fR,
233 \&\fIX509_NAME_add_entry_by_NID()\fR and \fIX509_NAME_add_entry()\fR return 1 for
234 success of 0 if an error occurred.
235 .PP
236 \&\fIX509_NAME_delete_entry()\fR returns either the deleted \fBX509_NAME_ENTRY\fR
237 structure of \fB\s-1NULL\s0\fR if an error occurred.
238 .SH "BUGS"
239 .IX Header "BUGS"
240 \&\fBtype\fR can still be set to \fBV_ASN1_APP_CHOOSE\fR to use a
241 different algorithm to determine field types. Since this form does
242 not understand multicharacter types, performs no length checks and
243 can result in invalid field types its use is strongly discouraged.
244 .SH "SEE ALSO"
245 .IX Header "SEE ALSO"
246 \&\fIERR_get_error\fR\|(3), \fId2i_X509_NAME\fR\|(3)
247 .SH "HISTORY"
248 .IX Header "HISTORY"