1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
.Dd $Mdocdate: February 23 2015 $
.Dt BN_NEW 3
.Os
.Sh NAME
.Nm BN_new ,
.Nm BN_init ,
.Nm BN_clear ,
.Nm BN_free ,
.Nm BN_clear_free
.Nd allocate and free BIGNUMs
.Sh SYNOPSIS
.In openssl/bn.h
.Ft BIGNUM *
.Fo BN_new
.Fa void
.Fc
.Ft void
.Fo BN_init
.Fa "BIGNUM *"
.Fc
.Ft void
.Fo BN_clear
.Fa "BIGNUM *a"
.Fc
.Ft void
.Fo BN_free
.Fa "BIGNUM *a"
.Fc
.Ft void
.Fo BN_clear_free
.Fa "BIGNUM *a"
.Fc
.Sh DESCRIPTION
.Fn BN_new
allocates and initializes a
.Vt BIGNUM
structure.
.Fn BN_init
initializes an existing uninitialized
.Vt BIGNUM .
.Pp
.Fn BN_clear
is used to destroy sensitive data such as keys when they are no longer
needed.
It erases the memory used by
.Fa a
and sets it to the value 0.
.Pp
.Fn BN_free
frees the components of the
.Vt BIGNUM ,
and if it was created by
.Fn BN_new ,
also the structure itself.
.Fn BN_clear_free
additionally overwrites the data before the memory is returned to the
system.
.Sh RETURN VALUES
.Fn BN_new
returns a pointer to the
.Vt BIGNUM .
If the allocation fails, it returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
.Pp
.Fn BN_init ,
.Fn BN_clear ,
.Fn BN_free ,
and
.Fn BN_clear_free
return no values.
.Sh SEE ALSO
.Xr bn 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_new ,
.Fn BN_clear ,
.Fn BN_free ,
and
.Fn BN_clear_free
are available in all versions on SSLeay and OpenSSL.
.Fn BN_init
was added in SSLeay 0.9.1b.
|