From: Richard Levitte Date: Mon, 3 May 2021 06:48:17 +0000 (+0200) Subject: APPS: Add passphrase handling in the "rsa" and "dsa" commands X-Git-Tag: openssl-3.0.0-alpha16~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5432d827ec2cffa2e75bf8dd0bc570288cba19f6;p=thirdparty%2Fopenssl.git APPS: Add passphrase handling in the "rsa" and "dsa" commands They completely ignored any passphrase related setting. Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/15119) --- diff --git a/apps/dsa.c b/apps/dsa.c index 9ea10985145..9a7bf04adb9 100644 --- a/apps/dsa.c +++ b/apps/dsa.c @@ -267,6 +267,20 @@ int dsa_main(int argc, char **argv) goto end; } + /* Passphrase setup */ + if (enc != NULL) + OSSL_ENCODER_CTX_set_cipher(ectx, EVP_CIPHER_name(enc), NULL); + + /* Default passphrase prompter */ + if (enc != NULL || outformat == FORMAT_PVK) { + OSSL_ENCODER_CTX_set_passphrase_ui(ectx, get_ui_method(), NULL); + if (passout != NULL) + /* When passout given, override the passphrase prompter */ + OSSL_ENCODER_CTX_set_passphrase(ectx, + (const unsigned char *)passout, + strlen(passout)); + } + /* PVK requires a bit more */ if (outformat == FORMAT_PVK) { OSSL_PARAM params[2] = { OSSL_PARAM_END, OSSL_PARAM_END }; diff --git a/apps/rsa.c b/apps/rsa.c index fc1db506d74..47316757d56 100644 --- a/apps/rsa.c +++ b/apps/rsa.c @@ -335,6 +335,20 @@ int rsa_main(int argc, char **argv) goto end; } + /* Passphrase setup */ + if (enc != NULL) + OSSL_ENCODER_CTX_set_cipher(ectx, EVP_CIPHER_name(enc), NULL); + + /* Default passphrase prompter */ + if (enc != NULL || outformat == FORMAT_PVK) { + OSSL_ENCODER_CTX_set_passphrase_ui(ectx, get_ui_method(), NULL); + if (passout != NULL) + /* When passout given, override the passphrase prompter */ + OSSL_ENCODER_CTX_set_passphrase(ectx, + (const unsigned char *)passout, + strlen(passout)); + } + /* PVK is a bit special... */ if (outformat == FORMAT_PVK) { OSSL_PARAM params[2] = { OSSL_PARAM_END, OSSL_PARAM_END };