default is 2. It isn't permitted to specify a larger number of primes than
10. Additionally, the number of primes is limited by the length of the key
being generated so the maximum number could be less.
+Some providers may only support a value of 2.
=back
unsigned int bits = 4096;
OSSL_PARAM params[3];
EVP_PKEY *pkey = NULL;
- EVP_PKEY_CTX *pctx =
- EVP_PKEY_CTX_new_from_name(NULL, "RSA", NULL);
+ EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_from_name(NULL, "RSA", NULL);
- params[0] = OSSL_PARAM_construct_uint("bits", bits);
- params[1] = OSSL_PARAM_construct_uint("primes", primes);
- params[2] = OSSL_PARAM_END;
EVP_PKEY_keygen_init(pctx);
+
+ params[0] = OSSL_PARAM_construct_uint("bits", &bits);
+ params[1] = OSSL_PARAM_construct_uint("primes", &primes);
+ params[2] = OSSL_PARAM_construct_end();
EVP_PKEY_CTX_set_params(pctx, params);
+
EVP_PKEY_gen(pctx, &pkey);
+ EVP_PKEY_print_private(bio_out, pkey, 0, NULL);
EVP_PKEY_CTX_free(pctx);
=head1 SEE ALSO