Git Product home page Git Product logo

keepassxc-proxy-access's Introduction

keepassxc-proxy-access

keepassxc-proxy-access

Publish to Maven Central Codacy Badge Maven Central License Donate

A Java library to access KeePassXC via its build-in proxy. Requires KeePassXC 2.6.0 or newer.

Dependency

Add keepassxc-proxy-access as a dependency to your project.

<dependency>
    <groupId>org.purejava</groupId>
    <artifactId>keepassxc-proxy-access</artifactId>
    <version>1.2.5</version>
</dependency>

Usage

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.

It's fast, easy to use and cross-platform.

Examples on how to use the library can be found in the Maven test classes.

You need to establish a connection to KeePassXC first:

var kpa = new KeepassProxyAccess();
kpa.connect();
kpa.associate();

You'll get an AssociateID and the public key of an IDKeypair created during the initial connection. Both pieces of data combined are needed for further connections. As both are public data, there is no need to store them securely.

Next steps:

    var id = kpa.getAssociateId();
    var keyPair = kpa.getIdKeyPairPublicKey();

    var idKeyMap = List.of(Map.of("id", id, "key", keyPair)); // java 21
    var logins = kpa.getLogins("https://login.url.com/", "", true, idKeyMap);
    // System.out.println(logins) // nested map with credentials

keepassxc-protocol

Communication with KeePassXC happens via the KeePassXC protocol. Currently, the following functionality is implemented:

  • change-public-keys: Request for passing public keys from client to server and back.
  • get-databasehash: Request for receiving the database hash (SHA256) of the current active database.
  • associate: Request for associating a new client with KeePassXC.
  • test-associate: Request for testing if the client has been associated with KeePassXC.
  • generate-password: Request for generating a password. KeePassXC's settings are used.
  • get-logins: Requests for receiving credentials for the current URL match.
  • set-login: Request for adding or updating credentials to the database.
  • lock-database: Request for locking the database from client.
  • get-database-groups: Request to retrieve all database groups together with their groupUuids.
  • create-new-group: Request to create a new group for the given name or path.
  • get-totp: Request for receiving the current TOTP.
  • delete-entry: Request for deleting an entry in the database, identified by its uuid (KeePassXC 2.7.0 and newer).
  • request-autotype: Request autotype from the KeePassXC database (KeePassXC 2.7.0 and newer).
  • passkeys-get: Request for Passkeys authentication (KeePassXC 2.7.7 and newer).
  • passkeys-register: Request for Passkeys credential registration (KeePassXC 2.7.7 and newer).
  • database-locked: A signal from KeePassXC, the current active database is locked.
  • database-unlocked: A signal from KeePassXC, the current active database is unlocked.

Donation

If you like this project, you can give me a cup of coffee :)

paypal

Copyright

Copyright (C) 2021-2024 Ralph Plawetzki

The keepassxc-proxy-access logo is based on an ICONFINDER logo that is published under the Creative Commons Attribution 3.0 Unported licence (CC BY 3.0). I modified the icon to my needs by changing the interior and adding the KeePassXC logo.

The KeePassXC logo is Copyright (C) of https://keepassxc.org/

keepassxc-proxy-access's People

Contributors

causalnet avatar codacy-badger avatar dependabot[bot] avatar lkwg82 avatar purejava avatar realpixelcode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

keepassxc-proxy-access's Issues

Access KeePassXC installed as a snap or a Flatpak package

Please agree to the following

Summary

Today, keepassxc-proxy-access cannot access KeePassXC's proxy, as Flatpak and snap use different $XDG_RUNTIME_DIRs

Motivation

KeePassXC can be installed as a snap package and is also available as a Flatpak package.
Both variants use a different $XDG_RUNTIME_DIR, due to the nature of sandboxed applications.

As keepassxc-proxy-access looks up a general Linux $XDG_RUNTIME_DIR at start-up, this needs to be adjusted to work for snap and Flatpak too.

private String getSocketPath() {
if (SystemUtils.IS_OS_LINUX) {
var path = System.getenv("XDG_RUNTIME_DIR");
if (null == path) path = System.getenv("TMPDIR");
return (null == path) ? "/tmp" : path;
}
if (SystemUtils.IS_OS_MAC_OSX) {
return System.getenv("TMPDIR");
} else {
// unknown OS
return "-";
}
}

