Keepass v1 DB tool
Project description
What’s this
KeePass version 1 database file access tool that includes access module.
Currently, support search the entries or groups as the command line tool.
How to Use
Example:
% python kptool.py <kdbfilepath> password required kptool> Ent Entry2: pass : entry modified: 2010-10-01 22:01:02 Entry1: url : URL pass : testtest modified: 2010-09-26 13:18:13 kptool> ^D
Building and installation
% python setup.py install
Testing
% python setup.py test
Requirement
Python 2.6 or later
pyCrypto
argparse
KeePassdb module API
- Constructor(kdbfilepath, masterpassword)
Create DB from KeePass DB file path and Master password.
>>> from kptool.keepassdb import keepassdb >>> password = "Hogehoge" >>> k = keepassdb.KeepassDBv1("tests/keepass-test.kdb", password)
- get_groups()
Get groups.
>>> for g in k.get_groups(): ... if ('groups' in g): ... "%s %s in %s" % (g['title'], g['group_id'], g['groups']) ... else: ... "%s %s" % (g['title'], g['group_id']) 'Group1 2877859699' 'SubGroup1 1203768070 in 2877859699' 'Group2 2251441873'
- get_entries()
Get entries. Note: KeepassDB has a history. get_entries() get all entries include history. Since that, entries that have same title may be acquired.
>>> for e in k.get_entries(): ... print "%s %s %s" % (e['title'], e['username'], e['created']) Entry2 entry2 2010-10-01 22:00:51 SubGroup1 gr 2010-10-01 22:00:29 Entry1 test 2010-09-26 13:17:55 日本語です sub 2010-10-01 21:59:33 Meta-Info SYSTEM 2010-10-01 22:01:04
- get_entries_from_groupid(groupid)
Get entries from groupid. Groupid should be Integer.
>>> for e in k.get_entries_from_groupid(2877859699): ... e['title'] 'Entry1' 'Meta-Info'
- find_groups(searchword)
Find groups that has <searchword> in title or id.
>>> for g in k.find_groups("up1"): ... g['title'] 'Group1' 'SubGroup1'
- find_entries(searchword)
Find entries that has <searchword> in title, url, comment or username.
>>> for e in k.find_entries("Ent"): ... e['title'] 'Entry2' 'Entry1'
- clear()
Clears any currently loaded groups and entries in the database.
>>> k.clear() >>> k.get_entries() [] >>> k.get_groups() []
Entry Field Lists
- id:
entry id. String.
- group_id:
group id. Integer.
- icon:
icon Integer.
- title:
title. ASCII or UTF-8
- url:
url
- username:
username
- password:
password
- comment:
comment. ASCII or UTF-8.
- created:
created date. Datetime object.
- modifed:
modified date. Datetime object.
- accessed:
accessed date. Datetime object.
- expires:
expires date. Datetime object. if “never”, shows 2999-12-28 23:59:59.
- bin_desc:
- binary:
Group Field Lists
- group_id:
group id. Integer.
- title:
title
- icon:
icon
- level:
level. start from 0.
- comment:
comment.
BUGS
Only Rijndael is supported.
Only passkeys are supported (no key files).
Only read methods is supported.
TODO
Write methods.
KeePass db version 2 support.
License
GPL version2
Acknowledgement
Knowledge about the KeePass DB v1 format was gleaned from the source code of keepassx-0.4.3 and File::KeePass in the CPAN.
KeePassX 0.4.3 bears the copyright of
Copyright (C) 2005-2008 Tarek Saidi <tarek.saidi@arcor.de> Copyright (C) 2007-2009 Felix Geyer <debfx-keepassx {at} fobos.de>
File::KeePass bears the copyright of
Paul Seamons <paul at seamons dot com>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file kptool-0.1dev.tar.gz
.
File metadata
- Download URL: kptool-0.1dev.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59edf95941ff381498f97ebaa5bb19a2a8fdb8f61b2e7ba9efabdf31ee53a715 |
|
MD5 | 5b439d0e5dacbed3191ee79dc80f96b1 |
|
BLAKE2b-256 | dccbbb4f9049b8032aeb1564d3fb083a04abfe4d72353519b692f7910b1a2f7d |