Mail-Milter-Authentication-Handler-BIMI
view release on metacpan or search on metacpan
t/04-unit-handler-bimi.t view on Meta::CPAN
use lib 't';
use Mail::Milter::Authentication::Tester::HandlerTester;
use Mail::Milter::Authentication::Constants qw{ :all };
use Test::Exception;
use Test::More;
use Mail::DKIM::Signer;
use Mail::DKIM::ARC::Signer;
use Mail::DKIM::PrivateKey;
my $private_key = Mail::DKIM::PrivateKey->load(Data=>'MIICXQIBAAKBgQDErv0qLGKJ933gdhx2MUBqb/XhTloMjJhH0kdQsxkVuhRFzINgDzMGOq83xEwNEk4jC/J+E49fNQ+TSVymq+XGvrkeW7/7llEOTFosY6OGlwdeUZyyUCEM6SIYIBeHuIQn4Ohwhq7P0nZFfXNAG7Wrlxx1O+E881wTRhFOBxAjdQIDAQABAoGA...
sub signed {
my ( $text, %args ) = @_;
my $dkim = Mail::DKIM::Signer->new(
Algorithm => 'rsa-sha256',
Method => 'relaxed',
Domain => $args{domain},
Selector => $args{selector},
Key => $private_key,
Headers => $args{headers},
);
my $signtext = $text;
$signtext =~ s/\n/\r\n/g;
$dkim->PRINT( $signtext );
$dkim->CLOSE;
my $signed = $dkim->signature->as_string . "\n" . $text;
$signed =~ s/\r\n/\n/g;
return $signed;
};
sub sealed {
my ( $text, %args ) = @_;
my $arc = Mail::DKIM::ARC::Signer->new(
Algorithm => 'rsa-sha256',
SrvId => $args{srvid},,
Domain => $args{domain},
Selector => $args{selector},
Key => $private_key,
Chain => 'none',
Timestamp => time(),
);
my $signtext = $text;
$signtext =~ s/\n/\r\n/g;
$arc->PRINT( $signtext );
$arc->CLOSE;
my $sealed = $arc->as_string . $text;
return $sealed;
}
( run in 0.226 second using v1.01-cache-2.11-cpan-a5abf4f5562 )