BN_new.pod 1.6 KB
Newer Older
U
Ulf Möller 已提交
1 2 3 4
=pod

=head1 NAME

R
Rich Salz 已提交
5
BN_new, BN_secure_new, BN_clear, BN_free, BN_clear_free - allocate and free BIGNUMs
U
Ulf Möller 已提交
6 7 8 9 10 11 12

=head1 SYNOPSIS

 #include <openssl/bn.h>

 BIGNUM *BN_new(void);

R
Rich Salz 已提交
13 14
 BIGNUM *BN_secure_new(void);

U
Ulf Möller 已提交
15 16 17 18 19 20 21 22
 void BN_clear(BIGNUM *a);

 void BN_free(BIGNUM *a);

 void BN_clear_free(BIGNUM *a);

=head1 DESCRIPTION

23
BN_new() allocates and initializes a B<BIGNUM> structure.
R
Rich Salz 已提交
24 25
BN_secure_new() does the same except that the secure heap
OPENSSL_secure_malloc(3) is used to store the value.
U
Ulf Möller 已提交
26 27 28 29 30 31 32 33

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.

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.
R
Rich Salz 已提交
34
If B<a> is NULL, nothing is done.
U
Ulf Möller 已提交
35 36 37

=head1 RETURN VALUES

R
Rich Salz 已提交
38 39 40
BN_new() and BN_secure_new()
return a pointer to the B<BIGNUM>. If the allocation fails,
they return B<NULL> and set an error code that can be obtained
R
Rich Salz 已提交
41
by L<ERR_get_error(3)>.
U
Ulf Möller 已提交
42

43 44
BN_clear(), BN_free() and BN_clear_free() have no return values.

U
Ulf Möller 已提交
45 46
=head1 SEE ALSO

R
Rich Salz 已提交
47
L<ERR_get_error(3)>
U
Ulf Möller 已提交
48 49 50

=head1 HISTORY

R
Rich Salz 已提交
51
BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead.
U
Ulf Möller 已提交
52

R
Rich Salz 已提交
53 54
=head1 COPYRIGHT

R
Rich Salz 已提交
55
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
R
Rich Salz 已提交
56 57 58 59 60 61 62

Licensed under the OpenSSL license (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