Crypt-Perl
view release on metacpan or search on metacpan
lib/Crypt/Perl/PKCS10.pm view on Meta::CPAN
=encoding utf-8
=head1 NAME
Crypt::Perl::PKCS10 - Certificate Signing Request (CSR) creation
=head1 SYNOPSIS
my $pkcs10 = Crypt::Perl::PKCS10->new(
key => $private_key_obj,
subject => [
commonName => 'foo.com',
localityName => 'somewhere',
#...
],
attributes => [
[ 'extensionRequest',
[ 'subjectAltName',
[ dNSName => 'foo.com' ],
lib/Crypt/Perl/X509v3.pm view on Meta::CPAN
],
serial_number => 12345,
issuer_unique_id => '..',
subject_unique_id => '..',
);
# The signature algorithm (2nd argument) is not needed
# when the signing key is Ed25519.
$cert->sign( $crypt_perl_private_key_obj, 'sha256' );
my $pem = $cert->to_pem();
=head1 STATUS
This module is B<experimental>! The API may change between versions.
If youâre going to build something off of it, ensure that you check
Crypt::Perlâs changelog before updating this module.
=head1 DESCRIPTION
t/Crypt-Perl-RSA-PrivateKey.t view on Meta::CPAN
is(
$key->can("verify_$alg")->( $key, $message, $key->can("sign_$alg")->( $key, "00$message" ) ),
q<>,
"$alg: Perl non-verified a wrong signature",
);
SKIP: {
skip 'No Crypt::OpenSSL::RSA; skipping', 1 if !$self->{'_has_ossl'};
my $rsa = Crypt::OpenSSL::RSA->new_private_key($largest_pem);
$alg =~ m<([0-9]+)> or die "huh? $alg";
$rsa->can("use_sha$1_hash")->($rsa);
ok(
$rsa->verify( $message, $signature ),
"$alg: OpenSSL verified Perlâs signature",
);
}
}
return;
t/Crypt-Perl-RSA-PrivateKey.t view on Meta::CPAN
my $mangled_sig = reverse $signature;
dies_ok(
sub { $key->verify_RS256( $message, $mangled_sig ) },
"$label: mangled signature non-verification",
);
SKIP: {
skip 'No Crypt::OpenSSL::RSA; skipping', 1 if !$self->{'_has_ossl'};
my $rsa = Crypt::OpenSSL::RSA->new_private_key($key_pem);
$rsa->use_sha256_hash();
ok(
$rsa->verify( $message, $signature ),
"$label: OpenSSL verified Perlâs signature",
);
}
}
return;
}
t/assets/generate_rs256_tests.pl view on Meta::CPAN
use Data::Dumper ();
use MIME::Base64 ();
my @rs256_tests = map {
my $msg = rand;
my $use_exp_3 = $msg > 0.5;
my $orsa = Crypt::OpenSSL::RSA->generate_key($_, ($use_exp_3 ? 0x3 : ()));
$orsa->use_sha256_hash();
[ "$_-bit key" . ($use_exp_3 ? ', exp = 3' : q<>), $orsa->get_private_key_string(), $msg, MIME::Base64::encode($orsa->sign($msg)) ];
} (510 .. 768);
open my $rs256_wfh, '>', "$FindBin::Bin/RS256.dump";
{
local $Data::Dumper::Terse = 1;
print {$rs256_wfh} Data::Dumper::Dumper(\@rs256_tests) or die $!;
}
close $rs256_wfh;
( run in 0.448 second using v1.01-cache-2.11-cpan-a5abf4f5562 )