开放SSL

密码学和 SSL/TLS 工具包

ossl_store

名称

ossl_store - 存储检索函数

概要

#include <openssl/store.h>

描述

通用

STORE 是一层功能,用于从任何类型的存储库中检索一系列受支持的对象,存储库可以作为文件名或 URI 访问。

该功能支持以下模式:“打开与存储库的通道”,“循环并一次检索一个对象”以及“通过关闭通道来完成”。

检索到的对象作为包装器类型 OSSL_STORE_INFO 返回,可以从中检索 OpenSSL 类型。

URI 方案和加载器

对 URI 方案的支持称为 STORE "加载器",可以从调用应用程序或可加载引擎动态添加。

对 'file' 方案的支持内置于 libcrypto 中。有关更多信息,请参见 ossl_store-file(7)

UI_METHOD 和 密码短语

OSS_STORE API 不执行任何操作来强制对 UI_METHOD 提供的密码短语的任何特定格式或编码。但是,密码短语应使用 UTF-8 编码。任何其他编码的结果未定义。

示例

通用调用

OSSL_STORE_CTX *ctx = OSSL_STORE_open("file:/foo/bar/data.pem");

/*
 * OSSL_STORE_eof() simulates file semantics for any repository to signal
 * that no more data can be expected
 */
while (!OSSL_STORE_eof(ctx)) {
    OSSL_STORE_INFO *info = OSSL_STORE_load(ctx);

    /*
     * Do whatever is necessary with the OSSL_STORE_INFO,
     * here just one example
     */
    switch (OSSL_STORE_INFO_get_type(info)) {
    case OSSL_STORE_INFO_CERT:
        /* Print the X.509 certificate text */
        X509_print_fp(stdout, OSSL_STORE_INFO_get0_CERT(info));
        /* Print the X.509 certificate PEM output */
        PEM_write_X509(stdout, OSSL_STORE_INFO_get0_CERT(info));
        break;
    }
}

OSSL_STORE_close(ctx);

另请参见

OSSL_STORE_INFO(3)OSSL_STORE_LOADER(3)OSSL_STORE_open(3)OSSL_STORE_expect(3)OSSL_STORE_SEARCH(3)

版权所有 2016-2018 OpenSSL 项目作者。版权所有。

根据 Apache 许可证 2.0 版(“许可证”)授权。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获得副本。