use crate::extensions::server::ServerExtension;
use crate::parse_buffer::ParseBuffer;
use crate::TlsError;
use heapless::Vec;
#[derive(Debug)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct EncryptedExtensions<'a> {
extensions: Vec<ServerExtension<'a>, 16>,
}
impl<'a> EncryptedExtensions<'a> {
pub fn parse(buf: &mut ParseBuffer<'a>) -> Result<EncryptedExtensions<'a>, TlsError> {
let extensions_len = buf
.read_u16()
.map_err(|_| TlsError::InvalidExtensionsLength)?;
let extensions =
ServerExtension::parse_vector(&mut buf.slice(extensions_len as usize).unwrap())?;
Ok(Self { extensions })
}
}