写了个功能性SHELL脚本,发现运行报错,经bash -x排查,发现是调用编译的最新版openssl执行报错:
Error setting context 0070EE71CD7F0000:error:0300009E:digital envelope routines:do_sigver_init:no default digest:crypto/evp/m_sigver.c:284:
所要执行的功能为hmac,使用系统自带版本,和其它编译版本正常,如下:
[root@OpenVPN ~]# openssl version OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022) [root@OpenVPN ~]# echo -en 'PUT\n\ninode/direectory\n' | openssl sha1 -hmac Wlf26gEdwHmwWjn4At0YSd5ZCoHeLN Error setting context 00307409837F0000:error:0300009E:digital envelope routines:do_sigver_init:no default digest:crypto/evp/m_sigver.c:284: [root@OpenVPN ~]# [root@OpenVPN ~]# /usr/bin/openssl version OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021) [root@OpenVPN ~]# echo -en 'PUT\n\ninode/direectory\n' | /usr/bin/openssl sha1 -hmac Wlf26gEdwHmwWjn4At0YSd5ZCoHeLN SHA1(stdin)= c177696ccdb92c0bc9aa885430464a2759138490
同期最新的1.1.1s编译版本也执行正常:
[root@Bind ~]# openssl version OpenSSL 1.1.1s 1 Nov 2022 [root@Bind ~]# echo -en 'PUT\n\ninode/direectory\n' | openssl sha1 -hmac Wlf26gEdwHmwWjn4At0YSd5ZCoHeLN (stdin)= c177696ccdb92c0bc9aa885430464a2759138490
由于编译参数相同,故应与版本有关;经查找,已经有人对此报错信息提出了Bug清单,估计下个更新版本可以修复,目前若要使用hmac功能,可以使用较早的编译版本或系统自带的openssl。