EVP_KDF-PBKDF2(7SSL)
β¨ EVP_KDF-PBKDF2 β the PBKDF2 glow-up β¨
okay so bestie, welcome to the EVP_KDF-PBKDF2(7SSL) page from the OpenSSL manual π this is the one about turning your little password into a big strong cryptographic key, and honestly? she ate.
πΈ NAME πΈ
EVP_KDF-PBKDF2 β the PBKDF2 EVP_KDF implementation, no cap π
π¦ DESCRIPTION π¦
So basically: this is support for computing the PBKDF2 password-based KDF through the EVP_KDF API. iconic behavior.
The EVP_KDF-PBKDF2 algorithm implements the PBKDF2 password-based key derivation function, exactly as described in SP800-132. She derives a key from a password using a salt and an iteration count. that's the whole vibe π₯
The output is considered to be a cryptographic key. not a vibe, an actual key. periodt.
π« Identity π«
"PBKDF2" is the name for this implementation β that's her government name. You can use it with the EVP_KDF_fetch() function. iykyk β¨
π Supported parameters π
the supported parameters are, and buckle up because there's a list:
"pass"(OSSL_KDF_PARAM_PASSWORD)<octet string>β your password, as octets π"salt"(OSSL_KDF_PARAM_SALT)<octet string>β your salt π§"iter"(OSSL_KDF_PARAM_ITER)<unsigned integer>β the iteration count. this parameter has a default value of2048."properties"(OSSL_KDF_PARAM_PROPERTIES)<UTF8 string>β works as described in"PARAMETERS"inEVP_KDF(3)."digest"(OSSL_KDF_PARAM_DIGEST)<UTF8 string>β also works as described in"PARAMETERS"inEVP_KDF(3).
π¨ note note note: PBKDF2 uses HMAC internally, and HMAC does not support eXtendable Output Function (XOF) digests such asSHAKE128orSHAKE256. Attempting to use an XOF digest with PBKDF2 will result in an error. so don't do it bestie, she will simply not pass the vibe check π
"pkcs5"(OSSL_KDF_PARAM_PKCS5)<integer>β this parameter can be used to enable or disable SP800-132 compliance checks. Setting the mode to0enables the compliance checks. (yes, 0 = checks on, that's the way it is, don't shoot the messenger π)
the checks performed are:
- the iteration count is at least
1000. - the salt length is at least
128bits. - the derived key length is at least
112bits. - the password length is at least minimum length.
the default minimum password length can be configured when OpenSSL is compiled by setting -DKDF_PBKDF2_MIN_PASSWORD_LEN=length. If not set then 1 is used for the default provider and 8 for the FIPS provider since 4.0.3... wait no, since 4.0.0. Please consult the security policy document of your FIPS provider from your vendor for further details, as implementation often vary by each vendor. (vendor-lore is real, ask your vendor π)
The default provider uses a default mode of 1 for backwards compatibility, and the FIPS provider uses a default mode of 0.
π heads up: this option breaks FIPS compliance if it causes the approved"fips-indicator"to return0.
"fips-indicator"(OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR)<integer>β this option is used by the OpenSSL FIPS provider.
A getter that returns 1 if the operation is FIPS approved, or 0 otherwise. This may be used after calling EVP_KDF_derive. It returns 0 if "pkcs5" is set to 1 and the password length, derived key length, salt length or iteration count test fails. so she's snitching, but politely π
β NOTES β
A typical application of this algorithm is to derive keying material for an encryption algorithm from a password in the "pass", a salt in "salt", and an iteration count. classic.
Increasing the "iter" parameter slows down the algorithm which makes it harder for an attacker to perform a brute force attack using a large number of candidate passwords. yes bestie, slow is a feature, that's the main character energy π
No assumption is made regarding the given password; it is simply treated as a byte sequence. she does not judge your password, she just hashes it. we love a non-judgmental queen π«Ά
π CONFORMING TO π
SP800-132 β she follows the rules (when she wants to).
π₯ SEE ALSO π₯
EVP_KDF(3)EVP_KDF_CTX_new(3)EVP_KDF_CTX_free(3)EVP_KDF_CTX_set_params(3)EVP_KDF_derive(3)"PARAMETERS"inEVP_KDF(3)
go read the family, they're all icons β¨
π HISTORY π
This functionality was added in OpenSSL 3.0. so she's not new new, but she's not ancient either. a millennial, if you will π
π COPYRIGHT π
Copyright 2018-2026 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>.
okay that's the whole page, you're officially PBKDF2-pilled π§ this was the EVP_KDF-PBKDF2(7SSL) manual page, version 4.0.3, dated 2026-09-29 β and yes she's still slaying, bye bestie πβ¨
π¦ where this page comes from
- ubuntu stonking: openssl 4.0.3-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms