NAME
Crypt::AuthEnc::GCM - Authenticated encryption in GCM mode
SYNOPSIS
my $ae = Crypt::AuthEnc::GCM->new( "AES" , $key , $iv );
$ae ->adata_add( 'additional_authenticated_data1' );
$ae ->adata_add( 'additional_authenticated_data2' );
my $ct = $ae ->encrypt_add( 'data1' );
$ct .= $ae ->encrypt_add( 'data2' );
$ct .= $ae ->encrypt_add( 'data3' );
my $tag = $ae ->encrypt_done();
my $ae = Crypt::AuthEnc::GCM->new( "AES" , $key , $iv );
$ae ->adata_add( 'additional_authenticated_data1' );
$ae ->adata_add( 'additional_authenticated_data2' );
my $pt = $ae ->decrypt_add( 'ciphertext1' );
$pt .= $ae ->decrypt_add( 'ciphertext2' );
$pt .= $ae ->decrypt_add( 'ciphertext3' );
my $tag = $ae ->decrypt_done();
die "decrypt failed" unless $tag eq $expected_tag ;
my $result = $ae ->decrypt_done( $expected_tag );
my ( $ciphertext , $tag ) = gcm_encrypt_authenticate( 'AES' , $key , $iv , $adata , $plaintext );
my $plaintext = gcm_decrypt_verify( 'AES' , $key , $iv , $adata , $ciphertext , $tag );
|
DESCRIPTION
Galois/Counter Mode (GCM) - provides encryption and authentication.
EXPORT
Nothing is exported by default.
You can export selected functions:
FUNCTIONS
gcm_encrypt_authenticate
my ( $ciphertext , $tag ) = gcm_encrypt_authenticate( $cipher , $key , $iv , $adata , $plaintext );
|
gcm_decrypt_verify
my $plaintext = gcm_decrypt_verify( $cipher , $key , $iv , $adata , $ciphertext , $tag );
|
METHODS
new
my $ae = Crypt::AuthEnc::GCM->new( $cipher , $key );
my $ae = Crypt::AuthEnc::GCM->new( $cipher , $key , $iv );
|
iv_add
Set initialization vector (IV).
adata_add
Add additional authenticated data. Can be called after all iv_add
calls but before the first encrypt_add
or decrypt_add
.
$ae ->adata_add( $aad_data );
|
encrypt_add
$ciphertext = $ae ->encrypt_add( $data );
|
encrypt_done
$tag = $ae ->encrypt_done();
|
decrypt_add
$plaintext = $ae ->decrypt_add( $ciphertext );
|
decrypt_done
my $tag = $ae ->decrypt_done;
my $result = $ae ->decrypt_done( $tag );
|
reset
clone
SEE ALSO