{
    "content": [
        {
            "type": "text",
            "text": "# EVP_KDF-PBKDF2 (man)\n\n## NAME\n\nEVPKDF-PBKDF2 - The PBKDF2 EVPKDF implementation\n\n## DESCRIPTION\n\nSupport for computing the PBKDF2 password-based KDF through the EVPKDF API.\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION** (2 subsections)\n- **NOTES**\n- **CONFORMING TO**\n- **SEE ALSO**\n- **HISTORY**\n- **COPYRIGHT**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "EVP_KDF-PBKDF2",
        "section": "",
        "mode": "man",
        "summary": "EVPKDF-PBKDF2 - The PBKDF2 EVPKDF implementation",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "EVPKDF",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPKDF/3/json"
            },
            {
                "name": "EVPKDFCTXnew",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPKDFCTXnew/3/json"
            },
            {
                "name": "EVPKDFCTXfree",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPKDFCTXfree/3/json"
            },
            {
                "name": "EVPKDFCTXsetparams",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPKDFCTXsetparams/3/json"
            },
            {
                "name": "EVPKDFderive",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPKDFderive/3/json"
            },
            {
                "name": "EVPKDF",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPKDF/3/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": [
                    {
                        "name": "Identity",
                        "lines": 3
                    },
                    {
                        "name": "Supported parameters",
                        "lines": 26
                    }
                ]
            },
            {
                "name": "NOTES",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "CONFORMING TO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "HISTORY",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 7,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "EVPKDF-PBKDF2 - The PBKDF2 EVPKDF implementation\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Support for computing the PBKDF2 password-based KDF through the EVPKDF API.\n\nThe EVPKDF-PBKDF2 algorithm implements the PBKDF2 password-based key derivation function, as\ndescribed in SP800-132; it derives a key from a password using a salt and iteration count.\n",
                "subsections": [
                    {
                        "name": "Identity",
                        "content": "\"PBKDF2\" is the name for this implementation; it can be used with the EVPKDFfetch()\nfunction.\n"
                    },
                    {
                        "name": "Supported parameters",
                        "content": "The supported parameters are:\n\n\"pass\" (OSSLKDFPARAMPASSWORD) <octet string>\n\"salt\" (OSSLKDFPARAMSALT) <octet string>\n\"iter\" (OSSLKDFPARAMITER) <unsigned integer>\nThis parameter has a default value of 2048.\n\n\"properties\" (OSSLKDFPARAMPROPERTIES) <UTF8 string>\n\"digest\" (OSSLKDFPARAMDIGEST) <UTF8 string>\nThese parameters work as described in \"PARAMETERS\" in EVPKDF(3).\n\n\"pkcs5\" (OSSLKDFPARAMPKCS5) <integer>\nThis parameter can be used to enable or disable SP800-132 compliance checks.  Setting the\nmode to 0 enables the compliance checks.\n\nThe checks performed are:\n\n- the iteration count is at least 1000.\n- the salt length is at least 128 bits.\n- the derived key length is at least 112 bits.\n\nThe  default  provider uses a default mode of 1 for backwards compatibility, and the FIPS\nprovider uses a default mode of 0.\n\nThe value string is expected to be a decimal number 0 or 1.\n"
                    }
                ]
            },
            "NOTES": {
                "content": "A typical application of this algorithm is  to  derive  keying  material  for  an  encryption\nalgorithm from a password in the \"pass\", a salt in \"salt\", and an iteration count.\n\nIncreasing  the  \"iter\"  parameter  slows  down  the  algorithm  which makes it harder for an\nattacker to perform a brute force attack using a large number of candidate passwords.\n\nNo assumption is made regarding the given password; it is simply treated as a byte sequence.\n",
                "subsections": []
            },
            "CONFORMING TO": {
                "content": "SP800-132\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "EVPKDF(3),     EVPKDFCTXnew(3),      EVPKDFCTXfree(3),      EVPKDFCTXsetparams(3),\nEVPKDFderive(3), \"PARAMETERS\" in EVPKDF(3)\n",
                "subsections": []
            },
            "HISTORY": {
                "content": "This functionality was added in OpenSSL 3.0.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright 2018-2022 The OpenSSL Project Authors. All Rights Reserved.\n\nLicensed  under  the Apache License 2.0 (the \"License\").  You may not use this file except in\ncompliance with the License.  You can obtain a  copy  in  the  file  LICENSE  in  the  source\ndistribution or at <https://www.openssl.org/source/license.html>.\n\n3.0.13                                       2026-07-29                         EVPKDF-PBKDF2(7SSL)",
                "subsections": []
            }
        }
    }
}