]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/X509v3_get_ext_by_NID.3
Regen manual pages.
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / X509v3_get_ext_by_NID.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 "X509V3_GET_EXT_BY_NID 3"
132 .TH X509V3_GET_EXT_BY_NID 3 "2018-09-11" "1.1.1" "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 X509v3_get_ext_count, X509v3_get_ext, X509v3_get_ext_by_NID, X509v3_get_ext_by_OBJ, X509v3_get_ext_by_critical, X509v3_delete_ext, X509v3_add_ext, X509_get_ext_count, X509_get_ext, X509_get_ext_by_NID, X509_get_ext_by_OBJ, X509_get_ext_by_critical, X509_delete_ext, X509_add_ext, X509_CRL_get_ext_count, X509_CRL_get_ext, X509_CRL_get_ext_by_NID, X509_CRL_get_ext_by_OBJ, X509_CRL_get_ext_by_critical, X509_CRL_delete_ext, X509_CRL_add_ext, X509_REVOKED_get_ext_count, X509_REVOKED_get_ext, X509_REVOKED_get_ext_by_NID, X509_REVOKED_get_ext_by_OBJ, X509_REVOKED_get_ext_by_critical, X509_REVOKED_delete_ext, X509_REVOKED_add_ext \- extension stack utility functions
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/x509.h>
143 \&
144 \& int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
145 \& X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc);
146 \&
147 \& int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
148 \&                           int nid, int lastpos);
149 \& int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x,
150 \&                           const ASN1_OBJECT *obj, int lastpos);
151 \& int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x,
152 \&                                int crit, int lastpos);
153 \& X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc);
154 \& STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x,
155 \&                                          X509_EXTENSION *ex, int loc);
156 \&
157 \& int X509_get_ext_count(const X509 *x);
158 \& X509_EXTENSION *X509_get_ext(const X509 *x, int loc);
159 \& int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos);
160 \& int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos);
161 \& int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos);
162 \& X509_EXTENSION *X509_delete_ext(X509 *x, int loc);
163 \& int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
164 \&
165 \& int X509_CRL_get_ext_count(const X509_CRL *x);
166 \& X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc);
167 \& int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos);
168 \& int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, int lastpos);
169 \& int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos);
170 \& X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc);
171 \& int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc);
172 \&
173 \& int X509_REVOKED_get_ext_count(const X509_REVOKED *x);
174 \& X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc);
175 \& int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos);
176 \& int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj,
177 \&                                 int lastpos);
178 \& int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, int lastpos);
179 \& X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc);
180 \& int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc);
181 .Ve
182 .SH "DESCRIPTION"
183 .IX Header "DESCRIPTION"
184 \&\fIX509v3_get_ext_count()\fR retrieves the number of extensions in \fBx\fR.
185 .PP
186 \&\fIX509v3_get_ext()\fR retrieves extension \fBloc\fR from \fBx\fR. The index \fBloc\fR
187 can take any value from \fB0\fR to X509_get_ext_count(x) \- 1. The returned
188 extension is an internal pointer which \fBmust not\fR be freed up by the
189 application.
190 .PP
191 \&\fIX509v3_get_ext_by_NID()\fR and \fIX509v3_get_ext_by_OBJ()\fR look for an extension
192 with \fBnid\fR or \fBobj\fR from extension stack \fBx\fR. The search starts from the
193 extension after \fBlastpos\fR or from the beginning if <lastpos> is \fB\-1\fR. If
194 the extension is found its index is returned otherwise \fB\-1\fR is returned.
195 .PP
196 \&\fIX509v3_get_ext_by_critical()\fR is similar to \fIX509v3_get_ext_by_NID()\fR except it
197 looks for an extension of criticality \fBcrit\fR. A zero value for \fBcrit\fR
198 looks for a non-critical extension a non-zero value looks for a critical
199 extension.
200 .PP
201 \&\fIX509v3_delete_ext()\fR deletes the extension with index \fBloc\fR from \fBx\fR. The
202 deleted extension is returned and must be freed by the caller. If \fBloc\fR
203 is in invalid index value \fB\s-1NULL\s0\fR is returned.
204 .PP
205 \&\fIX509v3_add_ext()\fR adds extension \fBex\fR to stack \fB*x\fR at position \fBloc\fR. If
206 \&\fBloc\fR is \fB\-1\fR the new extension is added to the end. If \fB*x\fR is \fB\s-1NULL\s0\fR
207 a new stack will be allocated. The passed extension \fBex\fR is duplicated
208 internally so it must be freed after use.
209 .PP
210 \&\fIX509_get_ext_count()\fR, \fIX509_get_ext()\fR, \fIX509_get_ext_by_NID()\fR,
211 \&\fIX509_get_ext_by_OBJ()\fR, \fIX509_get_ext_by_critical()\fR, \fIX509_delete_ext()\fR
212 and \fIX509_add_ext()\fR operate on the extensions of certificate \fBx\fR they are
213 otherwise identical to the X509v3 functions.
214 .PP
215 \&\fIX509_CRL_get_ext_count()\fR, \fIX509_CRL_get_ext()\fR, \fIX509_CRL_get_ext_by_NID()\fR,
216 \&\fIX509_CRL_get_ext_by_OBJ()\fR, \fIX509_CRL_get_ext_by_critical()\fR,
217 \&\fIX509_CRL_delete_ext()\fR and \fIX509_CRL_add_ext()\fR operate on the extensions of
218 \&\s-1CRL\s0 \fBx\fR they are otherwise identical to the X509v3 functions.
219 .PP
220 \&\fIX509_REVOKED_get_ext_count()\fR, \fIX509_REVOKED_get_ext()\fR,
221 \&\fIX509_REVOKED_get_ext_by_NID()\fR, \fIX509_REVOKED_get_ext_by_OBJ()\fR,
222 \&\fIX509_REVOKED_get_ext_by_critical()\fR, \fIX509_REVOKED_delete_ext()\fR and
223 \&\fIX509_REVOKED_add_ext()\fR operate on the extensions of \s-1CRL\s0 entry \fBx\fR
224 they are otherwise identical to the X509v3 functions.
225 .SH "NOTES"
226 .IX Header "NOTES"
227 These functions are used to examine stacks of extensions directly. Many
228 applications will want to parse or encode and add an extension: they should
229 use the extension encode and decode functions instead such as
230 \&\fIX509_add1_ext_i2d()\fR and \fIX509_get_ext_d2i()\fR.
231 .PP
232 Extension indices start from zero, so a zero index return value is \fBnot\fR an
233 error. These search functions start from the extension \fBafter\fR the \fBlastpos\fR
234 parameter so it should initially be set to \fB\-1\fR, if it is set to zero the
235 initial extension will not be checked.
236 .SH "RETURN VALUES"
237 .IX Header "RETURN VALUES"
238 \&\fIX509v3_get_ext_count()\fR returns the extension count.
239 .PP
240 \&\fIX509v3_get_ext()\fR, \fIX509v3_delete_ext()\fR and \fIX509_delete_ext()\fR return an
241 \&\fBX509_EXTENSION\fR pointer or \fB\s-1NULL\s0\fR if an error occurs.
242 .PP
243 \&\fIX509v3_get_ext_by_NID()\fR \fIX509v3_get_ext_by_OBJ()\fR and
244 \&\fIX509v3_get_ext_by_critical()\fR return the an extension index or \fB\-1\fR if an
245 error occurs.
246 .PP
247 \&\fIX509v3_add_ext()\fR returns a stack of extensions or \fB\s-1NULL\s0\fR on error.
248 .PP
249 \&\fIX509_add_ext()\fR returns 1 on success and 0 on error.
250 .SH "SEE ALSO"
251 .IX Header "SEE ALSO"
252 \&\fIX509V3_get_d2i\fR\|(3)
253 .SH "COPYRIGHT"
254 .IX Header "COPYRIGHT"
255 Copyright 2015\-2018 The OpenSSL Project Authors. All Rights Reserved.
256 .PP
257 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
258 this file except in compliance with the License.  You can obtain a copy
259 in the file \s-1LICENSE\s0 in the source distribution or at
260 <https://www.openssl.org/source/license.html>.