2
0
mirror of https://github.com/openssl/openssl.git synced 2025-03-01 14:46:32 +08:00
openssl/doc
Fraser Tweedale 0edcbacca9 Fix documentation of BIO_FLAGS_BASE64_NO_NL
Commit 8bfb7506d2 updated
`BIO_f_base64(3)` to improve the documentation of the
`BIO_FLAGS_BASE64_NO_NL` flag.  In particular, the updated text
states that when this flag is used, all newlines in the input are
ignored.  This is incorrect, as the following program proves:

```c

unsigned char *in_buf =
    "IlRoZSBxdWljayBicm93biBmb3gganVt\ncHMgb3ZlciBhIGxhenkgZG9nLiI=\n";

int main(int argc, char **argv) {
    BIO *b64 = BIO_new(BIO_f_base64());
    if (b64 == NULL) return 1;
    BIO_set_flags(b64, BIO_get_flags(b64) | BIO_FLAGS_BASE64_NO_NL);
    int in_len = strlen(in_buf);
    BIO *in = BIO_new_mem_buf(in_buf, in_len);
    if (in == NULL) return 2;
    in = BIO_push(b64, in);
    unsigned char *out_buf = calloc(in_len, sizeof(unsigned char));
    if (out_buf == NULL) return 3;
    size_t out_len;
    int r = BIO_read_ex(in, out_buf, in_len, &out_len);
    printf("rv = %d\n", r);
    printf("decoded = %s\n", out_buf);
    return 0;
}
```

Update the text of `BIO_f_base64(3)` to clarify that when the flag
is set, the data must be all on one line (with or without a trailing
newline character).

Signed-off-by: Fraser Tweedale <ftweedal@redhat.com>

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18568)
2022-06-16 16:07:58 +02:00
..
designs/quic-design High level overview of QUIC Implementation 2022-06-08 11:22:40 +02:00
HOWTO
images
internal Drop ossl_namemap_add_name_n() and simplify ossl_namemap_add_names() 2022-05-21 21:49:54 +02:00
life-cycles
man1 http_client.c: Dump response on error when tracing is enabled 2022-05-30 22:43:44 +02:00
man3 Fix documentation of BIO_FLAGS_BASE64_NO_NL 2022-06-16 16:07:58 +02:00
man5
man7 Fix for OSSL_PARAM sample code referencing OSSL_PARAM_UTF8_PTR 2022-06-16 15:36:23 +02:00
build.info Add OSSL_QUIC methods to headers and manual pages 2022-06-03 12:07:17 +10:00
build.info.in
dir-locals.example.el
fingerprints.txt
openssl-c-indent.el
perlvars.pm
README.md

OpenSSL Documentation

README.md This file

fingerprints.txt PGP fingerprints of authorised release signers

standards.txt standards.txt Moved to the web, https://www.openssl.org/docs/standards.html

HOWTO/ A few how-to documents; not necessarily up-to-date

man1/ The openssl command-line tools; start with openssl.pod

man3/ The SSL library and the crypto library

man5/ File formats

man7/ Overviews; start with crypto.pod and ssl.pod, for example Algorithm specific EVP_PKEY documentation.

Formatted versions of the manpages (apps,ssl,crypto) can be found at https://www.openssl.org/docs/manpages.html