]>
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. | |
30 | ||
31 | BN_free() frees the components of the B<BIGNUM>, and if it was created | |
32 | by BN_new(), also the structure itself. BN_clear_free() additionally | |
33 | overwrites the data before the memory is returned to the system. | |
23a1d5e9 | 34 | If B<a> is NULL, nothing is done. |
dd8dec69 UM |
35 | |
36 | =head1 RETURN VALUES | |
37 | ||
91da5e77 RS |
38 | BN_new() and BN_secure_new() |
39 | return a pointer to the B<BIGNUM>. If the allocation fails, | |
40 | they return B<NULL> and set an error code that can be obtained | |
9b86974e | 41 | by L<ERR_get_error(3)>. |
dd8dec69 | 42 | |
e35af275 MC |
43 | BN_clear(), BN_free() and BN_clear_free() have no return values. |
44 | ||
dd8dec69 UM |
45 | =head1 SEE ALSO |
46 | ||
b97fdb57 | 47 | L<bn(7)>, L<ERR_get_error(3)> |
dd8dec69 UM |
48 | |
49 | =head1 HISTORY | |
50 | ||
d59c7c81 | 51 | BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead. |
dd8dec69 | 52 | |
e2f92610 RS |
53 | =head1 COPYRIGHT |
54 | ||
55 | Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. | |
56 | ||
57 | Licensed under the OpenSSL license (the "License"). You may not use | |
58 | this file except in compliance with the License. You can obtain a copy | |
59 | in the file LICENSE in the source distribution or at | |
60 | L<https://www.openssl.org/source/license.html>. | |
61 | ||
62 | =cut |