]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/BN_new.pod
Implement EVP_MAC_do_all_ex()
[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
RS
24BN_secure_new() does the same except that the secure heap
25OPENSSL_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.
138ef774 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
9e183d22 49L<ERR_get_error(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
9e183d22 57Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
e2f92610 58
4746f25a 59Licensed under the Apache License 2.0 (the "License"). You may not use
e2f92610
RS
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