Considered Alternatives

No response

Anything else?

KeePassXC installed as Flatpak package:
https://github.com/flathub/org.keepassxc.KeePassXC/blob/83d18532ed41779b1cc0c2861807f3a632bd807a/patch/keepassxc/0003-Flatpak-Support-KeePassXC-Browser-integration.patch#L9-L10

KeePassXC installed as snap package:
https://github.com/keepassxreboot/keepassxc/blob/develop/snap/snapcraft.yaml

Hints on how snap handles the $XDG_RUNTIME_DIR:
https://forum.snapcraft.io/t/rethinking-how-we-handle-xdg-runtime-dir/22223/3

Cannot close connection to KeePassXC

Please agree to the following

Summary

After connecting the connection cannot be closed.

What software is involved?

  • Operating System: Linux Mint 20.3 Cinnamon
  • keepassxc-proxy-access: 1.1.1
  • KeePassXC: 2.7.1
  • Eclipse: 2021-12
  • Java: 17

Steps to Reproduce

  1. Create a new KeepassProxyAccess
  2. Connect
KeepassProxyAccess kpa = new KeepassProxyAccess();
kpa.connect();

Expected Behavior

Option to close the connection or as described in the code

The closing of the connection is handled automatically.

Actual Behavior

Program runs and the connection is never closed. I don't know when this connection should be closed, had a program running for ten minutes and nothing happened.

Reproducibility

Always

Relevant Log Output

No response

Anything else?

Please let me know if you need more information. Great project and thanks a lot for your effort.

[WindowsConnection] No connection if user is local

Hello,

We have found a new issue related to the library.
We implemented this library and noticed that only one colleague could not use our implementation. We looked further into the problem and maybe found out the issue. We compared their system's pipes with the ones from another colleague and noticed that their pipes looked a little bit different at the end:

Colleague René Kaufmann:
\\.\\pipe\\org.keepassxc.KeePassXC.BrowserServer_Ren� Kaufmann (lokal)
Colleague Christian Mustermann:
\\.\\pipe\\org.keepassxc.KeePassXC.BrowserServer_christian.mustermann

At first we thought it was related with the "é", represented with the question mark in the pipe, but then looking further into your implementation, we changed our mind and we currently think it is related with the "(lokal)" part of the pipe, as we suppose that the method "System.getenv("USERNAME")" returns "Ren� Kaufmann". We haven't tested if the method really returns that value.

What do you think it could be the problem? Maybe what we mean or something else?
Looking forward to reading from you.

I've marked the part of the code that calls the pipe:
https://github.com/purejava/keepassxc-proxy-access/blob/c5394137e45895894e7ebb3c7814f752027371a9/src/main/java/org/keepassxc/WindowsConnection.java#L40C99-L40C99

Disclaimer: the surname of both colleagues was changed in order to protect their privacy.

Have a great weekend.

Kind regards from Rostock

Nonce increment incorrect when multiple bytes need changing

Please agree to the following

Summary

Every so often, calls to keepassxc get stuck, which seems to be caused by nonce increment code not matching keepassxc's incremented nonces when multiple bytes need to be incremented

What software is involved?

KeePassXC 2.7.4
Reproduced bug on both Windows and Linux OSes.

Steps to Reproduce

Keep making KeepassXC calls, such as Connection.getLogins() although it can happen with any call that requires a response that needs incremented nonce matching. Most will work, but about 1 in 256 will get stuck and block forever. Debugging it, this seemed to be due to the nonce of KeepassXC's response not matching what Connection.incrementNonce() has calculated it should be.

This happens when the last nonce byte rolls over from 255 to 0. Proxy access's increment code only increments the last byte, but KeepassXC's will increment the next byte (and so on) in this case.

Expected Behavior

Nonce should match and call should work every time.

Actual Behavior

Occasionally calls get stuck and block forever.

Reproducibility

Intermittent

Relevant Log Output

No response

Anything else?

No response

Cryptomator UI not showing up when automounting multiple vaults

Please agree to the following

Summary

Cryptomator UI not showing up when automounting vaults

What software is involved?

  • Operating System: Arch
  • Cryptomator: 1.6.7 (aur)
  • Java: java-17-temurin (also tested with java-17-amazon-corretto)
  • KeepassXC: 2.7.0

