1

我想验证一个 GPG 签名文件(用 archive.tar.gz.sign 验证 archive.tar.gz)。

ATM 我只是直接调用 gpg 并解析退出代码和输出。虽然这是一个适合我的解决方案,但我认为必须有一个更好的方法来以更糟糕的方式做到这一点。

但作为一个编程新手,我不明白如何使用 GPG CPAN 模块。

任何提示都非常感谢!

4

2 回答 2

4

CPAN 上的GnuPG 模块在概要中包含以下内容:

use GnuPG qw( :algo );
my $gpg = new GnuPG();
$gpg->verify( signature => "file.txt.asc", file => "file.txt" );

看起来很干净。

于 2011-03-06T16:17:20.753 回答
0

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 ],
);
于 2017-04-10T15:01:37.943 回答