Benjamin Trott > Crypt-OpenPGP > Crypt::OpenPGP::SessionKey

Download:
Crypt-OpenPGP-1.06.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  14
Open  5
View/Report Bugs
Source   Latest Release: Crypt-OpenPGP-1.08

NAME ^

Crypt::OpenPGP::SessionKey - Encrypted Session Key

SYNOPSIS ^

    use Crypt::OpenPGP::SessionKey;

    my $public_key = Crypt::OpenPGP::Key::Public->new( 'RSA' );
    my $key_data = 'f' x 64;    ## Not a very good key :)

    my $skey = Crypt::OpenPGP::SessionKey->new(
        Key     => $public_key,
        SymKey  => $key_data,
    );
    my $serialized = $skey->save;

    my $secret_key = Crypt::OpenPGP::Key::Secret->new( 'RSA' );
    ( $key_data, my( $alg ) ) = $skey->decrypt( $secret_key );

DESCRIPTION ^

Crypt::OpenPGP::SessionKey implements encrypted session key packets; these packets store public-key-encrypted key data that, when decrypted using the corresponding secret key, can be used to decrypt a block of ciphertext--that is, a Crypt::OpenPGP::Ciphertext object.

USAGE ^

Crypt::OpenPGP::SessionKey->new( %arg )

Creates a new encrypted session key packet object and returns that object. If there are no arguments in %arg, the object is created empty; this is used, for example in parse (below), to create an empty packet which is then filled from the data in the buffer.

If you wish to initialize a non-empty object, %arg can contain:

$skey->save

Serializes the session key packet and returns the string of octets.

Crypt::OpenPGP::SessionKey->parse($buffer)

Given $buffer, a Crypt::OpenPGP::Buffer object holding (or with offset pointing to) an encrypted session key packet, returns a new Crypt::OpenPGP::Ciphertext object, initialized with the data in the buffer.

$skey->decrypt($secret_key)

Given a secret key object $secret_key (an object of a subclass of Crypt::OpenPGP::Key::Public), decrypts and decodes the encrypted session key data. The key data includes the symmetric key itself, along with a one-octet ID of the symmetric cipher used to encrypt the message.

Returns a list containing two items: the symmetric key and the cipher algorithm ID. These are suitable for passing off to the decrypt method of a Crypt::OpenPGP::Ciphertext object to decrypt a block of encrypted data.

$skey->key_id

Returns the key ID of the public key used to encrypt the session key; this is necessary for finding the appropriate secret key to decrypt the key.

AUTHOR & COPYRIGHTS ^

Please see the Crypt::OpenPGP manpage for author, copyright, and license information.

syntax highlighting: