logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Authors

• Jason Long <jason@long.name> • Marc Bradshaw <marc@marcbradshaw.net> • Bron Gondwana <brong@fastmailteam.com> (ARC)

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()-feedspartofthebodyintothealgorithm/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()-feedsaheaderfieldintothealgorithm/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()-signalstheendofthemessagebody $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()-signalstheendoftheheaderfieldblock $algorithm->finish_header; Call this method when all the headers have been submitted. sign()-generatesasignatureusingaprivatekey $base64 = $algorithm->sign($private_key); signature()-get/setthesignatureworkedonbythisalgorithm my $old_signature = $algorithm->signature; $algorithm->signature($new_signature); verify()-verifiesasignature $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 $@.

Name

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

See Also

Mail::DKIM

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...

Thanks

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

Version

version 1.20230212

See Also