NAME
Mail::GnuPG - Process email with GPG.
SYNOPSIS
use Mail::GnuPG;my $mg = new Mail::GnuPG( key => 'ABCDEFGH' );$ret = $mg->mime_sign( $MIMEObj, '[email protected]' );
DESCRIPTION
Use GnuPG::Interface to process or create PGP signed or encrypted email.
new
Create a new Mail::GnuPG instance.Arguments:Paramhash...key => gpg key idkeydir => gpg configuration/key directorypassphrase => primary key passworduse_agent => use gpg-agent if non-zeroalways_trust => always trust a public key# FIXME: we need more things here, maybe primary key id.
decrypt
Decrypt an encrypted messageInput:MIME::Entity containing email message to decrypt.The message can either be in RFC compliant-ish multipart/encryptedformat, or just a single part ascii armored message.Output:On Failure:Exit code of gpg. (0 on success)On Success: (just encrypted)(0, undef, undef)On success: (signed and encrypted)( 0,keyid, # ABCDDCBAemailaddress # Foo Bar <[email protected]>)where the keyid is the key that signed it, and emailaddress is fullname and email address of the primary uid$self->{last_message} => any errors from gpg$self->{plaintext} => plaintext output from gpg$self->{decrypted} => parsed output as MIME::Entity
get_decrypt_key
determines the decryption key (and corresponding mail) of a messageInput:MIME::Entity containing email message to analyze.The message can either be in RFC compliant-ish multipart/signedformat, or just a single part ascii armored message.Output:$key -- decryption key$mail -- corresponding mail address
verify
verify a signed messageInput:MIME::Entity containing email message to verify.The message can either be in RFC compliant-ish multipart/signedformat, or just a single part ascii armored message.Note that MIME-encoded data should be supplied unmodified insidethe MIME::Entity input message, otherwise the signature will bebroken. Since MIME-tools version 5.419, this can be achieved withthe C<decode_bodies> method of MIME::Parser. See the MIME::Parserdocumentation for more information.Output:On error:Exit code of gpg. (0 on success)On success( 0,keyid, # ABCDDCBAemailaddress # Foo Bar <[email protected]>)where the keyid is the key that signed it, and emailaddress is fullname and email address of the primary uid. The email/uid is UTF8encoded, as output by GPG.$self->{last_message} => any errors from gpg
has_public_key
Does the keyring have a public key for the specified email address?
FIXME: document better. talk about caching. maybe put a betterinterface in.
mime_sign
sign an email messageInput:MIME::Entity containing email message to signOutput:Exit code of gpg. (0 on success)$self->{last_message} => any errors from gpgThe provided $entity will be signed. (i.e. it _will_ be modified.)
clear_sign
clearsign the body of an email messageInput:MIME::Entity containing email message to sign.This entity MUST have a body.Output:Exit code of gpg. (0 on success)$self->{last_message} => any errors from gpgThe provided $entity will be signed. (i.e. it _will_ be modified.)
ascii_encrypt
encrypt an email message body using ascii armorInput:MIME::Entity containing email message to encrypt.This entity MUST have a body.list of recipientsOutput:Exit code of gpg. (0 on success)$self->{last_message} => any errors from gpgThe provided $entity will be encrypted. (i.e. it _will_ be modified.)
ascii_signencrypt
encrypt and sign an email message body using ascii armorInput:MIME::Entity containing email message to encrypt.This entity MUST have a body.list of recipientsOutput:Exit code of gpg. (0 on success)$self->{last_message} => any errors from gpgThe provided $entity will be encrypted. (i.e. it _will_ be modified.)
mime_encrypt
encrypt an email messageInput:MIME::Entity containing email message to encryptlist of email addresses to sign toOutput:Exit code of gpg. (0 on success)$self->{last_message} => any errors from gpgThe provided $entity will be encrypted. (i.e. it _will_ be modified.)
mime_signencrypt
sign and encrypt an email messageInput:MIME::Entity containing email message to sign encryptlist of email addresses to sign toOutput:Exit code of gpg. (0 on success)$self->{last_message} => any errors from gpgThe provided $entity will be encrypted. (i.e. it _will_ be modified.)
is_signed
best guess as to whether a message is signed or not (by looking atthe mime type and message content)Input:MIME::Entity containing email message to testOutput:True or False value
is_encrypted
best guess as to whether a message is signed or not (by looking atthe mime type and message content)Input:MIME::Entity containing email message to testOutput:True or False value
LICENSE
Copyright 2003 Best Practical Solutions, LLC
This program is free software; you can redistribute it and/or modify it under the terms of either:
a) the GNU General Public License as published by the FreeSoftware Foundation; version 2http://www.opensource.org/licenses/gpl-license.phpb) the "Artistic License"http://www.opensource.org/licenses/artistic-license.php
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the Artistic License for more details.
AUTHOR
Robert Spier
David Bremner <[email protected]>
BUGS/ISSUES/PATCHES
Please send all bugs/issues/patches to
[email protected]
SEE ALSO
perl.
GnuPG::Interface,
MIME::Entity