Crypt-PKCS11-Easy
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/lib/CommonTest.pm view on Meta::CPAN
return $obj;
}
sub _new_pkcs11 {
my $self = shift;
my %args = @_;
my $mod = 'Crypt::PKCS11::Easy';
require_ok $mod;
$ENV{SOFTHSM2_CONF} = $self->hsm_config_file;
$args{module} = 'libsofthsm2' unless $args{module};
$args{pin} = '1234' unless $args{pin};
$args{token} = 'test_keys_1' unless $args{token};
my @arg_list = %args;
my $obj = new_ok $mod => \@arg_list;
BAIL_OUT "Failed to initialise $mod, no point continuing" unless $obj;
return $obj;
}
sub _build_hsm_token_dir {
my $self = shift;
my $archive = path('t/data/tokens.tar.gz')->absolute;
local $CWD = $self->workdir;
diag "Extracting test tokens into $CWD";
Archive::Tar->extract_archive($archive);
return path('tokens')->absolute;
}
sub openssl_sign {
my ($self, $key_file, $data_file) = @_;
my $openssl_cmd = [$self->_openssl, 'dgst', '-sha1', '-sign', $key_file];
my $output = run_forked $openssl_cmd,
{verbose => $ENV{TEST_DEBUG}, child_stdin => $data_file->slurp_raw};
chomp $output->{stdout};
return $output->{stdout};
}
sub openssl_verify {
my ($self, $key_file, $sig_file, $data_file) = @_;
my $openssl_cmd = [
$self->_openssl, 'dgst', '-sha1', '-verify',
$key_file, '-signature', $sig_file, $data_file
];
return run command => $openssl_cmd, verbose => $ENV{TEST_DEBUG};
}
sub openssl_decrypt {
my ($self, $private_key_file, $encrypted_data, $mech) = @_;
my $openssl_cmd =
[$self->_openssl, 'rsautl', '-decrypt', '-inkey', $private_key_file];
if ($mech eq 'RSA_PKCS') {
push @$openssl_cmd, '-pkcs';
} elsif ($mech eq 'RSA_PKCS_OAEP') {
push @$openssl_cmd, '-oaep';
} else {
die "Unsupported mech: $mech";
}
my $output = run_forked $openssl_cmd,
{verbose => $ENV{TEST_DEBUG}, child_stdin => $encrypted_data};
chomp $output->{stdout};
return $output->{stdout};
}
1;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.679 second using v1.00-cache-2.02-grep-82fe00e-cpan-2cc899e4a130 )