BUF_MEM_new.pod 2.0 KB
Newer Older
1 2 3 4
=pod

=head1 NAME

K
Kurt Roeckx 已提交
5
BUF_MEM_new, BUF_MEM_new_ex, BUF_MEM_free, BUF_MEM_grow,
R
Rich Salz 已提交
6 7
BUF_MEM_grow_clean, BUF_reverse
- simple character array structure
8

9 10 11 12 13 14
=head1 SYNOPSIS

 #include <openssl/buffer.h>

 BUF_MEM *BUF_MEM_new(void);

15
 BUF_MEM *BUF_MEM_new_ex(unsigned long flags);
R
Rich Salz 已提交
16

R
Rich Salz 已提交
17
 void BUF_MEM_free(BUF_MEM *a);
18

R
Rich Salz 已提交
19 20 21 22
 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);
23

24 25 26 27
=head1 DESCRIPTION

The buffer library handles simple character arrays. Buffers are used for
various purposes in the library, most notably memory BIOs.
28 29 30

BUF_MEM_new() allocates a new buffer of zero size.

R
Rich Salz 已提交
31 32 33 34
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)>.

35 36 37 38 39 40 41
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.

R
Rich Salz 已提交
42 43 44
BUF_MEM_grow_clean() is similar to BUF_MEM_grow() but it sets any free'd
or additionally-allocated memory to zero.

D
Dmitry Belyavskiy 已提交
45
BUF_reverse() reverses B<size> bytes at B<in> into B<out>.  If B<in>
R
Rich Salz 已提交
46 47
is NULL, the array is reversed in-place.

48 49 50 51 52 53
=head1 RETURN VALUES

BUF_MEM_new() returns the buffer or NULL on error.

BUF_MEM_free() has no return value.

R
Rich Salz 已提交
54 55
BUF_MEM_grow() and BUF_MEM_grow_clean() return
zero on error or the new size (i.e., B<len>).
56 57 58

=head1 SEE ALSO

59
L<bio(7)>,
R
Rich Salz 已提交
60
L<CRYPTO_secure_malloc(3)>.
61 62 63

=head1 HISTORY

R
Rich Salz 已提交
64
BUF_MEM_new_ex() was added in OpenSSL 1.1.0.
R
Rich Salz 已提交
65

R
Rich Salz 已提交
66 67 68 69 70 71 72 73 74 75
=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