File::...nstants(3pm)
π File::KDBX::Constants β the manual page, but make it slay π
okay bestie, sit down, hydrate, because this is the File::KDBX::Constants page from the User Contributed Perl Documentation and it is literally about every KDBX-related constant you could ever want. no cap.
VERSION: version 0.906 β¨
πΈ SYNOPSIS πΈ
use File::KDBX::Constants qw(:all);
say KDBX_VERSION_4_1;
π¦ DESCRIPTION π¦
so this module is the plug: it hands you importable constants all about KDBX π . you can pull them in one at a time or in lil groups (we call those groups tags). the tags that exist are, in this exact order:
:magic:version:header:compression:cipher:random_stream:kdf:variant_map:inner_header:key_file:history:icon:bool:time:yubikey:allβ all of the above, the whole buffet π
and if you're sitting there like "bestie what are the actual values", the page says: go view the source of this module to see the constant values (but really you shouldn't care). periodt. π
π FUNCTIONS π
to_header_constant
$constant = to_header_constant($number);
$constant = to_header_constant($string);
hand it an integer or a string and it gives you back a header constant. iconic little converter, fr fr.
to_compression_constant
$constant = to_compression_constant($number);
$constant = to_compression_constant($string);
same vibe, but for compression constants β integer or string in, constant out π«Ά.
to_inner_header_constant
$constant = to_inner_header_constant($number);
$constant = to_inner_header_constant($string);
yep, again: integer or string, and you get an inner header constant back.
to_icon_constant
$constant = to_icon_constant($number);
$constant = to_icon_constant($string);
number or string β‘οΈ icon constant. she's consistent π
β CONSTANTS β
:magic
constants for figuring out what kind of file you're looking at π:
KDBX_SIG1KDBX_SIG1_FIRST_BYTEKDBX_SIG2_1KDBX_SIG2_2
:version
constants for sniffing out the format version of a file:
KDBX_VERSION_2_0KDBX_VERSION_3_0KDBX_VERSION_3_1KDBX_VERSION_4_0KDBX_VERSION_4_1KDBX_VERSION_OLDESTKDBX_VERSION_LATESTKDBX_VERSION_MAJOR_MASKKDBX_VERSION_MINOR_MASK
:header
constants for parsing and generating KDBX file headers π:
HEADER_ENDHEADER_COMMENTHEADER_CIPHER_IDHEADER_COMPRESSION_FLAGSHEADER_MASTER_SEEDHEADER_TRANSFORM_SEEDHEADER_TRANSFORM_ROUNDSHEADER_ENCRYPTION_IVHEADER_INNER_RANDOM_STREAM_KEYHEADER_STREAM_START_BYTESHEADER_INNER_RANDOM_STREAM_IDHEADER_KDF_PARAMETERSHEADER_PUBLIC_CUSTOM_DATA
:compression
constants for identifying the compression state of a file:
COMPRESSION_NONECOMPRESSION_GZIP
:cipher
cipher constants, as promised:
CIPHER_UUID_AES128CIPHER_UUID_AES256CIPHER_UUID_CHACHA20CIPHER_UUID_SALSA20CIPHER_UUID_SERPENTCIPHER_UUID_TWOFISH
:random_stream
constants about memory protection stream ciphers π:
STREAM_ID_RC4_VARIANT- π¨ okay listen: this one is insecure and not implemented. do not come for me, I'm just the messenger.
STREAM_ID_SALSA20STREAM_ID_CHACHA20STREAM_SALSA20_IV
:kdf
constants all about key derivation functions and their config:
KDF_UUID_AESKDF_UUID_AES_CHALLENGE_RESPONSE- this is what KeePassXC calls
"KDF_AES_KDBX4"π
- this is what KeePassXC calls
KDF_UUID_ARGON2DKDF_UUID_ARGON2IDKDF_PARAM_UUIDKDF_PARAM_AES_ROUNDSKDF_PARAM_AES_SEEDKDF_PARAM_ARGON2_SALTKDF_PARAM_ARGON2_PARALLELISMKDF_PARAM_ARGON2_MEMORYKDF_PARAM_ARGON2_ITERATIONSKDF_PARAM_ARGON2_VERSIONKDF_PARAM_ARGON2_SECRETKDF_PARAM_ARGON2_ASSOCDATAKDF_DEFAULT_AES_ROUNDSKDF_DEFAULT_ARGON2_ITERATIONSKDF_DEFAULT_ARGON2_MEMORYKDF_DEFAULT_ARGON2_PARALLELISMKDF_DEFAULT_ARGON2_VERSION
:variant_map
constants for parsing and generating KDBX4 variant maps πΊοΈ:
VMAP_VERSIONVMAP_VERSION_MAJOR_MASKVMAP_TYPE_ENDVMAP_TYPE_UINT32VMAP_TYPE_UINT64VMAP_TYPE_BOOLVMAP_TYPE_INT32VMAP_TYPE_INT64VMAP_TYPE_STRINGVMAP_TYPE_BYTEARRAY
:inner_header
constants for parsing and generating KDBX4 inner headers:
INNER_HEADER_ENDINNER_HEADER_INNER_RANDOM_STREAM_IDINNER_HEADER_INNER_RANDOM_STREAM_KEYINNER_HEADER_BINARYINNER_HEADER_BINARY_FLAG_PROTECT
:key_file
constants for identifying key file types π:
KEY_FILE_TYPE_BINARYKEY_FILE_TYPE_HASHEDKEY_FILE_TYPE_HEXKEY_FILE_TYPE_XML
:history
constants for history-related default values (the defaults, the whole defaults, nothing but the defaults):
HISTORY_DEFAULT_MAX_AGEHISTORY_DEFAULT_MAX_ITEMSHISTORY_DEFAULT_MAX_SIZE
:iteration
constants for searching algorithms. yes bestie, the algorithm girlies are here:
ITERATION_IDSβ Iterative deepening searchITERATION_BFSβ Breadth-first searchITERATION_DFSβ Depth-first search
:icon
constants for the default icons used by KeePass password safe implementations. there are... so many. and we're listing every single one, no skips, main character energy only π:
ICON_PASSWORDICON_PACKAGE_NETWORKICON_MESSAGEBOX_WARNINGICON_SERVERICON_KLIPPERICON_EDU_LANGUAGESICON_KCMDFICON_KATEICON_SOCKETICON_IDENTITYICON_KONTACTICON_CAMERAICON_IRKICKFLASHICON_KGPG_KEY3ICON_LAPTOP_POWERICON_SCANNERICON_MOZILLA_FIREBIRDICON_CDROM_UNMOUNTICON_DISPLAYICON_MAIL_GENERICICON_MISCICON_KORGANIZERICON_ASCIIICON_ICONSICON_CONNECT_ESTABLISHEDICON_FOLDER_MAILICON_FILESAVEICON_NFS_UNMOUNTICON_MESSAGEICON_KGPG_TERMICON_KONSOLEICON_FILEPRINTICON_FSVIEWICON_RUNICON_CONFIGUREICON_KRFBICON_ARKICON_KPERCENTAGEICON_SAMBA_UNMOUNTICON_HISTORYICON_MAIL_FINDICON_VECTORGFXICON_KCMMEMORYICON_TRASHCAN_FULLICON_KNOTESICON_CANCELICON_HELPICON_KPACKAGEICON_FOLDERICON_FOLDER_BLUE_OPENICON_FOLDER_TARICON_DECRYPTEDICON_ENCRYPTEDICON_APPLYICON_SIGNATUREICON_THUMBNAILICON_KADDRESSBOOKICON_VIEW_TEXTICON_KGPGICON_PACKAGE_DEVELOPMENTICON_KFM_HOMEICON_SERVICESICON_TUXICON_FEATHERICON_APPLEICON_WICON_MONEYICON_CERTIFICATEICON_SMARTPHONE
:bool
the booleans, the originals, the icons themselves π:
FALSETRUE
:time
time constants, obviously:
TIME_SECONDS_AD1_TO_UNIX_EPOCH
:yubikey
constants for working with YubiKeys. hardware key girlies, this one's for you π₯:
YUBICO_VIDYUBIKEY_PIDNEO_OTP_PIDNEO_OTP_CCID_PIDNEO_CCID_PIDNEO_U2F_PIDNEO_OTP_U2F_PIDNEO_U2F_CCID_PIDNEO_OTP_U2F_CCID_PIDYK4_OTP_PIDYK4_U2F_PIDYK4_OTP_U2F_PIDYK4_CCID_PIDYK4_OTP_CCID_PIDYK4_U2F_CCID_PIDYK4_OTP_U2F_CCID_PIDPLUS_U2F_OTP_PIDONLYKEY_VIDONLYKEY_PIDYK_EUSBERRYK_EWRONGSIZYK_EWRITEERRYK_ETIMEOUTYK_ENOKEYYK_EFIRMWAREYK_ENOMEMYK_ENOSTATUSYK_ENOTYETIMPLYK_ECHECKSUMYK_EWOULDBLOCKYK_EINVALIDCMDYK_EMORETHANONEYK_ENODATACONFIG1_VALIDCONFIG2_VALIDCONFIG1_TOUCHCONFIG2_TOUCHCONFIG_LED_INVCONFIG_STATUS_MASK
π BUGS π
found a bug? want a feature? bestie, please report it on the bugtracker website at <https://github.com/chazmcgarvey/File-KDBX/issues> π«Ά
and when you submit a bug or a request, please include a test-file β or a patch to an existing test-file β that illustrates the bug or the desired feature. that's it. that's the ask. it helps so much, fr fr. β¨
π AUTHOR π
Charles McGarvey <ccm@cpan.org>
π 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.
okay that's the whole page and yes you read all of it, proud of you π₯Ή this was File::...nstants(3pm) from the User Contributed Perl Documentation, and it's perl v5.40.1, dated 2025-05-04. go forth and import your constants, bestie ππ¦πΈ
π¦ 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