Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Rust library for reading and writing KeePass 2 and KeePassX databases

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

sru-systems/rust-kpdb

Repository files navigation

A Rust library for reading and writingKeePass 2 andKeePassX databases.

Usage

To userust-kpdb, add the following to your Cargo.toml:

[dependencies]rust-kpdb ="0.5"

And the following to your crate root:

externcrate kpdb;

Examples

Create a new database adding two groups and two entries:

use kpdb::{CompositeKey,Database,Entry,Group};// Create a new database.let key =CompositeKey::from_password("password");letmut db =Database::new(&key);// Create a new group named Email.letmut email_group =Group::new("Email");let email_group_uuid = email_group.uuid;// Create an entry for ProtonMail and add it to the Email group.letmut protonmail =Entry::new();let protonmail_uuid = protonmail.uuid;protonmail.set_title("ProtonMail");protonmail.set_username("mailuser");protonmail.set_password("mailpass");protonmail.set_url("https://mail.protonmail.com");email_group.add_entry(protonmail);// Create a new group named VPN.letmut vpn_group =Group::new("VPN");// Create an entry for ProtonVPN and add it to the VPN group.letmut protonvpn =Entry::new();protonvpn.set_title("ProtonVPN");protonvpn.set_username("vpnuser");protonvpn.set_password("vpnpass");protonvpn.set_url("https://prontvpn.com");vpn_group.add_entry(protonvpn);// Add the Email and VPN groups to the Root group.db.root_group.add_group(email_group);db.root_group.add_group(vpn_group);// Find groups matching "email".let groups = db.find_groups("email");assert_eq!(groups.len(),1);// Find entries matching "proton".let entries = db.find_entries("proton");assert_eq!(entries.len(),2);// Retrieve a group by its UUID.let group = db.get_group(email_group_uuid).unwrap();assert_eq!(group.name,"Email");// Retrieve an entry by its UUID.let entry = db.get_entry(protonmail_uuid).unwrap();assert_eq!(entry.title(),Some("ProtonMail"));assert_eq!(entry.username(),Some("mailuser"));assert_eq!(entry.password(),Some("mailpass"));assert_eq!(entry.url(),Some("https://mail.protonmail.com"));assert_eq!(entry.notes(),None);

Open the existing KeePass database passwords.kdbx using the password"password", print it and save it to new.kdbx:

use kpdb::{CompositeKey,Database};use std::fs::File;letmut file =File::open("passwords.kdbx").unwrap();let key =CompositeKey::from_password("password");let db =Database::open(&mut file,&key).unwrap();println!("{:?}", db);letmut file =File::create("new.kdbx").unwrap();db.save(&mut file).unwrap();

Open the existing KeePass database passwords.kdbx using both the password"password" and the key file passwords.key, print it and save it to new.kdbx:

use kpdb::{CompositeKey,Database,KeyFile};use std::fs::File;letmut file =File::open("passwords.key").unwrap();let key_file =KeyFile::open(&mut file).unwrap();let key =CompositeKey::from_both("password", key_file);letmut file =File::open("passwords.kdbx").unwrap();let db =Database::open(&mut file,&key).unwrap();println!("{:?}", db);letmut file =File::create("new.kdbx").unwrap();db.save(&mut file).unwrap();

Not Implemented

The following features are currently not implemented:

  • KeePass 1 databases.

License

Rust-kpdb is dual licensed under theMIT andApache 2.0 licenses, the same licenses as the Rust compiler.

Contributions

Contributions are welcome. By submitting a pull request you are agreeing tomake you work available under the license terms of the Rust-kpdb project.

About

Rust library for reading and writing KeePass 2 and KeePassX databases

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp