=pod
=head1 NAME
RSA_generate_key_ex, RSA_generate_key - generate RSA key pair
=head1 SYNOPSIS
#include
int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
Deprecated:
#if OPENSSL_API_COMPAT < 0x00908000L
RSA *RSA_generate_key(int num, unsigned long e,
void (*callback)(int, int, void *), void *cb_arg);
#endif
=head1 DESCRIPTION
RSA_generate_key_ex() generates a key pair and stores it in the B
structure provided in B. The pseudo-random number generator must
be seeded prior to calling RSA_generate_key_ex().
The modulus size will be of length B, and the public exponent will be
B. Key sizes with B E 1024 should be considered insecure.
The exponent is an odd number, typically 3, 17 or 65537.
A callback function may be used to provide feedback about the
progress of the key generation. If B is not B, it
will be called as follows using the BN_GENCB_call() function
described on the L page.
=over 4
=item *
While a random prime number is generated, it is called as
described in L.
=item *
When the n-th randomly generated prime is rejected as not
suitable for the key, B is called.
=item *
When a random p has been found with p-1 relatively prime to B,
it is called as B.
=back
The process is then repeated for prime q with B.
RSA_generate_key is deprecated (new applications should use
RSA_generate_key_ex instead). RSA_generate_key works in the same way as
RSA_generate_key_ex except it uses "old style" call backs. See
L for further details.
=head1 RETURN VALUE
If key generation fails, RSA_generate_key() returns B.
The error codes can be obtained by L.
=head1 BUGS
B is used with two different meanings.
RSA_generate_key() goes into an infinite loop for illegal input values.
=head1 SEE ALSO
L, L,
L, L
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
in the file LICENSE in the source distribution or at
L.
=cut