Return an error if the IKM list ID is invalid
This commit is contained in:
parent
230f867502
commit
66271877dc
2 changed files with 5 additions and 0 deletions
|
@ -18,6 +18,8 @@ pub enum Error {
|
|||
ParsingEncodedDataInvalidIkmId(Vec<u8>),
|
||||
#[error("parsing error: encoded data: invalid IKM length{0}")]
|
||||
ParsingEncodedDataInvalidIkmLen(usize),
|
||||
#[error("parsing error: encoded data: invalid IKM list id: {0:?}")]
|
||||
ParsingEncodedDataInvalidIkmListId(Vec<u8>),
|
||||
#[error("parsing error: encoded data: invalid IKM list length{0}")]
|
||||
ParsingEncodedDataInvalidIkmListLen(usize),
|
||||
#[error("parsing error: encoded data: invalid number of parts: got {1} instead of {0}")]
|
||||
|
|
|
@ -53,6 +53,9 @@ pub(crate) fn decode_ikm_list(data: &str) -> Result<InputKeyMaterialList> {
|
|||
return Err(Error::ParsingEncodedDataInvalidIkmListLen(v.len()));
|
||||
}
|
||||
let id_data = decode_data(v[0])?;
|
||||
if id_data.len() != 4 {
|
||||
return Err(Error::ParsingEncodedDataInvalidIkmListId(id_data));
|
||||
}
|
||||
let id_counter = CounterId::from_le_bytes(id_data[0..4].try_into().unwrap());
|
||||
let mut ikm_lst = Vec::with_capacity(v.len() - 1);
|
||||
for ikm_str in &v[1..] {
|
||||
|
|
Loading…
Reference in a new issue