Steps to Reproduce

  1. Create two (or more) vaults & store their respective passwords via the plugin in keepassxc
  2. Set the option to unlock vaults after startup (could also be done via settings.json) for at least two vaults
  3. Start Cryptomator

Expected Behavior

Cryptomator should start with vaults unlocked if they are selected for automount and the UI should be usable

Actual Behavior

The behavior is not consistent.
Often this will be the case:

  • One vault is unlocked but the UI is not showing.
  • Tray icon is loaded. The menu of the tray icon is reacting/showing but I cannot use any of the functions (i.e. lock/unlock anything)

Some other behaviors I have noticed while trying to pinpoint the cause of the problems:

  • One vault got unlocked but although the password of the second vault is in the database I was prompted to input the passphrase again
    • Of course I have searched for the vaults password in the database and I found two identical entries, that were stored by this plugin. I am not sure how this has happened and this might also be just an error of how I was using the plugin. Just wanted to mention this, since it might not be related to this issue
  • I was prompted to input a name for the association each time starting cryptomator

Reproducibility

Always

Relevant Log Output

No response

Anything else?

I have also played around a bit with the possibility of not explicitly locking the vaults before exiting cryptomator, although I cannot imagine that this would have any impact on the next startup or the database association of this plugin/cryptomator.
It feels somewhat non-determinsitic/non-reproducable ... like the behavior is changing by slight variations of vault/cryptomator usage.

Library only works if browser integration is enabled?

Please agree to the following

Summary

It appears that this library only works if the browser integration is enabled.

What software is involved?

  • Operating System: Windows 10
  • Operating System: Linux Mint 21.1 (tested on this system too)
  • KeePassXC: 2.7.4
  • keepassxc-proxy-access: 1.2.1

Steps to Reproduce

  1. Install a new instance of KeePassXC
  2. Open the database but do not change any settings
    2.1. Maybe check if in the database settings (Database -> Database settings -> Browser integration is disabled as it should show a banner OR Tools -> Settings -> Browser Integration and check if the first box (Enable browser integration) is unticked).
  3. Try to use this library

Expected Behavior

Library should connect without any problems.

Actual Behavior

(all other steps above in "Steps to Reproduce")
4. The connect method should not work and therefore nothing else

Reproducibility

Always

Relevant Log Output

No response

Anything else?

I don't know if this can really be fixed. Probably the best practice is to add it to the readme and troubleshoot.

Can't find the password for vault id start with "-"

Please agree to the following

Summary

The cryptomator's vault id starts with hyphen won't be able to locate the saved password in Keepass

What software is involved?

  • Operating System: Ubuntu 22.04.2 LTS
  • Cryptomator: 1.6.17
  • keepassxc-cryptomator-1.2.1.jar
  • KeePassXC: 2.6.6 (ubuntu official package)

Steps to Reproduce

Have no idea how to reproduce the cryptomator's vault ID with hyphen in the beginning. (-Ucq0zYwVtth)

But when I remove the vault, and successfully import it again to Cryptomator with new ID (tIcNZ-5GLXQ_), everything is normal.

Expected Behavior

The saved vault would be opened successfully

Actual Behavior

The saved vault can't auto-open, it would display the form to enter password even the new record was already successfully created in Keepass

Reproducibility

Always

Relevant Log Output

11:00:33.703 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -Ucq0zYwVtth
11:00:38.109 [App Scheduled Executor 02] INFO  o.c.common.settings.SettingsProvider - Settings saved to /home/abc/.config/Cryptomator/settings.json
11:01:19.874 [JavaFX Application Thread] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, No logins found
11:01:19.875 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -Ucq0zYwVtth
11:01:35.608 [App Background Thread 017] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, No logins found
11:01:35.715 [App Background Thread 017] INFO  o.p.i.keychain.KeePassXCAccess - Password successfully stored for vault -Ucq0zYwVtth
11:01:35.717 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'somevault' succeeded.
11:02:56.325 [fuseMount-6-main] INFO  org.cryptomator.common.vaults.Vault - Unmounted vault 'somevault'
11:02:56.333 [JavaFX Application Thread] INFO  o.cryptomator.ui.lock.LockWorkflow - Lock of somevault succeeded.
11:02:57.418 [JavaFX Application Thread] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, No logins found
11:02:57.418 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -Ucq0zYwVtth
11:03:12.762 [JavaFX Application Thread] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, No logins found
11:03:12.763 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -Ucq0zYwVtth
11:03:22.963 [App Background Thread 020] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, No logins found
11:03:23.067 [App Background Thread 020] INFO  o.p.i.keychain.KeePassXCAccess - Password successfully stored for vault -Ucq0zYwVtth
11:03:23.068 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'somevault' succeeded.
11:03:58.879 [fuseMount-7-main] INFO  org.cryptomator.common.vaults.Vault - Unmounted vault 'somevault'
11:03:58.889 [JavaFX Application Thread] INFO  o.cryptomator.ui.lock.LockWorkflow - Lock of somevault succeeded.

