1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//! Password Safe file format reader and writer.
//!
//! This crate provides separate reader and writer for Password Safe database format. It does not
//! impose any internal database representation and can be used to write converters or integrate
//! import/export functionality into existing password managers.
//!
//! Neither reader nor writer require `std::io::Seek` trait implementation from the underlying
//! reader or writer. That is because by design the Password Safe database does not allow random
//! access. Blocks are encrypted in CBC mode and checking the database integrity requires reading
//! the whole file. On the other hand, the database must be rekeyed after each modification, so the
//! whole file must be rewritten from scratch.
//!
//! At this time only version 3 database format is supported.
//!
//! High-level interfaces to parse records are not implemented (yet).

extern crate block_modes;
extern crate byteorder;
extern crate hmac;
extern crate rand;
extern crate sha2;
extern crate twofish;

mod field;
mod key;
mod reader;
mod writer;

pub use self::field::PwsafeHeaderField;
pub use self::field::PwsafeRecordField;
pub use self::reader::PwsafeReader;
pub use self::writer::PwsafeWriter;