| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-26 01:24:11 +08:00
										 |  |  | BUF_MEM_new, BUF_MEM_new_ex, BUF_MEM_free, BUF_MEM_grow, | 
					
						
							| 
									
										
										
										
											2016-06-21 19:03:34 +08:00
										 |  |  | BUF_MEM_grow_clean, BUF_reverse | 
					
						
							|  |  |  | - simple character array structure | 
					
						
							| 
									
										
										
										
											2015-09-17 19:50:34 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | standard C library equivalents | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  #include <openssl/buffer.h> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  BUF_MEM *BUF_MEM_new(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-17 19:50:34 +08:00
										 |  |  |  BUF_MEM *BUF_MEM_new_ex(unsigned long flags); | 
					
						
							| 
									
										
										
										
											2015-04-25 04:39:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-21 19:03:34 +08:00
										 |  |  |  void BUF_MEM_free(BUF_MEM *a); | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-21 19:03:34 +08:00
										 |  |  |  int BUF_MEM_grow(BUF_MEM *str, int len); | 
					
						
							|  |  |  |  size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  void BUF_reverse(unsigned char *out, const unsigned char *in, size_t size); | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-17 19:50:34 +08:00
										 |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The buffer library handles simple character arrays. Buffers are used for | 
					
						
							|  |  |  | various purposes in the library, most notably memory BIOs. | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | BUF_MEM_new() allocates a new buffer of zero size. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-25 04:39:40 +08:00
										 |  |  | BUF_MEM_new_ex() allocates a buffer with the specified flags. | 
					
						
							|  |  |  | The flag B<BUF_MEM_FLAG_SECURE> specifies that the B<data> pointer | 
					
						
							|  |  |  | should be allocated on the secure heap; see L<CRYPTO_secure_malloc(3)>. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | BUF_MEM_free() frees up an already existing buffer. The data is zeroed | 
					
						
							|  |  |  | before freeing up in case the buffer contains sensitive data. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BUF_MEM_grow() changes the size of an already existing buffer to | 
					
						
							|  |  |  | B<len>. Any data already in the buffer is preserved if it increases in | 
					
						
							|  |  |  | size. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-21 19:03:34 +08:00
										 |  |  | BUF_MEM_grow_clean() is similar to BUF_MEM_grow() but it sets any free'd | 
					
						
							|  |  |  | or additionally-allocated memory to zero. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-12 20:35:09 +08:00
										 |  |  | BUF_reverse() reverses B<size> bytes at B<in> into B<out>.  If B<in> | 
					
						
							| 
									
										
										
										
											2016-06-21 19:03:34 +08:00
										 |  |  | is NULL, the array is reversed in-place. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | =head1 RETURN VALUES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BUF_MEM_new() returns the buffer or NULL on error. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BUF_MEM_free() has no return value. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-21 19:03:34 +08:00
										 |  |  | BUF_MEM_grow() and BUF_MEM_grow_clean() return | 
					
						
							|  |  |  | zero on error or the new size (i.e., B<len>). | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-11 16:33:09 +08:00
										 |  |  | L<bio(7)>, | 
					
						
							| 
									
										
										
										
											2015-04-25 04:39:40 +08:00
										 |  |  | L<CRYPTO_secure_malloc(3)>. | 
					
						
							| 
									
										
										
										
											2000-01-31 06:16:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 HISTORY | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-28 01:40:11 +08:00
										 |  |  | BUF_MEM_new_ex() was added in OpenSSL 1.1.0. | 
					
						
							| 
									
										
										
										
											2015-04-25 04:39:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Copyright 2000-2016 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 |