Anything else?

The new created record in KeepassXC is:

  • Having error in URL field
  • The tittle is empty.

image

Invalid character in vault ID/URL

Please agree to the following

Summary

When a password is stored in KeePassXC, if its URL contains an "invalid" character (such as a dash), it cannot be recovered

What software is involved?

  • Operating System: Windows 11 22H2
  • KeePassXC: 2.7.4
  • Cryptomator: 1.7.1
  • KeePassXC-Cryptomator: 1.2.1

Steps to Reproduce

/!\ Does not work with all vaults, but happens 100% of the time with an affected vault

  1. Unlock a vault in Cryptomator with the "remember password" checkbox
  2. Watch the entry appear in KeePassXC : the entry title is empty, the entry URL is considered invalid (highlighted in red) by KeePassXC
  3. Lock the vault
  4. Unlock the vault

Expected Behavior

The vault is unlocked automatically

Actual Behavior

Cryptomator asks for the password again

Reproducibility

Always

Relevant Log Output

18:10:49.898 [JavaFX Application Thread] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, Aucun identifiant n’a été trouvé
18:10:49.899 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -E2Q6y1fD4Kd
18:10:50.942 [JavaFX Application Thread] DEBUG o.c.common.vaults.VaultStats - stop recording stats
18:10:50.943 [JavaFX Application Thread] DEBUG o.c.ui.fxapp.FxApplicationTerminator - Disabling sudden termination
18:10:50.945 [JavaFX Application Thread] DEBUG o.c.ui.fxapp.FxApplicationWindows - Start unlock workflow for VAULTNAME
18:10:51.356 [JavaFX Application Thread] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, Aucun identifiant n’a été trouvé
18:10:51.356 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -E2Q6y1fD4Kd
18:10:51.358 [JavaFX Application Thread] DEBUG o.cryptomator.common.CommonsModule - Starting App Background Thread 003
18:10:55.407 [JavaFX Application Thread] TRACE o.c.u.k.m.PassphraseEntryController - UnlockController.unlock()
18:10:55.555 [App Background Thread 003] DEBUG o.c.cryptofs.common.BackupHelper - Verified backup file: VAULTPATH\masterkey.cryptomator.C1D4A758.bkup
18:10:55.557 [App Background Thread 003] DEBUG o.c.cryptofs.common.BackupHelper - Verified backup file: VAULTPATH\vault.cryptomator.3982F148.bkup
18:10:55.566 [App Background Thread 003] DEBUG o.cryptomator.cryptofs.ReadonlyFlag - Vault opened for read and write.
18:10:55.683 [jfuse-main-0] TRACE o.c.frontend.fuse.ReadOnlyAdapter - statfs / (72174891008 / 1800358850560)
18:10:55.690 [jfuse-main-0] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr / (lastModifiedTime: 2023-03-04T16:51:27.79831Z, lastAccessTime: 2023-03-04T17:10:55.5638819Z, creationTime: 2023-01-14T13:45:35.3043042Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 4096, fileKey: null)
18:10:55.692 [jfuse-main-0] TRACE o.c.frontend.fuse.ReadOnlyAdapter - readlink / failed, node not found or not a symlink
18:10:55.694 [jfuse-main-0] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /. failed, node not found
18:10:55.879 [Thread-33] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /jfuse_mount_probe failed, node not found
18:10:56.286 [App Background Thread 003] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, Aucun identifiant n’a été trouvé
18:10:56.389 [App Background Thread 003] INFO  o.p.i.keychain.KeePassXCAccess - Password successfully stored for vault -E2Q6y1fD4Kd
18:10:56.390 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'VAULTNAME' succeeded.
18:10:56.391 [JavaFX Application Thread] DEBUG o.c.common.vaults.VaultStats - start recording stats
18:10:56.401 [JavaFX Application Thread] DEBUG o.cryptomator.common.CommonsModule - Starting App Background Thread 004
18:10:57.401 [JavaFX Application Thread] DEBUG o.cryptomator.common.CommonsModule - Starting App Background Thread 005
18:10:58.401 [JavaFX Application Thread] DEBUG o.cryptomator.common.CommonsModule - Starting App Background Thread 006
18:10:58.963 [JavaFX Application Thread] DEBUG o.c.common.vaults.VaultStats - stop recording stats
18:10:58.965 [JavaFX Application Thread] DEBUG o.c.ui.fxapp.FxApplicationWindows - Start lock workflow for VAULTNAME
18:10:58.968 [App Background Thread 006] TRACE org.cryptomator.common.vaults.Vault - Trying to close associated CryptoFS...
18:10:58.969 [App Background Thread 006] INFO  org.cryptomator.common.vaults.Vault - Locked vault 'VAULTNAME'
18:10:58.969 [JavaFX Application Thread] INFO  o.cryptomator.ui.lock.LockWorkflow - Lock of VAULTNAME succeeded.
18:10:58.969 [JavaFX Application Thread] DEBUG o.c.common.vaults.VaultStats - stop recording stats
18:10:58.970 [JavaFX Application Thread] DEBUG o.c.ui.fxapp.FxApplicationTerminator - Enabling sudden termination
18:10:59.796 [JavaFX Application Thread] DEBUG o.c.common.vaults.VaultStats - stop recording stats
18:10:59.797 [JavaFX Application Thread] DEBUG o.c.ui.fxapp.FxApplicationTerminator - Disabling sudden termination
18:10:59.799 [JavaFX Application Thread] DEBUG o.c.ui.fxapp.FxApplicationWindows - Start unlock workflow for VAULTNAME
18:11:00.203 [JavaFX Application Thread] INFO  org.purejava.KeepassProxyAccess - org.purejava.KeepassProxyAccessException: ErrorCode: 15, Aucun identifiant n’a été trouvé
18:11:00.204 [JavaFX Application Thread] INFO  o.p.i.keychain.KeePassXCAccess - No password found for vault -E2Q6y1fD4Kd
18:11:02.541 [JavaFX Application Thread] DEBUG org.cryptomator.logging.DebugMode - Debug mode disabled

