openssl/doc/man7
wangcheng 4c41aa4b33 Add CTX copy function for EVP_MD to optimize the performance of EVP_MD_CTX_copy_ex.
1. Add OSSL_FUNC_digest_copyctx_fn function for EVP_MD, which is used to copy algctx from the old EVP_MD_CTX to the new one.

2. Add implementation of OSSL_FUNC_digest_copyctx_fn function for default providers.

3. Modify EVP_MD_CTX_copy_ex: When the fetched digest is the same in in and out contexts, use the copy function to copy the members in EVP_MD_CTX if the OSSL_FUNC_digest_copyctx_fn function exists. Otherwise, use the previous method to copy.

4. Add documentation for OSSL_FUNC_digest_copyctx function in doc/man7/provider-digest.pod.

5. Add testcase.

Fixes #25703

Signed-off-by: wangcheng <bangwangnj@163.com>

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25726)
2024-11-20 14:12:53 +01:00
..
img Add EVP_DigestSqueeze() API. 2023-11-10 13:27:00 +01:00
bio.pod Change all references to OpenSSL 3.1 to OpenSSL 3.2 in the master branch 2022-10-07 10:05:50 +02:00
ct.pod Fix function names in ct(7) documentation 2018-12-19 19:00:08 +01:00
des_modes.pod Following the license change, modify the boilerplates in doc/man7/ 2018-12-06 15:36:02 +01:00
EVP_ASYM_CIPHER-RSA.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_ASYM_CIPHER-SM2.pod Document the provider side SM2 Asymmetric Cipher support 2020-09-25 11:13:54 +01:00
EVP_CIPHER-AES.pod AES: Document that the XTS, SIV, WRAP modes do not support streaming 2023-12-22 13:42:28 +01:00
EVP_CIPHER-ARIA.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-BLOWFISH.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-CAMELLIA.pod Add support for camellia cbc cts mode 2021-08-18 08:38:40 +10:00
EVP_CIPHER-CAST.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-CHACHA.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-DES.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_CIPHER-IDEA.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-NULL.pod Add documentation for "NULL" cipher and digest algorithms. 2023-02-28 14:26:33 +11:00
EVP_CIPHER-RC2.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-RC4.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-RC5.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-SEED.pod Add Docs for EVP_CIPHER-* 2021-05-28 14:29:13 +02:00
EVP_CIPHER-SM4.pod SM4: Document that the XTS mode does not support streaming 2023-12-22 13:42:28 +01:00
EVP_KDF-ARGON2.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_KDF-HKDF.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-HMAC-DRBG.pod Copyright year updates 2023-09-07 09:59:15 +01:00
EVP_KDF-KB.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-KRB5KDF.pod Add missing HISTORY sections for OpenSSL 3.0 related documents. 2022-11-21 12:03:10 +01:00
EVP_KDF-PBKDF1.pod Add missing HISTORY sections for OpenSSL 3.0 related documents. 2022-11-21 12:03:10 +01:00
EVP_KDF-PBKDF2.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-PKCS12KDF.pod Copyright year updates 2023-09-28 14:23:29 +01:00
EVP_KDF-PVKKDF.pod Fix version mistake in some HISTORY sections 2022-11-23 08:23:17 +01:00
EVP_KDF-SCRYPT.pod Add missing HISTORY sections for OpenSSL 3.0 related documents. 2022-11-21 12:03:10 +01:00
EVP_KDF-SS.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-SSHKDF.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-TLS1_PRF.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-TLS13_KDF.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-X942-ASN1.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KDF-X942-CONCAT.pod Add missing HISTORY sections for OpenSSL 3.0 related documents. 2022-11-21 12:03:10 +01:00
EVP_KDF-X963.pod doc: EVP_KDF document the semantic meaning of output 2024-10-08 16:05:59 +02:00
EVP_KEM-EC.pod Add HISTORY section to EVP_KEM-EC document. 2022-11-24 06:39:22 +00:00
EVP_KEM-RSA.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_KEM-X25519.pod Fix version mistake in some HISTORY sections 2022-11-23 08:23:17 +01:00
EVP_KEYEXCH-DH.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_KEYEXCH-ECDH.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_KEYEXCH-X25519.pod Add FIPS indicators to X25519 and X448. 2024-08-25 10:50:05 +10:00
EVP_MAC-BLAKE2.pod doc: fix description of mac "block-size" parameter 2023-11-22 10:51:10 +01:00
EVP_MAC-CMAC.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MAC-GMAC.pod Update copyright year 2021-03-11 13:27:36 +00:00
EVP_MAC-HMAC.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MAC-KMAC.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MAC-Poly1305.pod mac: improve MAC documentation (Poly 1305 key reuse, nomenclature) 2021-05-14 22:24:00 +10:00
EVP_MAC-Siphash.pod Update copyright year 2021-03-11 13:27:36 +00:00
EVP_MD-BLAKE2.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MD-common.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MD-KECCAK.pod Add default provider support for Keccak 224, 256, 384 and 512 2021-09-23 12:07:57 +10:00
EVP_MD-MD2.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-MD4.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-MD5-SHA1.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-MD5.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-MDC2.pod Update copyright year 2021-02-18 15:05:17 +00:00
EVP_MD-NULL.pod Add documentation for "NULL" cipher and digest algorithms. 2023-02-28 14:26:33 +11:00
EVP_MD-RIPEMD160.pod ripemd: document as being present in the default provider 2022-10-19 13:21:01 +02:00
EVP_MD-SHA1.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-SHA2.pod Copyright year updates 2023-09-07 09:59:15 +01:00
EVP_MD-SHA3.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-SHAKE.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MD-SM3.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_MD-WHIRLPOOL.pod DOCS: Move implementation specific docs away from provider-digest(7) 2020-03-10 13:32:06 +01:00
EVP_PKEY-DH.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_PKEY-DSA.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_PKEY-EC.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_PKEY-FFC.pod Add documentation for key validation that indicates the difference between the 2022-05-09 10:07:42 +10:00
EVP_PKEY-HMAC.pod Update the EVP_PKEY MAC documentation 2020-09-03 09:40:52 +01:00
EVP_PKEY-RSA.pod Copyright year updates 2024-04-09 13:43:26 +02:00
EVP_PKEY-SM2.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_PKEY-X25519.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_RAND-CRNG-TEST.pod doc: fix typo in CRNG test documentation. 2024-09-30 17:57:18 +10:00
EVP_RAND-CTR-DRBG.pod Fix docs related to EVP_RAND_CTX_new() that were not passing the parent 2022-11-30 07:31:53 +00:00
EVP_RAND-HASH-DRBG.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_RAND-HMAC-DRBG.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_RAND-JITTER.pod doc: add note about fips jitter option 2024-10-09 13:53:10 +11:00
EVP_RAND-SEED-SRC.pod Fix EVP_RAND-SEED-SRC documentation example 2023-11-30 12:33:17 +01:00
EVP_RAND-TEST-RAND.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_RAND.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_SIGNATURE-DSA.pod document the format of DSA signature 2024-09-23 22:37:03 +02:00
EVP_SIGNATURE-ECDSA.pod docs: Document the implemented composite signature+hash algorithms 2024-09-12 15:20:23 +02:00
EVP_SIGNATURE-ED25519.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_SIGNATURE-HMAC.pod Update the EVP_PKEY MAC documentation 2020-09-03 09:40:52 +01:00
EVP_SIGNATURE-RSA.pod docs: Document the implemented composite signature+hash algorithms 2024-09-12 15:20:23 +02:00
evp.pod Copyright year updates 2024-09-05 09:35:49 +02:00
fips_module.pod Improve documentation about duplicate algorithm registrations 2024-10-23 15:10:49 +02:00
life_cycle-cipher.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
life_cycle-digest.pod Add EVP_DigestSqueeze() API. 2023-11-10 13:27:00 +01:00
life_cycle-kdf.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
life_cycle-mac.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
life_cycle-pkey.pod Update copyright year 2022-05-03 13:34:51 +01:00
life_cycle-rand.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
openssl_user_macros.pod.in Update copyright year 2021-07-29 15:41:35 +01:00
openssl-core_dispatch.h.pod Rename <openssl/core_numbers.h> -> <openssl/core_dispatch.h> 2020-06-24 22:01:22 +02:00
openssl-core_names.h.pod DOCS: add openssl-core_names.h(7) 2020-05-29 08:26:10 +02:00
openssl-core.h.pod Move the description of the core types into their own pages 2022-12-08 07:32:34 +01:00
openssl-env.pod updating docs to reflect security risks for SSLKEYLOGFILE 2024-10-21 11:34:35 +01:00
openssl-glossary.pod Update copyright year 2022-05-03 13:34:51 +01:00
openssl-qlog.pod Enable qlog support by default 2024-03-06 20:44:48 +00:00
openssl-quic.pod Change "a SSL" to "an SSL" 2024-11-13 17:24:40 +01:00
openssl-threads.pod doc: add note to indicate that the OBJ_ functions were not thread safe in 3.0 2021-09-25 10:39:20 +10:00
OSSL_PROVIDER-base.pod JITTER: add documentation 2024-07-31 14:44:51 +10:00
OSSL_PROVIDER-default.pod JITTER: add documentation 2024-07-31 14:44:51 +10:00
OSSL_PROVIDER-FIPS.pod doc: document the health test EVP_RAND 2024-09-19 08:44:14 +10:00
OSSL_PROVIDER-legacy.pod Update the provider documentation 2023-11-22 10:43:37 +01:00
OSSL_PROVIDER-null.pod Add missing HISTORY sections for OpenSSL 3.0 related documents. 2022-11-21 12:03:10 +01:00
ossl_store-file.pod POD: stop abusing comment 2019-10-11 15:30:57 +02:00
OSSL_STORE-winstore.pod OSSL_STORE: Add reference docs for the built-in Windows store implementation 2024-04-19 14:20:58 +02:00
ossl_store.pod Copyright year updates 2024-09-05 09:35:49 +02:00
ossl-guide-introduction.pod Copyright year updates 2024-09-05 09:35:49 +02:00
ossl-guide-libcrypto-introduction.pod Copyright year updates 2024-04-09 13:43:26 +02:00
ossl-guide-libraries-introduction.pod Fix new typos found by codespell 2023-09-18 09:04:22 +10:00
ossl-guide-libssl-introduction.pod Incorporate the ssl man page into the OpenSSL guide 2023-08-08 18:42:41 +02:00
ossl-guide-migration.pod Fix migration guide mappings for i2o/o2i_ECPublicKey 2024-04-19 14:16:28 -04:00
ossl-guide-quic-client-block.pod augment quic demos to support ipv4/6 connections 2023-11-21 13:01:54 +01:00
ossl-guide-quic-client-non-block.pod Update the OpenSSL Guide tutorials with changes to the demos 2023-11-02 08:14:46 +00:00
ossl-guide-quic-introduction.pod Update README-QUIC.md 2023-10-30 07:53:40 +00:00
ossl-guide-quic-multi-stream.pod Update the OpenSSL Guide tutorials with changes to the demos 2023-11-02 08:14:46 +00:00
ossl-guide-tls-client-block.pod Copyright year updates 2024-09-05 09:35:49 +02:00
ossl-guide-tls-client-non-block.pod Update the OpenSSL Guide tutorials with changes to the demos 2023-11-02 08:14:46 +00:00
ossl-guide-tls-introduction.pod Copyright year updates 2024-09-05 09:35:49 +02:00
ossl-guide-tls-server-block.pod MVP demo TLS server 2024-06-18 13:49:11 -04:00
passphrase-encoding.pod Update copyright year 2021-09-07 13:35:43 +02:00
property.pod Copyright year updates 2023-09-07 09:59:15 +01:00
provider-asym_cipher.pod Copyright year updates 2024-09-05 09:35:49 +02:00
provider-base.pod Improve documentation about duplicate algorithm registrations 2024-10-23 15:10:49 +02:00
provider-cipher.pod doc: improve documentation of EVP in-place encryption 2023-12-12 10:40:56 +01:00
provider-decoder.pod Copyright year updates 2023-09-07 09:59:15 +01:00
provider-digest.pod Add CTX copy function for EVP_MD to optimize the performance of EVP_MD_CTX_copy_ex. 2024-11-20 14:12:53 +01:00
provider-encoder.pod Replace some boldened types with a corresponding man page link 2022-12-08 07:32:34 +01:00
provider-kdf.pod Replace some boldened types with a corresponding man page link 2022-12-08 07:32:34 +01:00
provider-kem.pod Copyright year updates 2024-09-05 09:35:49 +02:00
provider-keyexch.pod Copyright year updates 2024-09-05 09:35:49 +02:00
provider-keymgmt.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-mac.pod Copyright year updates 2024-09-05 09:35:49 +02:00
provider-object.pod Update copyright year 2022-05-03 13:34:51 +01:00
provider-rand.pod Copyright year updates 2024-09-05 09:35:49 +02:00
provider-signature.pod docs: Correct bad link to provider-keymgmt(7) in provider-signature(7) 2024-09-13 17:08:23 +02:00
provider-storemgmt.pod provider-storemgmt.pod: fix nits (unclosed '<' around name) 2023-12-12 19:52:02 +01:00
provider.pod Improve documentation about duplicate algorithm registrations 2024-10-23 15:10:49 +02:00
proxy-certificates.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
RAND.pod Fix heading in random generator man7 page 2021-10-08 12:09:46 +10:00
RSA-PSS.pod Following the license change, modify the boilerplates in doc/man7/ 2018-12-06 15:36:02 +01:00
x509.pod Update copyright year 2021-04-22 14:38:44 +01:00
X25519.pod Update copyright year 2020-04-23 13:55:52 +01:00