/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 | 95.2k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( |
69 | 95.2k | f: F, |
70 | 95.2k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> |
71 | 95.2k | where |
72 | 95.2k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, |
73 | 95.2k | E: ParseError<&'a [u8]> + From<BerError>, |
74 | | { |
75 | 95.2k | let mut subparser = all_consuming(many0(complete(cut(f)))); |
76 | 95.2k | 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.57k | 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 | 25.3k | 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.5k | 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 | 41.0k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_of_v::<_, _, _>::{closure#0} |
77 | 95.2k | } 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 | 13.3k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 13.3k | f: F, | 70 | 13.3k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 13.3k | where | 72 | 13.3k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 13.3k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 13.3k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 13.3k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 13.3k | } |
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 | 27.3k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 27.3k | f: F, | 70 | 27.3k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 27.3k | where | 72 | 27.3k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 27.3k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 27.3k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 27.3k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 27.3k | } |
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 | 12.0k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 12.0k | f: F, | 70 | 12.0k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 12.0k | where | 72 | 12.0k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 12.0k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 12.0k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 12.0k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 12.0k | } |
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.5k | pub fn parse_ber_sequence_of_v<'a, T, F, E>( | 69 | 42.5k | f: F, | 70 | 42.5k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E> | 71 | 42.5k | where | 72 | 42.5k | F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>, | 73 | 42.5k | E: ParseError<&'a [u8]> + From<BerError>, | 74 | | { | 75 | 42.5k | let mut subparser = all_consuming(many0(complete(cut(f)))); | 76 | 42.5k | parse_ber_sequence_defined_g(move |data, _| subparser(data)) | 77 | 42.5k | } |
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 | 542k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( |
221 | 542k | mut f: F, |
222 | 542k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> |
223 | 542k | where |
224 | 542k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, |
225 | 542k | E: ParseError<&'a [u8]> + From<BerError>, |
226 | | { |
227 | 542k | parse_ber_container(move |i, hdr| { |
228 | 439k | if hdr.tag != BerTag::Sequence { |
229 | 11.7k | return Err(Err::Error(BerError::InvalidTag.into())); |
230 | 427k | } |
231 | 427k | f(i, hdr) |
232 | 439k | }) 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.9k | parse_ber_container(move |i, hdr| { | 228 | 10.9k | if hdr.tag != BerTag::Sequence { | 229 | 439 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 10.5k | } | 231 | 10.5k | f(i, hdr) | 232 | 10.9k | }) |
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 | 6.75k | parse_ber_container(move |i, hdr| { | 228 | 6.75k | if hdr.tag != BerTag::Sequence { | 229 | 1.18k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 5.57k | } | 231 | 5.57k | f(i, hdr) | 232 | 6.75k | }) |
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.7k | parse_ber_container(move |i, hdr| { | 228 | 25.7k | if hdr.tag != BerTag::Sequence { | 229 | 354 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 25.3k | } | 231 | 25.3k | f(i, hdr) | 232 | 25.7k | }) |
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.2k | parse_ber_container(move |i, hdr| { | 228 | 62.2k | if hdr.tag != BerTag::Sequence { | 229 | 882 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 61.3k | } | 231 | 61.3k | f(i, hdr) | 232 | 62.2k | }) |
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.23k | parse_ber_container(move |i, hdr| { | 228 | 4.23k | if hdr.tag != BerTag::Sequence { | 229 | 234 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 4.00k | } | 231 | 4.00k | f(i, hdr) | 232 | 4.23k | }) |
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 | 5.42k | parse_ber_container(move |i, hdr| { | 228 | 5.42k | if hdr.tag != BerTag::Sequence { | 229 | 225 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 5.19k | } | 231 | 5.19k | f(i, hdr) | 232 | 5.42k | }) |
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 | 19.8k | parse_ber_container(move |i, hdr| { | 228 | 19.8k | if hdr.tag != BerTag::Sequence { | 229 | 1.84k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 17.9k | } | 231 | 17.9k | f(i, hdr) | 232 | 19.8k | }) |
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.0k | parse_ber_container(move |i, hdr| { | 228 | 13.0k | if hdr.tag != BerTag::Sequence { | 229 | 498 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 12.5k | } | 231 | 12.5k | f(i, hdr) | 232 | 13.0k | }) |
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 | 43.9k | parse_ber_container(move |i, hdr| { | 228 | 43.9k | if hdr.tag != BerTag::Sequence { | 229 | 1.91k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 42.0k | } | 231 | 42.0k | f(i, hdr) | 232 | 43.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>::{closure#0}Line | Count | Source | 227 | 124k | parse_ber_container(move |i, hdr| { | 228 | 124k | if hdr.tag != BerTag::Sequence { | 229 | 1.21k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 123k | } | 231 | 123k | f(i, hdr) | 232 | 124k | }) |
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 | 27.0k | parse_ber_container(move |i, hdr| { | 228 | 27.0k | if hdr.tag != BerTag::Sequence { | 229 | 1.22k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 25.8k | } | 231 | 25.8k | f(i, hdr) | 232 | 27.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>::{closure#0}Line | Count | Source | 227 | 4.70k | parse_ber_container(move |i, hdr| { | 228 | 4.70k | if hdr.tag != BerTag::Sequence { | 229 | 281 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 4.42k | } | 231 | 4.42k | f(i, hdr) | 232 | 4.70k | }) |
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 | 49.8k | parse_ber_container(move |i, hdr| { | 228 | 49.8k | if hdr.tag != BerTag::Sequence { | 229 | 1.15k | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 48.6k | } | 231 | 48.6k | f(i, hdr) | 232 | 49.8k | }) |
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.3k | parse_ber_container(move |i, hdr| { | 228 | 41.3k | if hdr.tag != BerTag::Sequence { | 229 | 308 | return Err(Err::Error(BerError::InvalidTag.into())); | 230 | 41.0k | } | 231 | 41.0k | f(i, hdr) | 232 | 41.3k | }) |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_defined_g::<_, _, _>::{closure#0} |
233 | 542k | } 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 | 12.0k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 12.0k | mut f: F, | 222 | 12.0k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 12.0k | where | 224 | 12.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 12.0k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 12.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 | 12.0k | } |
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 | 13.3k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 13.3k | mut f: F, | 222 | 13.3k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 13.3k | where | 224 | 13.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 13.3k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 13.3k | 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 | 13.3k | } |
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 | 27.3k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 27.3k | mut f: F, | 222 | 27.3k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 27.3k | where | 224 | 27.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 27.3k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 27.3k | 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 | 27.3k | } |
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.5k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 42.5k | mut f: F, | 222 | 42.5k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 42.5k | where | 224 | 42.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 42.5k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 42.5k | 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.5k | } |
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 | 63.8k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 63.8k | mut f: F, | 222 | 63.8k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 63.8k | where | 224 | 63.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 63.8k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 63.8k | 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 | 63.8k | } |
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.58k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 5.58k | mut f: F, | 222 | 5.58k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 5.58k | where | 224 | 5.58k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 5.58k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 5.58k | 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.58k | } |
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 | 6.57k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 6.57k | mut f: F, | 222 | 6.57k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 6.57k | where | 224 | 6.57k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 6.57k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 6.57k | 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 | 6.57k | } |
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 | 21.2k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 21.2k | mut f: F, | 222 | 21.2k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 21.2k | where | 224 | 21.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 21.2k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 21.2k | 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 | 21.2k | } |
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 | 14.1k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 14.1k | mut f: F, | 222 | 14.1k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 14.1k | where | 224 | 14.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 14.1k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 14.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 | 14.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 | 112k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 112k | mut f: F, | 222 | 112k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 112k | where | 224 | 112k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 112k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 112k | 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 | 112k | } |
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 | 130k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 130k | mut f: F, | 222 | 130k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 130k | where | 224 | 130k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 130k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 130k | 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 | 130k | } |
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.6k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 31.6k | mut f: F, | 222 | 31.6k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 31.6k | where | 224 | 31.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 31.6k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 31.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 | 31.6k | } |
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.72k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 5.72k | mut f: F, | 222 | 5.72k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 5.72k | where | 224 | 5.72k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 5.72k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 5.72k | 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.72k | } |
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 | 55.2k | pub fn parse_ber_sequence_defined_g<'a, O, F, E>( | 221 | 55.2k | mut f: F, | 222 | 55.2k | ) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 223 | 55.2k | where | 224 | 55.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 225 | 55.2k | E: ParseError<&'a [u8]> + From<BerError>, | 226 | | { | 227 | 55.2k | 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 | 55.2k | } |
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.46M | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> |
518 | 2.46M | where |
519 | 2.46M | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, |
520 | 2.46M | E: ParseError<&'a [u8]> + From<BerError>, |
521 | | { |
522 | 2.46M | move |i: &[u8]| { |
523 | 2.46M | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; |
524 | 2.39M | let (i, data) = match hdr.len { |
525 | 2.24M | BerSize::Definite(len) => take(len)(i)?, |
526 | | BerSize::Indefinite => { |
527 | 148k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? |
528 | | } |
529 | | }; |
530 | 2.12M | let (_rest, v) = f(data, hdr)?; |
531 | 924k | Ok((i, v)) |
532 | 2.46M | } 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 | 12.0k | move |i: &[u8]| { | 523 | 12.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 11.6k | let (i, data) = match hdr.len { | 525 | 11.0k | 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 | 10.9k | let (_rest, v) = f(data, hdr)?; | 531 | 9.43k | Ok((i, v)) | 532 | 12.0k | } |
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.5k | move |i: &[u8]| { | 523 | 14.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 13.8k | let (i, data) = match hdr.len { | 525 | 13.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 598 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 12.7k | let (_rest, v) = f(data, hdr)?; | 531 | 9.43k | Ok((i, v)) | 532 | 14.5k | } |
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.3k | move |i: &[u8]| { | 523 | 44.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 43.9k | let (i, data) = match hdr.len { | 525 | 42.9k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 908 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 43.2k | let (_rest, v) = f(data, hdr)?; | 531 | 40.6k | Ok((i, v)) | 532 | 44.3k | } |
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 | 13.3k | move |i: &[u8]| { | 523 | 13.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 11.7k | let (i, data) = match hdr.len { | 525 | 11.0k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 709 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 6.75k | let (_rest, v) = f(data, hdr)?; | 531 | 215 | Ok((i, v)) | 532 | 13.3k | } |
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 | 27.3k | move |i: &[u8]| { | 523 | 27.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 26.7k | let (i, data) = match hdr.len { | 525 | 25.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 979 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 25.7k | let (_rest, v) = f(data, hdr)?; | 531 | 2.02k | Ok((i, v)) | 532 | 27.3k | } |
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 | 22.5k | move |i: &[u8]| { | 523 | 22.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 22.0k | let (i, data) = match hdr.len { | 525 | 21.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 810 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 20.9k | let (_rest, v) = f(data, hdr)?; | 531 | 365 | Ok((i, v)) | 532 | 22.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 | 93.0k | move |i: &[u8]| { | 523 | 93.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 89.9k | let (i, data) = match hdr.len { | 525 | 88.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.11k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 88.1k | let (_rest, v) = f(data, hdr)?; | 531 | 1.66k | Ok((i, v)) | 532 | 93.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_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.08k | move |i: &[u8]| { | 523 | 4.08k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.78k | let (i, data) = match hdr.len { | 525 | 2.99k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 788 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.81k | let (_rest, v) = f(data, hdr)?; | 531 | 1.91k | Ok((i, v)) | 532 | 4.08k | } |
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 | 21.5k | move |i: &[u8]| { | 523 | 21.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 20.6k | let (i, data) = match hdr.len { | 525 | 19.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.18k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 19.5k | let (_rest, v) = f(data, hdr)?; | 531 | 15.1k | Ok((i, v)) | 532 | 21.5k | } |
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.3k | move |i: &[u8]| { | 523 | 61.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 60.3k | let (i, data) = match hdr.len { | 525 | 59.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 723 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 59.6k | let (_rest, v) = f(data, hdr)?; | 531 | 56.4k | Ok((i, v)) | 532 | 61.3k | } |
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.6k | move |i: &[u8]| { | 523 | 52.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 51.9k | let (i, data) = match hdr.len { | 525 | 50.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.08k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 50.5k | let (_rest, v) = f(data, hdr)?; | 531 | 47.8k | Ok((i, v)) | 532 | 52.6k | } |
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 | 12.4k | move |i: &[u8]| { | 523 | 12.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 12.0k | let (i, data) = match hdr.len { | 525 | 11.5k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 585 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 11.3k | let (_rest, v) = f(data, hdr)?; | 531 | 10.3k | Ok((i, v)) | 532 | 12.4k | } |
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 | 4.00k | move |i: &[u8]| { | 523 | 4.00k | 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 | 595 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.74k | let (_rest, v) = f(data, hdr)?; | 531 | 1.73k | Ok((i, v)) | 532 | 4.00k | } |
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 | 6.86k | move |i: &[u8]| { | 523 | 6.86k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 6.58k | let (i, data) = match hdr.len { | 525 | 5.57k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.00k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 5.49k | let (_rest, v) = f(data, hdr)?; | 531 | 4.08k | Ok((i, v)) | 532 | 6.86k | } |
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 | 28.0k | move |i: &[u8]| { | 523 | 28.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 26.7k | let (i, data) = match hdr.len { | 525 | 25.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 934 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 24.5k | let (_rest, v) = f(data, hdr)?; | 531 | 21.5k | Ok((i, v)) | 532 | 28.0k | } |
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 | 30.7k | move |i: &[u8]| { | 523 | 30.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 29.5k | let (i, data) = match hdr.len { | 525 | 25.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 4.14k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 26.8k | let (_rest, v) = f(data, hdr)?; | 531 | 22.5k | Ok((i, v)) | 532 | 30.7k | } |
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 | 106k | move |i: &[u8]| { | 523 | 106k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 102k | let (i, data) = match hdr.len { | 525 | 100k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.22k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 98.1k | let (_rest, v) = f(data, hdr)?; | 531 | 93.0k | Ok((i, v)) | 532 | 106k | } |
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.19k | move |i: &[u8]| { | 523 | 5.19k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 4.67k | let (i, data) = match hdr.len { | 525 | 4.08k | 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 | 3.99k | let (_rest, v) = f(data, hdr)?; | 531 | 3.08k | Ok((i, v)) | 532 | 5.19k | } |
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.8k | move |i: &[u8]| { | 523 | 25.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 25.3k | let (i, data) = match hdr.len { | 525 | 24.5k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 711 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 24.5k | let (_rest, v) = f(data, hdr)?; | 531 | 23.4k | Ok((i, v)) | 532 | 25.8k | } |
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.9k | move |i: &[u8]| { | 523 | 17.9k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 17.3k | let (i, data) = match hdr.len { | 525 | 16.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 737 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 16.6k | let (_rest, v) = f(data, hdr)?; | 531 | 14.5k | Ok((i, v)) | 532 | 17.9k | } |
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 | 63.8k | move |i: &[u8]| { | 523 | 63.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 63.1k | let (i, data) = match hdr.len { | 525 | 62.6k | 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 | 62.2k | let (_rest, v) = f(data, hdr)?; | 531 | 38.1k | Ok((i, v)) | 532 | 63.8k | } |
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 | 93.0k | move |i: &[u8]| { | 523 | 93.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 89.8k | let (i, data) = match hdr.len { | 525 | 88.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.11k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 88.0k | let (_rest, v) = f(data, hdr)?; | 531 | 38.1k | Ok((i, v)) | 532 | 93.0k | } |
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.58k | move |i: &[u8]| { | 523 | 5.58k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 5.18k | let (i, data) = match hdr.len { | 525 | 4.57k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 604 | 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 | 19 | Ok((i, v)) | 532 | 5.58k | } |
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 | 6.57k | move |i: &[u8]| { | 523 | 6.57k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 6.15k | let (i, data) = match hdr.len { | 525 | 5.37k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 785 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 5.42k | let (_rest, v) = f(data, hdr)?; | 531 | 516 | Ok((i, v)) | 532 | 6.57k | } |
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 | 147 | move |i: &[u8]| { | 523 | 147 | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 145 | let (i, data) = match hdr.len { | 525 | 145 | 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 | 145 | let (_rest, v) = f(data, hdr)?; | 531 | 138 | Ok((i, v)) | 532 | 147 | } |
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 | 167 | move |i: &[u8]| { | 523 | 167 | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 167 | let (i, data) = match hdr.len { | 525 | 167 | 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 | 167 | let (_rest, v) = f(data, hdr)?; | 531 | 165 | Ok((i, v)) | 532 | 167 | } |
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 | 21.2k | move |i: &[u8]| { | 523 | 21.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 20.8k | let (i, data) = match hdr.len { | 525 | 19.9k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 882 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 19.8k | let (_rest, v) = f(data, hdr)?; | 531 | 9.43k | Ok((i, v)) | 532 | 21.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_krb_error::{closure#0}::{closure#0}::{closure#10}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 7.31k | move |i: &[u8]| { | 523 | 7.31k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 6.89k | let (i, data) = match hdr.len { | 525 | 5.07k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.82k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 6.18k | let (_rest, v) = f(data, hdr)?; | 531 | 4.03k | Ok((i, v)) | 532 | 7.31k | } |
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 | 167 | 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.9k | move |i: &[u8]| { | 523 | 14.9k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 14.3k | let (i, data) = match hdr.len { | 525 | 13.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 894 | 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.47k | Ok((i, v)) | 532 | 14.9k | } |
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 | 14.1k | move |i: &[u8]| { | 523 | 14.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 13.8k | let (i, data) = match hdr.len { | 525 | 12.9k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 939 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 13.0k | let (_rest, v) = f(data, hdr)?; | 531 | 138 | Ok((i, v)) | 532 | 14.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 | 16.9k | move |i: &[u8]| { | 523 | 16.9k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 16.5k | let (i, data) = match hdr.len { | 525 | 15.3k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.22k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 15.0k | let (_rest, v) = f(data, hdr)?; | 531 | 138 | Ok((i, v)) | 532 | 16.9k | } |
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 | 10.3k | move |i: &[u8]| { | 523 | 10.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 9.59k | let (i, data) = match hdr.len { | 525 | 8.83k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 760 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 8.88k | let (_rest, v) = f(data, hdr)?; | 531 | 7.31k | Ok((i, v)) | 532 | 10.3k | } |
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 | 2.13k | move |i: &[u8]| { | 523 | 2.13k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 1.34k | let (i, data) = match hdr.len { | 525 | 1.15k | 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 | 949 | let (_rest, v) = f(data, hdr)?; | 531 | 169 | Ok((i, v)) | 532 | 2.13k | } |
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 | 22.5k | move |i: &[u8]| { | 523 | 22.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 21.8k | let (i, data) = match hdr.len { | 525 | 21.0k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 810 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 20.7k | let (_rest, v) = f(data, hdr)?; | 531 | 14.9k | Ok((i, v)) | 532 | 22.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 | 56.2k | move |i: &[u8]| { | 523 | 56.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 55.6k | let (i, data) = match hdr.len { | 525 | 55.0k | 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 | 54.7k | let (_rest, v) = f(data, hdr)?; | 531 | 52.8k | Ok((i, v)) | 532 | 56.2k | } |
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 | 112k | move |i: &[u8]| { | 523 | 112k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 96.9k | let (i, data) = match hdr.len { | 525 | 46.5k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 50.4k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 43.9k | let (_rest, v) = f(data, hdr)?; | 531 | 15 | Ok((i, v)) | 532 | 112k | } |
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 | 90.7k | move |i: &[u8]| { | 523 | 90.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 90.7k | let (i, data) = match hdr.len { | 525 | 90.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 | 85.4k | let (_rest, v) = f(data, hdr)?; | 531 | 11 | Ok((i, v)) | 532 | 90.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 | 33.2k | move |i: &[u8]| { | 523 | 33.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 33.2k | let (i, data) = match hdr.len { | 525 | 33.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 | 28.6k | let (_rest, v) = f(data, hdr)?; | 531 | 4 | Ok((i, v)) | 532 | 33.2k | } |
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 | 130k | move |i: &[u8]| { | 523 | 130k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 127k | let (i, data) = match hdr.len { | 525 | 124k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.76k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 124k | let (_rest, v) = f(data, hdr)?; | 531 | 38.1k | Ok((i, v)) | 532 | 130k | } |
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 | 105k | move |i: &[u8]| { | 523 | 105k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 105k | let (i, data) = match hdr.len { | 525 | 105k | 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.5k | let (_rest, v) = f(data, hdr)?; | 531 | 24.4k | Ok((i, v)) | 532 | 105k | } |
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 | 87.8k | move |i: &[u8]| { | 523 | 87.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 87.8k | let (i, data) = match hdr.len { | 525 | 87.8k | 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 | 68.7k | let (_rest, v) = f(data, hdr)?; | 531 | 13.7k | Ok((i, v)) | 532 | 87.8k | } |
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.6k | move |i: &[u8]| { | 523 | 31.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 28.9k | let (i, data) = match hdr.len { | 525 | 28.3k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 604 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 27.0k | let (_rest, v) = f(data, hdr)?; | 531 | 6.31k | Ok((i, v)) | 532 | 31.6k | } |
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.72k | move |i: &[u8]| { | 523 | 5.72k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 5.32k | let (i, data) = match hdr.len { | 525 | 4.74k | 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 | 4.70k | let (_rest, v) = f(data, hdr)?; | 531 | 165 | Ok((i, v)) | 532 | 5.72k | } |
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 | 10.7k | move |i: &[u8]| { | 523 | 10.7k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 10.2k | let (i, data) = match hdr.len { | 525 | 6.69k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 3.56k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 6.60k | let (_rest, v) = f(data, hdr)?; | 531 | 165 | Ok((i, v)) | 532 | 10.7k | } |
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 | 1.91k | move |i: &[u8]| { | 523 | 1.91k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 1.58k | let (i, data) = match hdr.len { | 525 | 1.11k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 479 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 785 | let (_rest, v) = f(data, hdr)?; | 531 | 147 | Ok((i, v)) | 532 | 1.91k | } |
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.47k | move |i: &[u8]| { | 523 | 3.47k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 2.86k | let (i, data) = match hdr.len { | 525 | 2.25k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 609 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 1.90k | let (_rest, v) = f(data, hdr)?; | 531 | 18 | Ok((i, v)) | 532 | 3.47k | } |
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 | 55.2k | move |i: &[u8]| { | 523 | 55.2k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 53.0k | let (i, data) = match hdr.len { | 525 | 50.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.95k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 49.8k | let (_rest, v) = f(data, hdr)?; | 531 | 4.03k | Ok((i, v)) | 532 | 55.2k | } |
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 | 91.9k | move |i: &[u8]| { | 523 | 91.9k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 91.9k | let (i, data) = match hdr.len { | 525 | 91.9k | 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 | 55.6k | let (_rest, v) = f(data, hdr)?; | 531 | 4.03k | Ok((i, v)) | 532 | 91.9k | } |
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.08k | move |i: &[u8]| { | 523 | 3.08k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 2.55k | let (i, data) = match hdr.len { | 525 | 1.92k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 631 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 1.90k | let (_rest, v) = f(data, hdr)?; | 531 | 516 | Ok((i, v)) | 532 | 3.08k | } |
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 | 23.4k | move |i: &[u8]| { | 523 | 23.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 23.0k | let (i, data) = match hdr.len { | 525 | 22.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 817 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 22.3k | let (_rest, v) = f(data, hdr)?; | 531 | 6.31k | Ok((i, v)) | 532 | 23.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_krb5_hostaddress::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 1.73k | move |i: &[u8]| { | 523 | 1.73k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 1.34k | let (i, data) = match hdr.len { | 525 | 1.10k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 246 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 798 | let (_rest, v) = f(data, hdr)?; | 531 | 19 | Ok((i, v)) | 532 | 1.73k | } |
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 | 12.5k | move |i: &[u8]| { | 523 | 12.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 12.2k | let (i, data) = match hdr.len { | 525 | 8.81k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 3.48k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 9.36k | let (_rest, v) = f(data, hdr)?; | 531 | 6.86k | Ok((i, v)) | 532 | 12.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 | 48.6k | move |i: &[u8]| { | 523 | 48.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 46.6k | let (i, data) = match hdr.len { | 525 | 39.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 7.33k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 37.5k | let (_rest, v) = f(data, hdr)?; | 531 | 28.0k | Ok((i, v)) | 532 | 48.6k | } |
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 | 15.1k | move |i: &[u8]| { | 523 | 15.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 14.5k | let (i, data) = match hdr.len { | 525 | 13.9k | 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 | 13.8k | let (_rest, v) = f(data, hdr)?; | 531 | 12.4k | Ok((i, v)) | 532 | 15.1k | } |
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 | 4.42k | move |i: &[u8]| { | 523 | 4.42k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.96k | let (i, data) = match hdr.len { | 525 | 3.37k | 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 | 3.35k | let (_rest, v) = f(data, hdr)?; | 531 | 2.40k | Ok((i, v)) | 532 | 4.42k | } |
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 | 42.0k | move |i: &[u8]| { | 523 | 42.0k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 39.5k | let (i, data) = match hdr.len { | 525 | 33.6k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 5.84k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 35.6k | let (_rest, v) = f(data, hdr)?; | 531 | 30.7k | Ok((i, v)) | 532 | 42.0k | } |
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 | 123k | move |i: &[u8]| { | 523 | 123k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 121k | let (i, data) = match hdr.len { | 525 | 119k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.88k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 118k | let (_rest, v) = f(data, hdr)?; | 531 | 106k | Ok((i, v)) | 532 | 123k | } |
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.8k | move |i: &[u8]| { | 523 | 47.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 47.1k | let (i, data) = match hdr.len { | 525 | 46.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 881 | 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 | 44.3k | Ok((i, v)) | 532 | 47.8k | } |
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.6k | move |i: &[u8]| { | 523 | 40.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 38.7k | let (i, data) = match hdr.len { | 525 | 36.4k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.29k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 32.4k | let (_rest, v) = f(data, hdr)?; | 531 | 215 | Ok((i, v)) | 532 | 40.6k | } |
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 | 38.1k | move |i: &[u8]| { | 523 | 38.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 36.1k | let (i, data) = match hdr.len { | 525 | 33.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.29k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 29.5k | let (_rest, v) = f(data, hdr)?; | 531 | 0 | Ok((i, v)) | 532 | 38.1k | } |
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.5k | move |i: &[u8]| { | 523 | 42.5k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 42.0k | let (i, data) = match hdr.len { | 525 | 26.1k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 15.9k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 41.3k | let (_rest, v) = f(data, hdr)?; | 531 | 40.6k | Ok((i, v)) | 532 | 42.5k | } |
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 | 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 | 19.8k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.18k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 20.0k | let (_rest, v) = f(data, hdr)?; | 531 | 197 | Ok((i, v)) | 532 | 21.5k | } |
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 | 4.03k | move |i: &[u8]| { | 523 | 4.03k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.40k | let (i, data) = match hdr.len { | 525 | 2.81k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 593 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.50k | let (_rest, v) = f(data, hdr)?; | 531 | 489 | Ok((i, v)) | 532 | 4.03k | } |
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.6k | move |i: &[u8]| { | 523 | 52.6k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 52.0k | let (i, data) = match hdr.len { | 525 | 50.9k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.08k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 50.7k | let (_rest, v) = f(data, hdr)?; | 531 | 583 | Ok((i, v)) | 532 | 52.6k | } |
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.8k | move |i: &[u8]| { | 523 | 47.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 47.1k | let (i, data) = match hdr.len { | 525 | 46.2k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 881 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 46.3k | let (_rest, v) = f(data, hdr)?; | 531 | 1.11k | Ok((i, v)) | 532 | 47.8k | } |
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 | 38.1k | move |i: &[u8]| { | 523 | 38.1k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 36.3k | let (i, data) = match hdr.len { | 525 | 34.0k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 2.29k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 29.7k | let (_rest, v) = f(data, hdr)?; | 531 | 198 | Ok((i, v)) | 532 | 38.1k | } |
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 | 10.3k | move |i: &[u8]| { | 523 | 10.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 9.78k | let (i, data) = match hdr.len { | 525 | 9.02k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 760 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 9.08k | let (_rest, v) = f(data, hdr)?; | 531 | 194 | Ok((i, v)) | 532 | 10.3k | } |
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.8k | move |i: &[u8]| { | 523 | 52.8k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 52.3k | let (i, data) = match hdr.len { | 525 | 51.4k | 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 | 51.4k | let (_rest, v) = f(data, hdr)?; | 531 | 843 | Ok((i, v)) | 532 | 52.8k | } |
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 | 56.4k | move |i: &[u8]| { | 523 | 56.4k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 56.0k | let (i, data) = match hdr.len { | 525 | 55.4k | 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 | 55.1k | let (_rest, v) = f(data, hdr)?; | 531 | 718 | Ok((i, v)) | 532 | 56.4k | } |
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 | 10.3k | move |i: &[u8]| { | 523 | 10.3k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 9.99k | let (i, data) = match hdr.len { | 525 | 9.18k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 816 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 9.30k | let (_rest, v) = f(data, hdr)?; | 531 | 221 | Ok((i, v)) | 532 | 10.3k | } |
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 | 4.03k | move |i: &[u8]| { | 523 | 4.03k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 3.40k | let (i, data) = match hdr.len { | 525 | 2.62k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 788 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 2.63k | let (_rest, v) = f(data, hdr)?; | 531 | 323 | Ok((i, v)) | 532 | 4.03k | } |
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 | 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 | 19.7k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 1.18k | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 19.8k | let (_rest, v) = f(data, hdr)?; | 531 | 286 | Ok((i, v)) | 532 | 21.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_encrypted::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}Line | Count | Source | 522 | 3.08k | move |i: &[u8]| { | 523 | 3.08k | let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?; | 524 | 2.55k | let (i, data) = match hdr.len { | 525 | 1.92k | BerSize::Definite(len) => take(len)(i)?, | 526 | | BerSize::Indefinite => { | 527 | 631 | ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)? | 528 | | } | 529 | | }; | 530 | 1.90k | let (_rest, v) = f(data, hdr)?; | 531 | 176 | Ok((i, v)) | 532 | 3.08k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<_, _, _>::{closure#0} |
533 | 2.46M | } 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 | 12.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 12.0k | where | 519 | 12.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 12.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 | 12.0k | } |
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 | 13.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 13.3k | where | 519 | 13.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 13.3k | 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.3k | } |
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 | 27.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 27.3k | where | 519 | 27.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 27.3k | 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.3k | } |
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.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 42.5k | where | 519 | 42.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 42.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 | 42.5k | } |
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 | 63.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 63.8k | where | 519 | 63.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 63.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 | 63.8k | } |
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.58k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.58k | where | 519 | 5.58k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.58k | 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.58k | } |
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 | 6.57k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 6.57k | where | 519 | 6.57k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 6.57k | 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 | 6.57k | } |
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 | 21.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 21.2k | where | 519 | 21.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 21.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 | 21.2k | } |
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 | 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::<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 | 112k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 112k | where | 519 | 112k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 112k | 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 | 112k | } |
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 | 130k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 130k | where | 519 | 130k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 130k | 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 | 130k | } |
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.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 31.6k | where | 519 | 31.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 31.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 | 31.6k | } |
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.72k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.72k | where | 519 | 5.72k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.72k | 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.72k | } |
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 | 55.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 55.2k | where | 519 | 55.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 55.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 | 55.2k | } |
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.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 14.5k | where | 519 | 14.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 14.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 | 14.5k | } |
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.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 44.3k | where | 519 | 44.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 44.3k | 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.3k | } |
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.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 40.6k | where | 519 | 40.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 40.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 | 40.6k | } |
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 | 22.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 22.5k | where | 519 | 22.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 22.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 | 22.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 | 93.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 93.0k | where | 519 | 93.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 93.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 | 93.0k | } |
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 | 38.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 38.1k | where | 519 | 38.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 38.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 | 38.1k | } |
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.08k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 4.08k | where | 519 | 4.08k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 4.08k | 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.08k | } |
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 | 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::<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 | 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::<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 | 4.03k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 4.03k | where | 519 | 4.03k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 4.03k | 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.03k | } |
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.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 61.3k | where | 519 | 61.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 61.3k | 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.3k | } |
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.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 52.6k | where | 519 | 52.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 52.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 | 52.6k | } |
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.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 52.6k | where | 519 | 52.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 52.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 | 52.6k | } |
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.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 47.8k | where | 519 | 47.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 47.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 | 47.8k | } |
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 | 12.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 12.4k | where | 519 | 12.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 12.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 | 12.4k | } |
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 | 4.00k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 4.00k | where | 519 | 4.00k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 4.00k | 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.00k | } |
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 | 6.86k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 6.86k | where | 519 | 6.86k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 6.86k | 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 | 6.86k | } |
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 | 28.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 28.0k | where | 519 | 28.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 28.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 | 28.0k | } |
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 | 30.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 30.7k | where | 519 | 30.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 30.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 | 30.7k | } |
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 | 106k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 106k | where | 519 | 106k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 106k | 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 | 106k | } |
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.19k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 5.19k | where | 519 | 5.19k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 5.19k | 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.19k | } |
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.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 25.8k | where | 519 | 25.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 25.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 | 25.8k | } |
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.9k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 17.9k | where | 519 | 17.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 17.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 | 17.9k | } |
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 | 93.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 93.0k | where | 519 | 93.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 93.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 | 93.0k | } |
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 | 147 | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 147 | where | 519 | 147 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 147 | 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 | 147 | } |
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 | 167 | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 167 | where | 519 | 167 | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 167 | 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 | 167 | } |
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 | 38.1k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 38.1k | where | 519 | 38.1k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 38.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 | 38.1k | } |
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 | 10.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 10.3k | where | 519 | 10.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 10.3k | 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.3k | } |
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 | 7.31k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 7.31k | where | 519 | 7.31k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 7.31k | 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.31k | } |
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.9k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 14.9k | where | 519 | 14.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 14.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 | 14.9k | } |
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.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 52.8k | where | 519 | 52.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 52.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 | 52.8k | } |
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 | 56.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 56.4k | where | 519 | 56.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 56.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 | 56.4k | } |
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 | 16.9k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 16.9k | where | 519 | 16.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 16.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 | 16.9k | } |
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 | 10.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 10.3k | where | 519 | 10.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 10.3k | 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.3k | } |
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 | 10.3k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 10.3k | where | 519 | 10.3k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 10.3k | 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.3k | } |
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 | 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::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 | 22.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 22.5k | where | 519 | 22.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 22.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 | 22.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 | 56.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 56.2k | where | 519 | 56.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 56.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 | 56.2k | } |
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 | 90.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 90.7k | where | 519 | 90.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 90.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 | 90.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 | 33.2k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 33.2k | where | 519 | 33.2k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 33.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 | 33.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_as_req::{closure#0}, 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::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 | 87.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 87.8k | where | 519 | 87.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 87.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 | 87.8k | } |
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 | 10.7k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 10.7k | where | 519 | 10.7k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 10.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 | 10.7k | } |
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 | 1.91k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 1.91k | where | 519 | 1.91k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 1.91k | 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.91k | } |
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.47k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.47k | where | 519 | 3.47k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.47k | 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.47k | } |
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 | 91.9k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 91.9k | where | 519 | 91.9k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 91.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 | 91.9k | } |
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 | 4.03k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 4.03k | where | 519 | 4.03k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 4.03k | 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.03k | } |
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.08k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.08k | where | 519 | 3.08k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.08k | 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.08k | } |
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 | 23.4k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 23.4k | where | 519 | 23.4k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 23.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 | 23.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_krb5_hostaddress::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>Line | Count | Source | 517 | 1.73k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 1.73k | where | 519 | 1.73k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 1.73k | 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.73k | } |
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 | 12.5k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 12.5k | where | 519 | 12.5k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 12.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 | 12.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 | 48.6k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 48.6k | where | 519 | 48.6k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 48.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 | 48.6k | } |
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 | 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::<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 | 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::<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 | 4.42k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 4.42k | where | 519 | 4.42k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 4.42k | 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.42k | } |
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 | 42.0k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 42.0k | where | 519 | 42.0k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 42.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 | 42.0k | } |
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 | 123k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 123k | where | 519 | 123k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 123k | 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 | 123k | } |
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.08k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 3.08k | where | 519 | 3.08k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 3.08k | 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.08k | } |
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.8k | pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> | 518 | 47.8k | where | 519 | 47.8k | F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>, | 520 | 47.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 | 47.8k | } |
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<_, _, _> |