{
    "content": [
        {
            "type": "text",
            "text": "# OSSL_STORE (info)\n\n## NAME\n\nosslstore - Store retrieval functions\n\n## SYNOPSIS\n\n#include <openssl/store.h>\n\n## DESCRIPTION\n\nGeneral\nA STORE is a layer of functionality to retrieve a number of supported\nobjects from a repository of any kind, addressable as a filename or as\na URI.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **EXAMPLES**\n- **SEE ALSO**\n- **COPYRIGHT**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "OSSL_STORE",
        "section": "",
        "mode": "info",
        "summary": "osslstore - Store retrieval functions",
        "synopsis": "#include <openssl/store.h>",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [
            "A generic call",
            "OSSLSTORECTX *ctx = OSSLSTOREopen(\"file:/foo/bar/data.pem\");",
            "/*",
            "* OSSLSTOREeof() simulates file semantics for any repository to signal",
            "* that no more data can be expected",
            "*/",
            "while (!OSSLSTOREeof(ctx)) {",
            "OSSLSTOREINFO *info = OSSLSTOREload(ctx);",
            "/*",
            "* Do whatever is necessary with the OSSLSTOREINFO,",
            "* here just one example",
            "*/",
            "switch (OSSLSTOREINFOgettype(info)) {",
            "case OSSLSTOREINFOCERT:",
            "/* Print the X.509 certificate text */",
            "X509printfp(stdout, OSSLSTOREINFOget0CERT(info));",
            "/* Print the X.509 certificate PEM output */",
            "PEMwriteX509(stdout, OSSLSTOREINFOget0CERT(info));",
            "break;",
            "OSSLSTOREclose(ctx);"
        ],
        "see_also": [
            {
                "name": "OSSLSTOREINFO",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/OSSLSTOREINFO/3/json"
            },
            {
                "name": "OSSLSTORELOADER",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/OSSLSTORELOADER/3/json"
            },
            {
                "name": "OSSLSTOREopen",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/OSSLSTOREopen/3/json"
            },
            {
                "name": "OSSLSTOREexpect",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/OSSLSTOREexpect/3/json"
            },
            {
                "name": "OSSLSTORESEARCH",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/OSSLSTORESEARCH/3/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 25,
                "subsections": []
            },
            {
                "name": "EXAMPLES",
                "lines": 26,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 8,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "osslstore - Store retrieval functions\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "#include <openssl/store.h>\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "General\nA STORE is a layer of functionality to retrieve a number of supported\nobjects from a repository of any kind, addressable as a filename or as\na URI.\n\nThe functionality supports the pattern \"open a channel to the\nrepository\", \"loop and retrieve one object at a time\", and \"finish up\nby closing the channel\".\n\nThe retrieved objects are returned as a wrapper type OSSLSTOREINFO,\nfrom which an OpenSSL type can be retrieved.\n\nURI schemes and loaders\nSupport for a URI scheme is called a STORE \"loader\", and can be added\ndynamically from the calling application or from a loadable engine.\n\nSupport for the 'file' scheme is built into \"libcrypto\".  See\nosslstore-file(7) for more information.\n\nUIMETHOD and pass phrases\nThe OSSSTORE API does nothing to enforce any specific format or\nencoding on the pass phrase that the UIMETHOD provides.  However, the\npass phrase is expected to be UTF-8 encoded.  The result of any other\nencoding is undefined.\n",
                "subsections": []
            },
            "EXAMPLES": {
                "content": "A generic call\nOSSLSTORECTX *ctx = OSSLSTOREopen(\"file:/foo/bar/data.pem\");\n\n/*\n* OSSLSTOREeof() simulates file semantics for any repository to signal\n* that no more data can be expected\n*/\nwhile (!OSSLSTOREeof(ctx)) {\nOSSLSTOREINFO *info = OSSLSTOREload(ctx);\n\n/*\n* Do whatever is necessary with the OSSLSTOREINFO,\n* here just one example\n*/\nswitch (OSSLSTOREINFOgettype(info)) {\ncase OSSLSTOREINFOCERT:\n/* Print the X.509 certificate text */\nX509printfp(stdout, OSSLSTOREINFOget0CERT(info));\n/* Print the X.509 certificate PEM output */\nPEMwriteX509(stdout, OSSLSTOREINFOget0CERT(info));\nbreak;\n}\n}\n\nOSSLSTOREclose(ctx);\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "OSSLSTOREINFO(3), OSSLSTORELOADER(3), OSSLSTOREopen(3),\nOSSLSTOREexpect(3), OSSLSTORESEARCH(3)\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.\n\nLicensed under the Apache License 2.0 (the \"License\").  You may not use\nthis file except in compliance with the License.  You can obtain a copy\nin the file LICENSE in the source distribution or at\n<https://www.openssl.org/source/license.html>.\n\n3.0.2                             2026-06-02                  OSSLSTORE(7SSL)",
                "subsections": []
            }
        }
    }
}