From: Dr. Stephen Henson Date: Mon, 30 Mar 2009 11:31:50 +0000 (+0000) Subject: Allow use of algorithm and cipher names for dgsts and enc utilities instead X-Git-Tag: OpenSSL_1_0_0-beta1~14 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=aaf35f11d760ca64981d6633c4816193d1ea6145 Allow use of algorithm and cipher names for dgsts and enc utilities instead of having to manually include each one. --- 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);