// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // Copyright by contributors to this project. // SPDX-License-Identifier: (Apache-2.0 OR MIT)
use core::ops::Deref;
use alloc::vec::Vec;
use mls_rs_core::{
crypto::{CipherSuite, HpkePublicKey, HpkeSecretKey},
error::IntoAnyError,
}; use mls_rs_crypto_traits::{Curve, DhType, SamplingMethod};
#[cfg(all(test, not(mls_build_async)))] mod test { use mls_rs_core::crypto::{CipherSuite, HpkePublicKey, HpkeSecretKey}; use mls_rs_crypto_traits::DhType; use serde::Deserialize;
fn run_test_case(test_case: TestCase) { let ecdh = Ecdh::new(test_case.ciphersuite.into()).unwrap();
// Import the keys into their structures let alice_pub: HpkePublicKey = test_case.alice_pub.into(); let bob_pub: HpkePublicKey = test_case.bob_pub.into(); let alice_pri: HpkeSecretKey = test_case.alice_pri.into(); let bob_pri: HpkeSecretKey = test_case.bob_pri.into();
#[test] fn test_algo_test_cases() { let test_case_file = include_str!("../test_data/test_ecdh.json"); let test_cases: Vec<TestCase> = serde_json::from_str(test_case_file).unwrap();
for case in test_cases {
run_test_case(case);
}
}
// TODO: discuss if we need this test // #[test] // fn test_mismatched_curve() { // for ecdh in get_ecdhs() { // let secret_key = ecdh.generate().unwrap().0;
// for other_ecdh in get_ecdhs().into_iter().filter(|c| c != &ecdh) { // let other_public_key = other_ecdh.generate().unwrap().1; // assert!(ecdh.dh(&secret_key, &other_public_key).is_err()); // } // } // }
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.