]>
Commit | Line | Data |
---|---|---|
dd8dec69 UM |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
91da5e77 | 5 | BN_new, BN_secure_new, BN_clear, BN_free, BN_clear_free - allocate and free BIGNUMs |
dd8dec69 UM |
6 | |
7 | =head1 SYNOPSIS | |
8 | ||
9 | #include <openssl/bn.h> | |
10 | ||
11 | BIGNUM *BN_new(void); | |
12 | ||
91da5e77 RS |
13 | BIGNUM *BN_secure_new(void); |
14 | ||
dd8dec69 UM |
15 | void BN_clear(BIGNUM *a); |
16 | ||
17 | void BN_free(BIGNUM *a); | |
18 | ||
19 | void BN_clear_free(BIGNUM *a); | |
20 | ||
21 | =head1 DESCRIPTION | |
22 | ||
e35af275 | 23 | BN_new() allocates and initializes a B<BIGNUM> structure. |
91da5e77 RS |
24 | BN_secure_new() does the same except that the secure heap |
25 | OPENSSL_secure_malloc(3) is used to store the value. | |
dd8dec69 UM |
26 | |
27 | BN_clear() is used to destroy sensitive data such as keys when they | |
28 | are no longer needed. It erases the memory used by B<a> and sets it | |
29 | to the value 0. | |
138ef774 | 30 | If B<a> is NULL, nothing is done. |
dd8dec69 UM |
31 | |
32 | BN_free() frees the components of the B<BIGNUM>, and if it was created | |
33 | by BN_new(), also the structure itself. BN_clear_free() additionally | |
34 | overwrites the data before the memory is returned to the system. | |
23a1d5e9 | 35 | If B<a> is NULL, nothing is done. |
dd8dec69 UM |
36 | |
37 | =head1 RETURN VALUES | |
38 | ||
91da5e77 | 39 | BN_new() and BN_secure_new() |
681acb31 HK |
40 | return a pointer to the B<BIGNUM> initialised to the value 0. |
41 | If the allocation fails, | |
91da5e77 | 42 | they return B<NULL> and set an error code that can be obtained |
9b86974e | 43 | by L<ERR_get_error(3)>. |
dd8dec69 | 44 | |
e35af275 MC |
45 | BN_clear(), BN_free() and BN_clear_free() have no return values. |
46 | ||
dd8dec69 UM |
47 | =head1 SEE ALSO |
48 | ||
9e183d22 | 49 | L<ERR_get_error(3)> |
dd8dec69 UM |
50 | |
51 | =head1 HISTORY | |
52 | ||
d59c7c81 | 53 | BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead. |
dd8dec69 | 54 | |
e2f92610 RS |
55 | =head1 COPYRIGHT |
56 | ||
9e183d22 | 57 | Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. |
e2f92610 | 58 | |
4746f25a | 59 | Licensed under the Apache License 2.0 (the "License"). You may not use |
e2f92610 RS |
60 | this file except in compliance with the License. You can obtain a copy |
61 | in the file LICENSE in the source distribution or at | |
62 | L<https://www.openssl.org/source/license.html>. | |
63 | ||
64 | =cut |