| 
									
										
										
										
											2016-02-19 11:24:27 +08:00
										 |  |  | =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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-06 01:48:50 +08:00
										 |  |  | L<PEM_bytes_read_bio(3)> | 
					
						
							| 
									
										
										
										
											2016-02-19 11:24:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 HISTORY | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-09 08:02:36 +08:00
										 |  |  | The PEM_read_bio_ex() function was added in OpenSSL 1.1.1. | 
					
						
							| 
									
										
										
										
											2016-02-19 11:24:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 21:04:44 +08:00
										 |  |  | Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2016-02-19 11:24:27 +08:00
										 |  |  | 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 |