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 8e4b6f6..14ffb40 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 <vitus@cryptocom.ru>]
diff --git a/apps/openssl.c b/apps/openssl.c
index 5d61d17..c9d9fe9 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -392,6 +392,21 @@
{ 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);