FreeBSD 包 repo - 如何进行手动签名验证?

Sau*_*ode 11 freebsd security package-management openssl checksum

我正在尝试在FreeBSD 软件包网站上验证软件包的签名

wget http://pkg.freebsd.org/FreeBSD:11:amd64/latest/digests.txz
tar xf digests.txz
Run Code Online (Sandbox Code Playgroud)

这给出了三个文件:digestsdigests.pub digests.sig
我认为它digests.sig是文件的签名digestsdigests.pub作为公钥。但我试图确认:

openssl dgst -verify digests.pub -signature digests.sig digests

并收到消息

Verification Failure

我想我有什么问题 - 谁能告诉我我错过了什么?

编辑:基于对源代码的搜索,我认为重要的函数是在这里找到,从 openssl 库调用rsa_verify_cert_cbwhich 调用RSA_verify。但我还没有弄清楚它被输入了什么,或者是否可以使用openssl命令行工具调用该函数。

小智 0

该消息表明公钥与您下载的文件不匹配。根据 dgst -verify filename 的手册页,使用“filename”中的公钥验证签名。 输出是“验证正常”或“验证失败”最可能的原因是文件在下载过程中损坏。我会尝试再次下载它,如果它仍然无法通过检查,那么这就是下载链接受损的迹象(但由于它来自 freebsd 网站,我怀疑这只是一个下载错误。即便如此,我也会验证新的为了安全起见,请下载)。如果您的互联网连接速度慢/不可靠,可能需要尝试几次才能正确下载。如果您需要检查有关命令的信息,那么检查联机帮助页总是一个好主意 (man )