]>
Commit | Line | Data |
---|---|---|
e2e603fe RL |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
c4fc564d RL |
5 | OSSL_STORE_LOADER, |
6 | OSSL_STORE_LOADER_fetch, | |
7 | OSSL_STORE_LOADER_up_ref, | |
8 | OSSL_STORE_LOADER_free, | |
ed576acd TM |
9 | OSSL_STORE_LOADER_get0_provider, |
10 | OSSL_STORE_LOADER_get0_properties, | |
c4fc564d | 11 | OSSL_STORE_LOADER_is_a, |
ed576acd | 12 | OSSL_STORE_LOADER_get0_description, |
c4fc564d RL |
13 | OSSL_STORE_LOADER_do_all_provided, |
14 | OSSL_STORE_LOADER_names_do_all, | |
15 | OSSL_STORE_LOADER_CTX, OSSL_STORE_LOADER_new, | |
e2e603fe | 16 | OSSL_STORE_LOADER_get0_engine, OSSL_STORE_LOADER_get0_scheme, |
d8652be0 | 17 | OSSL_STORE_LOADER_set_open, OSSL_STORE_LOADER_set_open_ex, |
faa64bca RL |
18 | OSSL_STORE_LOADER_set_attach, OSSL_STORE_LOADER_set_ctrl, |
19 | OSSL_STORE_LOADER_set_expect, OSSL_STORE_LOADER_set_find, | |
20 | OSSL_STORE_LOADER_set_load, OSSL_STORE_LOADER_set_eof, | |
21 | OSSL_STORE_LOADER_set_error, OSSL_STORE_LOADER_set_close, | |
c4fc564d | 22 | OSSL_STORE_register_loader, OSSL_STORE_unregister_loader, |
d8652be0 | 23 | OSSL_STORE_open_fn, OSSL_STORE_open_ex_fn, |
faa64bca | 24 | OSSL_STORE_attach_fn, OSSL_STORE_ctrl_fn, |
6ab6decc | 25 | OSSL_STORE_expect_fn, OSSL_STORE_find_fn, |
e2e603fe RL |
26 | OSSL_STORE_load_fn, OSSL_STORE_eof_fn, OSSL_STORE_error_fn, |
27 | OSSL_STORE_close_fn - Types and functions to manipulate, register and | |
28 | unregister STORE loaders for different URI schemes | |
29 | ||
30 | =head1 SYNOPSIS | |
31 | ||
32 | #include <openssl/store.h> | |
33 | ||
34 | typedef struct ossl_store_loader_st OSSL_STORE_LOADER; | |
35 | ||
6309b799 RL |
36 | OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx, |
37 | const char *scheme, | |
c4fc564d RL |
38 | const char *properties); |
39 | int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader); | |
40 | void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader); | |
ed576acd | 41 | const OSSL_PROVIDER *OSSL_STORE_LOADER_get0_provider(const OSSL_STORE_LOADER * |
c4fc564d | 42 | loader); |
ed576acd | 43 | const char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader); |
ed576acd | 44 | const char *OSSL_STORE_LOADER_get0_description(const OSSL_STORE_LOADER *loader); |
c4fc564d RL |
45 | int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader, |
46 | const char *scheme); | |
b4250010 | 47 | void OSSL_STORE_LOADER_do_all_provided(OSSL_LIB_CTX *libctx, |
c4fc564d RL |
48 | void (*fn)(OSSL_STORE_LOADER *loader, |
49 | void *arg), | |
50 | void *arg); | |
d84f5515 MC |
51 | int OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader, |
52 | void (*fn)(const char *name, void *data), | |
53 | void *data); | |
c4fc564d | 54 | |
a1447076 RL |
55 | Deprecated since OpenSSL 3.0, can be hidden entirely by defining |
56 | B<OPENSSL_API_COMPAT> with a suitable version value, see | |
57 | L<openssl_user_macros(7)>: | |
c4fc564d | 58 | |
e2e603fe RL |
59 | OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme); |
60 | const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER | |
61 | *store_loader); | |
62 | const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER | |
63 | *store_loader); | |
64 | ||
65 | /* struct ossl_store_loader_ctx_st is defined differently by each loader */ | |
66 | typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX; | |
67 | ||
6725682d SL |
68 | typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)( |
69 | const char *uri, const UI_METHOD *ui_method, void *ui_data); | |
e2e603fe RL |
70 | int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *store_loader, |
71 | OSSL_STORE_open_fn store_open_function); | |
d8652be0 | 72 | typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_ex_fn)( |
faa64bca | 73 | const char *uri, const UI_METHOD *ui_method, void *ui_data); |
d8652be0 | 74 | int OSSL_STORE_LOADER_set_open_ex |
faa64bca | 75 | (OSSL_STORE_LOADER *store_loader, |
d8652be0 | 76 | OSSL_STORE_open_ex_fn store_open_ex_function); |
6725682d SL |
77 | typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_attach_fn) |
78 | (const OSSL_STORE_LOADER *loader, BIO *bio, | |
b4250010 | 79 | OSSL_LIB_CTX *libctx, const char *propq, |
6725682d | 80 | const UI_METHOD *ui_method, void *ui_data); |
6ab6ecfd RL |
81 | int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader, |
82 | OSSL_STORE_attach_fn attach_function); | |
e2e603fe RL |
83 | typedef int (*OSSL_STORE_ctrl_fn)(OSSL_STORE_LOADER_CTX *ctx, int cmd, |
84 | va_list args); | |
85 | int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *store_loader, | |
86 | OSSL_STORE_ctrl_fn store_ctrl_function); | |
ce9586b9 RL |
87 | typedef int (*OSSL_STORE_expect_fn)(OSSL_STORE_LOADER_CTX *ctx, int expected); |
88 | int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader, | |
89 | OSSL_STORE_expect_fn expect_function); | |
6ab6decc RL |
90 | typedef int (*OSSL_STORE_find_fn)(OSSL_STORE_LOADER_CTX *ctx, |
91 | OSSL_STORE_SEARCH *criteria); | |
92 | int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader, | |
93 | OSSL_STORE_find_fn find_function); | |
e2e603fe RL |
94 | typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)(OSSL_STORE_LOADER_CTX *ctx, |
95 | UI_METHOD *ui_method, | |
96 | void *ui_data); | |
97 | int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *store_loader, | |
98 | OSSL_STORE_load_fn store_load_function); | |
99 | typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx); | |
100 | int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *store_loader, | |
101 | OSSL_STORE_eof_fn store_eof_function); | |
102 | typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx); | |
103 | int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *store_loader, | |
104 | OSSL_STORE_error_fn store_error_function); | |
105 | typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx); | |
106 | int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *store_loader, | |
107 | OSSL_STORE_close_fn store_close_function); | |
108 | void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *store_loader); | |
dae2218d | 109 | |
e2e603fe RL |
110 | int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader); |
111 | OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme); | |
112 | ||
113 | =head1 DESCRIPTION | |
114 | ||
c4fc564d | 115 | B<OSSL_STORE_LOADER> is a method for OSSL_STORE loaders, which implement |
d8652be0 | 116 | OSSL_STORE_open(), OSSL_STORE_open_ex(), OSSL_STORE_load(), |
c4fc564d RL |
117 | OSSL_STORE_eof(), OSSL_STORE_error() and OSSL_STORE_close() for specific |
118 | storage schemes. | |
e2e603fe | 119 | |
c4fc564d | 120 | OSSL_STORE_LOADER_fetch() looks for an implementation for a storage |
b4250010 | 121 | I<scheme> within the providers that has been loaded into the B<OSSL_LIB_CTX> |
6309b799 | 122 | given by I<libctx>, and with the properties given by I<properties>. |
e2e603fe | 123 | |
c4fc564d RL |
124 | OSSL_STORE_LOADER_up_ref() increments the reference count for the given |
125 | I<loader>. | |
126 | ||
127 | OSSL_STORE_LOADER_free() decrements the reference count for the given | |
128 | I<loader>, and when the count reaches zero, frees it. | |
129 | ||
ed576acd | 130 | OSSL_STORE_LOADER_get0_provider() returns the provider of the given |
c4fc564d RL |
131 | I<loader>. |
132 | ||
ed576acd | 133 | OSSL_STORE_LOADER_get0_properties() returns the property definition associated |
c4fc564d RL |
134 | with the given I<loader>. |
135 | ||
136 | OSSL_STORE_LOADER_is_a() checks if I<loader> is an implementation | |
137 | of an algorithm that's identifiable with I<scheme>. | |
138 | ||
ed576acd | 139 | OSSL_STORE_LOADER_get0_description() returns a description of the I<loader>, meant |
b638dad9 RL |
140 | for display and human consumption. The description is at the discretion of the |
141 | I<loader> implementation. | |
142 | ||
c4fc564d RL |
143 | OSSL_STORE_LOADER_do_all_provided() traverses all store implementations |
144 | by all activated providers in the library context I<libctx>, and for each | |
145 | of the implementations, calls I<fn> with the implementation method and | |
146 | I<data> as arguments. | |
147 | ||
148 | OSSL_STORE_LOADER_names_do_all() traverses all names for the given | |
149 | I<loader>, and calls I<fn> with each name and I<data>. | |
150 | ||
a1447076 | 151 | =head2 Legacy Types and Functions (deprecated) |
c4fc564d RL |
152 | |
153 | These functions help applications and engines to create loaders for | |
a1447076 RL |
154 | schemes they support. These are all deprecated and discouraged in favour of |
155 | provider implementations, see L<provider-storemgmt(7)>. | |
e2e603fe RL |
156 | |
157 | B<OSSL_STORE_LOADER_CTX> is a type template, to be defined by each loader | |
c4fc564d | 158 | using C<struct ossl_store_loader_ctx_st { ... }>. |
e2e603fe | 159 | |
d8652be0 | 160 | B<OSSL_STORE_open_fn>, B<OSSL_STORE_open_ex_fn>, |
faa64bca RL |
161 | B<OSSL_STORE_ctrl_fn>, B<OSSL_STORE_expect_fn>, B<OSSL_STORE_find_fn>, |
162 | B<OSSL_STORE_load_fn>, B<OSSL_STORE_eof_fn>, and B<OSSL_STORE_close_fn> | |
ce9586b9 | 163 | are the function pointer types used within a STORE loader. |
e2e603fe RL |
164 | The functions pointed at define the functionality of the given loader. |
165 | ||
166 | =over 4 | |
167 | ||
d8652be0 | 168 | =item B<OSSL_STORE_open_fn> and B<OSSL_STORE_open_ex_fn> |
e2e603fe | 169 | |
d8652be0 | 170 | B<OSSL_STORE_open_ex_fn> takes a URI and is expected to |
faa64bca RL |
171 | interpret it in the best manner possible according to the scheme the |
172 | loader implements. It also takes a B<UI_METHOD> and associated data, | |
173 | to be used any time something needs to be prompted for, as well as a | |
174 | library context I<libctx> with an associated property query I<propq>, | |
175 | to be used when fetching necessary algorithms to perform the loads. | |
e2e603fe | 176 | Furthermore, this function is expected to initialize what needs to be |
faa64bca RL |
177 | initialized, to create a private data store (B<OSSL_STORE_LOADER_CTX>, |
178 | see above), and to return it. | |
e2e603fe RL |
179 | If something goes wrong, this function is expected to return NULL. |
180 | ||
faa64bca | 181 | B<OSSL_STORE_open_fn> does the same thing as |
d8652be0 | 182 | B<OSSL_STORE_open_ex_fn> but uses NULL for the library |
faa64bca RL |
183 | context I<libctx> and property query I<propq>. |
184 | ||
185 | =item B<OSSL_STORE_attach_fn> | |
6ab6ecfd | 186 | |
faa64bca | 187 | This function takes a B<BIO>, otherwise works like |
d8652be0 | 188 | B<OSSL_STORE_open_ex_fn>. |
6ab6ecfd | 189 | |
e2e603fe RL |
190 | =item B<OSSL_STORE_ctrl_fn> |
191 | ||
192 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer, a command number | |
c4fc564d | 193 | I<cmd> and a B<va_list> I<args> and is used to manipulate loader |
e2e603fe RL |
194 | specific parameters. |
195 | ||
196 | =begin comment | |
197 | ||
198 | Globally known command numbers are documented in L<OSSL_STORE_ctrl(3)>, | |
c4fc564d | 199 | along with what I<args> are expected with each of them. |
e2e603fe RL |
200 | |
201 | =end comment | |
202 | ||
203 | Loader specific command numbers must begin at B<OSSL_STORE_C_CUSTOM_START>. | |
204 | Any number below that is reserved for future globally known command | |
205 | numbers. | |
206 | ||
207 | This function is expected to return 1 on success, 0 on error. | |
208 | ||
ce9586b9 RL |
209 | =item B<OSSL_STORE_expect_fn> |
210 | ||
211 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer and a B<OSSL_STORE_INFO> | |
c4fc564d | 212 | identity I<expected>, and is used to tell the loader what object type is |
ce9586b9 | 213 | expected. |
c4fc564d | 214 | I<expected> may be zero to signify that no specific object type is expected. |
ce9586b9 RL |
215 | |
216 | This function is expected to return 1 on success, 0 on error. | |
217 | ||
6ab6decc RL |
218 | =item B<OSSL_STORE_find_fn> |
219 | ||
220 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer and a | |
221 | B<OSSL_STORE_SEARCH> search criterion, and is used to tell the loader what | |
222 | to search for. | |
223 | ||
c4fc564d | 224 | When called with the loader context being NULL, this function is expected |
6ab6decc RL |
225 | to return 1 if the loader supports the criterion, otherwise 0. |
226 | ||
c4fc564d | 227 | When called with the loader context being something other than NULL, this |
6ab6decc RL |
228 | function is expected to return 1 on success, 0 on error. |
229 | ||
e2e603fe RL |
230 | =item B<OSSL_STORE_load_fn> |
231 | ||
232 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer and a B<UI_METHOD> | |
233 | with associated data. | |
234 | It's expected to load the next available data, mold it into a data | |
235 | structure that can be wrapped in a B<OSSL_STORE_INFO> using one of the | |
236 | L<OSSL_STORE_INFO(3)> functions. | |
237 | If no more data is available or an error occurs, this function is | |
238 | expected to return NULL. | |
239 | The B<OSSL_STORE_eof_fn> and B<OSSL_STORE_error_fn> functions must indicate if | |
a970b14f | 240 | it was in fact the end of data or if an error occurred. |
e2e603fe | 241 | |
a970b14f | 242 | Note that this function retrieves I<one> data item only. |
e2e603fe RL |
243 | |
244 | =item B<OSSL_STORE_eof_fn> | |
245 | ||
246 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer and is expected to | |
247 | return 1 to indicate that the end of available data has been reached. | |
248 | It is otherwise expected to return 0. | |
249 | ||
250 | =item B<OSSL_STORE_error_fn> | |
251 | ||
252 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer and is expected to | |
3266cf58 | 253 | return 1 to indicate that an error occurred in a previous call to the |
e2e603fe RL |
254 | B<OSSL_STORE_load_fn> function. |
255 | It is otherwise expected to return 0. | |
256 | ||
257 | =item B<OSSL_STORE_close_fn> | |
258 | ||
259 | This function takes a B<OSSL_STORE_LOADER_CTX> pointer and is expected to | |
260 | close or shut down what needs to be closed, and finally free the | |
261 | contents of the B<OSSL_STORE_LOADER_CTX> pointer. | |
262 | It returns 1 on success and 0 on error. | |
263 | ||
264 | =back | |
265 | ||
e2e603fe | 266 | OSSL_STORE_LOADER_new() creates a new B<OSSL_STORE_LOADER>. |
c4fc564d RL |
267 | It takes an B<ENGINE> I<e> and a string I<scheme>. |
268 | I<scheme> must I<always> be set. | |
269 | Both I<e> and I<scheme> are used as is and must therefore be alive as | |
e2e603fe RL |
270 | long as the created loader is. |
271 | ||
c4fc564d RL |
272 | OSSL_STORE_LOADER_get0_engine() returns the engine of the I<store_loader>. |
273 | OSSL_STORE_LOADER_get0_scheme() returns the scheme of the I<store_loader>. | |
e2e603fe RL |
274 | |
275 | OSSL_STORE_LOADER_set_open() sets the opener function for the | |
c4fc564d | 276 | I<store_loader>. |
e2e603fe | 277 | |
d8652be0 | 278 | OSSL_STORE_LOADER_set_open_ex() sets the opener with library context |
faa64bca RL |
279 | function for the I<store_loader>. |
280 | ||
6ab6ecfd | 281 | OSSL_STORE_LOADER_set_attach() sets the attacher function for the |
c4fc564d | 282 | I<store_loader>. |
6ab6ecfd | 283 | |
e2e603fe | 284 | OSSL_STORE_LOADER_set_ctrl() sets the control function for the |
c4fc564d | 285 | I<store_loader>. |
e2e603fe | 286 | |
ce9586b9 | 287 | OSSL_STORE_LOADER_set_expect() sets the expect function for the |
c4fc564d | 288 | I<store_loader>. |
ce9586b9 | 289 | |
e2e603fe | 290 | OSSL_STORE_LOADER_set_load() sets the loader function for the |
c4fc564d | 291 | I<store_loader>. |
e2e603fe RL |
292 | |
293 | OSSL_STORE_LOADER_set_eof() sets the end of file checker function for the | |
c4fc564d | 294 | I<store_loader>. |
e2e603fe RL |
295 | |
296 | OSSL_STORE_LOADER_set_close() sets the closing function for the | |
c4fc564d | 297 | I<store_loader>. |
e2e603fe | 298 | |
c4fc564d | 299 | OSSL_STORE_LOADER_free() frees the given I<store_loader>. |
e2e603fe | 300 | |
c4fc564d | 301 | OSSL_STORE_register_loader() register the given I<store_loader> and |
faa64bca | 302 | thereby makes it available for use with OSSL_STORE_open(), |
d8652be0 | 303 | OSSL_STORE_open_ex(), OSSL_STORE_load(), OSSL_STORE_eof() |
faa64bca | 304 | and OSSL_STORE_close(). |
e2e603fe RL |
305 | |
306 | OSSL_STORE_unregister_loader() unregister the store loader for the given | |
c4fc564d | 307 | I<scheme>. |
e2e603fe | 308 | |
c4fc564d | 309 | =head1 RETURN VALUES |
e2e603fe | 310 | |
c4fc564d RL |
311 | OSSL_STORE_LOADER_fetch() returns a pointer to an OSSL_STORE_LOADER object, |
312 | or NULL on error. | |
e2e603fe | 313 | |
c4fc564d RL |
314 | OSSL_STORE_LOADER_up_ref() returns 1 on success, or 0 on error. |
315 | ||
d84f5515 MC |
316 | OSSL_STORE_LOADER_names_do_all() returns 1 if the callback was called for all |
317 | names. A return value of 0 means that the callback was not called for any names. | |
318 | ||
c4fc564d RL |
319 | OSSL_STORE_LOADER_free() doesn't return any value. |
320 | ||
ed576acd | 321 | OSSL_STORE_LOADER_get0_provider() returns a pointer to a provider object, or |
c4fc564d RL |
322 | NULL on error. |
323 | ||
ed576acd | 324 | OSSL_STORE_LOADER_get0_properties() returns a pointer to a property |
c4fc564d RL |
325 | definition string, or NULL on error. |
326 | ||
327 | OSSL_STORE_LOADER_is_a() returns 1 if I<loader> was identifiable, | |
328 | otherwise 0. | |
329 | ||
ed576acd | 330 | OSSL_STORE_LOADER_get0_description() returns a pointer to a decription, or NULL if |
b638dad9 RL |
331 | there isn't one. |
332 | ||
faa64bca | 333 | The functions with the types B<OSSL_STORE_open_fn>, |
d8652be0 | 334 | B<OSSL_STORE_open_ex_fn>, B<OSSL_STORE_ctrl_fn>, |
faa64bca RL |
335 | B<OSSL_STORE_expect_fn>, B<OSSL_STORE_load_fn>, B<OSSL_STORE_eof_fn> |
336 | and B<OSSL_STORE_close_fn> have the same return values as OSSL_STORE_open(), | |
d8652be0 | 337 | OSSL_STORE_open_ex(), OSSL_STORE_ctrl(), OSSL_STORE_expect(), |
ce9586b9 | 338 | OSSL_STORE_load(), OSSL_STORE_eof() and OSSL_STORE_close(), respectively. |
e2e603fe RL |
339 | |
340 | OSSL_STORE_LOADER_new() returns a pointer to a B<OSSL_STORE_LOADER> on success, | |
c4fc564d | 341 | or NULL on failure. |
e2e603fe | 342 | |
d8652be0 | 343 | OSSL_STORE_LOADER_set_open(), OSSL_STORE_LOADER_set_open_ex(), |
faa64bca RL |
344 | OSSL_STORE_LOADER_set_ctrl(), OSSL_STORE_LOADER_set_load(), |
345 | OSSL_STORE_LOADER_set_eof() and OSSL_STORE_LOADER_set_close() return 1 | |
346 | on success, or 0 on failure. | |
e2e603fe RL |
347 | |
348 | OSSL_STORE_register_loader() returns 1 on success, or 0 on failure. | |
349 | ||
350 | OSSL_STORE_unregister_loader() returns the unregistered loader on success, | |
c4fc564d | 351 | or NULL on failure. |
e2e603fe RL |
352 | |
353 | =head1 SEE ALSO | |
354 | ||
b4250010 | 355 | L<ossl_store(7)>, L<OSSL_STORE_open(3)>, L<OSSL_LIB_CTX(3)>, |
c4fc564d | 356 | L<provider-storemgmt(7)> |
e2e603fe RL |
357 | |
358 | =head1 HISTORY | |
359 | ||
c4fc564d | 360 | OSSL_STORE_LOADER_fetch(), OSSL_STORE_LOADER_up_ref(), |
ed576acd TM |
361 | OSSL_STORE_LOADER_free(), OSSL_STORE_LOADER_get0_provider(), |
362 | OSSL_STORE_LOADER_get0_properties(), OSSL_STORE_LOADER_is_a(), | |
6ea964cd | 363 | OSSL_STORE_LOADER_do_all_provided() and |
c4fc564d RL |
364 | OSSL_STORE_LOADER_names_do_all() were added in OpenSSL 3.0. |
365 | ||
d8652be0 | 366 | OSSL_STORE_open_ex_fn() was added in OpenSSL 3.0. |
faa64bca RL |
367 | |
368 | B<OSSL_STORE_LOADER>, B<OSSL_STORE_LOADER_CTX>, OSSL_STORE_LOADER_new(), | |
e52b4215 SL |
369 | OSSL_STORE_LOADER_set0_scheme(), OSSL_STORE_LOADER_get0_scheme(), |
370 | OSSL_STORE_LOADER_get0_engine(), OSSL_STORE_LOADER_set_expect(), | |
371 | OSSL_STORE_LOADER_set_find(), OSSL_STORE_LOADER_set_attach(), | |
372 | OSSL_STORE_LOADER_set_open_ex(), OSSL_STORE_LOADER_set_open(), | |
373 | OSSL_STORE_LOADER_set_ctrl(), | |
374 | OSSL_STORE_LOADER_set_load(), OSSL_STORE_LOADER_set_eof(), | |
375 | OSSL_STORE_LOADER_set_close(), OSSL_STORE_LOADER_free(), | |
376 | OSSL_STORE_register_loader(), OSSL_STORE_LOADER_set_error(), | |
e2e603fe RL |
377 | OSSL_STORE_unregister_loader(), OSSL_STORE_open_fn(), OSSL_STORE_ctrl_fn(), |
378 | OSSL_STORE_load_fn(), OSSL_STORE_eof_fn() and OSSL_STORE_close_fn() | |
a1447076 | 379 | were added in OpenSSL 1.1.1, and became deprecated in OpenSSL 3.0. |
e2e603fe RL |
380 | |
381 | =head1 COPYRIGHT | |
382 | ||
8020d79b | 383 | Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. |
e2e603fe | 384 | |
4746f25a | 385 | Licensed under the Apache License 2.0 (the "License"). You may not use |
e2e603fe RL |
386 | this file except in compliance with the License. You can obtain a copy |
387 | in the file LICENSE in the source distribution or at | |
388 | L<https://www.openssl.org/source/license.html>. | |
389 | ||
390 | =cut |