Blame doc/man3/EVP_PKEY_CTX_set_scrypt_N.pod

Packit c4476c
=pod
Packit c4476c
Packit c4476c
=head1 NAME
Packit c4476c
Packit c4476c
EVP_PKEY_CTX_set1_scrypt_salt,
Packit c4476c
EVP_PKEY_CTX_set_scrypt_N,
Packit c4476c
EVP_PKEY_CTX_set_scrypt_r,
Packit c4476c
EVP_PKEY_CTX_set_scrypt_p,
Packit c4476c
EVP_PKEY_CTX_set_scrypt_maxmem_bytes
Packit c4476c
- EVP_PKEY scrypt KDF support functions
Packit c4476c
Packit c4476c
=head1 SYNOPSIS
Packit c4476c
Packit c4476c
 #include <openssl/kdf.h>
Packit c4476c
Packit c4476c
 int EVP_PKEY_CTX_set1_scrypt_salt(EVP_PKEY_CTX *pctx, unsigned char *salt,
Packit c4476c
                                   int saltlen);
Packit c4476c
Packit c4476c
 int EVP_PKEY_CTX_set_scrypt_N(EVP_PKEY_CTX *pctx, uint64_t N);
Packit c4476c
Packit c4476c
 int EVP_PKEY_CTX_set_scrypt_r(EVP_PKEY_CTX *pctx, uint64_t r);
Packit c4476c
Packit c4476c
 int EVP_PKEY_CTX_set_scrypt_p(EVP_PKEY_CTX *pctx, uint64_t p);
Packit c4476c
Packit c4476c
 int EVP_PKEY_CTX_set_scrypt_maxmem_bytes(EVP_PKEY_CTX *pctx,
Packit c4476c
                                          uint64_t maxmem);
Packit c4476c
Packit c4476c
=head1 DESCRIPTION
Packit c4476c
Packit c4476c
These functions are used to set up the necessary data to use the
Packit c4476c
scrypt KDF.
Packit c4476c
For more information on scrypt, see L<scrypt(7)>.
Packit c4476c
Packit c4476c
EVP_PKEY_CTX_set1_scrypt_salt() sets the B<saltlen> bytes long salt
Packit c4476c
value.
Packit c4476c
Packit c4476c
EVP_PKEY_CTX_set_scrypt_N(), EVP_PKEY_CTX_set_scrypt_r() and
Packit c4476c
EVP_PKEY_CTX_set_scrypt_p() configure the work factors N, r and p.
Packit c4476c
Packit c4476c
EVP_PKEY_CTX_set_scrypt_maxmem_bytes() sets how much RAM key
Packit c4476c
derivation may maximally use, given in bytes.
Packit c4476c
If RAM is exceeded because the load factors are chosen too high, the
Packit c4476c
key derivation will fail.
Packit c4476c
Packit c4476c
=head1 STRING CTRLS
Packit c4476c
Packit c4476c
scrypt also supports string based control operations via
Packit c4476c
L<EVP_PKEY_CTX_ctrl_str(3)>.
Packit c4476c
Similarly, the B<salt> can either be specified using the B<type>
Packit c4476c
parameter "salt" or in hex encoding by using the "hexsalt" parameter.
Packit c4476c
The work factors B<N>, B<r> and B

as well as B<maxmem_bytes> can be

Packit c4476c
set by using the parameters "N", "r", "p" and "maxmem_bytes",
Packit c4476c
respectively.
Packit c4476c
Packit c4476c
=head1 NOTES
Packit c4476c
Packit c4476c
The scrypt KDF also uses EVP_PKEY_CTX_set1_pbe_pass() as well as
Packit c4476c
the value from the string controls "pass" and "hexpass".
Packit c4476c
See L<EVP_PKEY_CTX_set1_pbe_pass(3)>.
Packit c4476c
Packit c4476c
All the functions described here are implemented as macros.
Packit c4476c
Packit c4476c
=head1 RETURN VALUES
Packit c4476c
Packit c4476c
All these functions return 1 for success and 0 or a negative value for
Packit c4476c
failure.
Packit c4476c
In particular a return value of -2 indicates the operation is not
Packit c4476c
supported by the public key algorithm.
Packit c4476c
Packit c4476c
=head1 SEE ALSO
Packit c4476c
Packit c4476c
L<scrypt(7)>,
Packit c4476c
L<EVP_PKEY_CTX_new(3)>,
Packit c4476c
L<EVP_PKEY_CTX_ctrl_str(3)>,
Packit c4476c
L<EVP_PKEY_derive(3)>
Packit c4476c
Packit c4476c
=head1 COPYRIGHT
Packit c4476c
Packit c4476c
Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
Packit c4476c
Packit c4476c
Licensed under the OpenSSL license (the "License").  You may not use
Packit c4476c
this file except in compliance with the License.  You can obtain a copy
Packit c4476c
in the file LICENSE in the source distribution or at
Packit c4476c
L<https://www.openssl.org/source/license.html>.
Packit c4476c
Packit c4476c
=cut