12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- =pod
- =head1 NAME
- PEM_read_bio_ex, PEM_FLAG_SECURE, PEM_FLAG_EAY_COMPATIBLE,
- PEM_FLAG_ONLY_B64 - read PEM format files with custom processing
- =head1 SYNOPSIS
- #include <openssl/pem.h>
- #define PEM_FLAG_SECURE 0x1
- #define PEM_FLAG_EAY_COMPATIBLE 0x2
- #define PEM_FLAG_ONLY_B64 0x4
- int PEM_read_bio_ex(BIO *in, char **name, char **header,
- unsigned char **data, long *len, unsigned int flags);
- =head1 DESCRIPTION
- PEM_read_bio_ex() reads in PEM formatted data from an input BIO, outputting
- the name of the type of contained data, the header information regarding
- the possibly encrypted data, and the binary data payload (after base64 decoding).
- It should generally only be used to implement PEM_read_bio_-family functions
- for specific data types or other usage, but is exposed to allow greater flexibility
- over how processing is performed, if needed.
- If PEM_FLAG_SECURE is set, the intermediate buffers used to read in lines of
- input are allocated from the secure heap.
- If PEM_FLAG_EAY_COMPATIBLE is set, a simple algorithm is used to remove whitespace
- and control characters from the end of each line, so as to be compatible with
- the historical behavior of PEM_read_bio().
- If PEM_FLAG_ONLY_B64 is set, all characters are required to be valid base64
- characters (or newlines); non-base64 characters are treated as end of input.
- If neither PEM_FLAG_EAY_COMPATIBLE or PEM_FLAG_ONLY_B64 is set, control characters
- are ignored.
- If both PEM_FLAG_EAY_COMPATIBLE and PEM_FLAG_ONLY_B64 are set, an error is returned;
- these options are not compatible with each other.
- =head1 NOTES
- The caller must release the storage allocated for *name, *header, and *data.
- If PEM_FLAG_SECURE was set, use OPENSSL_secure_free(); otherwise,
- OPENSSL_free() is used.
- =head1 RETURN VALUES
- PEM_read_bio_ex() returns 1 for success or 0 for failure.
- =head1 SEE ALSO
- L<PEM(3)>
- =head1 HISTORY
- PEM_read_bio_ex() was added in OpenSSL 1.1.1.
- =head1 COPYRIGHT
- Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
- Licensed under the OpenSSL license (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
|