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