hex->base64转换增加保护, 增加测试

This commit is contained in:
zhl 2023-03-01 18:08:50 +08:00
parent 6ec2c56005
commit 1b2708141d

View File

@ -178,7 +178,10 @@ impl Wallet {
{ {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let secret_key = self.get_secret_key(); let secret_key = self.get_secret_key();
let hex_str = hex::decode(msg).unwrap(); let hex_str = match hex::decode(msg){
Ok(v) => v,
Err(e) => panic!("error decode hex str: {}", e),
};
let message_to_hash = Message::from_slice(&hex_str).unwrap(); let message_to_hash = Message::from_slice(&hex_str).unwrap();
let (_recovery_id, signature) = secp let (_recovery_id, signature) = secp
.sign_ecdsa_recoverable(&message_to_hash, &secret_key) .sign_ecdsa_recoverable(&message_to_hash, &secret_key)
@ -192,29 +195,33 @@ impl Wallet {
let pk = self.get_public_key(); let pk = self.get_public_key();
let pk = &pk.serialize(); let pk = &pk.serialize();
let msg = msg.as_bytes(); let msg = msg.as_bytes();
println!("msg before encrypt: {:?}", msg); // println!("msg before encrypt: {:?}", msg);
let msg_encrypt = match encrypt(pk, &msg) { let msg_encrypt = match encrypt(pk, &msg) {
Ok(v) => v, Ok(v) => v,
Err(e) => panic!("error encrypt content: {}", e), Err(e) => panic!("error encrypt content: {}", e),
}; };
println!("msg after encrypt: {:?}", &msg_encrypt); // println!("msg after encrypt: {:?}", &msg_encrypt);
let str_encrypt = hex::encode(&msg_encrypt); let str_encrypt = hex::encode(&msg_encrypt);
Ok(str_encrypt) Ok(str_encrypt)
} }
pub fn zdecrypt(&self, msg: &str) -> Result<String> { pub fn zdecrypt(&self, msg1: &str) -> Result<String> {
let sk = self.get_secret_key(); let sk = self.get_secret_key();
let sk = sk.secret_bytes(); let sk = sk.secret_bytes();
let mut msg: String = msg1.clone().to_string();
if msg.len() % 2 == 1 {
msg = "0".to_owned() + &msg;
}
println!("msg to decrypt: {:?}", &msg);
let msg = match hex::decode(&msg) { let msg = match hex::decode(&msg) {
Ok(v) => v, Ok(v) => v,
Err(e) => panic!("error decode hex str {}", e), Err(e) => panic!("error decode hex str: {}", e),
}; };
println!("msg to decrypt: {:?}", &msg);
let msg_decrypt = match decrypt(&sk, &msg) { let msg_decrypt = match decrypt(&sk, &msg) {
Ok(v) => v, Ok(v) => v,
Err(e) => panic!("error decrypt content: {}", e), Err(e) => panic!("error decrypt content: {}", e),
}; };
println!("msg after decrypt: {:?}", &msg_decrypt); // println!("msg after decrypt: {:?}", &msg_decrypt);
// let msg_decrypt = hex::encode(msg_decrypt); // let msg_decrypt = hex::encode(msg_decrypt);
let str_decrypt = match str::from_utf8(&msg_decrypt) { let str_decrypt = match str::from_utf8(&msg_decrypt) {
Ok(v) => v, Ok(v) => v,