diff -up openssl-3.0.0-beta2/apps/req.c.req-segfault openssl-3.0.0-beta2/apps/req.c --- openssl-3.0.0-beta2/apps/req.c.req-segfault 2021-08-10 16:24:58.784384336 +0200 +++ openssl-3.0.0-beta2/apps/req.c 2021-08-10 16:26:38.347688172 +0200 @@ -996,8 +996,8 @@ int req_main(int argc, char **argv) if (EVP_PKEY_is_a(tpubkey, "RSA")) { BIGNUM *n = NULL; - /* Every RSA key has an 'n' */ - EVP_PKEY_get_bn_param(pkey, "n", &n); + if (!EVP_PKEY_get_bn_param(tpubkey, "n", &n)) + goto end; BN_print(out, n); BN_free(n); } else { diff -up openssl-3.0.0-beta2/test/recipes/25-test_req.t.req-segfault openssl-3.0.0-beta2/test/recipes/25-test_req.t --- openssl-3.0.0-beta2/test/recipes/25-test_req.t.req-segfault 2021-08-10 16:26:53.305884053 +0200 +++ openssl-3.0.0-beta2/test/recipes/25-test_req.t 2021-08-10 16:28:33.674221058 +0200 @@ -78,7 +78,7 @@ subtest "generating alt certificate requ subtest "generating certificate requests with RSA" => sub { - plan tests => 7; + plan tests => 8; SKIP: { skip "RSA is not supported by this OpenSSL build", 2 @@ -105,6 +105,11 @@ subtest "generating certificate requests ok(run(app(["openssl", "req", "-config", srctop_file("test", "test.cnf"), + "-modulus", "-in", "testreq-rsa.pem", "-noout"])), + "Printing a modulus of the request key"); + + ok(run(app(["openssl", "req", + "-config", srctop_file("test", "test.cnf"), "-new", "-out", "testreq_withattrs_pem.pem", "-utf8", "-key", srctop_file("test", "testrsa_withattrs.pem")])), "Generating request from a key with extra attributes - PEM");