// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // Copyright by contributors to this project. // SPDX-License-Identifier: (Apache-2.0 OR MIT)
usecrate::client::MlsError; usecrate::crypto::{CipherSuiteProvider, HpkePublicKey, HpkeSecretKey}; usecrate::group::key_schedule::kdf_derive_secret; use alloc::vec; use alloc::vec::Vec; use core::{
fmt::{self, Debug},
ops::Deref,
}; use mls_rs_codec::{MlsDecode, MlsEncode, MlsSize}; use mls_rs_core::error::IntoAnyError; use zeroize::Zeroizing;
pub fn empty<P: CipherSuiteProvider>(cipher_suite_provider: &P) -> Self { // Define commit_secret as the all-zero vector of the same length as a path_secret
PathSecret::from(vec![0u8; cipher_suite_provider.kdf_extract_size()])
}
}
for test_case in cases { let Some(cs_provider) = try_test_cipher_suite_provider(test_case.cipher_suite) else { continue;
};
let first_secret = PathSecret::from(hex::decode(&test_case.generations[0]).unwrap()); letmut generator = PathSecretGenerator::starting_with(&cs_provider, first_secret);
for expected in &test_case.generations { let generated = hex::encode(&*generator.next_secret().await.unwrap());
assert_eq!(expected, &generated);
}
}
}
#[test]
fn test_empty_path_secret() {
for cipher_suite in TestCryptoProvider::all_supported_cipher_suites() { let cs_provider = test_cipher_suite_provider(cipher_suite); let empty = PathSecret::empty(&cs_provider);
assert_eq!(
empty,
PathSecret::from(vec![0u8; cs_provider.kdf_extract_size()])
)
}
}
#[test]
fn test_random_path_secret() { let cs_provider = test_cipher_suite_provider(TEST_CIPHER_SUITE); let initial = PathSecret::random(&cs_provider).unwrap();
for _ in 0..100 { let next = PathSecret::random(&cs_provider).unwrap();
assert_ne!(next, initial);
}
}
}
Messung V0.5 in Prozent
¤ 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.0.5Bemerkung:
¤
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.