1*e7be843bSPierre Pronchery=pod 2*e7be843bSPierre Pronchery 3*e7be843bSPierre Pronchery=head1 NAME 4*e7be843bSPierre Pronchery 5*e7be843bSPierre ProncheryEVP_KDF-PVKKDF - The PVK EVP_KDF implementation 6*e7be843bSPierre Pronchery 7*e7be843bSPierre Pronchery=head1 DESCRIPTION 8*e7be843bSPierre Pronchery 9*e7be843bSPierre ProncherySupport for computing the B<PVK KDF> PIN-based KDF through the B<EVP_KDF> 10*e7be843bSPierre ProncheryAPI. 11*e7be843bSPierre Pronchery 12*e7be843bSPierre ProncheryThe EVP_KDF-PVKKDF algorithm implements a PVK PIN-based key 13*e7be843bSPierre Proncheryderivation function; it derives a key from a password using a salt. 14*e7be843bSPierre Pronchery 15*e7be843bSPierre Pronchery=head2 Identity 16*e7be843bSPierre Pronchery 17*e7be843bSPierre Pronchery"PVKKDF" is the name for this implementation; it 18*e7be843bSPierre Proncherycan be used with the EVP_KDF_fetch() function. 19*e7be843bSPierre Pronchery 20*e7be843bSPierre Pronchery=head2 Supported parameters 21*e7be843bSPierre Pronchery 22*e7be843bSPierre ProncheryThe supported parameters are: 23*e7be843bSPierre Pronchery 24*e7be843bSPierre Pronchery=over 4 25*e7be843bSPierre Pronchery 26*e7be843bSPierre Pronchery=item "pass" (B<OSSL_KDF_PARAM_PASSWORD>) <octet string> 27*e7be843bSPierre Pronchery 28*e7be843bSPierre Pronchery=item "salt" (B<OSSL_KDF_PARAM_SALT>) <octet string> 29*e7be843bSPierre Pronchery 30*e7be843bSPierre Pronchery=item "properties" (B<OSSL_KDF_PARAM_PROPERTIES>) <UTF8 string> 31*e7be843bSPierre Pronchery 32*e7be843bSPierre Pronchery=item "digest" (B<OSSL_KDF_PARAM_DIGEST>) <UTF8 string> 33*e7be843bSPierre Pronchery 34*e7be843bSPierre ProncheryThese parameters work as described in L<EVP_KDF(3)/PARAMETERS>. 35*e7be843bSPierre Pronchery 36*e7be843bSPierre Pronchery=back 37*e7be843bSPierre Pronchery 38*e7be843bSPierre Pronchery=head1 NOTES 39*e7be843bSPierre Pronchery 40*e7be843bSPierre ProncheryA typical application of this algorithm is to derive keying material for an 41*e7be843bSPierre Proncheryencryption algorithm from a password in the "pass" and a salt in "salt". 42*e7be843bSPierre Pronchery 43*e7be843bSPierre ProncheryNo assumption is made regarding the given password; it is simply treated as a 44*e7be843bSPierre Proncherybyte sequence. 45*e7be843bSPierre Pronchery 46*e7be843bSPierre ProncheryThe legacy provider needs to be available in order to access this algorithm. 47*e7be843bSPierre Pronchery 48*e7be843bSPierre Pronchery=head1 SEE ALSO 49*e7be843bSPierre Pronchery 50*e7be843bSPierre ProncheryL<EVP_KDF(3)>, 51*e7be843bSPierre ProncheryL<EVP_KDF_CTX_new(3)>, 52*e7be843bSPierre ProncheryL<EVP_KDF_CTX_free(3)>, 53*e7be843bSPierre ProncheryL<EVP_KDF_CTX_set_params(3)>, 54*e7be843bSPierre ProncheryL<EVP_KDF_derive(3)>, 55*e7be843bSPierre ProncheryL<EVP_KDF(3)/PARAMETERS>, 56*e7be843bSPierre ProncheryL<OSSL_PROVIDER-legacy(7)> 57*e7be843bSPierre Pronchery 58*e7be843bSPierre Pronchery=head1 HISTORY 59*e7be843bSPierre Pronchery 60*e7be843bSPierre ProncheryThis functionality was added in OpenSSL 3.2. 61*e7be843bSPierre Pronchery 62*e7be843bSPierre Pronchery=head1 COPYRIGHT 63*e7be843bSPierre Pronchery 64*e7be843bSPierre ProncheryCopyright 2021 The OpenSSL Project Authors. All Rights Reserved. 65*e7be843bSPierre Pronchery 66*e7be843bSPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 67*e7be843bSPierre Proncherythis file except in compliance with the License. You can obtain a copy 68*e7be843bSPierre Proncheryin the file LICENSE in the source distribution or at 69*e7be843bSPierre ProncheryL<https://www.openssl.org/source/license.html>. 70*e7be843bSPierre Pronchery 71*e7be843bSPierre Pronchery=cut 72