Anything else?

KeePassXC entry

Only one of my numerous vaults is affected, I would rather not send the masterkey file, and I guess the logs are enough to isolate the error (I censored the vault name/path, but I left the invalid ID/URL)
The issue is not a blocking one: I created a new vault and transferred all my data from the affected one to the new one; but I guess the process generating that URL could be fixed nonetheless.

KeepassXC 2.4.3 is not compatible with this library

Hello,

I don't if this is supposed to be a bug, that is why I didn't use the template.

We noticed that this library is not compatible with KeePassXC 2.4.3, the latest version from the original repository from Linux Mint 20.3 (e.g.).
We found that that the reason is just the string PROXY_NAME, found in the class Connection.java. You use:

protected final String PROXY_NAME          = "org.keepassxc.KeePassXC.BrowserServer";

However in this version, this is not compatible. The proxy name in that version is:

protected final String PROXY_NAME          = "kpxc_server";

I know that the latest available version in the Ubuntu repository for the latest LTS (22.04) is KeePassXC 2.6.6, however I cannot test if this library is compatible with it.

In some methods you explicitly write, that they are only compatible with some versions (e.g. delete-entry and request-autotype), but I couldn't find any information which versions are compatible with the library.

Could you please add that information (something like "compatible with 2.7.0 and newer") or maybe update the code in order to make it compatible with older versions?

Thank you!

Reading messages for generate-password request is not robust enough

Please agree to the following

Summary

In case multiple messages are returned at once by the KeePassXC proxy, keepassxc-proxy-access does not distinguish clearly between them

What software is involved?

  • KeePassXC - 2.7.0-snapshot
  • keepassxc-cryptomator-1.0.1.jar

Steps to Reproduce

  1. connect
  2. associate
  3. send the generate-password request and press Apply password in the KeePassXC password generator popup

Expected Behavior

keepassxc-proxy-access should process each returned message separately

Actual Behavior

