use hpke_dispatch::*; const AAD: &[u8] = b"associated data"; const PLAINTEXT: &[u8] = b"plaintext test message"; const APP_INFO: &[u8] = b"application info"; fn test_round_trip(config: Config) { let (private_key, public_key) = config.kem.gen_keypair().into_parts(); let (encapped_key, ciphertext) = config .base_mode_seal(&public_key, APP_INFO, PLAINTEXT, AAD) .unwrap_or_else(|e| panic!("problem with {config:?} base_mode_seal ({e:?})")) .into_parts(); let plaintext = config .base_mode_open(&private_key, &encapped_key, APP_INFO, &ciphertext, AAD) .unwrap_or_else(|e| panic!("problem with {config:?} base_mode_open ({e:?})")); assert_eq!( plaintext, PLAINTEXT, "round trip plaintext did not match for {config:?}" ); } #[test] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)] fn test_all_round_trips() { for ((aead, kdf), kem) in AEAD_ALL.iter().zip(KDF_ALL).zip(KEM_ALL) { test_round_trip(Config { aead: *aead, kdf: *kdf, kem: *kem, }); } }