in releases/rust/db_esdk/src/ecdsa.rs [234:279]
fn test_generate() {
let alg = Rc::new(ECDSASignatureAlgorithm::ECDSA_P384 {});
let key_pair = match &*ExternKeyGen(&alg) {
_Wrappers_Compile::Result::Success { value } => value.clone(),
_Wrappers_Compile::Result::Failure { error } => {
panic!("ExternKeyGen Failed : {:?}", error);
}
};
let (s_key, v_key) = match &*key_pair {
Signature::SignatureKeyPair::SignatureKeyPair {
signingKey,
verificationKey,
} => (signingKey, verificationKey),
};
let message: ::dafny_runtime::Sequence<u8> =
[1u8, 2, 3, 4, 5].iter().cloned().collect();
let sig = match &*Sign(&alg, &s_key, &message) {
_Wrappers_Compile::Result::Success { value } => value.clone(),
_Wrappers_Compile::Result::Failure { error } => {
panic!("Sign Failed : {:?}", error);
}
};
let ver: bool = match &*Verify(&alg, &v_key, &message, &sig) {
_Wrappers_Compile::Result::Success { value } => value.clone(),
_Wrappers_Compile::Result::Failure { error } => {
panic!("Verify Failed : {:?}", error);
}
};
assert!(ver);
let mut sig_vec: Vec<u8> = sig.iter().collect();
sig_vec[0] = 42;
let sig2: ::dafny_runtime::Sequence<u8> = sig_vec.iter().cloned().collect();
assert!(sig != sig2);
let ver2: bool = match &*Verify(&alg, &v_key, &message, &sig2) {
_Wrappers_Compile::Result::Success { value } => value.clone(),
_Wrappers_Compile::Result::Failure { error } => {
panic!("Verify Failed : {:?}", error);
}
};
assert!(!ver2);
}