Mail::D...hm::Base(3)
π NAME π
okay so bestie, this is the Mail::D...hm::Base(3) page from User Contributed Perl Documentation, and the actual module we're hyping is Mail::DKIM::Algorithm::Base β it's the base class for DKIM "algorithms". periodt. β¨
β¨ VERSION β¨
version 1.20240923 β that's the version, no cap. π
πΈ SYNOPSIS πΈ
vibe check, here's the whole flow in code:
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 π
bestie, do 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 π
okay, every method gets its moment β no gatekeeping here. π
π¦ 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. literally one line at a time, bestie. π«Ά
π¦ 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(). no skipping ahead, iykyk. π
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 β go look. π
π AUTHORS π
Jason Long <jason@long.name>Marc Bradshaw <marc@marcbradshaw.net>Bron Gondwana <brong@fastmailteam.com>(ARC)
π«Ά THANKS π«Ά
Work on ensuring that this module passes the ARC test suite was generously sponsored by Valimail (https://www.valimail.com/). iconic. π
π COPYRIGHT AND LICENSE π
Copyright (C) 2013 by Messiah CollegeCopyright (C) 2010 by Jason LongCopyright (C) 2017 by Standcore LLCCopyright (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.
mwah π β this page is perl v5.42.0, dated 2024-09-23, and it's Mail::D...hm::Base(3). bye bestie π«Ά
π¦ where this page comes from
- alpine 3.23: perl-mail-dkim-doc 1.20240923-r0 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- opensuse-leap 16.0: perl-Mail-DKIM 1.20240923-bp160.1.2 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms