|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | BN_new, BN_secure_new, BN_clear, BN_free, BN_clear_free - allocate and free BIGNUMs | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/bn.h> | 
|  |  | 
|  | BIGNUM *BN_new(void); | 
|  |  | 
|  | BIGNUM *BN_secure_new(void); | 
|  |  | 
|  | void BN_clear(BIGNUM *a); | 
|  |  | 
|  | void BN_free(BIGNUM *a); | 
|  |  | 
|  | void BN_clear_free(BIGNUM *a); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | BN_new() allocates and initializes a B<BIGNUM> structure. | 
|  | BN_secure_new() does the same except that the secure heap | 
|  | L<OPENSSL_secure_malloc(3)> is used to store the value. | 
|  |  | 
|  | BN_clear() is used to destroy sensitive data such as keys when they | 
|  | are no longer needed. It erases the memory used by B<a> and sets it | 
|  | to the value 0. | 
|  | If B<a> is NULL, nothing is done. | 
|  |  | 
|  | BN_free() frees the components of the B<BIGNUM>, and if it was created | 
|  | by BN_new(), also the structure itself. BN_clear_free() additionally | 
|  | overwrites the data before the memory is returned to the system. | 
|  | If B<a> is NULL, nothing is done. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | BN_new() and BN_secure_new() | 
|  | return a pointer to the B<BIGNUM> initialised to the value 0. | 
|  | If the allocation fails, | 
|  | they return B<NULL> and set an error code that can be obtained | 
|  | by L<ERR_get_error(3)>. | 
|  |  | 
|  | BN_clear(), BN_free() and BN_clear_free() have no return values. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<ERR_get_error(3)>, L<OPENSSL_secure_malloc(3)> | 
|  |  | 
|  | =head1 HISTORY | 
|  |  | 
|  | BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead. | 
|  |  | 
|  | =head1 COPYRIGHT | 
|  |  | 
|  | Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. | 
|  |  | 
|  | Licensed under the Apache License 2.0 (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 |