/rust/registry/src/index.crates.io-1949cf8c6b5b557f/der-parser-6.0.1/src/ber/multi.rs
Line | Count | Source |
1 | | use crate::ber::*; |
2 | | use crate::error::*; |
3 | | use nom::bytes::streaming::take; |
4 | | use nom::combinator::{all_consuming, complete, cut, map}; |
5 | | use nom::error::ParseError; |
6 | | use nom::multi::many0; |
7 | | use nom::{Err, IResult}; |
8 | | |
9 | | /// Parse a SEQUENCE OF object |
10 | | /// |
11 | | /// Given a subparser for a BER type, parse a sequence of identical objects. |
12 | | /// |
13 | | /// ```rust |
14 | | /// # use der_parser::ber::{parse_ber_integer, parse_ber_sequence_of, BerObject}; |
15 | | /// # use der_parser::error::BerResult; |
16 | | /// # |
17 | | /// /// Read a SEQUENCE OF INTEGER |
18 | | /// fn parser(i:&[u8]) -> BerResult<BerObject> { |
19 | | /// parse_ber_sequence_of(parse_ber_integer)(i) |
20 | | /// } |
21 | | /// |
22 | | /// # let empty = &b""[..]; |
23 | | /// # let bytes = [ 0x30, 0x0a, |
24 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
25 | | /// # 0x02, 0x03, 0x01, 0x00, 0x00, |
26 | | /// # ]; |
27 | | /// # let expected = BerObject::from_seq(vec![ |
28 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
29 | | /// # BerObject::from_int_slice(b"\x01\x00\x00"), |
30 | | /// # ]); |
31 | | /// # assert_eq!(parser(&bytes), Ok((empty, expected))); |
32 | | /// let (rem, v) = parser(&bytes).expect("parsing failed"); |
33 | | /// ``` |
34 | 0 | pub fn parse_ber_sequence_of<'a, F>(f: F) -> impl FnMut(&'a [u8]) -> BerResult |
35 | 0 | where |
36 | 0 | F: Fn(&'a [u8]) -> BerResult, |
37 | | { |
38 | 0 | map(parse_ber_sequence_of_v(f), BerObject::from_seq) |
39 | 0 | } |
40 | | |
41 | | /// Parse a SEQUENCE OF object (returning a vec) |
42 | | /// |
43 | | /// Given a subparser for a BER type, parse a sequence of identical objects. |
44 | | /// |
45 | | /// This differs from `parse_ber_sequence_of` in the parse function and return type. |
46 | | /// |
47 | | /// ```rust |
48 | | /// # use der_parser::ber::{parse_ber_integer, parse_ber_sequence_of_v, BerObject}; |
49 | | /// # use der_parser::error::BerResult; |
50 | | /// # |
51 | | /// /// Read a SEQUENCE OF INTEGER |
52 | | /// fn parser(i:&[u8]) -> BerResult<Vec<BerObject>> { |
53 | | /// parse_ber_sequence_of_v(parse_ber_integer)(i) |
54 | | /// } |
55 | | /// |
56 | | /// # let empty = &b""[..]; |
57 | | /// # let bytes = [ 0x30, 0x0a, |
58 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
59 | | /// # 0x02, 0x03, 0x01, 0x00, 0x00, |
60 | | /// # ]; |
61 | | /// # let expected = vec![ |
62 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
63 | | /// # BerObject::from_int_slice(b"\x01\x00\x00"), |
64 | | /// # ]; |
65 | | /// let (rem, v) = parser(&bytes).expect("parsing failed"); |
66 | | /// # assert_eq!(v, expected); |
67 | | /// ``` |
68 | 90.1k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( |
69 | 90.1k | f: F, |
70 | 90.1k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> |
71 | 90.1k | where |
72 | 90.1k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, |
73 | 90.1k | E: ParseError<&'a [u8]> + From<BerError>, |
74 | | { |
75 | 90.1k | let mut subparser = all_consuming(many0(complete(cut(f)))); |
76 | 90.1k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) der_parser::ber::multi::parse_ber_sequence_of_v::<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError>::{closure#0}Line | Count | Source | 76 | 5.13k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) |
der_parser::ber::multi::parse_ber_sequence_of_v::<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata, der_parser::error::BerError>::{closure#0}Line | Count | Source | 76 | 24.7k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) |
der_parser::ber::multi::parse_ber_sequence_of_v::<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}Line | Count | Source | 76 | 10.0k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) |
der_parser::ber::multi::parse_ber_sequence_of_v::<i32, kerberos_parser::krb5_parser::parse_der_int32, der_parser::error::BerError>::{closure#0}Line | Count | Source | 76 | 40.9k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_of_v::<_, _, _>::{closure#0} |
77 | 90.1k | } der_parser::ber::multi::parse_ber_sequence_of_v::<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError> Line | Count | Source | 68 | 9.23k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 9.23k | f: F, | 70 | 9.23k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 9.23k | where | 72 | 9.23k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 9.23k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 9.23k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 9.23k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 9.23k | } |
der_parser::ber::multi::parse_ber_sequence_of_v::<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata, der_parser::error::BerError> Line | Count | Source | 68 | 26.7k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 26.7k | f: F, | 70 | 26.7k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 26.7k | where | 72 | 26.7k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 26.7k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 26.7k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 26.7k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 26.7k | } |
der_parser::ber::multi::parse_ber_sequence_of_v::<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError> Line | Count | Source | 68 | 11.6k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 11.6k | f: F, | 70 | 11.6k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 11.6k | where | 72 | 11.6k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 11.6k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 11.6k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 11.6k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 11.6k | } |
der_parser::ber::multi::parse_ber_sequence_of_v::<i32, kerberos_parser::krb5_parser::parse_der_int32, der_parser::error::BerError> Line | Count | Source | 68 | 42.4k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 42.4k | f: F, | 70 | 42.4k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 42.4k | where | 72 | 42.4k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 42.4k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 42.4k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 42.4k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 42.4k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_of_v::<_, _, _> |
78 | | |
79 | | /// Parse a defined sequence of DER elements (function version) |
80 | | /// |
81 | | /// Given a list of expected parsers, apply them to build a DER sequence and |
82 | | /// return the remaining bytes and the built object. |
83 | | /// |
84 | | /// The remaining bytes point *after* the sequence: any bytes that are part of the sequence but not |
85 | | /// parsed are ignored. |
86 | | /// |
87 | | /// The object header is not available to the parsing function, and the returned type is always a |
88 | | /// `BerObject`. |
89 | | /// For a generic version, see |
90 | | /// [`parse_ber_sequence_defined_g`](fn.parse_ber_sequence_defined_g.html). |
91 | | /// |
92 | | /// # Examples |
93 | | /// |
94 | | /// Parsing a sequence of identical types (same as `parse_ber_sequence_of`): |
95 | | /// |
96 | | /// ```rust |
97 | | /// # use der_parser::ber::{parse_ber_integer, parse_ber_sequence_defined, BerObject}; |
98 | | /// # use der_parser::error::BerResult; |
99 | | /// use nom::combinator::complete; |
100 | | /// use nom::multi::many1; |
101 | | /// |
102 | | /// fn localparse_seq(i:&[u8]) -> BerResult { |
103 | | /// parse_ber_sequence_defined( |
104 | | /// many1(complete(parse_ber_integer)) |
105 | | /// )(i) |
106 | | /// } |
107 | | /// |
108 | | /// # let empty = &b""[..]; |
109 | | /// # let bytes = [ 0x30, 0x0a, |
110 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
111 | | /// # 0x02, 0x03, 0x01, 0x00, 0x00, |
112 | | /// # ]; |
113 | | /// # let expected = BerObject::from_seq(vec![ |
114 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
115 | | /// # BerObject::from_int_slice(b"\x01\x00\x00"), |
116 | | /// # ]); |
117 | | /// # assert_eq!(localparse_seq(&bytes), Ok((empty, expected))); |
118 | | /// let (rem, v) = localparse_seq(&bytes).expect("parsing failed"); |
119 | | /// ``` |
120 | | /// |
121 | | /// Parsing a defined sequence with different types: |
122 | | /// |
123 | | /// ```rust |
124 | | /// # use der_parser::ber::*; |
125 | | /// # use der_parser::error::BerResult; |
126 | | /// use nom::combinator::map; |
127 | | /// use nom::sequence::tuple; |
128 | | /// |
129 | | /// /// Read a DER-encoded object: |
130 | | /// /// SEQUENCE { |
131 | | /// /// a INTEGER, |
132 | | /// /// b OCTETSTRING |
133 | | /// /// } |
134 | | /// fn localparse_seq(i:&[u8]) -> BerResult { |
135 | | /// parse_ber_sequence_defined( |
136 | | /// // the nom `tuple` combinator returns a tuple, so we have to map it |
137 | | /// // to a list |
138 | | /// map( |
139 | | /// tuple((parse_ber_integer, parse_ber_octetstring)), |
140 | | /// |(a, b)| vec![a, b] |
141 | | /// ) |
142 | | /// )(i) |
143 | | /// } |
144 | | /// |
145 | | /// # let empty = &b""[..]; |
146 | | /// # let bytes = [ 0x30, 0x0a, |
147 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
148 | | /// # 0x04, 0x03, 0x01, 0x00, 0x00, |
149 | | /// # ]; |
150 | | /// # let expected = BerObject::from_seq(vec![ |
151 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
152 | | /// # BerObject::from_obj(BerObjectContent::OctetString(b"\x01\x00\x00")), |
153 | | /// # ]); |
154 | | /// # assert_eq!(localparse_seq(&bytes), Ok((empty, expected))); |
155 | | /// let (rem, v) = localparse_seq(&bytes).expect("parsing failed"); |
156 | | /// ``` |
157 | 0 | pub fn parse_ber_sequence_defined<'a, F>(mut f: F) -> impl FnMut(&'a [u8]) -> BerResult |
158 | 0 | where |
159 | 0 | F: FnMut(&'a [u8]) -> BerResult<Vec<BerObject>>, |
160 | | { |
161 | 0 | map( |
162 | 0 | parse_ber_sequence_defined_g(move |data, _| f(data)), |
163 | | BerObject::from_seq, |
164 | | ) |
165 | 0 | } |
166 | | |
167 | | /// Parse a defined SEQUENCE object (generic function) |
168 | | /// |
169 | | /// Given a parser for sequence content, apply it to build a DER sequence and |
170 | | /// return the remaining bytes and the built object. |
171 | | /// |
172 | | /// The remaining bytes point *after* the sequence: any bytes that are part of the sequence but not |
173 | | /// parsed are ignored. |
174 | | /// |
175 | | /// Unlike `parse_ber_sequence_defined`, this function allows returning any object or error type, |
176 | | /// and also passes the object header to the callback. |
177 | | /// |
178 | | /// # Examples |
179 | | /// |
180 | | /// Parsing a defined sequence with different types: |
181 | | /// |
182 | | /// ```rust |
183 | | /// # use der_parser::ber::*; |
184 | | /// # use der_parser::error::BerResult; |
185 | | /// # |
186 | | /// # #[derive(Debug, PartialEq)] |
187 | | /// pub struct MyObject<'a> { |
188 | | /// a: u32, |
189 | | /// b: &'a [u8], |
190 | | /// } |
191 | | /// |
192 | | /// /// Read a DER-encoded object: |
193 | | /// /// SEQUENCE { |
194 | | /// /// a INTEGER (0..4294967295), |
195 | | /// /// b OCTETSTRING |
196 | | /// /// } |
197 | | /// fn parse_myobject(i: &[u8]) -> BerResult<MyObject> { |
198 | | /// parse_ber_sequence_defined_g( |
199 | | /// |i:&[u8], _| { |
200 | | /// let (i, a) = parse_ber_u32(i)?; |
201 | | /// let (i, obj) = parse_ber_octetstring(i)?; |
202 | | /// let b = obj.as_slice().unwrap(); |
203 | | /// Ok((i, MyObject{ a, b })) |
204 | | /// } |
205 | | /// )(i) |
206 | | /// } |
207 | | /// |
208 | | /// # let empty = &b""[..]; |
209 | | /// # let bytes = [ 0x30, 0x0a, |
210 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
211 | | /// # 0x04, 0x03, 0x01, 0x00, 0x00, |
212 | | /// # ]; |
213 | | /// # let expected = MyObject { |
214 | | /// # a: 0x010001, |
215 | | /// # b: &[01, 00, 00] |
216 | | /// # }; |
217 | | /// # assert_eq!(parse_myobject(&bytes), Ok((empty, expected))); |
218 | | /// let (rem, v) = parse_myobject(&bytes).expect("parsing failed"); |
219 | | /// ``` |
220 | 463k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( |
221 | 463k | mut f: F, |
222 | 463k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> |
223 | 463k | where |
224 | 463k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, |
225 | 463k | E: ParseError<&'a [u8]> + From<BerError>, |
226 | | { |
227 | 463k | parse_ber_container(move |i, hdr| { |
228 | 415k | if hdr.tag != BerTag::Sequence { |
229 | 8.57k | return Err(Err::Error(BerError::InvalidTag.into())); |
230 | 407k | } |
231 | 407k | f(i, hdr) |
232 | 415k | }) der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 10.5k | parse_ber_container(move |i, hdr| { | 228 | 10.5k | if hdr.tag != BerTag::Sequence { | 229 | 447 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 10.0k | } | 231 | 10.0k | f(i, hdr) | 232 | 10.5k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 5.85k | parse_ber_container(move |i, hdr| { | 228 | 5.85k | if hdr.tag != BerTag::Sequence { | 229 | 724 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 5.13k | } | 231 | 5.13k | f(i, hdr) | 232 | 5.85k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 25.0k | parse_ber_container(move |i, hdr| { | 228 | 25.0k | if hdr.tag != BerTag::Sequence { | 229 | 348 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 24.7k | } | 231 | 24.7k | f(i, hdr) | 232 | 25.0k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 62.4k | parse_ber_container(move |i, hdr| { | 228 | 62.4k | if hdr.tag != BerTag::Sequence { | 229 | 550 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 61.9k | } | 231 | 61.9k | f(i, hdr) | 232 | 62.4k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 4.05k | parse_ber_container(move |i, hdr| { | 228 | 4.05k | if hdr.tag != BerTag::Sequence { | 229 | 235 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 3.81k | } | 231 | 3.81k | f(i, hdr) | 232 | 4.05k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 6.17k | parse_ber_container(move |i, hdr| { | 228 | 6.17k | if hdr.tag != BerTag::Sequence { | 229 | 223 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 5.95k | } | 231 | 5.95k | f(i, hdr) | 232 | 6.17k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 18.1k | parse_ber_container(move |i, hdr| { | 228 | 18.1k | if hdr.tag != BerTag::Sequence { | 229 | 565 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 17.6k | } | 231 | 17.6k | f(i, hdr) | 232 | 18.1k | }) |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::ApRep, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::ApReq, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 13.8k | parse_ber_container(move |i, hdr| { | 228 | 13.8k | if hdr.tag != BerTag::Sequence { | 229 | 285 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 13.5k | } | 231 | 13.5k | f(i, hdr) | 232 | 13.8k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 37.0k | parse_ber_container(move |i, hdr| { | 228 | 37.0k | if hdr.tag != BerTag::Sequence { | 229 | 1.17k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 35.8k | } | 231 | 35.8k | f(i, hdr) | 232 | 37.0k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 122k | parse_ber_container(move |i, hdr| { | 228 | 122k | if hdr.tag != BerTag::Sequence { | 229 | 1.07k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 121k | } | 231 | 121k | f(i, hdr) | 232 | 122k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 26.5k | parse_ber_container(move |i, hdr| { | 228 | 26.5k | if hdr.tag != BerTag::Sequence { | 229 | 1.25k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 25.2k | } | 231 | 25.2k | f(i, hdr) | 232 | 26.5k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 4.23k | parse_ber_container(move |i, hdr| { | 228 | 4.23k | if hdr.tag != BerTag::Sequence { | 229 | 272 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 3.96k | } | 231 | 3.96k | f(i, hdr) | 232 | 4.23k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KrbError, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 38.0k | parse_ber_container(move |i, hdr| { | 228 | 38.0k | if hdr.tag != BerTag::Sequence { | 229 | 1.15k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 36.8k | } | 231 | 36.8k | f(i, hdr) | 232 | 38.0k | }) |
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<i32>, der_parser::ber::multi::parse_ber_sequence_of_v<i32, kerberos_parser::krb5_parser::parse_der_int32, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 227 | 41.2k | parse_ber_container(move |i, hdr| { | 228 | 41.2k | if hdr.tag != BerTag::Sequence { | 229 | 277 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 40.9k | } | 231 | 40.9k | f(i, hdr) | 232 | 41.2k | }) |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_defined_g::<_, _, _>::{closure#0} |
233 | 463k | } der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 11.6k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 11.6k | mut f: F, | 222 | 11.6k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 11.6k | where | 224 | 11.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 11.6k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 11.6k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 11.6k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 9.23k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 9.23k | mut f: F, | 222 | 9.23k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 9.23k | where | 224 | 9.23k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 9.23k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 9.23k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 9.23k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 26.7k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 26.7k | mut f: F, | 222 | 26.7k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 26.7k | where | 224 | 26.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 26.7k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 26.7k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 26.7k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<i32>, der_parser::ber::multi::parse_ber_sequence_of_v<i32, kerberos_parser::krb5_parser::parse_der_int32, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 42.4k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 42.4k | mut f: F, | 222 | 42.4k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 42.4k | where | 224 | 42.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 42.4k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 42.4k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 42.4k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 64.6k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 64.6k | mut f: F, | 222 | 64.6k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 64.6k | where | 224 | 64.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 64.6k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 64.6k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 64.6k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 5.15k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 5.15k | mut f: F, | 222 | 5.15k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 5.15k | where | 224 | 5.15k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 5.15k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 5.15k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 5.15k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 7.16k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 7.16k | mut f: F, | 222 | 7.16k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 7.16k | where | 224 | 7.16k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 7.16k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 7.16k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 7.16k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 19.6k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 19.6k | mut f: F, | 222 | 19.6k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 19.6k | where | 224 | 19.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 19.6k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 19.6k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 19.6k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::ApRep, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}, der_parser::error::BerError>der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::ApReq, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 15.1k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 15.1k | mut f: F, | 222 | 15.1k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 15.1k | where | 224 | 15.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 15.1k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 15.1k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 15.1k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 50.9k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 50.9k | mut f: F, | 222 | 50.9k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 50.9k | where | 224 | 50.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 50.9k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 50.9k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 50.9k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 128k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 128k | mut f: F, | 222 | 128k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 128k | where | 224 | 128k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 128k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 128k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 128k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 31.0k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 31.0k | mut f: F, | 222 | 31.0k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 31.0k | where | 224 | 31.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 31.0k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 31.0k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 31.0k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 5.24k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 5.24k | mut f: F, | 222 | 5.24k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 5.24k | where | 224 | 5.24k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 5.24k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 5.24k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 5.24k | } |
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KrbError, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}, der_parser::error::BerError>Line | Count | Source | 220 | 45.7k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 45.7k | mut f: F, | 222 | 45.7k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 45.7k | where | 224 | 45.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 45.7k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 45.7k | parse_ber_container(move |i, hdr| { | 228 | | if hdr.tag != BerTag::Sequence { | 229 | | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | | } | 231 | | f(i, hdr) | 232 | | }) | 233 | 45.7k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_defined_g::<_, _, _> |
234 | | |
235 | | /// Parse a SET OF object |
236 | | /// |
237 | | /// Given a subparser for a BER type, parse a set of identical objects. |
238 | | /// |
239 | | /// ```rust |
240 | | /// # use der_parser::ber::{parse_ber_integer, parse_ber_set_of, BerObject}; |
241 | | /// # use der_parser::error::BerResult; |
242 | | /// # |
243 | | /// /// Read a SET OF INTEGER |
244 | | /// fn parser(i:&[u8]) -> BerResult<BerObject> { |
245 | | /// parse_ber_set_of(parse_ber_integer)(i) |
246 | | /// } |
247 | | /// |
248 | | /// # let empty = &b""[..]; |
249 | | /// # let bytes = [ 0x31, 0x0a, |
250 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
251 | | /// # 0x02, 0x03, 0x01, 0x00, 0x00, |
252 | | /// # ]; |
253 | | /// # let expected = BerObject::from_set(vec![ |
254 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
255 | | /// # BerObject::from_int_slice(b"\x01\x00\x00"), |
256 | | /// # ]); |
257 | | /// # assert_eq!(parser(&bytes), Ok((empty, expected))); |
258 | | /// let (rem, v) = parser(&bytes).expect("parsing failed"); |
259 | | /// ``` |
260 | 0 | pub fn parse_ber_set_of<'a, F>(f: F) -> impl FnMut(&'a [u8]) -> BerResult |
261 | 0 | where |
262 | 0 | F: Fn(&'a [u8]) -> BerResult, |
263 | | { |
264 | 0 | map(parse_ber_set_of_v(f), BerObject::from_set) |
265 | 0 | } |
266 | | |
267 | | /// Parse a SET OF object (returning a vec) |
268 | | /// |
269 | | /// Given a subparser for a BER type, parse a set of identical objects. |
270 | | /// |
271 | | /// This differs from `parse_ber_set_of` in the parse function and return type. |
272 | | /// |
273 | | /// ```rust |
274 | | /// # use der_parser::ber::{parse_ber_integer, parse_ber_set_of_v, BerObject}; |
275 | | /// # use der_parser::error::BerResult; |
276 | | /// # |
277 | | /// /// Read a SET OF INTEGER |
278 | | /// fn parser(i:&[u8]) -> BerResult<Vec<BerObject>> { |
279 | | /// parse_ber_set_of_v(parse_ber_integer)(i) |
280 | | /// } |
281 | | /// |
282 | | /// # let empty = &b""[..]; |
283 | | /// # let bytes = [ 0x31, 0x0a, |
284 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
285 | | /// # 0x02, 0x03, 0x01, 0x00, 0x00, |
286 | | /// # ]; |
287 | | /// # let expected = vec![ |
288 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
289 | | /// # BerObject::from_int_slice(b"\x01\x00\x00"), |
290 | | /// # ]; |
291 | | /// let (rem, v) = parser(&bytes).expect("parsing failed"); |
292 | | /// # assert_eq!(v, expected); |
293 | | /// ``` |
294 | 0 | pub fn parse_ber_set_of_v<'a, T, F, E>(f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> |
295 | 0 | where |
296 | 0 | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, |
297 | 0 | E: ParseError<&'a [u8]> + From<BerError>, |
298 | | { |
299 | 0 | let mut subparser = all_consuming(many0(complete(cut(f)))); |
300 | 0 | parse_ber_set_defined_g(move |data, _| subparser(data)) |
301 | 0 | } |
302 | | |
303 | | /// Parse a defined set of DER elements (function version) |
304 | | /// |
305 | | /// Given a list of expected parsers, apply them to build a DER set and |
306 | | /// return the remaining bytes and the built object. |
307 | | /// |
308 | | /// The remaining bytes point *after* the set: any bytes that are part of the sequence but not |
309 | | /// parsed are ignored. |
310 | | /// The nom combinator `all_consuming` can be used to ensure all the content is parsed. |
311 | | /// |
312 | | /// The object header is not available to the parsing function, and the returned type is always a |
313 | | /// `BerObject`. |
314 | | /// For a generic version, see [`parse_ber_set_defined_g`](fn.parse_ber_set_defined_g.html). |
315 | | /// |
316 | | /// # Examples |
317 | | /// |
318 | | /// Parsing a set of identical types (same as `parse_ber_set_of`): |
319 | | /// |
320 | | /// ```rust |
321 | | /// # use der_parser::ber::{parse_ber_integer, parse_ber_set_defined, BerObject}; |
322 | | /// # use der_parser::error::BerResult; |
323 | | /// use nom::combinator::complete; |
324 | | /// use nom::multi::many1; |
325 | | /// |
326 | | /// fn localparse_seq(i:&[u8]) -> BerResult { |
327 | | /// parse_ber_set_defined( |
328 | | /// many1(complete(parse_ber_integer)) |
329 | | /// )(i) |
330 | | /// } |
331 | | /// |
332 | | /// # let empty = &b""[..]; |
333 | | /// # let bytes = [ 0x31, 0x0a, |
334 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
335 | | /// # 0x02, 0x03, 0x01, 0x00, 0x00, |
336 | | /// # ]; |
337 | | /// # let expected = BerObject::from_set(vec![ |
338 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
339 | | /// # BerObject::from_int_slice(b"\x01\x00\x00"), |
340 | | /// # ]); |
341 | | /// # assert_eq!(localparse_seq(&bytes), Ok((empty, expected))); |
342 | | /// let (rem, v) = localparse_seq(&bytes).expect("parsing failed"); |
343 | | /// ``` |
344 | | /// |
345 | | /// Parsing a defined set with different types: |
346 | | /// |
347 | | /// ```rust |
348 | | /// # use der_parser::ber::*; |
349 | | /// # use der_parser::error::BerResult; |
350 | | /// use nom::combinator::map; |
351 | | /// use nom::sequence::tuple; |
352 | | /// |
353 | | /// /// Read a DER-encoded object: |
354 | | /// /// SET { |
355 | | /// /// a INTEGER, |
356 | | /// /// b OCTETSTRING |
357 | | /// /// } |
358 | | /// fn localparse_set(i:&[u8]) -> BerResult { |
359 | | /// parse_ber_set_defined( |
360 | | /// // the nom `tuple` combinator returns a tuple, so we have to map it |
361 | | /// // to a list |
362 | | /// map( |
363 | | /// tuple((parse_ber_integer, parse_ber_octetstring)), |
364 | | /// |(a, b)| vec![a, b] |
365 | | /// ) |
366 | | /// )(i) |
367 | | /// } |
368 | | /// |
369 | | /// # let empty = &b""[..]; |
370 | | /// # let bytes = [ 0x31, 0x0a, |
371 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
372 | | /// # 0x04, 0x03, 0x01, 0x00, 0x00, |
373 | | /// # ]; |
374 | | /// # let expected = BerObject::from_set(vec![ |
375 | | /// # BerObject::from_int_slice(b"\x01\x00\x01"), |
376 | | /// # BerObject::from_obj(BerObjectContent::OctetString(b"\x01\x00\x00")), |
377 | | /// # ]); |
378 | | /// # assert_eq!(localparse_set(&bytes), Ok((empty, expected))); |
379 | | /// let (rem, v) = localparse_set(&bytes).expect("parsing failed"); |
380 | | /// ``` |
381 | 0 | pub fn parse_ber_set_defined<'a, F>(mut f: F) -> impl FnMut(&'a [u8]) -> BerResult |
382 | 0 | where |
383 | 0 | F: FnMut(&'a [u8]) -> BerResult<Vec<BerObject>>, |
384 | | { |
385 | 0 | map( |
386 | 0 | parse_ber_set_defined_g(move |data, _| f(data)), |
387 | | BerObject::from_set, |
388 | | ) |
389 | 0 | } |
390 | | |
391 | | /// Parse a defined SET object (generic version) |
392 | | /// |
393 | | /// Given a parser for set content, apply it to build a DER set and |
394 | | /// return the remaining bytes and the built object. |
395 | | /// |
396 | | /// The remaining bytes point *after* the set: any bytes that are part of the sequence but not |
397 | | /// parsed are ignored. |
398 | | /// The nom combinator `all_consuming` can be used to ensure all the content is parsed. |
399 | | /// |
400 | | /// Unlike `parse_ber_set_defined`, this function allows returning any object or error type, |
401 | | /// and also passes the object header to the callback. |
402 | | /// |
403 | | /// # Examples |
404 | | /// |
405 | | /// Parsing a defined set with different types: |
406 | | /// |
407 | | /// ```rust |
408 | | /// # use der_parser::ber::*; |
409 | | /// # use der_parser::error::BerResult; |
410 | | /// # |
411 | | /// # #[derive(Debug, PartialEq)] |
412 | | /// pub struct MyObject<'a> { |
413 | | /// a: u32, |
414 | | /// b: &'a [u8], |
415 | | /// } |
416 | | /// |
417 | | /// /// Read a DER-encoded object: |
418 | | /// /// SET { |
419 | | /// /// a INTEGER (0..4294967295), |
420 | | /// /// b OCTETSTRING |
421 | | /// /// } |
422 | | /// fn parse_myobject(i: &[u8]) -> BerResult<MyObject> { |
423 | | /// parse_ber_set_defined_g( |
424 | | /// |i:&[u8], _| { |
425 | | /// let (i, a) = parse_ber_u32(i)?; |
426 | | /// let (i, obj) = parse_ber_octetstring(i)?; |
427 | | /// let b = obj.as_slice().unwrap(); |
428 | | /// Ok((i, MyObject{ a, b })) |
429 | | /// } |
430 | | /// )(i) |
431 | | /// } |
432 | | /// |
433 | | /// # let empty = &b""[..]; |
434 | | /// # let bytes = [ 0x31, 0x0a, |
435 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
436 | | /// # 0x04, 0x03, 0x01, 0x00, 0x00, |
437 | | /// # ]; |
438 | | /// # let expected = MyObject { |
439 | | /// # a: 0x010001, |
440 | | /// # b: &[01, 00, 00] |
441 | | /// # }; |
442 | | /// # assert_eq!(parse_myobject(&bytes), Ok((empty, expected))); |
443 | | /// let (rem, v) = parse_myobject(&bytes).expect("parsing failed"); |
444 | | /// ``` |
445 | 0 | pub fn parse_ber_set_defined_g<'a, O, F, E>( |
446 | 0 | mut f: F, |
447 | 0 | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> |
448 | 0 | where |
449 | 0 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, |
450 | 0 | E: ParseError<&'a [u8]> + From<BerError>, |
451 | | { |
452 | 0 | parse_ber_container(move |i, hdr| { |
453 | 0 | if hdr.tag != BerTag::Set { |
454 | 0 | return Err(Err::Error(BerError::InvalidTag.into())); |
455 | 0 | } |
456 | 0 | f(i, hdr) |
457 | 0 | }) |
458 | 0 | } |
459 | | |
460 | | /// Parse a BER object and apply provided function to content |
461 | | /// |
462 | | /// Given a parser for content, read BER object header and apply parser to |
463 | | /// return the remaining bytes and the parser result. |
464 | | /// |
465 | | /// The remaining bytes point *after* the content: any bytes that are part of the content but not |
466 | | /// parsed are ignored. |
467 | | /// The nom combinator `all_consuming` can be used to ensure all the content is parsed. |
468 | | /// |
469 | | /// This function is mostly intended for structured objects, but can be used for any valid BER |
470 | | /// object. |
471 | | /// |
472 | | /// # Examples |
473 | | /// |
474 | | /// Parsing a defined sequence with different types: |
475 | | /// |
476 | | /// ```rust |
477 | | /// # use der_parser::ber::*; |
478 | | /// # use der_parser::error::{BerError, BerResult}; |
479 | | /// # |
480 | | /// # #[derive(Debug, PartialEq)] |
481 | | /// pub struct MyObject<'a> { |
482 | | /// a: u32, |
483 | | /// b: &'a [u8], |
484 | | /// } |
485 | | /// |
486 | | /// /// Read a DER-encoded object: |
487 | | /// /// SEQUENCE { |
488 | | /// /// a INTEGER (0..4294967295), |
489 | | /// /// b OCTETSTRING |
490 | | /// /// } |
491 | | /// fn parse_myobject(i: &[u8]) -> BerResult<MyObject> { |
492 | | /// parse_ber_container( |
493 | | /// |i: &[u8], hdr: BerObjectHeader| { |
494 | | /// if hdr.tag != BerTag::Sequence { |
495 | | /// return Err(nom::Err::Error(BerError::BerTypeError.into())); |
496 | | /// } |
497 | | /// let (i, a) = parse_ber_u32(i)?; |
498 | | /// let (i, obj) = parse_ber_octetstring(i)?; |
499 | | /// let b = obj.as_slice().unwrap(); |
500 | | /// Ok((i, MyObject{ a, b })) |
501 | | /// } |
502 | | /// )(i) |
503 | | /// } |
504 | | /// |
505 | | /// # let empty = &b""[..]; |
506 | | /// # let bytes = [ 0x30, 0x0a, |
507 | | /// # 0x02, 0x03, 0x01, 0x00, 0x01, |
508 | | /// # 0x04, 0x03, 0x01, 0x00, 0x00, |
509 | | /// # ]; |
510 | | /// # let expected = MyObject { |
511 | | /// # a: 0x010001, |
512 | | /// # b: &[01, 00, 00] |
513 | | /// # }; |
514 | | /// # assert_eq!(parse_myobject(&bytes), Ok((empty, expected))); |
515 | | /// let (rem, v) = parse_myobject(&bytes).expect("parsing failed"); |
516 | | /// ``` |
517 | 2.20M | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> |
518 | 2.20M | where |
519 | 2.20M | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, |
520 | 2.20M | E: ParseError<&'a [u8]> + From<BerError>, |
521 | | { |
522 | 2.20M | move |i: &[u8]| { |
523 | 2.20M | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; |
524 | 2.11M | let (i, data) = match hdr.len { |
525 | 2.04M | BerSize::Definite(len) => take(len)(i)?, |
526 | | BerSize::Indefinite => { |
527 | 74.2k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? |
528 | | } |
529 | | }; |
530 | 1.96M | let (_rest, v) = f(data, hdr)?; |
531 | 907k | Ok((i, v)) |
532 | 2.20M | } der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 11.6k | move |i: &[u8]| { | 523 | 11.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 11.2k | let (i, data) = match hdr.len { | 525 | 10.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 583 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 10.5k | let (_rest, v) = f(data, hdr)?; | 531 | 8.65k | Ok((i, v)) | 532 | 11.6k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<alloc::string::String>, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 14.1k | move |i: &[u8]| { | 523 | 14.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 13.3k | let (i, data) = match hdr.len { | 525 | 12.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 591 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 12.2k | let (_rest, v) = f(data, hdr)?; | 531 | 8.65k | Ok((i, v)) | 532 | 14.1k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5_constants::EncryptionType>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5_constants::EncryptionType>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#8}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 44.2k | move |i: &[u8]| { | 523 | 44.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 43.8k | let (i, data) = match hdr.len { | 525 | 42.9k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 866 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 43.1k | let (_rest, v) = f(data, hdr)?; | 531 | 40.4k | Ok((i, v)) | 532 | 44.2k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 9.23k | move |i: &[u8]| { | 523 | 9.23k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 8.24k | let (i, data) = match hdr.len { | 525 | 7.61k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 633 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 5.85k | let (_rest, v) = f(data, hdr)?; | 531 | 219 | Ok((i, v)) | 532 | 9.23k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 26.7k | move |i: &[u8]| { | 523 | 26.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 26.1k | let (i, data) = match hdr.len { | 525 | 25.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 974 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 25.0k | let (_rest, v) = f(data, hdr)?; | 531 | 1.95k | Ok((i, v)) | 532 | 26.7k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::PAData>, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 21.5k | move |i: &[u8]| { | 523 | 21.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 21.1k | let (i, data) = match hdr.len { | 525 | 20.5k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 597 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 20.4k | let (_rest, v) = f(data, hdr)?; | 531 | 337 | Ok((i, v)) | 532 | 21.5k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::PAData>, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 92.4k | move |i: &[u8]| { | 523 | 92.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 89.7k | let (i, data) = match hdr.len { | 525 | 88.5k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.17k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 87.9k | let (_rest, v) = f(data, hdr)?; | 531 | 1.62k | Ok((i, v)) | 532 | 92.4k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 4.35k | move |i: &[u8]| { | 523 | 4.35k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 4.04k | let (i, data) = match hdr.len { | 525 | 3.23k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 807 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 3.03k | let (_rest, v) = f(data, hdr)?; | 531 | 2.13k | Ok((i, v)) | 532 | 4.35k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 19.8k | move |i: &[u8]| { | 523 | 19.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 18.8k | let (i, data) = match hdr.len { | 525 | 17.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.48k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 17.3k | let (_rest, v) = f(data, hdr)?; | 531 | 13.4k | Ok((i, v)) | 532 | 19.8k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 61.9k | move |i: &[u8]| { | 523 | 61.9k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 59.4k | let (i, data) = match hdr.len { | 525 | 58.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 721 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 58.8k | let (_rest, v) = f(data, hdr)?; | 531 | 55.6k | Ok((i, v)) | 532 | 61.9k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 52.0k | move |i: &[u8]| { | 523 | 52.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 51.4k | let (i, data) = match hdr.len { | 525 | 50.3k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.07k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 50.0k | let (_rest, v) = f(data, hdr)?; | 531 | 47.4k | Ok((i, v)) | 532 | 52.0k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_errors::ErrorCode, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_errors::ErrorCode, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#6}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 10.8k | move |i: &[u8]| { | 523 | 10.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 10.4k | let (i, data) = match hdr.len { | 525 | 9.88k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 584 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 9.78k | let (_rest, v) = f(data, hdr)?; | 531 | 8.76k | Ok((i, v)) | 532 | 10.8k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::AddressType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::AddressType, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.81k | move |i: &[u8]| { | 523 | 3.81k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.36k | let (i, data) = match hdr.len { | 525 | 2.76k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 602 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.71k | let (_rest, v) = f(data, hdr)?; | 531 | 1.71k | Ok((i, v)) | 532 | 3.81k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 7.89k | move |i: &[u8]| { | 523 | 7.89k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 7.38k | let (i, data) = match hdr.len { | 525 | 6.46k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 913 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 6.37k | let (_rest, v) = f(data, hdr)?; | 531 | 4.35k | Ok((i, v)) | 532 | 7.89k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 27.4k | move |i: &[u8]| { | 523 | 27.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 26.2k | let (i, data) = match hdr.len { | 525 | 24.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.39k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 23.7k | let (_rest, v) = f(data, hdr)?; | 531 | 19.8k | Ok((i, v)) | 532 | 27.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 28.4k | move |i: &[u8]| { | 523 | 28.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 27.3k | let (i, data) = match hdr.len { | 525 | 25.9k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.46k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 25.6k | let (_rest, v) = f(data, hdr)?; | 531 | 21.5k | Ok((i, v)) | 532 | 28.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 105k | move |i: &[u8]| { | 523 | 105k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 101k | let (i, data) = match hdr.len { | 525 | 99.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.39k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 97.3k | let (_rest, v) = f(data, hdr)?; | 531 | 92.4k | Ok((i, v)) | 532 | 105k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::EncryptionType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::EncryptionType, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 5.95k | move |i: &[u8]| { | 523 | 5.95k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 5.53k | let (i, data) = match hdr.len { | 525 | 4.94k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 590 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 4.85k | let (_rest, v) = f(data, hdr)?; | 531 | 3.96k | Ok((i, v)) | 532 | 5.95k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::PAType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::PAType, kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 25.2k | move |i: &[u8]| { | 523 | 25.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 24.7k | let (i, data) = match hdr.len { | 525 | 24.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 584 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 24.0k | let (_rest, v) = f(data, hdr)?; | 531 | 22.7k | Ok((i, v)) | 532 | 25.2k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::NameType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::NameType, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 17.6k | move |i: &[u8]| { | 523 | 17.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 16.9k | let (i, data) = match hdr.len { | 525 | 16.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 748 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 16.3k | let (_rest, v) = f(data, hdr)?; | 531 | 14.1k | Ok((i, v)) | 532 | 17.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReqBody, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 64.6k | move |i: &[u8]| { | 523 | 64.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 63.7k | let (i, data) = match hdr.len { | 525 | 63.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 587 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 62.4k | let (_rest, v) = f(data, hdr)?; | 531 | 37.7k | Ok((i, v)) | 532 | 64.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReqBody, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 92.4k | move |i: &[u8]| { | 523 | 92.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 89.6k | let (i, data) = match hdr.len { | 525 | 88.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.17k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 87.9k | let (_rest, v) = f(data, hdr)?; | 531 | 37.7k | Ok((i, v)) | 532 | 92.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::HostAddress, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 5.15k | move |i: &[u8]| { | 523 | 5.15k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 4.72k | let (i, data) = match hdr.len { | 525 | 4.12k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 602 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 4.05k | let (_rest, v) = f(data, hdr)?; | 531 | 21 | Ok((i, v)) | 532 | 5.15k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 7.16k | move |i: &[u8]| { | 523 | 7.16k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 6.77k | let (i, data) = match hdr.len { | 525 | 6.14k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 626 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 6.17k | let (_rest, v) = f(data, hdr)?; | 531 | 1.38k | Ok((i, v)) | 532 | 7.16k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 144 | move |i: &[u8]| { | 523 | 144 | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 142 | let (i, data) = match hdr.len { | 525 | 142 | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 142 | let (_rest, v) = f(data, hdr)?; | 531 | 135 | Ok((i, v)) | 532 | 144 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 165 | move |i: &[u8]| { | 523 | 165 | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 165 | let (i, data) = match hdr.len { | 525 | 165 | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 165 | let (_rest, v) = f(data, hdr)?; | 531 | 162 | Ok((i, v)) | 532 | 165 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#7}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 18 | move |i: &[u8]| { | 523 | 18 | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 16 | let (i, data) = match hdr.len { | 525 | 16 | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 16 | let (_rest, v) = f(data, hdr)?; | 531 | 15 | Ok((i, v)) | 532 | 18 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 19.6k | move |i: &[u8]| { | 523 | 19.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 19.1k | let (i, data) = match hdr.len { | 525 | 18.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 890 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 18.1k | let (_rest, v) = f(data, hdr)?; | 531 | 8.65k | Ok((i, v)) | 532 | 19.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#10}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 5.80k | move |i: &[u8]| { | 523 | 5.80k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 5.41k | let (i, data) = match hdr.len { | 525 | 4.70k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 713 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 4.74k | let (_rest, v) = f(data, hdr)?; | 531 | 3.68k | Ok((i, v)) | 532 | 5.80k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 169 | move |i: &[u8]| { | 523 | 169 | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 169 | let (i, data) = match hdr.len { | 525 | 169 | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 169 | let (_rest, v) = f(data, hdr)?; | 531 | 165 | Ok((i, v)) | 532 | 169 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 14.6k | move |i: &[u8]| { | 523 | 14.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 14.2k | let (i, data) = match hdr.len { | 525 | 13.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 621 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 13.5k | let (_rest, v) = f(data, hdr)?; | 531 | 3.16k | Ok((i, v)) | 532 | 14.6k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApRep, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::ApRep, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApRep, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::ApRep, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApReq, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::ApReq, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 15.1k | move |i: &[u8]| { | 523 | 15.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 14.9k | let (i, data) = match hdr.len { | 525 | 14.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 753 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 13.8k | let (_rest, v) = f(data, hdr)?; | 531 | 135 | Ok((i, v)) | 532 | 15.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApReq, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::ApReq, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 18.1k | move |i: &[u8]| { | 523 | 18.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 17.8k | let (i, data) = match hdr.len { | 525 | 16.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.37k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 16.0k | let (_rest, v) = f(data, hdr)?; | 531 | 135 | Ok((i, v)) | 532 | 18.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#9}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 8.76k | move |i: &[u8]| { | 523 | 8.76k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 7.98k | let (i, data) = match hdr.len { | 525 | 7.26k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 722 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 7.28k | let (_rest, v) = f(data, hdr)?; | 531 | 5.80k | Ok((i, v)) | 532 | 8.76k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 1.79k | move |i: &[u8]| { | 523 | 1.79k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 1.38k | let (i, data) = match hdr.len { | 525 | 1.19k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 194 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 993 | let (_rest, v) = f(data, hdr)?; | 531 | 169 | Ok((i, v)) | 532 | 1.79k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 21.5k | move |i: &[u8]| { | 523 | 21.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 20.9k | let (i, data) = match hdr.len { | 525 | 20.3k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 597 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 20.1k | let (_rest, v) = f(data, hdr)?; | 531 | 14.6k | Ok((i, v)) | 532 | 21.5k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 55.4k | move |i: &[u8]| { | 523 | 55.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 54.8k | let (i, data) = match hdr.len { | 525 | 54.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 582 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 53.8k | let (_rest, v) = f(data, hdr)?; | 531 | 52.2k | Ok((i, v)) | 532 | 55.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcRep, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 50.9k | move |i: &[u8]| { | 523 | 50.9k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 41.5k | let (i, data) = match hdr.len { | 525 | 39.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.21k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 37.0k | let (_rest, v) = f(data, hdr)?; | 531 | 15 | Ok((i, v)) | 532 | 50.9k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcRep, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_as_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 27.7k | move |i: &[u8]| { | 523 | 27.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 27.7k | let (i, data) = match hdr.len { | 525 | 27.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 24.3k | let (_rest, v) = f(data, hdr)?; | 531 | 11 | Ok((i, v)) | 532 | 27.7k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcRep, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_tgs_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 31.1k | move |i: &[u8]| { | 523 | 31.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 31.1k | let (i, data) = match hdr.len { | 525 | 31.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 27.4k | let (_rest, v) = f(data, hdr)?; | 531 | 4 | Ok((i, v)) | 532 | 31.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReq, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 128k | move |i: &[u8]| { | 523 | 128k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 125k | let (i, data) = match hdr.len { | 525 | 122k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.86k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 122k | let (_rest, v) = f(data, hdr)?; | 531 | 37.7k | Ok((i, v)) | 532 | 128k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReq, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_as_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 74.2k | move |i: &[u8]| { | 523 | 74.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 74.2k | let (i, data) = match hdr.len { | 525 | 74.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 67.4k | let (_rest, v) = f(data, hdr)?; | 531 | 30.3k | Ok((i, v)) | 532 | 74.2k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReq, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_tgs_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 78.1k | move |i: &[u8]| { | 523 | 78.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 78.1k | let (i, data) = match hdr.len { | 525 | 78.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 62.9k | let (_rest, v) = f(data, hdr)?; | 531 | 7.47k | Ok((i, v)) | 532 | 78.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PAData, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 31.0k | move |i: &[u8]| { | 523 | 31.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 28.4k | let (i, data) = match hdr.len { | 525 | 27.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 608 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 26.5k | let (_rest, v) = f(data, hdr)?; | 531 | 6.30k | Ok((i, v)) | 532 | 31.0k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 5.24k | move |i: &[u8]| { | 523 | 5.24k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 4.84k | let (i, data) = match hdr.len { | 525 | 4.26k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 584 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 4.23k | let (_rest, v) = f(data, hdr)?; | 531 | 162 | Ok((i, v)) | 532 | 5.24k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 8.32k | move |i: &[u8]| { | 523 | 8.32k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 7.81k | let (i, data) = match hdr.len { | 525 | 6.26k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.55k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 6.15k | let (_rest, v) = f(data, hdr)?; | 531 | 162 | Ok((i, v)) | 532 | 8.32k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 2.13k | move |i: &[u8]| { | 523 | 2.13k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 1.77k | let (i, data) = match hdr.len { | 525 | 1.26k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 514 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 966 | let (_rest, v) = f(data, hdr)?; | 531 | 144 | Ok((i, v)) | 532 | 2.13k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#6}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.16k | move |i: &[u8]| { | 523 | 3.16k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 2.56k | let (i, data) = match hdr.len { | 525 | 1.98k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 586 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 1.82k | let (_rest, v) = f(data, hdr)?; | 531 | 18 | Ok((i, v)) | 532 | 3.16k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KrbError, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KrbError, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 45.7k | move |i: &[u8]| { | 523 | 45.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 40.8k | let (i, data) = match hdr.len { | 525 | 38.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.04k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 38.0k | let (_rest, v) = f(data, hdr)?; | 531 | 3.68k | Ok((i, v)) | 532 | 45.7k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KrbError, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KrbError, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 60.4k | move |i: &[u8]| { | 523 | 60.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 60.4k | let (i, data) = match hdr.len { | 525 | 60.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 0 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 46.2k | let (_rest, v) = f(data, hdr)?; | 531 | 3.68k | Ok((i, v)) | 532 | 60.4k | } |
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_encrypted::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.96k | move |i: &[u8]| { | 523 | 3.96k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.36k | let (i, data) = match hdr.len { | 525 | 2.77k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 589 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.76k | let (_rest, v) = f(data, hdr)?; | 531 | 1.38k | Ok((i, v)) | 532 | 3.96k | } |
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 22.7k | move |i: &[u8]| { | 523 | 22.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 22.3k | let (i, data) = match hdr.len { | 525 | 21.5k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 828 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 21.6k | let (_rest, v) = f(data, hdr)?; | 531 | 6.30k | Ok((i, v)) | 532 | 22.7k | } |
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 1.71k | move |i: &[u8]| { | 523 | 1.71k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 1.19k | let (i, data) = match hdr.len { | 525 | 1.00k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 194 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 801 | let (_rest, v) = f(data, hdr)?; | 531 | 21 | Ok((i, v)) | 532 | 1.71k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 13.5k | move |i: &[u8]| { | 523 | 13.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 13.3k | let (i, data) = match hdr.len { | 525 | 9.90k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 3.42k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 10.3k | let (_rest, v) = f(data, hdr)?; | 531 | 7.89k | Ok((i, v)) | 532 | 13.5k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 36.8k | move |i: &[u8]| { | 523 | 36.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 35.5k | let (i, data) = match hdr.len { | 525 | 33.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.67k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 31.4k | let (_rest, v) = f(data, hdr)?; | 531 | 27.4k | Ok((i, v)) | 532 | 36.8k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 13.4k | move |i: &[u8]| { | 523 | 13.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 12.8k | let (i, data) = match hdr.len { | 525 | 12.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 588 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 12.1k | let (_rest, v) = f(data, hdr)?; | 531 | 10.8k | Ok((i, v)) | 532 | 13.4k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.96k | move |i: &[u8]| { | 523 | 3.96k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.56k | let (i, data) = match hdr.len { | 525 | 2.98k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 582 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.94k | let (_rest, v) = f(data, hdr)?; | 531 | 1.98k | Ok((i, v)) | 532 | 3.96k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 35.8k | move |i: &[u8]| { | 523 | 35.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 33.1k | let (i, data) = match hdr.len { | 525 | 31.3k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.84k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 30.7k | let (_rest, v) = f(data, hdr)?; | 531 | 28.4k | Ok((i, v)) | 532 | 35.8k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 121k | move |i: &[u8]| { | 523 | 121k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 119k | let (i, data) = match hdr.len { | 525 | 117k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.64k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 117k | let (_rest, v) = f(data, hdr)?; | 531 | 105k | Ok((i, v)) | 532 | 121k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#7}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 47.4k | move |i: &[u8]| { | 523 | 47.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 46.8k | let (i, data) = match hdr.len { | 525 | 46.0k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 786 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 46.0k | let (_rest, v) = f(data, hdr)?; | 531 | 44.2k | Ok((i, v)) | 532 | 47.4k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#9}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 40.4k | move |i: &[u8]| { | 523 | 40.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 33.6k | let (i, data) = match hdr.len { | 525 | 32.3k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.27k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 25.9k | let (_rest, v) = f(data, hdr)?; | 531 | 219 | Ok((i, v)) | 532 | 40.4k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::Ticket>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::Ticket>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#11}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 37.7k | move |i: &[u8]| { | 523 | 37.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 29.8k | let (i, data) = match hdr.len { | 525 | 28.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.27k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 22.0k | let (_rest, v) = f(data, hdr)?; | 531 | 0 | Ok((i, v)) | 532 | 37.7k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<i32>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<i32>, der_parser::ber::multi::parse_ber_sequence_of_v<i32, kerberos_parser::krb5_parser::parse_der_int32, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 42.4k | move |i: &[u8]| { | 523 | 42.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 41.9k | let (i, data) = match hdr.len { | 525 | 32.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 9.35k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 41.2k | let (_rest, v) = f(data, hdr)?; | 531 | 40.4k | Ok((i, v)) | 532 | 42.4k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 19.8k | move |i: &[u8]| { | 523 | 19.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 19.2k | let (i, data) = match hdr.len { | 525 | 17.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.48k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 18.1k | let (_rest, v) = f(data, hdr)?; | 531 | 685 | Ok((i, v)) | 532 | 19.8k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#12}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.68k | move |i: &[u8]| { | 523 | 3.68k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.26k | let (i, data) = match hdr.len { | 525 | 2.66k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 606 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.38k | let (_rest, v) = f(data, hdr)?; | 531 | 491 | Ok((i, v)) | 532 | 3.68k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 52.0k | move |i: &[u8]| { | 523 | 52.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 51.5k | let (i, data) = match hdr.len { | 525 | 50.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.07k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 50.2k | let (_rest, v) = f(data, hdr)?; | 531 | 590 | Ok((i, v)) | 532 | 52.0k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#6}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 47.4k | move |i: &[u8]| { | 523 | 47.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 46.8k | let (i, data) = match hdr.len { | 525 | 46.0k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 786 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 46.0k | let (_rest, v) = f(data, hdr)?; | 531 | 1.17k | Ok((i, v)) | 532 | 47.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#10}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 37.7k | move |i: &[u8]| { | 523 | 37.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 30.9k | let (i, data) = match hdr.len { | 525 | 29.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.27k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 23.1k | let (_rest, v) = f(data, hdr)?; | 531 | 1.07k | Ok((i, v)) | 532 | 37.7k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#8}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 8.76k | move |i: &[u8]| { | 523 | 8.76k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 8.18k | let (i, data) = match hdr.len { | 525 | 7.45k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 722 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 7.47k | let (_rest, v) = f(data, hdr)?; | 531 | 194 | Ok((i, v)) | 532 | 8.76k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 52.2k | move |i: &[u8]| { | 523 | 52.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 51.7k | let (i, data) = match hdr.len { | 525 | 50.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 889 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 50.8k | let (_rest, v) = f(data, hdr)?; | 531 | 763 | Ok((i, v)) | 532 | 52.2k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 55.6k | move |i: &[u8]| { | 523 | 55.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 55.2k | let (i, data) = match hdr.len { | 525 | 54.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 582 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 54.2k | let (_rest, v) = f(data, hdr)?; | 531 | 690 | Ok((i, v)) | 532 | 55.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#7}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 8.76k | move |i: &[u8]| { | 523 | 8.76k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 8.37k | let (i, data) = match hdr.len { | 525 | 7.59k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 778 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 7.68k | let (_rest, v) = f(data, hdr)?; | 531 | 206 | Ok((i, v)) | 532 | 8.76k | } |
der_parser::ber::multi::parse_ber_container::<alloc::string::String, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::string::String, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#11}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.68k | move |i: &[u8]| { | 523 | 3.68k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.26k | let (i, data) = match hdr.len { | 525 | 2.46k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 801 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.38k | let (_rest, v) = f(data, hdr)?; | 531 | 195 | Ok((i, v)) | 532 | 3.68k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 19.8k | move |i: &[u8]| { | 523 | 19.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 19.2k | let (i, data) = match hdr.len { | 525 | 17.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.48k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 17.7k | let (_rest, v) = f(data, hdr)?; | 531 | 337 | Ok((i, v)) | 532 | 19.8k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.96k | move |i: &[u8]| { | 523 | 3.96k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.56k | let (i, data) = match hdr.len { | 525 | 2.97k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 589 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.96k | let (_rest, v) = f(data, hdr)?; | 531 | 368 | Ok((i, v)) | 532 | 3.96k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<_, _, _>::{closure#0} |
533 | 2.20M | } der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 11.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 11.6k | where | 519 | 11.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 11.6k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 11.6k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 9.23k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 9.23k | where | 519 | 9.23k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 9.23k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 9.23k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 26.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 26.7k | where | 519 | 26.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 26.7k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 26.7k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<i32>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<i32>, der_parser::ber::multi::parse_ber_sequence_of_v<i32, kerberos_parser::krb5_parser::parse_der_int32, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 42.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 42.4k | where | 519 | 42.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 42.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 42.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReqBody, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 64.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 64.6k | where | 519 | 64.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 64.6k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 64.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::HostAddress, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 5.15k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.15k | where | 519 | 5.15k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.15k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 5.15k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 7.16k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 7.16k | where | 519 | 7.16k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 7.16k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 7.16k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 19.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 19.6k | where | 519 | 19.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 19.6k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 19.6k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApRep, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::ApRep, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApReq, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::ApReq, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 15.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 15.1k | where | 519 | 15.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 15.1k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 15.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcRep, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 50.9k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 50.9k | where | 519 | 50.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 50.9k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 50.9k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReq, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 128k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 128k | where | 519 | 128k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 128k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 128k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PAData, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::PAData, kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 31.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 31.0k | where | 519 | 31.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 31.0k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 31.0k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 5.24k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.24k | where | 519 | 5.24k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.24k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 5.24k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KrbError, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KrbError, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 45.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 45.7k | where | 519 | 45.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 45.7k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 45.7k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<alloc::string::String>, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 14.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 14.1k | where | 519 | 14.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 14.1k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 14.1k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5_constants::EncryptionType>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5_constants::EncryptionType>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#8}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 44.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 44.2k | where | 519 | 44.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 44.2k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 44.2k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#9}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 40.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 40.4k | where | 519 | 40.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 40.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 40.4k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::PAData>, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 21.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 21.5k | where | 519 | 21.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 21.5k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 21.5k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::PAData>, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 92.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 92.4k | where | 519 | 92.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 92.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 92.4k | } |
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::Ticket>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::Ticket>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#11}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 37.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 37.7k | where | 519 | 37.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 37.7k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 37.7k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 4.35k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 4.35k | where | 519 | 4.35k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 4.35k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 4.35k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 19.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 19.8k | where | 519 | 19.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 19.8k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 19.8k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 19.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 19.8k | where | 519 | 19.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 19.8k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 19.8k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#12}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.68k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.68k | where | 519 | 3.68k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.68k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.68k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 61.9k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 61.9k | where | 519 | 61.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 61.9k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 61.9k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 52.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 52.0k | where | 519 | 52.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 52.0k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 52.0k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 52.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 52.0k | where | 519 | 52.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 52.0k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 52.0k | } |
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#6}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 47.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 47.4k | where | 519 | 47.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 47.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 47.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_errors::ErrorCode, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_errors::ErrorCode, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#6}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 10.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 10.8k | where | 519 | 10.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 10.8k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 10.8k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::AddressType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::AddressType, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.81k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.81k | where | 519 | 3.81k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.81k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.81k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 7.89k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 7.89k | where | 519 | 7.89k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 7.89k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 7.89k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 27.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 27.4k | where | 519 | 27.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 27.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 27.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 28.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 28.4k | where | 519 | 28.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 28.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 28.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::MessageType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::MessageType, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 105k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 105k | where | 519 | 105k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 105k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 105k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::EncryptionType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::EncryptionType, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 5.95k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.95k | where | 519 | 5.95k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.95k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 5.95k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::PAType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::PAType, kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 25.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 25.2k | where | 519 | 25.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 25.2k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 25.2k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::NameType, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5_constants::NameType, kerberos_parser::krb5_parser::parse_krb5_principalname::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 17.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 17.6k | where | 519 | 17.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 17.6k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 17.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReqBody, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 92.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 92.4k | where | 519 | 92.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 92.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 92.4k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 144 | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 144 | where | 519 | 144 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 144 | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 144 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 165 | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 165 | where | 519 | 165 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 165 | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 165 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#7}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 18 | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 18 | where | 519 | 18 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 18 | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 18 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#10}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 37.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 37.7k | where | 519 | 37.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 37.7k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 37.7k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#8}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 8.76k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 8.76k | where | 519 | 8.76k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 8.76k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 8.76k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#10}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 5.80k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.80k | where | 519 | 5.80k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.80k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 5.80k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 169 | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 169 | where | 519 | 169 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 169 | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 169 | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 14.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 14.6k | where | 519 | 14.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 14.6k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 14.6k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 52.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 52.2k | where | 519 | 52.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 52.2k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 52.2k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 55.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 55.6k | where | 519 | 55.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 55.6k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 55.6k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApRep, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::ApRep, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::ApReq, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::ApReq, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 18.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 18.1k | where | 519 | 18.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 18.1k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 18.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#7}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 8.76k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 8.76k | where | 519 | 8.76k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 8.76k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 8.76k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#9}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 8.76k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 8.76k | where | 519 | 8.76k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 8.76k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 8.76k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 1.79k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 1.79k | where | 519 | 1.79k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 1.79k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 1.79k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 21.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 21.5k | where | 519 | 21.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 21.5k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 21.5k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Realm, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Realm, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 55.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 55.4k | where | 519 | 55.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 55.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 55.4k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcRep, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_as_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 27.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 27.7k | where | 519 | 27.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 27.7k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 27.7k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcRep, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcRep, kerberos_parser::krb5_parser::parse_tgs_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 31.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 31.1k | where | 519 | 31.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 31.1k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 31.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReq, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_as_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 74.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 74.2k | where | 519 | 74.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 74.2k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 74.2k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReq, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KdcReq, kerberos_parser::krb5_parser::parse_tgs_req::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 78.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 78.1k | where | 519 | 78.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 78.1k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 78.1k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 8.32k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 8.32k | where | 519 | 8.32k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 8.32k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 8.32k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 2.13k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 2.13k | where | 519 | 2.13k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 2.13k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 2.13k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::Ticket, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::Ticket, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#6}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.16k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.16k | where | 519 | 3.16k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.16k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.16k | } |
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KrbError, der_parser::ber::tagged::parse_ber_tagged_explicit_g<der_parser::ber::ber::BerTag, kerberos_parser::krb5::KrbError, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 60.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 60.4k | where | 519 | 60.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 60.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 60.4k | } |
der_parser::ber::multi::parse_ber_container::<alloc::string::String, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::string::String, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#11}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.68k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.68k | where | 519 | 3.68k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.68k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.68k | } |
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_encrypted::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.96k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.96k | where | 519 | 3.96k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.96k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.96k | } |
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_krb5_padata::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 22.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 22.7k | where | 519 | 22.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 22.7k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 22.7k | } |
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 1.71k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 1.71k | where | 519 | 1.71k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 1.71k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 1.71k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 13.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 13.5k | where | 519 | 13.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 13.5k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 13.5k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 36.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 36.8k | where | 519 | 36.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 36.8k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 36.8k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 19.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 19.8k | where | 519 | 19.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 19.8k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 19.8k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 13.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 13.4k | where | 519 | 13.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 13.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 13.4k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.96k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.96k | where | 519 | 3.96k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.96k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.96k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 35.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 35.8k | where | 519 | 35.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 35.8k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 35.8k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 121k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 121k | where | 519 | 121k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 121k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 121k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 3.96k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.96k | where | 519 | 3.96k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.96k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 3.96k | } |
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#7}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 47.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 47.4k | where | 519 | 47.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 47.4k | E: ParseError<&'a [u8]> + From<BerError>, | 521 | | { | 522 | | move |i: &[u8]| { | 523 | | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | | let (i, data) = match hdr.len { | 525 | | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | | let (_rest, v) = f(data, hdr)?; | 531 | | Ok((i, v)) | 532 | | } | 533 | 47.4k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<_, _, _> |