Coverage Report

Created: 2025-12-31 06:43

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