Не удается вызвать метод "sign" для неопределенного значения - PullRequest
0 голосов
/ 02 мая 2018

Итак, я пытаюсь зашифровать строку с помощью 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 читает закрытый ключ с парольной фразой на нем. Любое предложение для этого?

...