From aaf35f11d760ca64981d6633c4816193d1ea6145 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 30 Mar 2009 11:31:50 +0000 Subject: [PATCH] Allow use of algorithm and cipher names for dgsts and enc utilities instead of having to manually include each one. --- CHANGES | 16 +++++++++++++++- apps/openssl.c | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 8e4b6f6ddf..14ffb4083e 100644 --- a/CHANGES +++ b/CHANGES @@ -2,7 +2,21 @@ OpenSSL CHANGES _______________ - Changes between 0.9.8k and 0.9.9 [xx XXX xxxx] + Changes between 0.9.8k and 1.0 [xx XXX xxxx] + + *) Support use of registered digest and cipher names for dgst and cipher + commands instead of having to add each one as a special case. So now + you can do: + + openssl sha256 foo + + as well as: + + openssl dgst -sha256 foo + + and this works for ENGINE based algorithms too. + + [Steve Henson] *) Update Gost ENGINE to support parameter files. [Victor B. Wagner ] diff --git a/apps/openssl.c b/apps/openssl.c index 5d61d171ca..c9d9fe9288 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -392,6 +392,21 @@ static int do_cmd(LHASH_OF(FUNCTION) *prog, int argc, char *argv[]) { ret=0; goto end; } f.name=argv[0]; fp=lh_FUNCTION_retrieve(prog,&f); + if (fp == NULL) + { + if (EVP_get_digestbyname(argv[0])) + { + f.type = FUNC_TYPE_MD; + f.func = dgst_main; + fp = &f; + } + else if (EVP_get_cipherbyname(argv[0])) + { + f.type = FUNC_TYPE_CIPHER; + f.func = enc_main; + fp = &f; + } + } if (fp != NULL) { ret=fp->func(argc,argv); -- GitLab