File::KDBX::Constants(3p)

NAME
File::KDBX::Constants - All the KDBX-related constants you could ever want

VERSION
version 0.906

SYNOPSIS
    use File::KDBX::Constants qw(:all);

    say KDBX_VERSION_4_1;

DESCRIPTION
This module provides importable constants related to KDBX. Constants can be imported individually or in groups (by tag). The available tags are:

•   ":magic"

•   ":version"

•   ":header"

•   ":compression"

•   ":cipher"

•   ":random_stream"

•   ":kdf"

•   ":variant_map"

•   ":inner_header"

•   ":key_file"

•   ":history"

•   ":icon"

•   ":bool"

•   ":time"

•   ":yubikey"

•   ":all" - All of the above

View the source of this module to see the constant values (but really you shouldn't care).

FUNCTIONS

  to_header_constant
    $constant = to_header_constant($number);
    $constant = to_header_constant($string);

Get a header constant from an integer or string value.

  to_compression_constant
    $constant = to_compression_constant($number);
    $constant = to_compression_constant($string);

Get a compression constant from an integer or string value.

  to_inner_header_constant
    $constant = to_inner_header_constant($number);
    $constant = to_inner_header_constant($string);

Get an inner header constant from an integer or string value.

  to_icon_constant
    $constant = to_icon_constant($number);
    $constant = to_icon_constant($string);

Get an icon constant from an integer or string value.

CONSTANTS

  :magic
Constants related to identifying the file types:

"KDBX_SIG1"
"KDBX_SIG1_FIRST_BYTE"
"KDBX_SIG2_1"
"KDBX_SIG2_2"

  :version
Constants related to identifying the format version of a file:

"KDBX_VERSION_2_0"
"KDBX_VERSION_3_0"
"KDBX_VERSION_3_1"
"KDBX_VERSION_4_0"
"KDBX_VERSION_4_1"
"KDBX_VERSION_OLDEST"
"KDBX_VERSION_LATEST"
"KDBX_VERSION_MAJOR_MASK"
"KDBX_VERSION_MINOR_MASK"

  :header
Constants related to parsing and generating KDBX file headers:

"HEADER_END"
"HEADER_COMMENT"
"HEADER_CIPHER_ID"
"HEADER_COMPRESSION_FLAGS"
"HEADER_MASTER_SEED"
"HEADER_TRANSFORM_SEED"
"HEADER_TRANSFORM_ROUNDS"
"HEADER_ENCRYPTION_IV"
"HEADER_INNER_RANDOM_STREAM_KEY"
"HEADER_STREAM_START_BYTES"
"HEADER_INNER_RANDOM_STREAM_ID"
"HEADER_KDF_PARAMETERS"
"HEADER_PUBLIC_CUSTOM_DATA"

  :compression
Constants related to identifying the compression state of a file:

"COMPRESSION_NONE"
"COMPRESSION_GZIP"

  :cipher
Constants related to ciphers:

"CIPHER_UUID_AES128"
"CIPHER_UUID_AES256"
"CIPHER_UUID_CHACHA20"
"CIPHER_UUID_SALSA20"
"CIPHER_UUID_SERPENT"
"CIPHER_UUID_TWOFISH"

  :random_stream
Constants related to memory protection stream ciphers:

"STREAM_ID_RC4_VARIANT"
    This is insecure and not implemented.

"STREAM_ID_SALSA20"
"STREAM_ID_CHACHA20"
"STREAM_SALSA20_IV"

  :kdf
Constants related to key derivation functions and configuration:

"KDF_UUID_AES"
"KDF_UUID_AES_CHALLENGE_RESPONSE"
    This is what KeePassXC calls "KDF_AES_KDBX4".

"KDF_UUID_ARGON2D"
"KDF_UUID_ARGON2ID"
"KDF_PARAM_UUID"
"KDF_PARAM_AES_ROUNDS"
"KDF_PARAM_AES_SEED"
"KDF_PARAM_ARGON2_SALT"
"KDF_PARAM_ARGON2_PARALLELISM"
"KDF_PARAM_ARGON2_MEMORY"
"KDF_PARAM_ARGON2_ITERATIONS"
"KDF_PARAM_ARGON2_VERSION"
"KDF_PARAM_ARGON2_SECRET"
"KDF_PARAM_ARGON2_ASSOCDATA"
"KDF_DEFAULT_AES_ROUNDS"
"KDF_DEFAULT_ARGON2_ITERATIONS"
"KDF_DEFAULT_ARGON2_MEMORY"
"KDF_DEFAULT_ARGON2_PARALLELISM"
"KDF_DEFAULT_ARGON2_VERSION"

  :variant_map
Constants related to parsing and generating KDBX4 variant maps:

"VMAP_VERSION"
"VMAP_VERSION_MAJOR_MASK"
"VMAP_TYPE_END"
"VMAP_TYPE_UINT32"
"VMAP_TYPE_UINT64"
"VMAP_TYPE_BOOL"
"VMAP_TYPE_INT32"
"VMAP_TYPE_INT64"
"VMAP_TYPE_STRING"
"VMAP_TYPE_BYTEARRAY"

  :inner_header
Constants related to parsing and generating KDBX4 inner headers:

"INNER_HEADER_END"
"INNER_HEADER_INNER_RANDOM_STREAM_ID"
"INNER_HEADER_INNER_RANDOM_STREAM_KEY"
"INNER_HEADER_BINARY"
"INNER_HEADER_BINARY_FLAG_PROTECT"

  :key_file
Constants related to identifying key file types:

"KEY_FILE_TYPE_BINARY"
"KEY_FILE_TYPE_HASHED"
"KEY_FILE_TYPE_HEX"
"KEY_FILE_TYPE_XML"

  :history
Constants for history-related default values:

"HISTORY_DEFAULT_MAX_AGE"
"HISTORY_DEFAULT_MAX_ITEMS"
"HISTORY_DEFAULT_MAX_SIZE"

  :iteration
Constants for searching algorithms.

"ITERATION_IDS" - Iterative deepening search
"ITERATION_BFS" - Breadth-first search
"ITERATION_DFS" - Depth-first search

  :icon
Constants for default icons used by KeePass password safe implementations:

"ICON_PASSWORD"
"ICON_PACKAGE_NETWORK"
"ICON_MESSAGEBOX_WARNING"
"ICON_SERVER"
"ICON_KLIPPER"
"ICON_EDU_LANGUAGES"
"ICON_KCMDF"
"ICON_KATE"
"ICON_SOCKET"
"ICON_IDENTITY"
"ICON_KONTACT"
"ICON_CAMERA"
"ICON_IRKICKFLASH"
"ICON_KGPG_KEY3"
"ICON_LAPTOP_POWER"
"ICON_SCANNER"
"ICON_MOZILLA_FIREBIRD"
"ICON_CDROM_UNMOUNT"
"ICON_DISPLAY"
"ICON_MAIL_GENERIC"
"ICON_MISC"
"ICON_KORGANIZER"
"ICON_ASCII"
"ICON_ICONS"
"ICON_CONNECT_ESTABLISHED"
"ICON_FOLDER_MAIL"
"ICON_FILESAVE"
"ICON_NFS_UNMOUNT"
"ICON_MESSAGE"
"ICON_KGPG_TERM"
"ICON_KONSOLE"
"ICON_FILEPRINT"
"ICON_FSVIEW"
"ICON_RUN"
"ICON_CONFIGURE"
"ICON_KRFB"
"ICON_ARK"
"ICON_KPERCENTAGE"
"ICON_SAMBA_UNMOUNT"
"ICON_HISTORY"
"ICON_MAIL_FIND"
"ICON_VECTORGFX"
"ICON_KCMMEMORY"
"ICON_TRASHCAN_FULL"
"ICON_KNOTES"
"ICON_CANCEL"
"ICON_HELP"
"ICON_KPACKAGE"
"ICON_FOLDER"
"ICON_FOLDER_BLUE_OPEN"
"ICON_FOLDER_TAR"
"ICON_DECRYPTED"
"ICON_ENCRYPTED"
"ICON_APPLY"
"ICON_SIGNATURE"
"ICON_THUMBNAIL"
"ICON_KADDRESSBOOK"
"ICON_VIEW_TEXT"
"ICON_KGPG"
"ICON_PACKAGE_DEVELOPMENT"
"ICON_KFM_HOME"
"ICON_SERVICES"
"ICON_TUX"
"ICON_FEATHER"
"ICON_APPLE"
"ICON_W"
"ICON_MONEY"
"ICON_CERTIFICATE"
"ICON_SMARTPHONE"

  :bool
Boolean values:

"FALSE"
"TRUE"

  :time
Constants related to time:

"TIME_SECONDS_AD1_TO_UNIX_EPOCH"

  :yubikey
Constants related to working with YubiKeys:

"YUBICO_VID"
"YUBIKEY_PID"
"NEO_OTP_PID"
"NEO_OTP_CCID_PID"
"NEO_CCID_PID"
"NEO_U2F_PID"
"NEO_OTP_U2F_PID"
"NEO_U2F_CCID_PID"
"NEO_OTP_U2F_CCID_PID"
"YK4_OTP_PID"
"YK4_U2F_PID"
"YK4_OTP_U2F_PID"
"YK4_CCID_PID"
"YK4_OTP_CCID_PID"
"YK4_U2F_CCID_PID"
"YK4_OTP_U2F_CCID_PID"
"PLUS_U2F_OTP_PID"
"ONLYKEY_VID"
"ONLYKEY_PID"
"YK_EUSBERR"
"YK_EWRONGSIZ"
"YK_EWRITEERR"
"YK_ETIMEOUT"
"YK_ENOKEY"
"YK_EFIRMWARE"
"YK_ENOMEM"
"YK_ENOSTATUS"
"YK_ENOTYETIMPL"
"YK_ECHECKSUM"
"YK_EWOULDBLOCK"
"YK_EINVALIDCMD"
"YK_EMORETHANONE"
"YK_ENODATA"
"CONFIG1_VALID"
"CONFIG2_VALID"
"CONFIG1_TOUCH"
"CONFIG2_TOUCH"
"CONFIG_LED_INV"
"CONFIG_STATUS_MASK"

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.

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.