OSSL_STORE_expect, OSSL_STORE_supports_search, OSSL_STORE_find - Specify what
object type is expected
#include <openssl/store.h>
int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type);
int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int criterion_type);
int OSSL_STORE_find(OSSL_STORE_CTX *ctx, OSSL_STORE_SEARCH *search);
OSSL_STORE_expect() helps applications filter what
OSSL_STORE_load() returns by specifying a
OSSL_STORE_INFO type.
For example, if "file:/foo/bar/store.pem" contains several different
objects and only the certificates are interesting, the application can simply
say that it expects the type
OSSL_STORE_INFO_CERT. All known object
types (see "SUPPORTED OBJECTS" in
OSSL_STORE_INFO(3)) except
for
OSSL_STORE_INFO_NAME are supported.
OSSL_STORE_find() helps applications specify a criterion for a more fine
grained search of objects.
OSSL_STORE_supports_search() checks if the loader of the given OSSL_STORE
context supports the given search type. See "SUPPORED CRITERION
TYPES" in OSSL_STORE_SEARCH for information on the supported search
criterion types.
OSSL_STORE_expect() and OSSL_STORE_find
must be called before the
first
OSSL_STORE_load() of a given session, or they will fail.
If a more elaborate filter is required by the application, a better choice would
be to use a post-processing function. See
OSSL_STORE_open(3) for more
information.
However, some loaders may take advantage of the knowledge of an expected type to
make object retrieval more efficient, so if a single type is expected, this
method is usually preferable.
OSSL_STORE_expect() returns 1 on success, or 0 on failure.
OSSL_STORE_supports_search() returns 1 if the criterion is supported, or
0 otherwise.
OSSL_STORE_find() returns 1 on success, or 0 on failure.
ossl_store(7),
OSSL_STORE_INFO(3),
OSSL_STORE_SEARCH(3),
OSSL_STORE_load(3)
OSSL_STORE_expect(),
OSSL_STORE_supports_search() and
OSSL_STORE_find() were added to OpenSSL 1.1.1.
Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy in the
file LICENSE in the source distribution or at
<https://www.openssl.org/source/license.html>.