Crates.io | kdbx-rs |
lib.rs | kdbx-rs |
version | 0.5.2 |
source | src |
created_at | 2020-05-23 16:18:25.906886 |
updated_at | 2024-10-08 19:25:56.08473 |
description | Keepass 2 (KDBX) password database parsing and creation |
homepage | |
repository | https://gitlab.com/tonyfinn/kdbx-rs |
max_upload_size | |
id | 244919 |
size | 283,078 |
Documentation | Repository | crates.io
Library for reading and writing KDBX libraries from Rust.
Obtaining an entry from the password database:
use kdbx_rs::{self, CompositeKey, Error};
fn main() -> Result<(), Error> {
let file_path = "./res/test_input/kdbx4-argon2d.kdbx";
let kdbx = kdbx_rs::open(file_path)?;
let key = CompositeKey::from_password("kdbxrs");
let unlocked = kdbx.unlock(&key)?;
let password = unlocked.find_entry(|e| e.url() == Some("https://example.com"))
.unwrap()
.password();
println!(password);
Ok(())
}
Generating a new password database:
let mut database = Database::default();
database.set_name("My First Database");
database.set_description("Created with kdbx-rs");
let mut entry = Entry::default();
entry.set_password("password1");
entry.set_url("https://example.com");
entry.set_username("User123");
database.add_entry(Entry);
Saving a database to a file
let mut database = Database::default();
let kdbx = Kdbx::from_database(database);
kdbx.set_key(CompositeKey::from_password("foo123"))?;
let mut file = File::create("/tmp/kdbx-rs-example.kdbx")?;
kdbx.write(&mut file)?;
kdbx-rs |
keepass-rs |
kdbx4 |
rust-kpdb |
rust-keepass |
|
---|---|---|---|---|---|
License | GPLv3+ | MIT | MIT | MIT/Apache | ISC |
Formats | |||||
.kdbx 4 | Yes | Read only | Read only | No | No |
.kdbx 3 | Read only | Read only | No | Yes | No |
.kdb | No | No | No | No | Yes |
Algorithms | |||||
KDFs | |||||
AES | Yes | Yes | Yes | Yes | Yes |
Argon 2 | Yes | Yes | Yes | No | Yes |
Database Ciphers | |||||
AES | Yes | Yes | Yes | Yes | Yes |
TwoFish | Yes | Yes | No | Yes | No |
Chacha20 | Yes | Yes | Yes | No | No |
Value Ciphers | |||||
Chacha20 | Yes | Yes | Yes | No | No |
Salsa20 | Yes | Yes | Yes | Yes | No |
Features | |||||
Memory protection | No | Yes | No | No | Yes |
Keyfile auth | Yes | Yes | Yes | Yes | Yes |
Windows auth | No | No | No | No | No |
KeepassXC OTPs | No | No | No | No | No |
Custom fields | Yes | Yes | Yes | No | No |
Entry History | Yes | No | Yes | Yes | No |
This crate is licensed under GPLv3.0 or later, see LICENSE.txt
for details.