]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/X509_LOOKUP_meth_new.3
Regen manual pages.
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / X509_LOOKUP_meth_new.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_LOOKUP_METH_NEW 3"
132 .TH X509_LOOKUP_METH_NEW 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 X509_LOOKUP_meth_new, X509_LOOKUP_meth_free, X509_LOOKUP_meth_set_new_item, X509_LOOKUP_meth_get_new_item, X509_LOOKUP_meth_set_free, X509_LOOKUP_meth_get_free, X509_LOOKUP_meth_set_init, X509_LOOKUP_meth_get_init, X509_LOOKUP_meth_set_shutdown, X509_LOOKUP_meth_get_shutdown, X509_LOOKUP_ctrl_fn, X509_LOOKUP_meth_set_ctrl, X509_LOOKUP_meth_get_ctrl, X509_LOOKUP_get_by_subject_fn, X509_LOOKUP_meth_set_get_by_subject, X509_LOOKUP_meth_get_get_by_subject, X509_LOOKUP_get_by_issuer_serial_fn, X509_LOOKUP_meth_set_get_by_issuer_serial, X509_LOOKUP_meth_get_get_by_issuer_serial, X509_LOOKUP_get_by_fingerprint_fn, X509_LOOKUP_meth_set_get_by_fingerprint, X509_LOOKUP_meth_get_get_by_fingerprint, X509_LOOKUP_get_by_alias_fn, X509_LOOKUP_meth_set_get_by_alias, X509_LOOKUP_meth_get_get_by_alias, X509_LOOKUP_set_method_data, X509_LOOKUP_get_method_data, X509_LOOKUP_get_store, X509_OBJECT_set1_X509, X509_OBJECT_set1_X509_CRL \&\- Routines to build up X509_LOOKUP methods
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/x509_vfy.h>
143 \&
144 \& X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name);
145 \& void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method);
146 \&
147 \& int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method,
148 \&                                   int (*new_item) (X509_LOOKUP *ctx));
149 \& int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))
150 \&     (X509_LOOKUP *ctx);
151 \&
152 \& int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method,
153 \&                               void (*free) (X509_LOOKUP *ctx));
154 \& void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))
155 \&     (X509_LOOKUP *ctx);
156 \&
157 \& int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method,
158 \&                               int (*init) (X509_LOOKUP *ctx));
159 \& int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))
160 \&     (X509_LOOKUP *ctx);
161 \&
162 \& int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method,
163 \&                                   int (*shutdown) (X509_LOOKUP *ctx));
164 \& int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))
165 \&     (X509_LOOKUP *ctx);
166 \&
167 \& typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc,
168 \&                                    long argl, char **ret);
169 \& int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method,
170 \&     X509_LOOKUP_ctrl_fn ctrl_fn);
171 \& X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method);
172 \&
173 \& typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx,
174 \&                                              X509_LOOKUP_TYPE type,
175 \&                                              X509_NAME *name,
176 \&                                              X509_OBJECT *ret);
177 \& int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method,
178 \&     X509_LOOKUP_get_by_subject_fn fn);
179 \& X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject(
180 \&     const X509_LOOKUP_METHOD *method);
181 \&
182 \& typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx,
183 \&                                                    X509_LOOKUP_TYPE type,
184 \&                                                    X509_NAME *name,
185 \&                                                    ASN1_INTEGER *serial,
186 \&                                                    X509_OBJECT *ret);
187 \& int X509_LOOKUP_meth_set_get_by_issuer_serial(
188 \&     X509_LOOKUP_METHOD *method, X509_LOOKUP_get_by_issuer_serial_fn fn);
189 \& X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial(
190 \&     const X509_LOOKUP_METHOD *method);
191 \&
192 \& typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx,
193 \&                                                  X509_LOOKUP_TYPE type,
194 \&                                                  const unsigned char* bytes,
195 \&                                                  int len,
196 \&                                                  X509_OBJECT *ret);
197 \& int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method,
198 \&     X509_LOOKUP_get_by_fingerprint_fn fn);
199 \& X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint(
200 \&     const X509_LOOKUP_METHOD *method);
201 \&
202 \& typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx,
203 \&                                            X509_LOOKUP_TYPE type,
204 \&                                            const char *str,
205 \&                                            int len,
206 \&                                            X509_OBJECT *ret);
207 \& int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method,
208 \&     X509_LOOKUP_get_by_alias_fn fn);
209 \& X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias(
210 \&     const X509_LOOKUP_METHOD *method);
211 \&
212 \& int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data);
213 \& void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx);
214 \&
215 \& X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx);
216 \&
217 \& int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj);
218 \& int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj);
219 .Ve
220 .SH "DESCRIPTION"
221 .IX Header "DESCRIPTION"
222 The \fBX509_LOOKUP_METHOD\fR type is a structure used for the implementation of new
223 X509_LOOKUP types. It provides a set of functions used by OpenSSL for the
224 implementation of various X509 and X509_CRL lookup capabilities. One instance
225 of an X509_LOOKUP_METHOD can be associated to many instantiations of an
226 \&\fBX509_LOOKUP\fR structure.
227 .PP
228 \&\fIX509_LOOKUP_meth_new()\fR creates a new \fBX509_LOOKUP_METHOD\fR structure. It should
229 be given a human-readable string containing a brief description of the lookup
230 method.
231 .PP
232 \&\fIX509_LOOKUP_meth_free()\fR destroys a \fBX509_LOOKUP_METHOD\fR structure.
233 .PP
234 \&\fIX509_LOOKUP_get_new_item()\fR and \fIX509_LOOKUP_set_new_item()\fR get and set the
235 function that is called when an \fBX509_LOOKUP\fR object is created with
236 \&\fIX509_LOOKUP_new()\fR. If an X509_LOOKUP_METHOD requires any per\-X509_LOOKUP
237 specific data, the supplied new_item function should allocate this data and
238 invoke \fIX509_LOOKUP_set_method_data()\fR.
239 .PP
240 \&\fIX509_LOOKUP_get_free()\fR and \fIX509_LOOKUP_set_free()\fR get and set the function
241 that is used to free any method data that was allocated and set from within
242 new_item function.
243 .PP
244 \&\fIX509_LOOKUP_meth_get_init()\fR and \fIX509_LOOKUP_meth_set_init()\fR get and set the
245 function that is used to initialize the method data that was set with
246 \&\fIX509_LOOKUP_set_method_data()\fR as part of the new_item routine.
247 .PP
248 \&\fIX509_LOOKUP_meth_get_shutdown()\fR and \fIX509_LOOKUP_meth_set_shutdown()\fR get and set
249 the function that is used to shut down the method data whose state was
250 previously initialized in the init function.
251 .PP
252 \&\fIX509_LOOKUP_meth_get_ctrl()\fR and \fIX509_LOOKUP_meth_set_ctrl()\fR get and set a
253 function to be used to handle arbitrary control commands issued by
254 \&\fIX509_LOOKUP_ctrl()\fR. The control function is given the X509_LOOKUP
255 \&\fBctx\fR, along with the arguments passed by X509_LOOKUP_ctrl. \fBcmd\fR is
256 an arbitrary integer that defines some operation. \fBargc\fR is a pointer
257 to an array of characters. \fBargl\fR is an integer. \fBret\fR, if set,
258 points to a location where any return data should be written to. How
259 \&\fBargc\fR and \fBargl\fR are used depends entirely on the control function.
260 .PP
261 \&\fIX509_LOOKUP_set_get_by_subject()\fR, \fIX509_LOOKUP_set_get_by_issuer_serial()\fR,
262 \&\fIX509_LOOKUP_set_get_by_fingerprint()\fR, \fIX509_LOOKUP_set_get_by_alias()\fR set
263 the functions used to retrieve an X509 or X509_CRL object by the object's
264 subject, issuer, fingerprint, and alias respectively. These functions are given
265 the X509_LOOKUP context, the type of the X509_OBJECT being requested, parameters
266 related to the lookup, and an X509_OBJECT that will receive the requested
267 object.
268 .PP
269 Implementations should use either \fIX509_OBJECT_set1_X509()\fR or
270 \&\fIX509_OBJECT_set1_X509_CRL()\fR to set the result. Any method data that was
271 created as a result of the new_item function set by
272 \&\fIX509_LOOKUP_meth_set_new_item()\fR can be accessed with
273 \&\fIX509_LOOKUP_get_method_data()\fR. The \fBX509_STORE\fR object that owns the
274 X509_LOOKUP may be accessed with \fIX509_LOOKUP_get_store()\fR. Successful lookups
275 should return 1, and unsuccessful lookups should return 0.
276 .PP
277 \&\fIX509_LOOKUP_get_get_by_subject()\fR, \fIX509_LOOKUP_get_get_by_issuer_serial()\fR,
278 \&\fIX509_LOOKUP_get_get_by_fingerprint()\fR, \fIX509_LOOKUP_get_get_by_alias()\fR retrieve
279 the function set by the corresponding setter.
280 .SH "RETURN VALUES"
281 .IX Header "RETURN VALUES"
282 The \fBX509_LOOKUP_meth_set\fR functions return 1 on success or 0 on error.
283 .PP
284 The \fBX509_LOOKUP_meth_get\fR functions return the corresponding function
285 pointers.
286 .SH "SEE ALSO"
287 .IX Header "SEE ALSO"
288 \&\fIX509_STORE_new\fR\|(3), \fISSL_CTX_set_cert_store\fR\|(3)
289 .SH "HISTORY"
290 .IX Header "HISTORY"
291 The functions described here were added in OpenSSL 1.1.0i.
292 .SH "COPYRIGHT"
293 .IX Header "COPYRIGHT"
294 Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
295 .PP
296 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
297 this file except in compliance with the License.  You can obtain a copy
298 in the file \s-1LICENSE\s0 in the source distribution or at
299 <https://www.openssl.org/source/license.html>.