Function validate_backup

Source
pub fn validate_backup(
    reader: &mut impl Read,
    passphrase: impl Into<Option<Passphrase>>,
) -> Result<(), Error>
Expand description

Validates a backup.

Parses a previously created backup file. If passphrase is Some, additionally decrypts the backup and verifies the encrypted backup version number.

§Errors

Returns an [nethsm_backup::Error] if validating a backup fails:

  • the magic number is missing in the file
  • the version number is unknown
  • the provided passphrase is incorrect

§Examples

use nethsm::{
    Connection,
    ConnectionSecurity,
    Credentials,
    NetHsm,
    Passphrase,
    validate_backup,
};

// create a connection with a user in the Backup role
let nethsm = NetHsm::new(
    Connection::new(
        "https://example.org/api/v1".try_into()?,
        ConnectionSecurity::Unsafe,
    ),
    Some(Credentials::new(
        "backup1".parse()?,
        Some(Passphrase::new("passphrase".to_string())),
    )),
    None,
    None,
)?;

// create a backup and write it to file
std::fs::write("nethsm.bkp", nethsm.backup()?)?;

// check for consistency only
validate_backup(&mut std::fs::File::open("nethsm.bkp")?, None)?;

// check for correct passphrase by decrypting and validating the encrypted backup version
validate_backup(
    &mut std::fs::File::open("nethsm.bkp")?,
    Passphrase::new("a sample password".into()),
)?;