[#EVP_PBE_scrypt_ex] = EVP_PBE_scrypt_ex :mrdocs: Derive a key from a password using scrypt with an explicit library context. == Synopsis Declared in `<openssl/evp.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int EVP_PBE_scrypt_ex( char const* pass, size_t passlen, unsigned char const* salt, size_t saltlen, uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, unsigned char* key, size_t keylen, xref:OSSL_LIB_CTX.adoc[OSSL_LIB_CTX]* ctx, char const* propq); ---- == Return Value 1 on success, or 0 on failure. == Parameters [cols="1,4"] |=== | Name| Description | *pass* | Password bytes, or NULL. | *passlen* | Length of `pass` in bytes. | *salt* | Salt bytes, or NULL when `saltlen` is 0. | *saltlen* | Length of `salt` in bytes. | *N* | CPU/memory cost parameter (must be a power of two greater than 1). | *r* | Block size parameter. | *p* | Parallelization parameter. | *maxmem* | Maximum memory in bytes the derivation may use, or 0 for the default limit. | *key* | Buffer that receives the derived key. | *keylen* | Desired derived key length in bytes. | *ctx* | Library context for provider selection, or NULL for the default. | *propq* | Property query string, or NULL. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#