openssl/doc/man7
Viktor Dukhovni 0cd9dd703e Improve base64 BIO correctness and error reporting
Also improve related documentation.

- The BIO_FLAGS_BASE64_NO_NL flag did not behave as advertised, only
  leading and trailing, but not internal, whitespace was supported:

      $ echo 'AA AA' | openssl base64 -A -d | wc -c
      0

- Switching from ignored leading input to valid base64 input misbehaved
  when the length of the skipped input was one more than the length of
  the second and subsequent valid base64 lines in the internal 1k
  buffer:

    $ printf '#foo\n#bar\nA\nAAA\nAAAA\n' | openssl base64 -d | wc -c
    0

- When the underlying BIO is retriable, and a read returns less than
  1k of data, some of the already buffered input lines that could have
  been decoded and returned were retained internally for a retry by the
  caller.  This is somewhat surprising, and the new code decodes as many
  of the buffered lines as possible.  Issue reported by Michał Trojnara.

- After all valid data has been read, the next BIO_read(3) should
  return 0 when the input was all valid or -1 if an error was detected.
  This now occurs in more consistently, but further tests and code
  refactoring may be needed to ensure this always happens.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25253)
2024-08-30 15:09:10 +02:00
..
img Add EVP_DigestSqueeze() API. 2023-11-10 13:27:00 +01:00
EVP_ASYM_CIPHER-RSA.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10: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 Add FIPS indicator support for Triple-DES encryption. 2024-07-26 14:26:49 +10: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 doc: Document properties param for Argon2 KDF 2024-08-29 19:20:05 +02:00
EVP_KDF-HKDF.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_KDF-HMAC-DRBG.pod Copyright year updates 2023-09-07 09:59:15 +01:00
EVP_KDF-KB.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10: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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10: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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_KDF-SSHKDF.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_KDF-TLS1_PRF.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_KDF-TLS13_KDF.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_KDF-X942-ASN1.pod Add missing HISTORY sections for OpenSSL 3.0 related documents. 2022-11-21 12:03:10 +01: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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10: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 Fix parameter types int -> integer changes 2024-07-16 06:42:05 +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 Document that DH and DHX key types cannot be used together in KEX 2024-07-17 16:39:00 +02:00
EVP_KEYEXCH-ECDH.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10: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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_MAC-GMAC.pod Update copyright year 2021-03-11 13:27:36 +00:00
EVP_MAC-HMAC.pod Add HMAC FIPS keysize check. 2024-08-21 15:34:40 +02:00
EVP_MAC-KMAC.pod Add FIPS KMAC key check 2024-08-21 15:34:58 +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 XOF / EVP_MD_size() changes. 2024-08-29 10:29:53 +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 XOF / EVP_MD_size() changes. 2024-08-29 10:29:53 +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_MD-common.pod XOF / EVP_MD_size() changes. 2024-08-29 10:29:53 +02:00
EVP_PKEY-DH.pod EVP_PKEY-DH.pod: Clarify the manpage in regards to DH and DHX types 2024-07-17 16:39:00 +02:00
EVP_PKEY-DSA.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_PKEY-EC.pod Restrict FIPS EC Keygen to only allow curves with a security strength 2024-08-15 15:21:14 -04: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 Add docs noting requirements for SM2 signing 2024-04-09 20:41:15 +02:00
EVP_PKEY-X25519.pod Add FIPS indicators to X25519 and X448. 2024-08-25 10:50:05 +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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_RAND-HMAC-DRBG.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_RAND-JITTER.pod JITTER: excercise all tests in CI with JITTER seed source under certain build configuration 2024-07-31 14:44:51 +10: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 Document the fips-indicator param for the test RNG 2024-07-17 10:43:21 +10:00
EVP_RAND.pod github: fix quoting in github workflow for jitter tests 2024-08-05 12:54:21 -04:00
EVP_SIGNATURE-DSA.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
EVP_SIGNATURE-ECDSA.pod doc: document the OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE parameter 2024-08-23 07:17:02 +10:00
EVP_SIGNATURE-ED25519.pod Refactor OpenSSL 'EdDSA' EVP_SIGNATURE to allow use with EVP_PKEY functions 2024-08-29 19:13:06 +02:00
EVP_SIGNATURE-HMAC.pod Update the EVP_PKEY MAC documentation 2020-09-03 09:40:52 +01:00
EVP_SIGNATURE-RSA.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
OSSL_PROVIDER-FIPS.pod Replace PKCS#1 v1.5 padding in RSA PCT 2024-08-22 07:24:29 +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-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-winstore.pod OSSL_STORE: Add reference docs for the built-in Windows store implementation 2024-04-19 14:20:58 +02: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
X25519.pod Update copyright year 2020-04-23 13:55:52 +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.pod Improve base64 BIO correctness and error reporting 2024-08-30 15:09:10 +02:00
fips_module.pod Add FIPS indicator documentation 2024-08-26 08:28:44 +10: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-core.h.pod Move the description of the core types into their own pages 2022-12-08 07:32:34 +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-env.pod Add OPENSSL_riscvcap man page 2024-05-09 10:50:42 +02: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 Copyright year updates 2023-09-07 09:59:15 +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
openssl_user_macros.pod.in Update copyright year 2021-07-29 15:41:35 +01:00
ossl-guide-introduction.pod MVP demo TLS server 2024-06-18 13:49:11 -04: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 MVP demo TLS server 2024-06-18 13:49:11 -04: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 MVP demo TLS server 2024-06-18 13:49:11 -04:00
ossl-guide-tls-server-block.pod MVP demo TLS server 2024-06-18 13:49:11 -04:00
ossl_store-file.pod POD: stop abusing comment 2019-10-11 15:30:57 +02:00
ossl_store.pod ossl_store.pod: Correct the example of OSSL_STORE API usage 2024-06-19 18:56:11 +02: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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-base.pod rand: add callbacks to cleanup the user entropy resp. nonce 2023-10-20 09:48:34 +01: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 EVP_DigestSqueeze() API. 2023-11-10 13:27:00 +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 Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-keyexch.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-keymgmt.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-mac.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-object.pod Update copyright year 2022-05-03 13:34:51 +01:00
provider-rand.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-signature.pod Cleanups for FIPS indicator documentation 2024-08-26 08:28:44 +10:00
provider-storemgmt.pod provider-storemgmt.pod: fix nits (unclosed '<' around name) 2023-12-12 19:52:02 +01:00
provider.pod Replace some boldened types with a corresponding man page link 2022-12-08 07:32:34 +01:00
proxy-certificates.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
x509.pod Update copyright year 2021-04-22 14:38:44 +01:00