|
5 | 5 | [](https://app.codacy.com/gh/purejava/keepassxc-proxy-access?utm_source=github.com&utm_medium=referral&utm_content=purejava/keepassxc-proxy-access&utm_campaign=Badge_Grade)
|
6 | 6 | [](https://search.maven.org/search?q=g:%22org.purejava%22%20AND%20a:%22keepassxc-proxy-access%22)
|
7 | 7 | [](https://github.com/purejava/keepassxc-proxy-access/blob/master/LICENSE)
|
| 8 | +[](https://www.paypal.com/donate?hosted_button_id=XVX9ZM7WE4ANL) |
8 | 9 |
|
9 | 10 | A Java library to access KeePassXC via its build-in proxy.
|
10 | 11 |
|
| 12 | +# Dependency |
| 13 | +Add `keepassxc-proxy-access` as a dependency to your project. |
| 14 | +```maven |
| 15 | +<dependency> |
| 16 | + <groupId>org.purejava</groupId> |
| 17 | + <artifactId>keepassxc-proxy-access</artifactId> |
| 18 | + <version>0.0.2</version> |
| 19 | +</dependency> |
| 20 | +``` |
| 21 | + |
| 22 | +# Usage |
| 23 | +The library uses the JSON data format to communicate with KeePassXC. The underlying TweetNaCL crypto library provides the crypto_box functionality that is used to set up an encrypted and secure channel for the components to communicate with each other. |
| 24 | + |
| 25 | +It's fast, easy to use and cross-platform. |
| 26 | + |
| 27 | +Examples on how to use the library can be found in the Maven test classes. |
| 28 | + |
| 29 | +You need to establish a connection to KeePassXC first: |
| 30 | +```java |
| 31 | +private KeepassProxyAccess kpa = new KeepassProxyAccess(); |
| 32 | +kpa.connect(); |
| 33 | +kpa.associate(); |
| 34 | +``` |
| 35 | +You'll get an AssociateID and the public key of an IDKeypair created during the initial connection. |
| 36 | +Both pieces of data combined are needed for further connections. As both are public data, there is no need to store them securely. |
| 37 | + |
| 38 | +# keepassxc-protocol |
| 39 | +Communication with KeePassXC happens via the KeePassXC protocol. Currently, the following functionality is implemented: |
| 40 | +* `change-public-keys`: Request for passing public keys from client to server and back. |
| 41 | +* `get-databasehash`: Request for receiving the database hash (SHA256) of the current active database. |
| 42 | +* `associate`: Request for associating a new client with KeePassXC. |
| 43 | +* `test-associate`: Request for testing if the client has been associated with KeePassXC. |
| 44 | +* `generate-password`: Request for generating a password. KeePassXC's settings are used. |
| 45 | +* `get-logins`: Requests for receiving credentials for the current URL match. |
| 46 | +* `set-login`: Request for adding or updating credentials to the database. |
| 47 | +* `lock-database`: Request for locking the database from client. |
| 48 | +* `get-database-groups`: Request to retrieve all database groups together with their groupUuids. |
| 49 | +* `create-new-group`: Request to create a new group for the given name or path. |
| 50 | +* `get-totp`: Request for receiving the current TOTP. |
| 51 | + |
| 52 | +# Donation |
| 53 | +If you like this project, you can give me a cup of coffee :) |
| 54 | + |
| 55 | +[](https://www.paypal.com/donate?hosted_button_id=XVX9ZM7WE4ANL) |
| 56 | + |
11 | 57 | # Copyright
|
12 | 58 | Copyright (C) 2021 Ralph Plawetzki
|
13 | 59 |
|
|
0 commit comments