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
ct.pod
des_modes.pod
EVP_ASYM_CIPHER-RSA.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_ASYM_CIPHER-SM2.pod
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
EVP_CIPHER-BLOWFISH.pod
EVP_CIPHER-CAMELLIA.pod
EVP_CIPHER-CAST.pod
EVP_CIPHER-CHACHA.pod
EVP_CIPHER-DES.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_CIPHER-IDEA.pod
EVP_CIPHER-NULL.pod
EVP_CIPHER-RC2.pod
EVP_CIPHER-RC4.pod
EVP_CIPHER-RC5.pod
EVP_CIPHER-SEED.pod
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
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
EVP_KDF-PBKDF1.pod
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
EVP_KDF-SCRYPT.pod
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
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
EVP_KEM-RSA.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_KEM-X25519.pod
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
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
EVP_MAC-Siphash.pod
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
EVP_MD-MD2.pod
EVP_MD-MD4.pod
EVP_MD-MD5-SHA1.pod
EVP_MD-MD5.pod
EVP_MD-MDC2.pod
EVP_MD-NULL.pod
EVP_MD-RIPEMD160.pod
EVP_MD-SHA1.pod
EVP_MD-SHA2.pod
EVP_MD-SHA3.pod
EVP_MD-SHAKE.pod Copyright year updates 2024-09-05 09:35:49 +02:00
EVP_MD-SM3.pod
EVP_MD-WHIRLPOOL.pod
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
EVP_PKEY-HMAC.pod
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
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
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
life_cycle-digest.pod Add EVP_DigestSqueeze() API. 2023-11-10 13:27:00 +01:00
life_cycle-kdf.pod
life_cycle-mac.pod
life_cycle-pkey.pod
life_cycle-rand.pod
openssl_user_macros.pod.in
openssl-core_dispatch.h.pod
openssl-core_names.h.pod
openssl-core.h.pod
openssl-env.pod updating docs to reflect security risks for SSLKEYLOGFILE 2024-10-21 11:34:35 +01:00
openssl-glossary.pod
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
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
ossl_store-file.pod
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
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
property.pod
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
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
provider-kdf.pod
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
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
RAND.pod
RSA-PSS.pod
x509.pod
X25519.pod