Skip to content

KeePassSubsetExport is a KeePass2 plugin which automatically exports a subset of entries to new databases

License

Notifications You must be signed in to change notification settings

lukeIam/KeePassSubsetExport

Repository files navigation

KeePassSubsetExport

KeePassSubsetExport is a KeePass2 plugin which automatically exports a subset of entries (tag based) to new databases with different keys.

Build Status Quality Status Coverage Latest release Github All Releases License

Why?

I'm using the plugin to export some entries of my main database to another database which is synced to my mobile devices. Additionally, I'm sharing some other entries with my family.

Disclaimer

This is my first KeePass plugin and I tried not to compromise security - but I can't guarantee it.
So use this plugin at your own risk.
If you have more experience with KeePass plugins, I would be very grateful if you have a look on the code.

How to install?

  • Download the latest release from here
  • Place KeePassSubsetExport.plgx in the KeePass program directory
  • Start KeePass and the plugin is automatically loaded (check the Plugin menu)

How to use?

  • Open the database containing the entries that should be exported
  • Create a folder SubsetExportSettings under the root folder
  • For each export job (target database) create a new entry:
Setting Description Optional Example
Title Name of the job No SubsetExport_MobilePhone
Password The password for the target database Yes, if SubsetExport_KeyFilePath is set SecurePW!
Expires If the entry is expired the job is disabled and won't be executed - -
SubsetExport_KeyFilePath
[string field]
Path to a key file Yes, if Password is set C:\keys\mobile.key
SubsetExport_TargetFilePath
[string field]
Path to the target database.
(Absolute, or relative to source database parent folder.) (, to delimit multiple target dbs)
No C:\sync\mobile.kdbx
or
mobile.kdbx
or
..\mobile.kdbx
SubsetExport_Tag
[string field]
Tag(s) for filtering (, to delimit multiple tags - , is not allowed in tag names) Yes, if SubsetExport_Group is set MobileSync
SubsetExport_Group
[string field]
Group(s) for filtering (, to delimit multiple groups - , is not allowed in group names) Yes, if SubsetExport_Tag is set MobileGroup
SubsetExport_KeyTransformationRounds
[string field]
Overwrite the number of KeyTransformationRounds for AesKdf Yes 10000000
SubsetExport_RootGroupName
[string field]
Overwrite the name of the root group in the target database Yes NewRootGroupName
SubsetExport_FlatExport
[string field]
If True no groups will be created in the target database (flat export) Yes (defaults to False) True
SubsetExport_OverrideTargetDatabase
[string field]
If True the traget database will be overriden, otherwise the enries will added to the target database Yes (defaults to True) True
SubsetExport_OverrideEntryOnlyNewer
[string field]
If True only newer entries will overrides older entries (OverrideTargetDatabase is False) Yes (defaults to False) True
SubsetExport_OverrideEntireGroup
[string field]
If True will override entire group in target Database (OverrideTargetDatabase is False) Yes (defaults to False) True
SubsetExport_Argon2ParamIterations
[string field]
Overwrite the number of iterations of Argon2Kdf Yes 2
SubsetExport_Argon2ParamMemory
[string field]
Overwrite the memory parameter of Argon2Kdf Yes 1048576 = 1MB
SubsetExport_Argon2ParamParallelism
[string field]
Overwrite the parallelism parameter of Argon2Kdf
Typical parallelism values should be less or equal than to two times the number of available processor cores (less if increasing does not result in a performance increase)
Yes 2
SubsetExport_ExportUserAndPassOnly
[string field]
If True only the username and password will be exported to the target database. Yes (defaults to False) True
  • Every time the (source) database is saved the target databases will be recreated automatically
  • To disable an export job temporarily just move its entry to another folder
  • If both SubsetExport_Tag and SubsetExport_Group are set, only entries matching both will be exported

create

KeePassSubsetExport vs Partial KeePass Database Export

I started developing KeePassSubsetExport before Partial KeePass Database Export was published, so the basic functionality is similar.
But KeePassSubsetExport has some advantages:

  • The folder structure is copied to the target database
  • Multiple export jobs are supported
  • Key-File protection of the target databases is supported
  • KeyTransformationRounds of the target database is set to the number of the source database (can be overwritten)
  • Exports can be limited to a folder (can be combined with a tag filter)
  • Field references support (in the export job password field and the following entry fields: Title, Username, Url and Password)