From 7c486dfa82a3c37bf47576977e204b5e9255a29c Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Wed, 13 Apr 2022 00:19:45 +0800 Subject: [PATCH] feat: v1.1.17, decrypt hex --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/cmd_rsadecrypt.rs | 7 ++++++- src/cmd_rsaverify.rs | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2678c14..90958f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -384,7 +384,7 @@ dependencies = [ [[package]] name = "card-cli" -version = "1.1.16" +version = "1.1.17" dependencies = [ "authenticator", "base64 0.13.0", diff --git a/Cargo.toml b/Cargo.toml index 24b77f7..516465c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "card-cli" -version = "1.1.16" +version = "1.1.17" authors = ["Hatter Jiang "] edition = "2018" diff --git a/src/cmd_rsadecrypt.rs b/src/cmd_rsadecrypt.rs index 3b2b278..9d68a99 100644 --- a/src/cmd_rsadecrypt.rs +++ b/src/cmd_rsadecrypt.rs @@ -52,7 +52,12 @@ impl Command for CommandImpl { let m = BigNum::from_slice(&encrypted).unwrap(); let mut r = BigNum::new().unwrap(); r.mod_exp(&m, d, n, &mut BigNumContext::new().unwrap()).unwrap(); - debugging!("Encrypted raw HEX: {}", hex::encode(&r.to_vec())); + let v = r.to_vec(); + debugging!("Encrypted raw HEX: 00{}", hex::encode(&v)); + let pos = v.iter().position(|b| *b == 0x00); + if let Some(pos) = pos { + debugging!("Encrypted text HEX: {}", hex::encode(&v[pos+1..])); + } }); let mut decrypter = opt_result!(Decrypter::new(&keypair), "Decrypter new failed: {}"); diff --git a/src/cmd_rsaverify.rs b/src/cmd_rsaverify.rs index b317b26..7e5dd01 100644 --- a/src/cmd_rsaverify.rs +++ b/src/cmd_rsaverify.rs @@ -56,7 +56,7 @@ impl Command for CommandImpl { let m = BigNum::from_slice(&signature).unwrap(); let mut r = BigNum::new().unwrap(); r.mod_exp(&m, e, n, &mut BigNumContext::new().unwrap()).unwrap(); - debugging!("Signature raw HEX: {}", hex::encode(&r.to_vec())); + debugging!("Signature raw HEX: 00{}", hex::encode(&r.to_vec())); }); let file_in = opt_value_result!(sub_arg_matches.value_of("in"), "File in --in required");