GithubHelp home page GithubHelp logo

keepass4j's Introduction

keepass4j

KeePass Java API for reading and writing KeePass 1.x (kdb) files. 2.x (kdbx) is planned sometime later.

Since I couldn't find any library that could do that in Java, I had to write one that will suit my needs. All constant declarations (dirty work) and group/entry reading is based on keepass-java-api everything else is new.

Requires JRE 5.0 or newer.

Should work on Android.(untested)

Depends on SHA256 and AES ciphers by Bouncy Castle

  <dependency>
     <groupId>org.bouncycastle</groupId>
     <artifactId>bcprov-jdk15</artifactId>
     <version>1.45</version>
  </dependency>

Acknowledgements:

KeePass: http://keepass.info/ KeePass J2ME: http://www.keepassmobile.com/

keepass4j's People

Contributors

stlhrt avatar

Watchers

 avatar

keepass4j's Issues

Wrong expiration date

What steps will reproduce the problem?
1. Try to access the expirationTime of entry
2.
3.

What is the expected output? What do you see instead?
Same value as in keepass GUI
Wrong date

What version of the product are you using? On what operating system?
0.0.2 and svn on Linux

Please provide any additional information below.

According to the comments in Utils.java de date decoding is incorrect.
Attached is a patch to correct..

Original issue reported on code.google.com by [email protected] on 16 May 2010 at 2:39

Attachments:

Wrong text field size

What steps will reproduce the problem?
1. Access an TextField field
2. Check the last byte, it is the null terminator : 0
3.

What is the expected output? What do you see instead?
The java strings should not have the null byte at end 


What version of the product are you using? On what operating system?
svn r7

Please provide any additional information below.

the attached patch solve the problem

Original issue reported on code.google.com by [email protected] on 16 May 2010 at 3:29

Attachments:

Decryption with random data keyfile fails

What steps will reproduce the problem?

Attempting to open a database protected by a password and a keyfile containing 
64 bytes of random data fails.

What is the expected output? What do you see instead?

Opening a database protected by a password and a keyfile containing 64 bytes of 
hexadecimal data works OK, with 64 bytes of random data I get 

KeePassDataBaseException("Unable to decrypt database.")

What version of the product are you using? On what operating system?

keepass4j: current svn HEAD
Database/Keyfile: I've attached two pairs of database and keyfiles. They were 
generated with keepassx 0.4.3 as present on Debian 6.0 (Squeeze). 

Database: foobarbaz-hexa.kdb    Keyfile: hexa.key    Password: foobarbaz   --> 
OK
Database: foobarbaz-random.kdb  Keyfile: random.key  Password: foobarbaz   --> 
FAIL

Please provide any additional information below.

This could also be an issue caused by keepassx, but I couldn't verify this as I 
don't have access to the original KeePass on Debian yet (it's in the next 
release).

Original issue reported on code.google.com by [email protected] on 7 Jan 2013 at 12:26

Attachments:

UnsupportedDataBaseException - Invalid database version

What steps will reproduce the problem?
1. I try to connect to KDB
2. The API show a Exception with KDB version 30004

What is the expected output? What do you see instead?

pl.sind.keepass.exceptions.UnsupportedDataBaseException: Invalid database 
version 30004. Only 30002 version is supported
    at pl.sind.keepass.kdb.v1.KeePassDataBaseV1.validateHeader(KeePassDataBaseV1.java:219)
    at pl.sind.keepass.kdb.v1.KeePassDataBaseV1.<init>(KeePassDataBaseV1.java:69)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at pl.sind.keepass.kdb.KeePassDataBaseFactory.instantiate(KeePassDataBaseFactory.java:71)
    at pl.sind.keepass.kdb.KeePassDataBaseFactory.loadDataBase(KeePassDataBaseFactory.java:61)
    at pl.sind.keepass.kdb.KeePassDataBaseManager.openDataBase(KeePassDataBaseManager.java:41)
    at pl.sind.keepass.kdb.KeePassDataBaseManager.openDataBase(KeePassDataBaseManager.java:33)
    at test.KeePassReader.main(KeePassReader.java:29)


What version of the product are you using? On what operating system?
keepass4j-0.0.3.jar - Windows 7 32bits


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 14 Jun 2013 at 3:23

Handling passwords as String is not secure

The preferred way of dealing with a password is as char[], not String, so the 
password can be cleared from memory as soon as it has been processed.  See for 
example the text under Security Note at 
http://docs.oracle.com/javase/6/docs/api/java/io/Console.html.

Otherwise, thanks for this product, as it has given me a straightforward way to 
get at a database of password entries.

Original issue reported on code.google.com by [email protected] on 12 Jul 2013 at 2:23

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.