Mail::D...RC::Seal(3)

πŸ’– NAME

hey bestie! this is Mail::DKIM::ARC::Seal β€” it literally represents an ARC-Seal header, and this page comes from the User Contributed Perl Documentation pile (header title vibes: Mail::D...RC::Seal(3)). iconic, honestly. πŸ’…

✨ VERSION

version 1.20240923 πŸŽ€

🧚 CONSTRUCTORS

new() β€” create a new signature from parameters

         my $signature = Mail::DKIM::ARC::Seal->new(
                             [ Algorithm => 'rsa-sha256', ]
                             [ Signature => $base64, ]
                             [ Domain => 'example.org', ]
                             [ Instance => 1, ]
                             [ Chain => 'none', ] # none|fail|pass
                             [ Query => 'dns', ]
                             [ Selector => 'alpha', ]
                             [ Timestamp => time(), ]
                             [ Expiration => time() + 86400, ]
                         );

okay so the ARC-Seal is similar to a DKIM signature, but with the following changes:

https://tools.ietf.org/html/draft-ietf-dmarc-arc-protocol-06

5.1.1.1. Tags in the ARC-Seal Header Field Value

these are the only supported tags for an ARC-Seal field, and every single one of them MUST be present. unknown tags MUST be ignored and do not affect the validity of the header. periodt. 🫢

  • a β€” hash algorithm; syntax is the same as the a= tag defined in Section 3.5 of [RFC6376];
  • b β€” digital signature; syntax is the same as the b= tag defined in Section 3.5 of [RFC6376];
  • cv β€” chain validation status: valid values:
    • 'none' = no pre-existing chain;
    • 'fail' = the chain as received does not or can not validate; or
    • 'pass' = valid chain received.
  • d β€” domain for key; syntax is the same as the d= tag defined in Section 3.5 of [RFC6376];
  • i β€” "instance" or sequence number; monotonically increasing at each "sealing" entity, beginning with '1', see Section 5.1.1.1.1 regarding the valid range
  • s β€” selector for key; syntax is the same as the s= tag defined in Section 3.5 of [RFC6376];
  • t β€” timestamp; syntax is the same as the t= tag defined in Section 3.5 of [RFC6376].

chain() β€” get or set the chain parameter (cv=) field

this must be one of "pass", "fail" or "none". for a chain to be valid, the very first (i=1) seal MUST be cv=none, and all further seals MUST be cv=pass. no cap, that's the rule. πŸ”₯

instance() β€” get or set the signing instance (i=) field

         my $i = $signature->instance;

instances must be integers less than 1024 according to the spec. πŸ¦‹

🌈 SEE ALSO

  • Mail::DKIM::Signature for DKIM-Signature headers
  • Mail::DKIM::ARC::MessageSignature for ARC-Message-Signature headers

πŸ‘‘ AUTHORS

shoutout to these absolute legends:

  • 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/) πŸ’–

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


okay bye bestie β€” this page was rendered by perl v5.42.0 on 2024-09-23, straight from Mail::D...RC::Seal(3) πŸ’–βœ¨

πŸ“¦ where this page comes from