Skip to content

Commit

Permalink
Better fp-seed bad seed feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
ChocolateLoverRaj committed Jun 8, 2024
1 parent 16e89ed commit b086358
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
11 changes: 11 additions & 0 deletions ectool/src/check_seed.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
use crosec::commands::fp_set_seed::FP_CONTEXT_TPM_BYTES;

pub fn check_seed(seed: &str) -> Result<[u8; FP_CONTEXT_TPM_BYTES], String> {
match <Vec<u8> as TryInto<[u8; FP_CONTEXT_TPM_BYTES]>>::try_into(seed.as_bytes().to_owned()) {
Ok(seed) => Ok(seed),
Err(seed) => {
let seed_len = seed.len();
Err(format!("The seed must be {FP_CONTEXT_TPM_BYTES} bytes long. The seed you inputted is {seed_len} bytes long."))
}
}
}
21 changes: 7 additions & 14 deletions ectool/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::fs::File;

use charge_control_subcommand::{charge_control_subcommand, ChargeControlSubcommand};
use check_seed::check_seed;
use clap::{Parser, Subcommand, ValueEnum};
use color_eyre::eyre::Result;
use crosec::commands::fp_info::fp_info;
Expand Down Expand Up @@ -30,6 +31,7 @@ use crosec::{
};

mod charge_control_subcommand;
mod check_seed;
mod fp_download_subcommand;
mod fp_upload_template_command;

Expand Down Expand Up @@ -98,7 +100,8 @@ enum Commands {
FpInfo,
FpStats,
FpSetSeed {
seed: String,
#[arg(value_parser = check_seed)]
seed: [u8; FP_CONTEXT_TPM_BYTES],
},
FpMode {
mode: Vec<FpMode>,
Expand Down Expand Up @@ -234,19 +237,9 @@ fn main() -> Result<()> {
println!("{stats:#?}");
}
Commands::FpSetSeed { seed } => {
match <Vec<u8> as TryInto<[u8; FP_CONTEXT_TPM_BYTES]>>::try_into(
seed.as_bytes().to_owned(),
) {
Ok(seed) => {
let mut file = File::open(CROS_FP_PATH)?;
fp_set_seed(&mut file, seed)?;
println!("Set fp seed");
}
Err(seed) => {
let seed_len = seed.len();
println!("The seed must be {FP_CONTEXT_TPM_BYTES} bytes long. The seed you inputted is {seed_len} bytes long.");
}
}
let mut file = File::open(CROS_FP_PATH)?;
fp_set_seed(&mut file, seed)?;
println!("Set fp seed");
}
Commands::FpMode { mode } => {
let mode = if mode.len() > 0 {
Expand Down

0 comments on commit b086358

Please sign in to comment.