use tls_codec::{Deserialize, Serialize};
use crate::{
extensions::Extensions,
group::GroupId,
messages::{PreSharedKeyProposal, ProtocolVersion, ReInitProposal},
schedule::psk::{ExternalPsk, PreSharedKeyId, Psk, ResumptionPsk, ResumptionPskUsage},
};
#[openmls_test::openmls_test]
fn test_pre_shared_key_proposal_codec() {
let provider = &Provider::default();
let psk = PreSharedKeyId {
psk: Psk::External(ExternalPsk::new(vec![1, 2, 3])),
psk_nonce: vec![4, 5, 6].into(),
};
let orig = PreSharedKeyProposal::new(psk);
let encoded = orig
.tls_serialize_detached()
.expect("An unexpected error occurred.");
let decoded = PreSharedKeyProposal::tls_deserialize(&mut encoded.as_slice())
.expect("An unexpected error occurred.");
assert_eq!(decoded, orig);
let psk = PreSharedKeyId {
psk: Psk::Resumption(ResumptionPsk::new(
ResumptionPskUsage::Application,
GroupId::random(provider.rand()),
1234.into(),
)),
psk_nonce: vec![1, 2, 3].into(),
};
let orig = PreSharedKeyProposal::new(psk);
let encoded = orig
.tls_serialize_detached()
.expect("An unexpected error occurred.");
let decoded = PreSharedKeyProposal::tls_deserialize(&mut encoded.as_slice())
.expect("An unexpected error occurred.");
assert_eq!(decoded, orig);
let psk = PreSharedKeyId {
psk: Psk::Resumption(ResumptionPsk::new(
ResumptionPskUsage::Reinit,
GroupId::random(provider.rand()),
1234.into(),
)),
psk_nonce: vec![1, 2, 3].into(),
};
let orig = PreSharedKeyProposal::new(psk);
let encoded = orig
.tls_serialize_detached()
.expect("An unexpected error occurred.");
let decoded = PreSharedKeyProposal::tls_deserialize(&mut encoded.as_slice())
.expect("An unexpected error occurred.");
assert_eq!(decoded, orig);
let psk = PreSharedKeyId {
psk: Psk::Resumption(ResumptionPsk::new(
ResumptionPskUsage::Branch,
GroupId::random(provider.rand()),
1234.into(),
)),
psk_nonce: vec![1, 2, 3].into(),
};
let orig = PreSharedKeyProposal::new(psk);
let encoded = orig
.tls_serialize_detached()
.expect("An unexpected error occurred.");
let decoded = PreSharedKeyProposal::tls_deserialize(&mut encoded.as_slice())
.expect("An unexpected error occurred.");
assert_eq!(decoded, orig);
}
#[openmls_test::openmls_test]
fn test_reinit_proposal_codec() {
let provider = &Provider::default();
let orig = ReInitProposal {
group_id: GroupId::random(provider.rand()),
version: ProtocolVersion::default(),
ciphersuite,
extensions: Extensions::empty(),
};
let encoded = orig
.tls_serialize_detached()
.expect("An unexpected error occurred.");
let decoded = ReInitProposal::tls_deserialize(&mut encoded.as_slice())
.expect("An unexpected error occurred.");
assert_eq!(decoded, orig);
}