nethsm-backup

Crates.ionethsm-backup
lib.rsnethsm-backup
version0.2.0
created_at2024-12-08 19:07:16.529567+00
updated_at2025-07-10 09:52:40.900795+00
descriptionA library and binary for working with encrypted NetHSM backups
homepagehttps://gitlab.archlinux.org/archlinux/signstar
repositoryhttps://gitlab.archlinux.org/archlinux/signstar
max_upload_size
id1476557
size120,783
Arch Linux Technical User (archlinux-github)

documentation

README

NetHSM backup

A library to parse, decrypt, validate and browse NetHSM backups.

Documentation

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 enables tests that require podman for starting test dependencies in containers.

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.

Commit count: 0

cargo fmt