]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/BN_new.pod
Update copyright year
[thirdparty/openssl.git] / doc / man3 / BN_new.pod
CommitLineData
dd8dec69
UM
1=pod
2
3=head1 NAME
4
91da5e77 5BN_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 23BN_new() allocates and initializes a B<BIGNUM> structure.
91da5e77 24BN_secure_new() does the same except that the secure heap
be4660f8 25L<OPENSSL_secure_malloc(3)> is used to store the value.
dd8dec69
UM
26
27BN_clear() is used to destroy sensitive data such as keys when they
28are no longer needed. It erases the memory used by B<a> and sets it
29to the value 0.
20a8bce4 30If B<a> is NULL, nothing is done.
dd8dec69
UM
31
32BN_free() frees the components of the B<BIGNUM>, and if it was created
33by BN_new(), also the structure itself. BN_clear_free() additionally
34overwrites the data before the memory is returned to the system.
23a1d5e9 35If B<a> is NULL, nothing is done.
dd8dec69
UM
36
37=head1 RETURN VALUES
38
91da5e77 39BN_new() and BN_secure_new()
681acb31
HK
40return a pointer to the B<BIGNUM> initialised to the value 0.
41If the allocation fails,
91da5e77 42they return B<NULL> and set an error code that can be obtained
9b86974e 43by L<ERR_get_error(3)>.
dd8dec69 44
e35af275
MC
45BN_clear(), BN_free() and BN_clear_free() have no return values.
46
dd8dec69
UM
47=head1 SEE ALSO
48
be4660f8 49L<ERR_get_error(3)>, L<OPENSSL_secure_malloc(3)>
dd8dec69
UM
50
51=head1 HISTORY
52
d59c7c81 53BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead.
dd8dec69 54
e2f92610
RS
55=head1 COPYRIGHT
56
35fd9953 57Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
e2f92610
RS
58
59Licensed under the OpenSSL license (the "License"). You may not use
60this file except in compliance with the License. You can obtain a copy
61in the file LICENSE in the source distribution or at
62L<https://www.openssl.org/source/license.html>.
63
64=cut