diff options
Diffstat (limited to 'doc/man7/EVP_KDF-X942.pod')
-rw-r--r-- | doc/man7/EVP_KDF-X942.pod | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/doc/man7/EVP_KDF-X942.pod b/doc/man7/EVP_KDF-X942.pod deleted file mode 100644 index 70da41437b..0000000000 --- a/doc/man7/EVP_KDF-X942.pod +++ /dev/null @@ -1,122 +0,0 @@ -=pod - -=head1 NAME - -EVP_KDF-X942 - The X9.42-2001 asn1 EVP_KDF implementation - -=head1 DESCRIPTION - -The EVP_KDF-X942 algorithm implements the key derivation function (X942KDF). -X942KDF is used by Cryptographic Message Syntax (CMS) for DH KeyAgreement, to -derive a key using input such as a shared secret key and other info. The other -info is DER encoded data that contains a 32 bit counter. - -=head2 Identity - -"X942KDF" is the name for this implementation; it -can be used with the EVP_KDF_fetch() function. - -=head2 Supported parameters - -The supported parameters are: - -=over 4 - -=item "properties" (B<OSSL_KDF_PARAM_PROPERTIES>) <UTF8 string> - -=item "digest" (B<OSSL_KDF_PARAM_DIGEST>) <UTF8 string> - -These parameters work as described in L<EVP_KDF(3)/PARAMETERS>. - -=item "key" (B<OSSL_KDF_PARAM_KEY>) <octet string> - -The shared secret used for key derivation. This parameter sets the secret. - -=item "ukm" (B<OSSL_KDF_PARAM_UKM>) <octet string> - -This parameter is an optional random string that is provided -by the sender called "partyAInfo". -In CMS this is the user keying material. - -=item "cekalg" (B<OSSL_KDF_PARAM_CEK_ALG>) <UTF8 string> - -This parameter sets the CEK wrapping algorithm name. - -=back - -=head1 NOTES - -A context for X942KDF can be obtained by calling: - - EVP_KDF *kdf = EVP_KDF_fetch(NULL, "X942KDF", NULL); - EVP_KDF_CTX *kctx = EVP_KDF_CTX_new(kdf); - -The output length of an X942KDF is specified via the I<keylen> -parameter to the L<EVP_KDF_derive(3)> function. - -=head1 EXAMPLES - -This example derives 24 bytes, with the secret key "secret" and a random user -keying material: - - EVP_KDF_CTX *kctx; - EVP_KDF_CTX *kctx; - unsigned char out[192/8]; - unsignred char ukm[64]; - OSSL_PARAM params[5], *p = params; - - if (RAND_bytes(ukm, sizeof(ukm)) <= 0) - error("RAND_bytes"); - - kdf = EVP_KDF_fetch(NULL, "X942KDF", NULL); - if (kctx == NULL) - error("EVP_KDF_fetch"); - kctx = EVP_KDF_CTX_new(kdf); - if (kctx == NULL) - error("EVP_KDF_CTX_new"); - 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_UKM, ukm, sizeof(ukm)); - *p++ = OSSL_PARAM_construct_utf8_string(OSSL_KDF_PARAM_CEK_ALG, - SN_id_smime_alg_CMS3DESwrap, - strlen(SN_id_smime_alg_CMS3DESwrap)); - *p = OSSL_PARAM_construct_end(); - if (EVP_KDF_CTX_set_params(kctx, params) <= 0) - error("EVP_KDF_CTX_set_params"); - if (EVP_KDF_derive(kctx, out, sizeof(out)) <= 0) - error("EVP_KDF_derive"); - - EVP_KDF_CTX_free(kctx); - -=head1 CONFORMING TO - -RFC 2631 - -=head1 SEE ALSO - -L<EVP_KDF(3)>, -L<EVP_KDF_CTX_new(3)>, -L<EVP_KDF_CTX_free(3)>, -L<EVP_KDF_CTX_set_params(3)>, -L<EVP_KDF_CTX_get_kdf_size(3)>, -L<EVP_KDF_derive(3)>, -L<EVP_KDF(3)/PARAMETERS> - -=head1 HISTORY - -This functionality was added to OpenSSL 3.0. - -=head1 COPYRIGHT - -Copyright 2019-2020 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 -L<https://www.openssl.org/source/license.html>. - -=cut |