From 619554af2b68430c022d4c55386f228ccfaac612 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 18 Jan 2021 07:42:50 +0100 Subject: [PATCH] tape: clear encryption key before writing labels We always write labels unencrypted. --- src/tape/drive/linux_tape.rs | 2 ++ src/tape/drive/mod.rs | 2 ++ src/tape/drive/virtual_tape.rs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/tape/drive/linux_tape.rs b/src/tape/drive/linux_tape.rs index 4e75a073..85088495 100644 --- a/src/tape/drive/linux_tape.rs +++ b/src/tape/drive/linux_tape.rs @@ -461,6 +461,8 @@ impl TapeDriver for LinuxTapeHandle { bail!("write_media_set_label failed - got wrong file number ({} != 1)", file_number); } + self.set_encryption(None)?; + let mut handle = TapeWriterHandle { writer: BlockedWriter::new(&mut self.file), }; diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs index 8fa39d01..ed272501 100644 --- a/src/tape/drive/mod.rs +++ b/src/tape/drive/mod.rs @@ -81,6 +81,8 @@ pub trait TapeDriver { self.rewind()?; + self.set_encryption(None)?; + self.erase_media(true)?; let raw = serde_json::to_string_pretty(&serde_json::to_value(&label)?)?; diff --git a/src/tape/drive/virtual_tape.rs b/src/tape/drive/virtual_tape.rs index f2741109..b600079b 100644 --- a/src/tape/drive/virtual_tape.rs +++ b/src/tape/drive/virtual_tape.rs @@ -327,6 +327,8 @@ impl TapeDriver for VirtualTapeHandle { fn write_media_set_label(&mut self, media_set_label: &MediaSetLabel) -> Result<(), Error> { + self.set_encryption(None)?; + let mut status = self.load_status()?; match status.current_tape { Some(VirtualTapeStatus { ref name, ref mut pos }) => {