DSA_SIG_new
,
DSA_SIG_free
, DSA_SIG_get0
,
DSA_SIG_set0
— manipulate
DSA signature objects
#include
<openssl/dsa.h>
DSA_SIG *
DSA_SIG_new
(void);
void
DSA_SIG_free
(DSA_SIG *sig);
void
DSA_SIG_get0
(const DSA_SIG *sig,
const BIGNUM **r, const BIGNUM
**s);
int
DSA_SIG_set0
(DSA_SIG *sig,
BIGNUM *r, BIGNUM *s);
DSA_SIG_new
()
allocates an empty DSA_SIG structure.
DSA_SIG_free
()
frees the DSA_SIG structure and its components. The
values are erased before the memory is returned to the system. If
sig is a NULL
pointer, no
action occurs.
DSA_SIG_get0
()
retrieves internal pointers to the r and
s values contained in sig.
The r and
s values can be set by calling
DSA_SIG_set0
().
Calling this function transfers the memory management of the values to
sig, and therefore they should not be freed by the
caller.
If the allocation fails, DSA_SIG_new
()
returns NULL
and sets an error code that can be
obtained by
ERR_get_error(3).
Otherwise it returns a pointer to the newly allocated structure.
DSA_SIG_set0
() returns 1 on success or 0
on failure.
DSA_SIG_new
() and
DSA_SIG_free
() first appeared in OpenSSL 0.9.3 and
have been available since OpenBSD 2.6.
DSA_SIG_get0
() and
DSA_SIG_set0
() first appeared in OpenSSL 1.1.0 and
have been available since OpenBSD 6.3.