logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

File::KDBX::IO::HmacBlock - HMAC block stream IO handle

Attributes

block_size
       Desired block size when writing (default: $File::KDBX::IO::HmacBlock::BLOCK_SIZE or 1,048,576 bytes)

   key
       HMAC-SHA256 key for authenticating the data stream (required)

Author

       Charles McGarvey <ccm@cpan.org>

Bugs

       Please     report     any     bugs     or     feature     requests     on    the    bugtracker    website
       <https://github.com/chazmcgarvey/File-KDBX/issues>

       When submitting a bug or request, please include a test-file or a patch to  an  existing  test-file  that
       illustrates the bug or desired feature.

Description

       Writing to a HMAC-block stream handle will transform the data into a series of blocks. An HMAC is
       calculated for each block and is included in the output.

       Reading from a handle, each block will be verified and authenticated as the blocks are disassembled back
       into a data stream.

       This format helps ensure data integrity and authenticity of KDBX4 files.

       Each block is encoded thusly:

       •   HMAC - 32 bytes, calculated over [block index (increments starting with 0), block size and data]

       •   Block size - Little-endian unsigned 32-bit (counting only the data)

       •   Data - String of bytes

       The terminating block is an empty block encoded as usual but block size is 0 and there is no data.

Methods

new
           $fh = File::KDBX::IO::HmacBlock->new(%attributes);
           $fh = File::KDBX::IO::HmacBlock->new($fh, %attributes);

       Construct a new HMAC-block stream IO handle.

Name

       File::KDBX::IO::HmacBlock - HMAC block stream IO handle

Version

       version 0.906

See Also