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.
By default, no expectations on the types of objects to be loaded are made.
expected_type may be 0 to indicate explicitly that no expectation is made,
or it may be any of the known object types (see
OSSL_STORE_INFO(3)/SUPPORTED OBJECTS) except for OSSL_STORE_INFO_NAME.
For example, if file:/foo/bar/store.pem
contains several objects of different
type and only certificates are interesting, the application can simply say
that it expects the type OSSL_STORE_INFO_CERT.
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 OSSL_STORE_SEARCH(3)/SUPPORTED CRITERION TYPES 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 in OpenSSL 1.1.1.
Copyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (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.