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