Проверьте подпись файла 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 ],
);