Mail::DKIM::Algorithm::Base - base class for DKIM "algorithms"

NAME  VERSION  SYNOPSIS  CONSTRUCTOR  METHODS  add_body() − feeds part of the body into the algorithm/canonicalization  add_header() − feeds a header field into the algorithm/canonicalization  finish_body() − signals the end of the message body  finish_header() − signals the end of the header field block  sign() − generates a signature using a private key  signature() − get/set the signature worked on by this algorithm  verify() − verifies a signature  SEE ALSO  AUTHORS  THANKS  COPYRIGHT AND LICENSE 

NAME

Mail::DKIM::Algorithm::Base − base class for DKIM "algorithms"

VERSION

version 1.20230911

SYNOPSIS

my $algorithm = new Mail::DKIM::Algorithm::rsa_sha1(
Signature => $dkim_signature
);
# add headers
$algorithm−>add_header("Subject: this is the subject\015\012");
$algorithm−>finish_header;
# add body
$algorithm−>add_body("This is the body.\015\012");
$algorithm−>add_body("Another line of the body.\015\012");
$algorithm−>finish_body;
# now sign or verify...
# TODO...

CONSTRUCTOR

You should not create an object of this class directly. Instead, use one of the DKIM algorithm implementation classes, such as rsa_sha1:

my $algorithm = new Mail::DKIM::Algorithm::rsa_sha1(
Signature => $dkim_signature
);

METHODS

add_body() − feeds part of the body into the algorithm/canonicalization

$algorithm−>add_body("This is the body.\015\012");
$algorithm−>add_body("Another line of the body.\015\012");

The body should be fed one "line" at a time.

add_header() − feeds a header field into the algorithm/canonicalization

$algorithm−>add_header("Subject: this is the subject\015\012");

The header must start with the header field name and continue through any folded lines (including the embedded <CRLF> sequences). It terminates with the <CRLF> at the end of the header field.

finish_body() − signals the end of the message body

$algorithm−>finish_body

Call this method when all lines from the body have been submitted. After calling this method, use sign() or verify() to get the results from the algorithm.

finish_header() − signals the end of the header field block

$algorithm−>finish_header;

Call this method when all the headers have been submitted.

sign() − generates a signature using a private key

$base64 = $algorithm−>sign($private_key);

signature() − get/set the signature worked on by this algorithm

my $old_signature = $algorithm−>signature;
$algorithm−>signature($new_signature);

verify() − verifies a signature

$result = $algorithm−>verify();

Must be called after finish_body().

The result is a true/false value: true indicates the signature data is valid, false indicates it is invalid.

For an invalid signature, details may be obtained from $algorithm−>{verification_details} or $@.

SEE ALSO

Mail::DKIM

AUTHORS

Jason Long <[email protected]>

Marc Bradshaw <[email protected]>

Bron Gondwana <[email protected]> (ARC)

THANKS

Work on ensuring that this module passes the ARC test suite was generously sponsored by Valimail (https://www.valimail.com/)

COPYRIGHT AND LICENSE

Copyright (C) 2013 by Messiah College

Copyright (C) 2010 by Jason Long

Copyright (C) 2017 by Standcore LLC

Copyright (C) 2020 by FastMail Pty Ltd

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.


Updated 2024-01-29 - jenkler.se | uex.se