Итак, я пытаюсь зашифровать строку с помощью DSA. у меня есть личный ключ и открытый ключ. Теперь я хочу зашифровать строку "nawan". Это мой код:
#!/usr/bin/perl
use strict;
use warnings;
use Crypt::OpenSSL::DSA;
my $privkey = "priv_key.key";
my $pubkey = "pub_key.crt";
my $message = "nawan";
my $dsa_priv = Crypt::OpenSSL::DSA->read_priv_key($privkey);
my $sig = $dsa_priv->sign($message);
my $dsa_pub = Crypt::OpenSSL::DSA->read_pub_key($pubkey);
my $valid = $dsa_pub->verify($message, $sig);
Когда я запускаю свой код, он показывает ошибку, подобную этой:
Невозможно вызвать метод "sign" для неопределенного значения в строке ./dsa.pl 13.
Есть идеи? Я немного новичок в Perl.
UPDATE:
Я только что выяснил причину, по которой метод "sign" не может быть вызван тем, что read_priv_key()
не удалось прочитать файл. Я только что понял, что создал закрытый ключ с парольной фразой (aes128). Сейчас я пытаюсь понять, как Crypt::OpenSSL::DSA
читает закрытый ключ с парольной фразой на нем. Любое предложение для этого?