Проверьте подпись файла GPG с помощью Perl

Я хочу проверить подписанный файл GPG (Проверьте файл archive.tar.gz с помощью archive.tar.gz.sign).

Банкомат я просто вызываю gpg напрямую и разбираю код выхода и вывод. Хотя это решение работает для меня, я считаю, что должен быть более хороший способ сделать это более изощренным способом.

Но, как начинающий программист, я не понимаю, как я могу использовать модули GPG CPAN.

Любые намеки очень ценятся!

2 ответа

Модуль GnuPG на CPAN содержит это в кратком изложении:

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

Кажется, очень чисто.

Модуль Crypt::OpenPGP может помочь. Это чистая Perl-реализация спецификации OpenPGP.

ОПИСАНИЕ

Crypt::OpenPGP является чисто Perl-реализацией стандарта OpenPGP. В дополнение к поддержке самого стандарта 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 ],
);
Другие вопросы по тегам