From 6e48c5ebaa26c6bd2a1bc33ccf36ed8bd6946358 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Tue, 17 Dec 2024 18:13:31 +0100 Subject: [PATCH] pvimg: info: Rename '--key' into '--hdr-key' and use '--key' as an alias MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rename '--key' into '--hdr-key' and use '--key' as an (non-visible) alias for '--hdr-key' in order to keep the command line backwards compatible. The chances of someone using '--key' are very low, as this version has not yet been released by any OS distribution. This change makes the command line options for the different subcommands more consistent and therefore easier to use. Suggested-by: Reinhard Bündgen Acked-by: Hendrik Brueckner Reviewed-by: Steffen Eiden Signed-off-by: Marc Hartmayer Signed-off-by: Jan Höppner --- rust/pvimg/man/pvimg-info.1 | 2 +- rust/pvimg/src/cli.rs | 22 +++++++++++++++++++--- rust/pvimg/src/cmd/info.rs | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/rust/pvimg/man/pvimg-info.1 b/rust/pvimg/man/pvimg-info.1 index 82b42da2..aaaa3ab9 100644 --- a/rust/pvimg/man/pvimg-info.1 +++ b/rust/pvimg/man/pvimg-info.1 @@ -37,7 +37,7 @@ Possible values: .RE .RE .PP -\-\-key +\-\-hdr\-key .RS 4 Use the key in FILE to decrypt the Secure Execution header. It is the key that was specified with the command line option \fB\-\-hdr\-key\fR at the Secure diff --git a/rust/pvimg/src/cli.rs b/rust/pvimg/src/cli.rs index 9deb87aa..446e9b74 100644 --- a/rust/pvimg/src/cli.rs +++ b/rust/pvimg/src/cli.rs @@ -195,8 +195,8 @@ pub struct InfoArgs { /// /// It is the key that was specified with the command line option /// '--hdr-key' at the Secure Execution image creation. - #[arg(long, value_name = "FILE", value_hint = ValueHint::FilePath,)] - pub key: Option, + #[arg(long, value_name = "FILE", value_hint = ValueHint::FilePath, alias = "key")] + pub hdr_key: Option, } #[derive(Args, Debug)] @@ -721,6 +721,22 @@ mod test { CliOption::new("image", ["/dev/null"]), ], )), + flat_map_collect(insert( + args.clone(), + vec![ + CliOption::new("hdr-key", ["--hdr-key", "/dev/null"]), + CliOption::new("format", ["--format=json"]), + CliOption::new("image", ["/dev/null"]), + ], + )), + flat_map_collect(insert( + args.clone(), + vec![ + CliOption::new("hdr-key", ["--key", "/dev/null"]), + CliOption::new("format", ["--format=json"]), + CliOption::new("image", ["/dev/null"]), + ], + )), // separation between keyword and positional args works flat_map_collect(insert( args.clone(), @@ -761,7 +777,7 @@ mod test { // Test for invalid combinations // Input is missing - let mut pvimg_invalid_args = vec![vec!["pvimg", "test"]]; + let mut pvimg_invalid_args = vec![vec!["pvimg", "info"]]; for create_args in &valid_test_args { pvimg_valid_args.push( diff --git a/rust/pvimg/src/cmd/info.rs b/rust/pvimg/src/cmd/info.rs index 1ced0545..2f593cf0 100644 --- a/rust/pvimg/src/cmd/info.rs +++ b/rust/pvimg/src/cmd/info.rs @@ -27,7 +27,7 @@ pub fn info(opt: &InfoArgs) -> Result { SeHdr::seek_sehdr(&mut input, None)?; let hdr = SeHdr::try_from_io(input)?; - if let Some(key_path) = &opt.key { + if let Some(key_path) = &opt.hdr_key { let key = SymKey::try_from_data(hdr.key_type(), read_file(key_path, "Reading key")?.into())?; serde_json::to_writer_pretty(&mut output, &hdr.decrypt(&key)?)?;