=pod

=head1 NAME

RSA_new, RSA_free - allocate and free RSA objects

=head1 SYNOPSIS

 #include <openssl/rsa.h>

 RSA * RSA_new(void);

 void RSA_free(RSA *rsa);

=head1 DESCRIPTION

RSA_new() allocates and initializes an B<RSA> structure.

RSA_free() frees the B<RSA> structure and its components. The key is
erased before the memory is returned to the system.

=head1 RETURN VALUES

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

RSA_free() returns no value.

=head1 SEE ALSO

L<err(3)|err(3)>, L<rsa(3)|rsa(3)>, L<RSA_generate_key(3)|RSA_generate_key(3)>

=head1 HISTORY

RSA_new() and RSA_free() are available in all versions of SSLeay and OpenSSL.

=cut
