xref: /freebsd/crypto/openssl/doc/man7/EVP_KDF-PVKKDF.pod (revision e7be843b4a162e68651d3911f0357ed464915629)
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