keepassxc-proxy-access does not distinguish clearly between the returned messages, reads two or more messages at once and processes these as one message

Reproducibility

Intermittent

Relevant Log Output

[main] TRACE org.keepassxc.Connection - Send - encrypting the following message: {"action":"generate-password","clientID":"HXkLwnQ7wFpM5SwCrvnbwZXBEBJ2L410"}
[main] TRACE org.keepassxc.LinuxMacConnection - Sending message: {"action":"generate-password","clientID":"HXkLwnQ7wFpM5SwCrvnbwZXBEBJ2L410","message":"qhhti1eH6I1bIyi+qbF7310QTTaNJQnk+XMuS9Sx3N4CSAJA2dvll+wUAypbU5jD00Novu/Fq9FtqqD9cdb06fA1rkZVr7oATq4eIruGKYkig1iMrel5JYCwQeY=","nonce":"/bKDHxbAklMKhei1+QHOVD1hmJYB7wTk"}
[pool-1-thread-1] TRACE org.keepassxc.LinuxMacConnection - Reading message: {}
[pool-1-thread-2] TRACE org.keepassxc.Connection - KeePassXC send an empty response: {}
[pool-3-thread-1] DEBUG org.purejava.KeepassProxyAccess - Attempting to save credentials
[pool-3-thread-1] DEBUG org.purejava.KeepassProxyAccess - Credentials saved
[pool-1-thread-1] TRACE org.keepassxc.LinuxMacConnection - Reading message: {"action":"generate-password","message":"n4aSiH6byrgeZVixT6TnQpfD8unZ2C/SOmWgtkI9VRR3d73FMz0I40+ufFFV7DkuwQGDZ+uHvoeV4ipMrOsqhB/gl3gi+1Q2XPlppojpceruHPgjQPMZvB4OPi1lJ5xusEF+uNkZV75V8L8azyrogKQ1efBNEN4sKaKmU3S2uDaQtUkHhmtx9BOnonqY5tQ6UotM7YqZ10VdcyPgZTpIJ71tUH7w","nonce":"/rKDHxbAklMKhei1+QHOVD1hmJYB7wTk"}
[pool-1-thread-1] TRACE org.keepassxc.LinuxMacConnection - Reading message: {"action":"generate-password","message":"o+80N2eiBE80QpFqOSO7wBFTVb6LlZq9GNxU3Tu1AxlN91W3VqaNC8Ro0P7YBee1uEK7qWcskK9eEzHTy12MvRomrXzhy2NqlyHRUuM6IA86pyXLsxgo+ZsTH3PcSLlpXLqw7eGLslwnswof4RjJH1s/WCb5lLmO9CaqdTmLJSSbkhhd53Lz2/dTN+wT+l4pVfh0rgQkr/5GkvnIn3IKU1BdVlam","nonce":"/rKDHxbAklMKhei1+QHOVD1hmJYB7wTk"}
[pool-1-thread-1] TRACE org.keepassxc.LinuxMacConnection - Reading message: {"action":"generate-password","message":"47xqKdyW+24nyZF4epZxD5dbCNt7Z8KuIJu1kv8YocN8bghY/Xp9CIZgU2r8bsieGQ1pguG/ZKLijYgd8WAm5ppN9sJ91lY2kmUu3s3GoNo4q3f62thgiFNs82SZTRHmEYZRs6iYhZk3xxWNJqdkf19MwVhB3C8CwXWpcBVPka4SW6IbjzEUvrZK0SuEw+SMXOnNyrsaH60J3x6Q+USDAPbsuJXj","nonce":"/rKDHxbAklMKhei1+QHOVD1hmJYB7wTk"}{"action":"generate-password","message":"4Dnm5sdfDMvjgL2luRMeRjwrj/xTtv7n83+HTg3TcCHJ4XPawPkcCGqr+bf85jNClSgzYW1X7UkdRUcVgXJdUOhNx9mq71dC+oa8S3etIBRajU1oE2MSDp/65N7iALACxsGPrb+hHOpWeuXLP/lfZSQd2FfFcGWsoto7+ftJWjGHMMjvNHQGVE39eRk5yZ/SK/rjS4LNVuT8sJcid9UAnGP2fq5X","nonce":"/rKDHxbAklMKhei1+QHOVD1hmJYB7wTk"}

Anything else?

This is also discussed upstream.

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.