blob: 1a773148548ec941afe1b85ac53de574215c181c (
plain)
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
85
86
87
88
89
90
91
|
.Dd $Mdocdate: February 23 2015 $
.Dt BN_CTX_NEW 3
.Os
.Sh NAME
.Nm BN_CTX_new ,
.Nm BN_CTX_init ,
.Nm BN_CTX_free
.Nd allocate and free BN_CTX structures
.Sh SYNOPSIS
.In openssl/bn.h
.Ft BN_CTX *
.Fo BN_CTX_new
.Fa void
.Fc
.Ft void
.Fo BN_CTX_free
.Fa "BN_CTX *c"
.Fc
.Pp
Deprecated:
.Pp
.Ft void
.Fo BN_CTX_init
.Fa "BN_CTX *c"
.Fc
.Sh DESCRIPTION
A
.Vt BN_CTX
is a structure that holds
.Vt BIGNUM
temporary variables used by library functions.
Since dynamic memory allocation to create
.Vt BIGNUM Ns s
is rather expensive when used in conjunction with repeated subroutine
calls, the
.Vt BN_CTX
structure is used.
.Pp
.Fn BN_CTX_new
allocates and initializes a
.Vt BN_CTX
structure.
.Pp
.Fn BN_CTX_free
frees the components of the
.Vt BN_CTX ,
and if it was created by
.Fn BN_CTX_new ,
also the structure itself.
If
.Xr BN_CTX_start 3
has been used on the
.Vt BN_CTX ,
.Xr BN_CTX_end 3
must be called before the
.Vt BN_CTX
may be freed by
.Fn BN_CTX_free .
.Pp
.Fn BN_CTX_init
(deprecated) initializes an existing uninitialized
.Vt BN_CTX .
This should not be used for new programs.
Use
.Fn BN_CTX_new
instead.
.Sh RETURN VALUES
.Fn BN_CTX_new
returns a pointer to the
.Vt BN_CTX .
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_CTX_init
and
.Fn BN_CTX_free
return no value.
.Sh SEE ALSO
.Xr bn 3 ,
.Xr BN_add 3 ,
.Xr BN_CTX_start 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_CTX_new
and
.Fn BN_CTX_free
are available in all versions on SSLeay and OpenSSL.
.Fn BN_CTX_init
was added in SSLeay 0.9.1b.
|