11 releases
0.5.2 | Oct 8, 2024 |
---|---|
0.5.1 | Sep 14, 2023 |
0.4.0 | Jan 24, 2023 |
0.3.0 | Nov 5, 2022 |
0.1.2 | May 23, 2020 |
#387 in Parser implementations
1,495 downloads per month
Used in valis-core
165KB
4K
SLoC
KDBX-rs
Documentation | Repository | crates.io
Library for reading and writing KDBX libraries from Rust.
Example code
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)?;
Comparison of Rust Keepass Libraries (as of May 2020)
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 |
License
This crate is licensed under GPLv3.0 or later, see LICENSE.txt
for details.
Dependencies
~4.5MB
~87K SLoC