| =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 |