RosettaCodeData/Task/Elliptic-Curve-Digital-Signature-Algorithm/Perl/elliptic-curve-digital-signature-algorithm.pl
2023-07-01 13:44:08 -04:00

19 lines
538 B
Perl

use strict;
use warnings;
use Crypt::EC_DSA;
my $ecdsa = Crypt::EC_DSA->new;
my ($pubkey, $prikey) = $ecdsa->keygen;
print "Message: ", my $msg = 'Rosetta Code', "\n";
print "Private Key :\n$prikey \n";
print "Public key :\n", $pubkey->x, "\n", $pubkey->y, "\n";
my $signature = $ecdsa->sign( Message => $msg, Key => $prikey );
print "Signature :\n";
for (sort keys %$signature) { print "$_ => $signature->{$_}\n"; }
$ecdsa->verify( Message => $msg, Key => $pubkey, Signature => $signature ) and
print "Signature verified.\n"