NetHSM backup
A library to parse, decrypt, validate and browse NetHSM backups.
Documentation
- https://signstar.archlinux.page/rustdoc/nethsm_backup/ for development version of the crate
- https://docs.rs/nethsm_backup/latest/nethsm_backup/ for released versions of the crate
Examples
Listing all fields in a backup file:
fn main() -> testresult::TestResult {
use std::collections::HashMap;
use nethsm_backup::Backup;
let backup = Backup::parse(std::fs::File::open("tests/nethsm.backup-file.bkp")?)?;
let decryptor = backup.decrypt(b"my-very-unsafe-backup-passphrase")?;
assert_eq!(decryptor.version()?, [0]);
for item in decryptor.items_iter() {
let (key, value) = item?;
println!("Found {key} with value: {value:X?}");
}
Ok(()) }
Dumping the value of one specified field (here /config/version):
fn main() -> testresult::TestResult {
use std::collections::HashMap;
use nethsm_backup::Backup;
let backup = Backup::parse(std::fs::File::open("tests/nethsm.backup-file.bkp")?)?;
let decryptor = backup.decrypt(b"my-very-unsafe-backup-passphrase")?;
assert_eq!(decryptor.version()?, [0]);
for (key, value) in decryptor
.items_iter()
.flat_map(|item| item.ok())
.filter(|(key, _)| key == "/config/version")
{
println!("Found {key} with value: {value:X?}");
}
Ok(()) }
Features
_nethsm-integration-test: Integration tests that require a containerized NetHSM test environment. NOTE: Unless you are developing this crate, you will very likely not want to use this feature.
Contributing
Please refer to the contributing guidelines to learn how to contribute to this project.
License
This project may be used under the terms of the Apache-2.0 or MIT license.
Changes to this project - unless stated otherwise - automatically fall under the terms of both of the aforementioned licenses.