NAME

Mail::DKIM::PrivateKey - a private key loaded in memory for DKIM signing

VERSION

version 1.20240923

SYNOPSIS

my $key1 = Mail::DKIM::PrivateKey->load(
              File => '/path/to/private.key');

my $key2 = Mail::DKIM::PrivateKey->load(
              Data => $base64);

# use the loaded key in a DKIM signing object
my $dkim = Mail::DKIM::Signer->new(
              Key => $key2,
            );

CONSTRUCTOR

load() - loads a private key into memory

my $key1 = Mail::DKIM::PrivateKey->load(
              File => '/path/to/private.key');

Loads the Base64-encoded key from the specified file.

my $key2 = Mail::DKIM::PrivateKey->load(Data => $base64);

Loads the Base64-encoded key from a string already in memory.

my $key3 = Mail::DKIM::PrivateKey->load(Cork => $openssl_object);

Creates a Mail::DKIM::PrivateKey wrapper object for the given OpenSSL key object. The key object should be of type Crypt::OpenSSL::RSA.

METHODS

cork() - access the underlying OpenSSL key object

$openssl_object = $key->cork;

The returned object is of type Crypt::OpenSSL::RSA.

sign_digest()

Cryptographically sign the given message digest.

$key->sign_digest('SHA-1', sha1('my message text'));

The first parameter is the name of the digest: one of "SHA-1", "SHA-256".

The second parameter is the message digest as a binary string.

The result should be the signed digest as a binary string.

1;

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/)

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.