about summary refs log tree commit homepage
path: root/lib/PublicInbox/SHA.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-03-07 08:47:15 +0000
committerEric Wong <e@80x24.org>2023-03-07 19:12:35 +0000
commit010b3a1482c1c1c24c447e9ea4b6b24ddd4577bb (patch)
tree058628b484c43b21c34a7927d7aa51c3ac68f0be /lib/PublicInbox/SHA.pm
parent8eca0987cfbcea8b1276d9852fb26d0ddb11ed3b (diff)
downloadpublic-inbox-010b3a1482c1c1c24c447e9ea4b6b24ddd4577bb.tar.gz
In older OpenSSL, EVP_get_digestbyname() didn't work properly
without calling OpenSSL_add_all_digests(), first.  However,
OpenSSL_add_all_digests() is deprecated by OpenSSL 1.1.0 in
favor of OPENSSL_init_crypto().  Of course, OpenSSL_init_crypto()
isn't available in OpenSSL 1.0.1k nor Net::SSLeay as of 1.93_02
(2023-02-22).

Thus, instead of relying on string lookups and conditional
subroutine calls, just call EVP_sha1() and EVP_sha256() which
work on both old and new systems.

Tested with Net::SSLeay 1.55 and OpenSSL 1.0.1k on on CentOS 7.x
Diffstat (limited to 'lib/PublicInbox/SHA.pm')
-rw-r--r--lib/PublicInbox/SHA.pm4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/PublicInbox/SHA.pm b/lib/PublicInbox/SHA.pm
index da70beef..81f62618 100644
--- a/lib/PublicInbox/SHA.pm
+++ b/lib/PublicInbox/SHA.pm
@@ -20,8 +20,8 @@ BEGIN {
         unless (eval(<<'EOM')) {
 use Net::SSLeay 1.43;
 my %SHA = (
-        1 => Net::SSLeay::EVP_get_digestbyname('sha1'),
-        256 => Net::SSLeay::EVP_get_digestbyname('sha256'),
+        1 => Net::SSLeay::EVP_sha1(),
+        256 => Net::SSLeay::EVP_sha256(),
 );
 
 sub new {