=pod

=head1 NAME

DSA_SIG_new, DSA_SIG_free - allocate and free DSA signature objects

=head1 SYNOPSIS

 #include <openssl/dsa.h>

 DSA_SIG *DSA_SIG_new(void);

 void	DSA_SIG_free(DSA_SIG *a);

=head1 DESCRIPTION

DSA_SIG_new() allocates and initializes a B<DSA_SIG> structure.

DSA_SIG_free() frees the B<DSA_SIG> structure and its components. The
values are erased before the memory is returned to the system.

=head1 RETURN VALUES

If the allocation fails, DSA_SIG_new() returns B<NULL> and sets an
error code that can be obtained by
L<ERR_get_error(3)>. Otherwise it returns a pointer
to the newly allocated structure.

DSA_SIG_free() returns no value.

=head1 SEE ALSO

L<dsa(3)>, L<ERR_get_error(3)>,
L<DSA_do_sign(3)>

=cut
