我想验证一个 GPG 签名文件(用 archive.tar.gz.sign 验证 archive.tar.gz)。
ATM 我只是直接调用 gpg 并解析退出代码和输出。虽然这是一个适合我的解决方案,但我认为必须有一个更好的方法来以更糟糕的方式做到这一点。
但作为一个编程新手,我不明白如何使用 GPG CPAN 模块。
任何提示都非常感谢!
CPAN 上的GnuPG 模块在概要中包含以下内容:
use GnuPG qw( :algo );
my $gpg = new GnuPG();
$gpg->verify( signature => "file.txt.asc", file => "file.txt" );
看起来很干净。
Crypt::OpenPGP模块可能会有所帮助。它是 OpenPGP 规范的纯 Perl 实现。
描述
Crypt::OpenPGP 是OpenPGP 标准的纯 Perl 实现。除了对标准本身的支持之外,Crypt::OpenPGP 还声称与许多其他 PGP 实现兼容,包括支持该标准的那些以及它之前的那些。
Crypt::OpenPGP 提供签名/验证、加密/解密、密钥环管理和密钥对生成;简而言之,它应该为您提供启用 PGP 所需的一切。
这是使用它来验证文件的示例:
my $pgp = Crypt::OpenPGP->new;
# Verify the detached signature $signature, which should be of the
# source file $file.
my $is_valid = $pgp->verify(
Signature => $signature,
Files => [ $file ],
);