* Added support for 32-bit perls.
* API change: Rename iterator accessors on group to all_*.
* Declared perl 5.10.0 prerequisite. I have no intention of supporting 5.8 or earlier.
* Fixed more other broken tests -- thanks CPAN testers.
+0.902 2022-05-03 19:18:06-0600
+
* Added support for 32-bit perls.
* API change: Rename iterator accessors on group to all_*.
* Declared perl 5.10.0 prerequisite. I have no intention of supporting 5.8 or earlier.
* Added support for 32-bit perls.
* API change: Rename iterator accessors on group to all_*.
* Declared perl 5.10.0 prerequisite. I have no intention of supporting 5.8 or earlier.
# SYNOPSIS
```perl
use File::KDBX;
# SYNOPSIS
```perl
use File::KDBX;
+# Create a new database from scratch
my $kdbx = File::KDBX->new;
my $kdbx = File::KDBX->new;
+# Add some objects to the database
my $group = $kdbx->add_group(
name => 'Passwords',
);
my $group = $kdbx->add_group(
name => 'Passwords',
);
my $entry = $group->add_entry(
title => 'My Bank',
my $entry = $group->add_entry(
title => 'My Bank',
+ username => 'mreynolds',
+# Save the database to the filesystem
$kdbx->dump_file('passwords.kdbx', 'M@st3rP@ssw0rd!');
$kdbx->dump_file('passwords.kdbx', 'M@st3rP@ssw0rd!');
-$kdbx = File::KDBX->load_file('passwords.kdbx', 'M@st3rP@ssw0rd!');
+# Load the database from the filesystem into a new database instance
+my $kdbx2 = File::KDBX->load_file('passwords.kdbx', 'M@st3rP@ssw0rd!');
-$kdbx->entries->each(sub {
+# Iterate over database entries, print entry titles
+$kdbx2->entries->each(sub {
my ($entry) = @_;
say 'Entry: ', $entry->title;
});
my ($entry) = @_;
say 'Entry: ', $entry->title;
});
The UUID of a cipher used to encrypt the database when stored as a file.
The UUID of a cipher used to encrypt the database when stored as a file.
-See ["File::KDBX::Cipher"](#file-kdbx-cipher).
+See [File::KDBX::Cipher](https://metacpan.org/pod/File%3A%3AKDBX%3A%3ACipher).
Number of days until the agent should prompt to force changing the master key.
Note: This is purely advisory. It is up to the individual agent software to actually enforce it.
Number of days until the agent should prompt to force changing the master key.
Note: This is purely advisory. It is up to the individual agent software to actually enforce it.
-`File::KDBX` does NOT enforce it.
+**File::KDBX** does NOT enforce it.
least `KDBX_VERSION_4_0` (i.e. `0x00040000`) because Argon2 was introduced with KDBX4.
This method never returns less than `KDBX_VERSION_3_1` (i.e. `0x00030001`). That file version is so
least `KDBX_VERSION_4_0` (i.e. `0x00040000`) because Argon2 was introduced with KDBX4.
This method never returns less than `KDBX_VERSION_3_1` (i.e. `0x00030001`). That file version is so
-ubiquitious and well-supported, there are seldom reasons to dump in a lesser format nowadays.
+ubiquitous and well-supported, there are seldom reasons to dump in a lesser format nowadays.
**WARNING:** If you dump a database with a minimum version higher than the current ["version"](#version), the dumper will
typically issue a warning and automatically upgrade the database. This seems like the safest behavior in order
**WARNING:** If you dump a database with a minimum version higher than the current ["version"](#version), the dumper will
typically issue a warning and automatically upgrade the database. This seems like the safest behavior in order
Iterators are the built-in way to navigate or walk the database tree. You get an iterator from ["entries"](#entries),
["groups"](#groups) and ["objects"](#objects). You can specify the search algorithm to iterate over objects in different orders
Iterators are the built-in way to navigate or walk the database tree. You get an iterator from ["entries"](#entries),
["groups"](#groups) and ["objects"](#objects). You can specify the search algorithm to iterate over objects in different orders
-using the `algorith` option, which can be one of these [constants](https://metacpan.org/pod/File%3A%3AKDBX%3A%3AConstants#iteration):
+using the `algorithm` option, which can be one of these [constants](https://metacpan.org/pod/File%3A%3AKDBX%3A%3AConstants#iteration):
- `ITERATION_IDS` - Iterative deepening search (default)
- `ITERATION_DFS` - Depth-first search
- `ITERATION_IDS` - Iterative deepening search (default)
- `ITERATION_DFS` - Depth-first search
- `PERL_ONLY` - Do not use [File::KDBX::XS](https://metacpan.org/pod/File%3A%3AKDBX%3A%3AXS) if true (default: false)
- `NO_FORK` - Do not fork if true (default: false)
- `PERL_ONLY` - Do not use [File::KDBX::XS](https://metacpan.org/pod/File%3A%3AKDBX%3A%3AXS) if true (default: false)
- `NO_FORK` - Do not fork if true (default: false)
-# CAVEATS
-
-Some features (e.g. parsing) require 64-bit perl. It should be possible and actually pretty easy to make it
-work using [Math::BigInt](https://metacpan.org/pod/Math%3A%3ABigInt), but I need to build a 32-bit perl in order to test it and frankly I'm still
-figuring out how. I'm sure it's simple so I'll mark this one "TODO", but for now an exception will be thrown
-when trying to use such features with undersized IVs.
-
# SEE ALSO
- [KeePass Password Safe](https://keepass.info/) - The original KeePass
# SEE ALSO
- [KeePass Password Safe](https://keepass.info/) - The original KeePass