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:

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.

: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.