|
NAMEEVP_KDF-TLS1_PRF - The TLS1 PRF EVP_KDF implementationDESCRIPTIONSupport for computing the TLS1 PRF through the EVP_KDF API.The EVP_KDF-TLS1_PRF algorithm implements the PRF used by TLS versions up to and including TLS 1.2. Identity"TLS1-PRF" is the name for this implementation; it can be used with the EVP_KDF_fetch() function.Supported parametersThe supported parameters are:
NOTESA context for the TLS PRF can be obtained by calling:EVP_KDF *kdf = EVP_KDF_fetch(NULL, "TLS1-PRF", NULL); EVP_KDF_CTX *kctx = EVP_KDF_CTX_new(kdf); The digest, secret value and seed must be set before a key is derived otherwise an error will occur. The output length of the PRF is specified by the keylen parameter to the EVP_KDF_derive() function. EXAMPLESThis example derives 10 bytes using SHA-256 with the secret key "secret" and seed value "seed":EVP_KDF *kdf; EVP_KDF_CTX *kctx; unsigned char out[10]; OSSL_PARAM params[4], *p = params; kdf = EVP_KDF_fetch(NULL, "TLS1-PRF", NULL); kctx = EVP_KDF_CTX_new(kdf); EVP_KDF_free(kdf); *p++ = OSSL_PARAM_construct_utf8_string(OSSL_KDF_PARAM_DIGEST, SN_sha256, strlen(SN_sha256)); *p++ = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_SECRET, "secret", (size_t)6); *p++ = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_SEED, "seed", (size_t)4); *p = OSSL_PARAM_construct_end(); if (EVP_KDF_derive(kctx, out, sizeof(out), params) <= 0) { error("EVP_KDF_derive"); } EVP_KDF_CTX_free(kctx); CONFORMING TORFC 2246, RFC 5246 and NIST SP 800-135 r1SEE ALSOEVP_KDF(3), EVP_KDF_CTX_new(3), EVP_KDF_CTX_free(3), EVP_KDF_CTX_set_params(3), EVP_KDF_derive(3), "PARAMETERS" in EVP_KDF(3)COPYRIGHTCopyright 2018-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>.
Visit the GSP FreeBSD Man Page Interface. |