EVP_KDF-PVKKDF(7ossl)
β¨ EVP_KDF-PVKKDF β¨
okay so bestie, this is the EVP_KDF-PVKKDF page from the OpenSSL manual (section 7ossl, iykyk) and it's lowkey about deriving keys from PINs. let me walk you through it π«Ά
π NAME π
EVP_KDF-PVKKDF β the PVK EVP_KDF implementation, aka the girl that turns your password + salt into a key π
πΈ DESCRIPTION πΈ
so basically this gives you support for computing the PVK KDF PIN-based KDF through the EVP_KDF API. slay.
the EVP_KDF-PVKKDF algorithm implements a PVK PIN-based key derivation function β say that five times fast π β and what it does is derive a key from a password using a salt. that's the whole vibe. no cap.
π Identity π
"PVKKDF" is the name for this implementation. that's her government name, periodt. you can use it with the EVP_KDF_fetch() function.
π¦ Supported parameters π¦
here's the guest list β these are the supported parameters:
"pass"(OSSL_KDF_PARAM_PASSWORD)<octet string>β the password, as raw bytes π"salt"(OSSL_KDF_PARAM_SALT)<octet string>β the salt, also raw bytes π§"properties"(OSSL_KDF_PARAM_PROPERTIES)<UTF8 string>β the properties string"digest"(OSSL_KDF_PARAM_DIGEST)<UTF8 string>β the digest to use
all four of these work exactly as described in "PARAMETERS" in EVP_KDF(3). go read that one too, bestie, it's giving required reading π
π₯ NOTES π₯
a typical application of this algorithm β like, its main character moment β is to derive keying material for an encryption algorithm from a password in "pass" and a salt in "salt". that's it, that's the job β¨
no assumption is made regarding the given password; it is simply treated as a byte sequence. so don't come at it with your "but it's a string" energy, it does not care π
π¨ important one, bestie: the legacy provider needs to be available in order to access this algorithm. no legacy provider, no PVKKDF. that's the vibe check and it passed/failed accordingly π
π SEE ALSO π
go stan these next:
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)OSSL_PROVIDER-legacy(7)
π HISTORY π
this functionality was added in OpenSSL 3.2. so it's relatively new, a fresh face, very much new-on-the-scene energy β
π COPYRIGHT π
Copyright 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>.
and that's the whole page, diva π
this was OpenSSL 3.5.9, dated 2026-09-29 β mwah, go derive some keys responsibly, ily πβ¨
π¦ where this page comes from
- alpine 3.23: openssl-doc 3.5.9-r0 Β· Apache-2.0
- alpine 3.24: openssl-doc 3.5.9-r0 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms