NAME

Mail::DKIM::DkSignature - represents a DomainKeys-Signature header

CONSTRUCTORS

parse() - create a new signature from a DomainKey-Signature header

  my $sig = parse Mail::DKIM::DkSignature(
                  "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 as_string().

Note: The input to this constructor is in the same format as the output of the as_string method.

METHODS

as_string() - 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.

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.

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.

domain() - get or set the domain (d=) field

  my $d = $signature->domain;          # gets the domain value
  $signature->domain("example.org");   # sets the domain value

The domain of the signing entity, as specified in the signature. This is the domain that will be queried for the public key.

headerlist() - get or set the signed header fields (h=) field

  $signature->headerlist("a:b:c");

  my $headerlist = $signature->headerlist;

  my @headers = $signature->headerlist;

Signed header fields. A colon-separated list of header field names that identify the header fields presented to the signing algorithm.

In scalar context, the list of header field names will be returned as a single string, with the names joined together with colons. In list context, the header field names will be returned as a list.

identity() - get the signing identity

  my $i = $signature->identity;

In DomainKey signatures, the signing identity is the first address found in the Sender header or the From header. This field is populated by the Verifier when processing a DomainKey signature.

identity_source() - determine which header had the identity

  my $source = $signature->identity_source;

If the message is being verified, this method will tell you which of the message headers was used to determine the signature identity. Possible values are "header.sender" and "header.from".

protocol() - get or set the query methods (q=) field

A colon-separated list of query methods used to retrieve the public key (default is "dns").

selector() - get or set the selector (s=) field

The selector subdivides the namespace for the "d=" (domain) tag.

signature() - get or set the signature data (b=) field

The signature data. Whitespace is automatically stripped from the returned value.

SEE ALSO

Mail::DKIM::Signature for DKIM-Signature headers

AUTHOR

Jason Long, <jlong@messiah.edu>

COPYRIGHT AND LICENSE

Copyright (C) 2006-2007 by Messiah College

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.