File::...shBlock(3pm)
π File::KDBX::IO::HashBlock β a Perl module manual page, bestie π
okay so this is a page from the User Contributed Perl Documentation set, and the module is File::KDBX::IO::HashBlock. It's the hash block stream IO handle. very demure, very mindful, very integrity-preserving. π¦
β¨ VERSION β¨
version 0.906 β yeah she's on 0.906, keep up π
πΈ NAME πΈ
File::KDBX::IO::HashBlock β Hash block stream IO handle. that's it, that's the name, it's giving exactly what it says on the tin π
π DESCRIPTION π
okay bestie sit down because this is actually so cool.
When you write to a hash-block handle, it transforms the data into a whole series of blocks. each block gets hashed, and that hash gets included right there with the block in the stream. like the block brought its own receipt. iconic behavior honestly. π§Ύβ¨
When you read from a handle, each hash block gets verified as the blocks are disassembled back into a data stream. so if something got messed with? you'll know. no cap.
This whole format exists to help ensure data integrity of KDBX3 files. periodt. π―
Each block is encoded like this:
- Block index β little-endian unsigned 32-bit integer, increments starting with
0 - Hash β
32bytes - Block size β little-endian unsigned 32-bit (counting only the data)
- Data β string of bytes
And the terminating block? it's an empty block where the hash is 32 null bytes, the block size is 0, and there is no data. the lil goodbye block. so minimal. so final. π«Ά
π ATTRIBUTES π
π algorithm
The digest algorithm used when hash-blocking the stream. default is "SHA-256". she's secure, she's classic, she ate. π₯
π block_size
The desired block size when writing. default is $File::KDBX::IO::HashBlock::BLOCK_SIZE, or if that's not set, 1,048,576 bytes. a whole megabyte per block, main character energy fr fr. π
β¨ METHODS β¨
π new
$fh = File::KDBX::IO::HashBlock->new(%attributes);
$fh = File::KDBX::IO::HashBlock->new($fh, %attributes);
Construct a brand new hash-block stream IO handle. yes you can pass an $fh and yes you can pass %attributes, choose your own adventure bestie. π¦
π BUGS π
Please report any bugs or feature requests on the bugtracker website <https://github.com/chazmcgarvey/File-KDBX/issues>
not me asking you to file bugs, but like, please do, I want to fix them π
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. receipts or it didn't happen, babe β a test file literally shows the problem, that's the whole vibe. π§
π AUTHOR π
Charles McGarvey <ccm@cpan.org> β the icon, the legend, the one who wrote this. π
π COPYRIGHT AND LICENSE π
This software is copyright (c) 2022 by Charles McGarvey.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. free as in go off, do your thing, just keep the same terms. π«Ά
and that's a wrap, bestie π this lil page came to you from perl v5.40.1, dated 2025-05-04, and it says File::...shBlock(3pm) up at the top even though the real name is File::KDBX::IO::HashBlock β the header truncates it, not me, I would never π
mwah, go read some more manpages, ily βπΈ
π¦ where this page comes from
- debian trixie: libfile-kdbx-perl 0.906-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libfile-kdbx-perl 0.906-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libfile-kdbx-perl 0.906-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms