Mail-DKIM
view release on metacpan or search on metacpan
lib/Mail/DKIM/DkSignature.pm view on Meta::CPAN
croak 'method not implemented (use canonicalization instead)';
}
sub protocol {
my $self = shift;
(@_)
and $self->set_tag( 'q', shift );
# although draft-delany-domainkeys-base-06 does mandate presence of a
# q=dns tag, it is quote common that q tag is missing - be merciful
return !defined( $self->get_tag('q') ) ? 'dns' : lc $self->get_tag('q');
}
# same as parent class
# same as parent class
sub timestamp {
croak 'timestamp not implemented';
}
sub version {
croak 'version not implemented';
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Mail::DKIM::DkSignature - represents a DomainKeys-Signature header
=head1 VERSION
version 1.20240923
=head1 CONSTRUCTORS
=head2 new()
Create a new DomainKey signature from parameters
my $signature = Mail::DKIM::DkSignature->new(
[ Algorithm => 'rsa-sha1', ]
[ Signature => $base64, ]
[ Method => 'simple', ]
[ Domain => 'example.org', ]
[ Headers => 'from:subject:date:message-id', ]
[ Query => 'dns', ]
[ Selector => 'alpha', ]
[ Key => $private_key, ]
);
=head2 parse()
Create a new signature from a DomainKey-Signature header
my $sig = Mail::DKIM::DkSignature->parse(
'DomainKey-Signature: a=rsa-sha1; b=yluiJ7+0=; c=nofws'
);
Constructs a signature by parsing the provided DomainKey-Signature header
content. You do not have to include the header name
(i.e. "DomainKey-Signature:")
but it is recommended, so the header name can be preserved and returned
the same way in L</"as_string()">.
Note: The input to this constructor is in the same format as the output
of the as_string method.
=head1 METHODS
=head2 as_string()
Convert the signature header as a string.
print $signature->as_string . "\n";
outputs
DomainKey-Signature: a=rsa-sha1; b=yluiJ7+0=; c=nofws
As shown in the example, the as_string method can be used to generate
the DomainKey-Signature that gets prepended to a signed message.
=head2 algorithm()
Get or set the algorithm (a=) field
The algorithm used to generate the signature.
Defaults to "rsa-sha1", an RSA-signed SHA-1 digest.
=head2 canonicalization()
Get or set the canonicalization (c=) field.
$signature->canonicalization('nofws');
$signature->canonicalization('simple');
$method = $signature->canonicalization;
Message canonicalization (default is "simple"). This informs the
verifier of the type of canonicalization used to prepare the message for
signing.
=head2 domain()
Get or set the domain (d=) field.
my $d = $signature->domain; # gets the domain value
$signature->domain('example.org'); # sets the domain value
( run in 0.833 second using v1.01-cache-2.11-cpan-5a3173703d6 )