NAME

Crypt::RSA::EME::OAEP - Plaintext-aware encryption with RSA.

SYNOPSIS

my $oaep = new Crypt::RSA::EME::OAEP; 

my $ct = $oaep->encrypt (Key => $key, Message => $message) || 
            die $oaep->errstr; 

my $pt = $oaep->decrypt (Key => $key, Cyphertext => $ct)   || 
            die $oaep->errstr; 

DESCRIPTION

This module implements "plaintext-aware encryption" with RSA. Plaintext-aware means it's computationally infeasible to obtain full or partial information about a message from a cyphertext, and computationally infeasible to generate a valid cyphertext without knowing the corresponding message. It's impossible to mount chosen cyphertext attacks against this scheme. For more information on plaintext-aware encryption, see [3], [9] & [13].

METHODS

new()

Constructor.

encrypt()

Encrypts a string with a public key and returns the encrypted string on success. encrypt() takes a hash argument with the following mandatory keys:

Message

A string to be encrypted. The length of this string should not exceed k-42 octets, where k is the octet length of the RSA modulus. If Message is longer than k-42, the method will fail and set $self->errstr to "Message too long."

Key

Public key of the recepient, a Crypt::RSA::Key::Public object.

decrypt()

Decrypts cyphertext with a private key and returns plaintext on success. $self->errstr is set to "Decryption Error." or appropriate error on failure. decrypt() takes a hash argument with the following mandatory keys:

Cyphertext

A string encrypted with encrypt(). The length of the cyphertext must be k octets, where k is the length of the RSA modulus.

Key

Private key of the reciever, a Crypt::RSA::Key::Private object.

ERROR HANDLING

See ERROR HANDLING in Crypt::RSA(3) manpage.

BIBLIOGRAPHY

See BIBLIOGRAPHY in Crypt::RSA(3) manpage.

AUTHOR

Vipul Ved Prakash, <mail@vipul.net>

SEE ALSO

Crypt::RSA(3), Crypt::RSA::Primitives(3), Crypt::RSA::Keys(3), Crypt::RSA::SSA::PSS(3)

1 POD Error

The following errors were encountered while parsing the POD:

Around line 213:

You forgot a '=back' before '=head1'