Crypt::Mac::BLAKE2b - Message authentication code BLAKE2b MAC (RFC 7693)
Contents
Description
Provides an interface to the BLAKE2b message authentication code (MAC) algorithm.
Export
Nothing is exported by default.
You can export selected functions:
use Crypt::Mac::BLAKE2b qw(blake2b blake2b_hex );
Or all of them at once:
use Crypt::Mac::BLAKE2b ':all';
Functions
blake2b
Logically joins all arguments into a single string, and returns its BLAKE2b message authentication code
encoded as a binary string.
$blake2b_raw = blake2b($size, $key, 'data buffer');
#or
$blake2b_raw = blake2b($size, $key, 'any data', 'more data', 'even more data');
blake2b_hex
Logically joins all arguments into a single string, and returns its BLAKE2b message authentication code
encoded as a hexadecimal string.
$blake2b_hex = blake2b_hex($size, $key, 'data buffer');
#or
$blake2b_hex = blake2b_hex($size, $key, 'any data', 'more data', 'even more data');
blake2b_b64
Logically joins all arguments into a single string, and returns its BLAKE2b message authentication code
encoded as a Base64 string.
$blake2b_b64 = blake2b_b64($size, $key, 'data buffer');
#or
$blake2b_b64 = blake2b_b64($size, $key, 'any data', 'more data', 'even more data');
blake2b_b64u
Logically joins all arguments into a single string, and returns its BLAKE2b message authentication code
encoded as a Base64 URL Safe string (see RFC 4648 section 5).
$blake2b_b64url = blake2b_b64u($size, $key, 'data buffer');
#or
$blake2b_b64url = blake2b_b64u($size, $key, 'any data', 'more data', 'even more data');
Methods
new
$d = Crypt::Mac::BLAKE2b->new($size, $key);
clone
$d->clone();
reset
$d->reset();
add
$d->add('any data');
#or
$d->add('any data', 'more data', 'even more data');
addfile
$d->addfile('filename.dat');
#or
$d->addfile(*FILEHANDLE);
mac
$result_raw = $d->mac();
hexmac
$result_hex = $d->hexmac();
b64mac
$result_b64 = $d->b64mac();
b64umac
$result_b64url = $d->b64umac();
Name
Crypt::Mac::BLAKE2b - Message authentication code BLAKE2b MAC (RFC 7693)
See Also
• CryptX
• <https://tools.ietf.org/html/rfc7693>
perl v5.40.0 2025-02-15 Crypt::Mac::BLAKE2b(3pm)
Synopsis
### Functional interface:
use Crypt::Mac::BLAKE2b qw( blake2b blake2b_hex );
# calculate MAC from string/buffer
$blake2b_raw = blake2b($size, $key, 'data buffer');
$blake2b_hex = blake2b_hex($size, $key, 'data buffer');
$blake2b_b64 = blake2b_b64($size, $key, 'data buffer');
$blake2b_b64u = blake2b_b64u($size, $key, 'data buffer');
### OO interface:
use Crypt::Mac::BLAKE2b;
$d = Crypt::Mac::BLAKE2b->new($size, $key);
$d->add('any data');
$d->addfile('filename.dat');
$d->addfile(*FILEHANDLE);
$result_raw = $d->mac; # raw bytes
$result_hex = $d->hexmac; # hexadecimal form
$result_b64 = $d->b64mac; # Base64 form
$result_b64u = $d->b64umac; # Base64 URL Safe form
