rocket::mtls::x509::ber

Function parse_ber_content

Source
pub fn parse_ber_content<'a>(tag: Tag) -> impl Fn(&'a [u8], &Header<'_>, usize)
Available on crate feature mtls only.
Expand description

Parse the next bytes as the content of a BER object (combinator, header reference)

Content type is not checked to match tag, caller is responsible of providing the correct tag

Caller is also responsible to check if parsing function consumed the expected number of bytes (header.len).

The arguments of the parse function are: (input, ber_object_header, max_recursion).

This function differs from parse_ber_content2 because it passes the BER object header by reference (required for ex. by parse_ber_implicit).

Example: manually parsing header and content

let (i, header) = ber_read_element_header(bytes).expect("parsing failed");
let (rem, content) = parse_ber_content(header.tag())(i, &header, MAX_RECURSION)
    .expect("parsing failed");