Add handling of unknown Algorithms/OIDs in algo_info::parse

This commit is contained in:
Heiko Schaefer 2021-07-01 22:45:35 +02:00
parent c800a54597
commit 60243b6d7c

View file

@ -36,13 +36,17 @@ fn key_type(input: &[u8]) -> nom::IResult<&[u8], KeyType> {
))(input) ))(input)
} }
fn unknown(input: &[u8]) -> nom::IResult<&[u8], Algo> {
Ok((&[], Algo::Unknown(input.to_vec())))
}
fn parse_one(input: &[u8]) -> nom::IResult<&[u8], Algo> { fn parse_one(input: &[u8]) -> nom::IResult<&[u8], Algo> {
let (x, a) = combinator::map( let (input, a) = combinator::map(
combinator::flat_map(crate::tlv::length::length, bytes::take), combinator::flat_map(crate::tlv::length::length, bytes::take),
|i| combinator::all_consuming(algo_attrs::parse)(i), |i| alt((combinator::all_consuming(algo_attrs::parse), unknown))(i),
)(input)?; )(input)?;
Ok((x, a?.1)) Ok((input, a?.1))
} }
fn parse_list(input: &[u8]) -> nom::IResult<&[u8], Vec<(KeyType, Algo)>> { fn parse_list(input: &[u8]) -> nom::IResult<&[u8], Vec<(KeyType, Algo)>> {