The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

File::KDBX::Dumper - Write KDBX files

VERSION

version 0.906

ATTRIBUTES

kdbx

    $kdbx = $dumper->kdbx;
    $dumper->kdbx($kdbx);

Get or set the File::KDBX instance with the data to be dumped.

format

Get the file format used for writing the database. Normally the format is auto-detected from the database, which is the safest choice. Possible formats:

  • V3

  • V4

  • KDB

  • XML (only used if explicitly set)

  • Raw (only used if explicitly set)

WARNING: There is a potential for data loss if you explicitly use a format that doesn't support the features used by the KDBX database being written.

The most common reason to explicitly specify the file format is to save a database as an unencrypted XML file:

    $kdbx->dump_file('database.xml', format => 'XML');

inner_format

Get the format of the data inside the KDBX envelope. This only applies to V3 and V4 formats. Possible formats:

  • XML - Write the database groups and entries as XML (default)

  • Raw - Write "raw" in File::KDBX instead of the actual database contents

allow_upgrade

    $bool = $dumper->allow_upgrade;

Whether or not to allow implicitly upgrading a database to a newer version. When enabled, in order to avoid potential data loss, the database can be upgraded as-needed in cases where the database file format version is too low to support new features being used.

The default is to allow upgrading.

randomize_seeds

    $bool = $dumper->randomize_seeds;

Whether or not to randomize seeds in a database before writing. The default is to randomize seeds, and there's not often a good reason not to do so. If disabled, the seeds associated with the KDBX database will be used as they are.

METHODS

new

    $dumper = File::KDBX::Dumper->new(%attributes);

Construct a new File::KDBX::Dumper.

init

    $dumper = $dumper->init(%attributes);

Initialize a File::KDBX::Dumper with a new set of attributes.

This is called by "new".

reset

    $dumper = $dumper->reset;

Set a File::KDBX::Dumper to a blank state, ready to dump another KDBX file.

dump

    $dumper->dump(\$string, %options);
    $dumper->dump(\$string, $key, %options);
    $dumper->dump(*IO, %options);
    $dumper->dump(*IO, $key, %options);
    $dumper->dump($filepath, %options);
    $dumper->dump($filepath, $key, %options);

Dump a KDBX file.

The $key is either a File::KDBX::Key or a primitive castable to a Key object. Available options:

  • kdbx - Database to dump (default: value of "kdbx")

  • key - Alternative way to specify $key (default: value of "File::KDBX/key")

Other options are supported depending on the first argument. See "dump_string", "dump_file" and "dump_handle".

dump_string

    $dumper->dump_string(\$string, %options);
    $dumper->dump_string(\$string, $key, %options);
    \$string = $dumper->dump_string(%options);
    \$string = $dumper->dump_string($key, %options);

Dump a KDBX file to a string / memory buffer. Available options:

  • kdbx - Database to dump (default: value of "kdbx")

  • key - Alternative way to specify $key (default: value of "File::KDBX/key")

dump_file

    $dumper->dump_file($filepath, %options);
    $dumper->dump_file($filepath, $key, %options);

Dump a KDBX file to a filesystem. Available options:

dump_handle

    $dumper->dump_handle($fh, %options);
    $dumper->dump_handle(*IO, $key, %options);
    $dumper->dump_handle($fh, %options);
    $dumper->dump_handle(*IO, $key, %options);

Dump a KDBX file to an output stream / file handle. Available options:

  • kdbx - Database to dump (default: value of "kdbx")

  • key - Alternative way to specify $key (default: value of "File::KDBX/key")

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.