Coverage Report

Created: 2026-02-14 06:42

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
94.9k
pub fn parse_ber_sequence_of_v<'a, T, F, E>(
69
94.9k
    f: F,
70
94.9k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E>
71
94.9k
where
72
94.9k
    F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>,
73
94.9k
    E: ParseError<&'a [u8]> + From<BerError>,
74
{
75
94.9k
    let mut subparser = all_consuming(many0(complete(cut(f))));
76
94.9k
    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.01k
    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.6k
    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.8k
    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
46.0k
    parse_ber_sequence_defined_g(move |data, _| subparser(data))
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_of_v::<_, _, _>::{closure#0}
77
94.9k
}
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
8.01k
pub fn parse_ber_sequence_of_v<'a, T, F, E>(
69
8.01k
    f: F,
70
8.01k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E>
71
8.01k
where
72
8.01k
    F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>,
73
8.01k
    E: ParseError<&'a [u8]> + From<BerError>,
74
{
75
8.01k
    let mut subparser = all_consuming(many0(complete(cut(f))));
76
8.01k
    parse_ber_sequence_defined_g(move |data, _| subparser(data))
77
8.01k
}
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.9k
pub fn parse_ber_sequence_of_v<'a, T, F, E>(
69
26.9k
    f: F,
70
26.9k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E>
71
26.9k
where
72
26.9k
    F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>,
73
26.9k
    E: ParseError<&'a [u8]> + From<BerError>,
74
{
75
26.9k
    let mut subparser = all_consuming(many0(complete(cut(f))));
76
26.9k
    parse_ber_sequence_defined_g(move |data, _| subparser(data))
77
26.9k
}
der_parser::ber::multi::parse_ber_sequence_of_v::<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>
Line
Count
Source
68
12.4k
pub fn parse_ber_sequence_of_v<'a, T, F, E>(
69
12.4k
    f: F,
70
12.4k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E>
71
12.4k
where
72
12.4k
    F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>,
73
12.4k
    E: ParseError<&'a [u8]> + From<BerError>,
74
{
75
12.4k
    let mut subparser = all_consuming(many0(complete(cut(f))));
76
12.4k
    parse_ber_sequence_defined_g(move |data, _| subparser(data))
77
12.4k
}
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
47.5k
pub fn parse_ber_sequence_of_v<'a, T, F, E>(
69
47.5k
    f: F,
70
47.5k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Vec<T>, E>
71
47.5k
where
72
47.5k
    F: FnMut(&'a [u8]) -> IResult<&'a [u8], T, E>,
73
47.5k
    E: ParseError<&'a [u8]> + From<BerError>,
74
{
75
47.5k
    let mut subparser = all_consuming(many0(complete(cut(f))));
76
47.5k
    parse_ber_sequence_defined_g(move |data, _| subparser(data))
77
47.5k
}
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_of_v::<_, _, _>
78
79
/// Parse a defined sequence of DER elements (function version)
80
///
81
/// Given a list of expected parsers, apply them to build a DER sequence and
82
/// return the remaining bytes and the built object.
83
///
84
/// The remaining bytes point *after* the sequence: any bytes that are part of the sequence but not
85
/// parsed are ignored.
86
///
87
/// The object header is not available to the parsing function, and the returned type is always a
88
/// `BerObject`.
89
/// For a generic version, see
90
/// [`parse_ber_sequence_defined_g`](fn.parse_ber_sequence_defined_g.html).
91
///
92
/// # Examples
93
///
94
/// Parsing a sequence of identical types (same as `parse_ber_sequence_of`):
95
///
96
/// ```rust
97
/// # use der_parser::ber::{parse_ber_integer, parse_ber_sequence_defined, BerObject};
98
/// # use der_parser::error::BerResult;
99
/// use nom::combinator::complete;
100
/// use nom::multi::many1;
101
///
102
/// fn localparse_seq(i:&[u8]) -> BerResult {
103
///     parse_ber_sequence_defined(
104
///         many1(complete(parse_ber_integer))
105
///     )(i)
106
/// }
107
///
108
/// # let empty = &b""[..];
109
/// # let bytes = [ 0x30, 0x0a,
110
/// #               0x02, 0x03, 0x01, 0x00, 0x01,
111
/// #               0x02, 0x03, 0x01, 0x00, 0x00,
112
/// # ];
113
/// # let expected  = BerObject::from_seq(vec![
114
/// #     BerObject::from_int_slice(b"\x01\x00\x01"),
115
/// #     BerObject::from_int_slice(b"\x01\x00\x00"),
116
/// # ]);
117
/// # assert_eq!(localparse_seq(&bytes), Ok((empty, expected)));
118
/// let (rem, v) = localparse_seq(&bytes).expect("parsing failed");
119
/// ```
120
///
121
/// Parsing a defined sequence with different types:
122
///
123
/// ```rust
124
/// # use der_parser::ber::*;
125
/// # use der_parser::error::BerResult;
126
/// use nom::combinator::map;
127
/// use nom::sequence::tuple;
128
///
129
/// /// Read a DER-encoded object:
130
/// /// SEQUENCE {
131
/// ///     a INTEGER,
132
/// ///     b OCTETSTRING
133
/// /// }
134
/// fn localparse_seq(i:&[u8]) -> BerResult {
135
///     parse_ber_sequence_defined(
136
///         // the nom `tuple` combinator returns a tuple, so we have to map it
137
///         // to a list
138
///         map(
139
///             tuple((parse_ber_integer, parse_ber_octetstring)),
140
///             |(a, b)| vec![a, b]
141
///         )
142
///     )(i)
143
/// }
144
///
145
/// # let empty = &b""[..];
146
/// # let bytes = [ 0x30, 0x0a,
147
/// #               0x02, 0x03, 0x01, 0x00, 0x01,
148
/// #               0x04, 0x03, 0x01, 0x00, 0x00,
149
/// # ];
150
/// # let expected  = BerObject::from_seq(vec![
151
/// #     BerObject::from_int_slice(b"\x01\x00\x01"),
152
/// #     BerObject::from_obj(BerObjectContent::OctetString(b"\x01\x00\x00")),
153
/// # ]);
154
/// # assert_eq!(localparse_seq(&bytes), Ok((empty, expected)));
155
/// let (rem, v) = localparse_seq(&bytes).expect("parsing failed");
156
/// ```
157
0
pub fn parse_ber_sequence_defined<'a, F>(mut f: F) -> impl FnMut(&'a [u8]) -> BerResult
158
0
where
159
0
    F: FnMut(&'a [u8]) -> BerResult<Vec<BerObject>>,
160
{
161
0
    map(
162
0
        parse_ber_sequence_defined_g(move |data, _| f(data)),
163
        BerObject::from_seq,
164
    )
165
0
}
166
167
/// Parse a defined SEQUENCE object (generic function)
168
///
169
/// Given a parser for sequence content, apply it to build a DER sequence and
170
/// return the remaining bytes and the built object.
171
///
172
/// The remaining bytes point *after* the sequence: any bytes that are part of the sequence but not
173
/// parsed are ignored.
174
///
175
/// Unlike `parse_ber_sequence_defined`, this function allows returning any object or error type,
176
/// and also passes the object header to the callback.
177
///
178
/// # Examples
179
///
180
/// Parsing a defined sequence with different types:
181
///
182
/// ```rust
183
/// # use der_parser::ber::*;
184
/// # use der_parser::error::BerResult;
185
/// #
186
/// # #[derive(Debug, PartialEq)]
187
/// pub struct MyObject<'a> {
188
///     a: u32,
189
///     b: &'a [u8],
190
/// }
191
///
192
/// /// Read a DER-encoded object:
193
/// /// SEQUENCE {
194
/// ///     a INTEGER (0..4294967295),
195
/// ///     b OCTETSTRING
196
/// /// }
197
/// fn parse_myobject(i: &[u8]) -> BerResult<MyObject> {
198
///     parse_ber_sequence_defined_g(
199
///         |i:&[u8], _| {
200
///             let (i, a) = parse_ber_u32(i)?;
201
///             let (i, obj) = parse_ber_octetstring(i)?;
202
///             let b = obj.as_slice().unwrap();
203
///             Ok((i, MyObject{ a, b }))
204
///         }
205
///     )(i)
206
/// }
207
///
208
/// # let empty = &b""[..];
209
/// # let bytes = [ 0x30, 0x0a,
210
/// #               0x02, 0x03, 0x01, 0x00, 0x01,
211
/// #               0x04, 0x03, 0x01, 0x00, 0x00,
212
/// # ];
213
/// # let expected  = MyObject {
214
/// #   a: 0x010001,
215
/// #   b: &[01, 00, 00]
216
/// # };
217
/// # assert_eq!(parse_myobject(&bytes), Ok((empty, expected)));
218
/// let (rem, v) = parse_myobject(&bytes).expect("parsing failed");
219
/// ```
220
467k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
467k
    mut f: F,
222
467k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
467k
where
224
467k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
467k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
467k
    parse_ber_container(move |i, hdr| {
228
425k
        if hdr.tag != BerTag::Sequence {
229
8.26k
            return Err(Err::Error(BerError::InvalidTag.into()));
230
417k
        }
231
417k
        f(i, hdr)
232
425k
    })
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
11.3k
    parse_ber_container(move |i, hdr| {
228
11.3k
        if hdr.tag != BerTag::Sequence {
229
454
            return Err(Err::Error(BerError::InvalidTag.into()));
230
10.8k
        }
231
10.8k
        f(i, hdr)
232
11.3k
    })
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.61k
    parse_ber_container(move |i, hdr| {
228
5.61k
        if hdr.tag != BerTag::Sequence {
229
597
            return Err(Err::Error(BerError::InvalidTag.into()));
230
5.01k
        }
231
5.01k
        f(i, hdr)
232
5.61k
    })
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
24.9k
    parse_ber_container(move |i, hdr| {
228
24.9k
        if hdr.tag != BerTag::Sequence {
229
280
            return Err(Err::Error(BerError::InvalidTag.into()));
230
24.6k
        }
231
24.6k
        f(i, hdr)
232
24.9k
    })
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
68.5k
    parse_ber_container(move |i, hdr| {
228
68.5k
        if hdr.tag != BerTag::Sequence {
229
691
            return Err(Err::Error(BerError::InvalidTag.into()));
230
67.8k
        }
231
67.8k
        f(i, hdr)
232
68.5k
    })
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
3.96k
    parse_ber_container(move |i, hdr| {
228
3.96k
        if hdr.tag != BerTag::Sequence {
229
239
            return Err(Err::Error(BerError::InvalidTag.into()));
230
3.73k
        }
231
3.73k
        f(i, hdr)
232
3.96k
    })
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
227
5.88k
    parse_ber_container(move |i, hdr| {
228
5.88k
        if hdr.tag != BerTag::Sequence {
229
239
            return Err(Err::Error(BerError::InvalidTag.into()));
230
5.64k
        }
231
5.64k
        f(i, hdr)
232
5.88k
    })
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.5k
    parse_ber_container(move |i, hdr| {
228
18.5k
        if hdr.tag != BerTag::Sequence {
229
445
            return Err(Err::Error(BerError::InvalidTag.into()));
230
18.1k
        }
231
18.1k
        f(i, hdr)
232
18.5k
    })
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
16.1k
    parse_ber_container(move |i, hdr| {
228
16.1k
        if hdr.tag != BerTag::Sequence {
229
463
            return Err(Err::Error(BerError::InvalidTag.into()));
230
15.6k
        }
231
15.6k
        f(i, hdr)
232
16.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>::{closure#0}
Line
Count
Source
227
32.8k
    parse_ber_container(move |i, hdr| {
228
32.8k
        if hdr.tag != BerTag::Sequence {
229
913
            return Err(Err::Error(BerError::InvalidTag.into()));
230
31.9k
        }
231
31.9k
        f(i, hdr)
232
32.8k
    })
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
126k
    parse_ber_container(move |i, hdr| {
228
126k
        if hdr.tag != BerTag::Sequence {
229
1.14k
            return Err(Err::Error(BerError::InvalidTag.into()));
230
125k
        }
231
125k
        f(i, hdr)
232
126k
    })
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
25.9k
    parse_ber_container(move |i, hdr| {
228
25.9k
        if hdr.tag != BerTag::Sequence {
229
1.21k
            return Err(Err::Error(BerError::InvalidTag.into()));
230
24.7k
        }
231
24.7k
        f(i, hdr)
232
25.9k
    })
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.40k
    parse_ber_container(move |i, hdr| {
228
4.40k
        if hdr.tag != BerTag::Sequence {
229
272
            return Err(Err::Error(BerError::InvalidTag.into()));
230
4.13k
        }
231
4.13k
        f(i, hdr)
232
4.40k
    })
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
34.6k
    parse_ber_container(move |i, hdr| {
228
34.6k
        if hdr.tag != BerTag::Sequence {
229
1.04k
            return Err(Err::Error(BerError::InvalidTag.into()));
230
33.5k
        }
231
33.5k
        f(i, hdr)
232
34.6k
    })
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
46.3k
    parse_ber_container(move |i, hdr| {
228
46.3k
        if hdr.tag != BerTag::Sequence {
229
274
            return Err(Err::Error(BerError::InvalidTag.into()));
230
46.0k
        }
231
46.0k
        f(i, hdr)
232
46.3k
    })
Unexecuted instantiation: der_parser::ber::multi::parse_ber_sequence_defined_g::<_, _, _>::{closure#0}
233
467k
}
der_parser::ber::multi::parse_ber_sequence_defined_g::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
220
12.4k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
12.4k
    mut f: F,
222
12.4k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
12.4k
where
224
12.4k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
12.4k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
12.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
12.4k
}
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
8.01k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
8.01k
    mut f: F,
222
8.01k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
8.01k
where
224
8.01k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
8.01k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
8.01k
    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
8.01k
}
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.9k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
26.9k
    mut f: F,
222
26.9k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
26.9k
where
224
26.9k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
26.9k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
26.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
26.9k
}
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
47.5k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
47.5k
    mut f: F,
222
47.5k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
47.5k
where
224
47.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
47.5k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
47.5k
    parse_ber_container(move |i, hdr| {
228
        if hdr.tag != BerTag::Sequence {
229
            return Err(Err::Error(BerError::InvalidTag.into()));
230
        }
231
        f(i, hdr)
232
    })
233
47.5k
}
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}, der_parser::error::BerError>
Line
Count
Source
220
70.9k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
70.9k
    mut f: F,
222
70.9k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
70.9k
where
224
70.9k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
70.9k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
70.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
70.9k
}
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.06k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
5.06k
    mut f: F,
222
5.06k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
5.06k
where
224
5.06k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
5.06k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
5.06k
    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.06k
}
der_parser::ber::multi::parse_ber_sequence_defined_g::<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>
Line
Count
Source
220
6.89k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
6.89k
    mut f: F,
222
6.89k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
6.89k
where
224
6.89k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
6.89k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
6.89k
    parse_ber_container(move |i, hdr| {
228
        if hdr.tag != BerTag::Sequence {
229
            return Err(Err::Error(BerError::InvalidTag.into()));
230
        }
231
        f(i, hdr)
232
    })
233
6.89k
}
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
20.0k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
20.0k
    mut f: F,
222
20.0k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
20.0k
where
224
20.0k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
20.0k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
20.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
20.0k
}
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
17.5k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
17.5k
    mut f: F,
222
17.5k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
17.5k
where
224
17.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
17.5k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
17.5k
    parse_ber_container(move |i, hdr| {
228
        if hdr.tag != BerTag::Sequence {
229
            return Err(Err::Error(BerError::InvalidTag.into()));
230
        }
231
        f(i, hdr)
232
    })
233
17.5k
}
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
41.8k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
41.8k
    mut f: F,
222
41.8k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
41.8k
where
224
41.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
41.8k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
41.8k
    parse_ber_container(move |i, hdr| {
228
        if hdr.tag != BerTag::Sequence {
229
            return Err(Err::Error(BerError::InvalidTag.into()));
230
        }
231
        f(i, hdr)
232
    })
233
41.8k
}
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
135k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
135k
    mut f: F,
222
135k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
135k
where
224
135k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
135k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
135k
    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
135k
}
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.1k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
31.1k
    mut f: F,
222
31.1k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
31.1k
where
224
31.1k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
31.1k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
31.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
31.1k
}
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.92k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
5.92k
    mut f: F,
222
5.92k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
5.92k
where
224
5.92k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
5.92k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
5.92k
    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.92k
}
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
38.3k
pub fn parse_ber_sequence_defined_g<'a, O, F, E>(
221
38.3k
    mut f: F,
222
38.3k
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
223
38.3k
where
224
38.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
225
38.3k
    E: ParseError<&'a [u8]> + From<BerError>,
226
{
227
38.3k
    parse_ber_container(move |i, hdr| {
228
        if hdr.tag != BerTag::Sequence {
229
            return Err(Err::Error(BerError::InvalidTag.into()));
230
        }
231
        f(i, hdr)
232
    })
233
38.3k
}
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.27M
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
2.27M
where
519
2.27M
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
2.27M
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
2.27M
    move |i: &[u8]| {
523
2.27M
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
2.18M
        let (i, data) = match hdr.len {
525
2.11M
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
70.1k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
2.03M
        let (_rest, v) = f(data, hdr)?;
531
978k
        Ok((i, v))
532
2.27M
    }
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
12.4k
    move |i: &[u8]| {
523
12.4k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
11.9k
        let (i, data) = match hdr.len {
525
11.4k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
583
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
11.3k
        let (_rest, v) = f(data, hdr)?;
531
9.45k
        Ok((i, v))
532
12.4k
    }
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.7k
    move |i: &[u8]| {
523
14.7k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
14.1k
        let (i, data) = match hdr.len {
525
13.5k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
586
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
13.0k
        let (_rest, v) = f(data, hdr)?;
531
9.45k
        Ok((i, v))
532
14.7k
    }
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
49.3k
    move |i: &[u8]| {
523
49.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
48.9k
        let (i, data) = match hdr.len {
525
48.0k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
867
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
48.2k
        let (_rest, v) = f(data, hdr)?;
531
45.6k
        Ok((i, v))
532
49.3k
    }
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::multi::parse_ber_sequence_of_v<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
8.01k
    move |i: &[u8]| {
523
8.01k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
7.30k
        let (i, data) = match hdr.len {
525
6.66k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
649
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
5.61k
        let (_rest, v) = f(data, hdr)?;
531
239
        Ok((i, v))
532
8.01k
    }
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.9k
    move |i: &[u8]| {
523
26.9k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
26.2k
        let (i, data) = match hdr.len {
525
25.5k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
731
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
24.9k
        let (_rest, v) = f(data, hdr)?;
531
2.58k
        Ok((i, v))
532
26.9k
    }
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
20.8k
    move |i: &[u8]| {
523
20.8k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
20.3k
        let (i, data) = match hdr.len {
525
19.7k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
594
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
19.6k
        let (_rest, v) = f(data, hdr)?;
531
216
        Ok((i, v))
532
20.8k
    }
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
99.0k
    move |i: &[u8]| {
523
99.0k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
96.6k
        let (i, data) = match hdr.len {
525
95.2k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.40k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
95.0k
        let (_rest, v) = f(data, hdr)?;
531
2.37k
        Ok((i, v))
532
99.0k
    }
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
6.72k
    move |i: &[u8]| {
523
6.72k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
6.40k
        let (i, data) = match hdr.len {
525
5.59k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
809
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
5.39k
        let (_rest, v) = f(data, hdr)?;
531
3.98k
        Ok((i, v))
532
6.72k
    }
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.3k
    move |i: &[u8]| {
523
19.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
18.3k
        let (i, data) = match hdr.len {
525
16.9k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.40k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
17.1k
        let (_rest, v) = f(data, hdr)?;
531
13.7k
        Ok((i, v))
532
19.3k
    }
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
67.8k
    move |i: &[u8]| {
523
67.8k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
64.9k
        let (i, data) = match hdr.len {
525
64.2k
            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
64.2k
        let (_rest, v) = f(data, hdr)?;
531
60.8k
        Ok((i, v))
532
67.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#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
57.2k
    move |i: &[u8]| {
523
57.2k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
56.6k
        let (i, data) = match hdr.len {
525
55.5k
            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
55.3k
        let (_rest, v) = f(data, hdr)?;
531
52.5k
        Ok((i, v))
532
57.2k
    }
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
11.1k
    move |i: &[u8]| {
523
11.1k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
10.7k
        let (i, data) = match hdr.len {
525
10.1k
            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
10.0k
        let (_rest, v) = f(data, hdr)?;
531
9.02k
        Ok((i, v))
532
11.1k
    }
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.73k
    move |i: &[u8]| {
523
3.73k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.24k
        let (i, data) = match hdr.len {
525
2.65k
            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.62k
        let (_rest, v) = f(data, hdr)?;
531
1.60k
        Ok((i, v))
532
3.73k
    }
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
10.1k
    move |i: &[u8]| {
523
10.1k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
9.60k
        let (i, data) = match hdr.len {
525
8.83k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
774
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
8.74k
        let (_rest, v) = f(data, hdr)?;
531
6.72k
        Ok((i, v))
532
10.1k
    }
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
25.8k
    move |i: &[u8]| {
523
25.8k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
24.7k
        let (i, data) = match hdr.len {
525
23.4k
            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.7k
        let (_rest, v) = f(data, hdr)?;
531
19.3k
        Ok((i, v))
532
25.8k
    }
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
26.2k
    move |i: &[u8]| {
523
26.2k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
24.4k
        let (i, data) = match hdr.len {
525
23.0k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.40k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
22.9k
        let (_rest, v) = f(data, hdr)?;
531
20.8k
        Ok((i, v))
532
26.2k
    }
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
110k
    move |i: &[u8]| {
523
110k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
107k
        let (i, data) = match hdr.len {
525
104k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
2.03k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
103k
        let (_rest, v) = f(data, hdr)?;
531
99.0k
        Ok((i, v))
532
110k
    }
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.64k
    move |i: &[u8]| {
523
5.64k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
5.23k
        let (i, data) = match hdr.len {
525
4.63k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
593
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
4.55k
        let (_rest, v) = f(data, hdr)?;
531
3.64k
        Ok((i, v))
532
5.64k
    }
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
24.7k
    move |i: &[u8]| {
523
24.7k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
24.2k
        let (i, data) = match hdr.len {
525
23.6k
            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
23.5k
        let (_rest, v) = f(data, hdr)?;
531
22.4k
        Ok((i, v))
532
24.7k
    }
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
18.1k
    move |i: &[u8]| {
523
18.1k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
17.5k
        let (i, data) = match hdr.len {
525
16.7k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
734
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
16.8k
        let (_rest, v) = f(data, hdr)?;
531
14.7k
        Ok((i, v))
532
18.1k
    }
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
70.9k
    move |i: &[u8]| {
523
70.9k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
69.9k
        let (i, data) = match hdr.len {
525
69.2k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
742
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
68.5k
        let (_rest, v) = f(data, hdr)?;
531
43.0k
        Ok((i, v))
532
70.9k
    }
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReqBody, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
99.0k
    move |i: &[u8]| {
523
99.0k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
96.3k
        let (i, data) = match hdr.len {
525
94.9k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.40k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
94.8k
        let (_rest, v) = f(data, hdr)?;
531
43.0k
        Ok((i, v))
532
99.0k
    }
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::HostAddress, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::HostAddress, kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
5.06k
    move |i: &[u8]| {
523
5.06k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
4.62k
        let (i, data) = match hdr.len {
525
4.03k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
594
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
3.96k
        let (_rest, v) = f(data, hdr)?;
531
44
        Ok((i, v))
532
5.06k
    }
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
6.89k
    move |i: &[u8]| {
523
6.89k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
6.47k
        let (i, data) = match hdr.len {
525
5.85k
            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
5.88k
        let (_rest, v) = f(data, hdr)?;
531
871
        Ok((i, v))
532
6.89k
    }
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
308
    move |i: &[u8]| {
523
308
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
304
        let (i, data) = match hdr.len {
525
304
            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
303
        let (_rest, v) = f(data, hdr)?;
531
293
        Ok((i, v))
532
308
    }
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
358
    move |i: &[u8]| {
523
358
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
358
        let (i, data) = match hdr.len {
525
358
            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
357
        let (_rest, v) = f(data, hdr)?;
531
346
        Ok((i, v))
532
358
    }
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
38
    move |i: &[u8]| {
523
38
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
36
        let (i, data) = match hdr.len {
525
36
            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
36
        let (_rest, v) = f(data, hdr)?;
531
33
        Ok((i, v))
532
38
    }
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
20.0k
    move |i: &[u8]| {
523
20.0k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
19.5k
        let (i, data) = match hdr.len {
525
18.7k
            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.5k
        let (_rest, v) = f(data, hdr)?;
531
9.45k
        Ok((i, v))
532
20.0k
    }
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.40k
        let (i, data) = match hdr.len {
525
4.82k
            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.75k
        let (_rest, v) = f(data, hdr)?;
531
3.83k
        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
364
    move |i: &[u8]| {
523
364
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
364
        let (i, data) = match hdr.len {
525
364
            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
364
        let (_rest, v) = f(data, hdr)?;
531
358
        Ok((i, v))
532
364
    }
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.3k
    move |i: &[u8]| {
523
14.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
13.8k
        let (i, data) = match hdr.len {
525
13.2k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
613
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
13.1k
        let (_rest, v) = f(data, hdr)?;
531
3.22k
        Ok((i, v))
532
14.3k
    }
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
17.5k
    move |i: &[u8]| {
523
17.5k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
17.1k
        let (i, data) = match hdr.len {
525
16.3k
            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
16.1k
        let (_rest, v) = f(data, hdr)?;
531
293
        Ok((i, v))
532
17.5k
    }
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
20.7k
    move |i: &[u8]| {
523
20.7k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
20.2k
        let (i, data) = match hdr.len {
525
18.9k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.35k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
18.6k
        let (_rest, v) = f(data, hdr)?;
531
293
        Ok((i, v))
532
20.7k
    }
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
9.02k
    move |i: &[u8]| {
523
9.02k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
8.23k
        let (i, data) = match hdr.len {
525
7.26k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
971
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
7.29k
        let (_rest, v) = f(data, hdr)?;
531
5.80k
        Ok((i, v))
532
9.02k
    }
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.95k
    move |i: &[u8]| {
523
1.95k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
1.56k
        let (i, data) = match hdr.len {
525
1.36k
            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
1.16k
        let (_rest, v) = f(data, hdr)?;
531
364
        Ok((i, v))
532
1.95k
    }
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
20.8k
    move |i: &[u8]| {
523
20.8k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
20.1k
        let (i, data) = match hdr.len {
525
19.5k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
594
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
19.4k
        let (_rest, v) = f(data, hdr)?;
531
14.3k
        Ok((i, v))
532
20.8k
    }
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
60.6k
    move |i: &[u8]| {
523
60.6k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
60.0k
        let (i, data) = match hdr.len {
525
59.4k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
585
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
59.1k
        let (_rest, v) = f(data, hdr)?;
531
57.4k
        Ok((i, v))
532
60.6k
    }
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
41.8k
    move |i: &[u8]| {
523
41.8k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
35.4k
        let (i, data) = match hdr.len {
525
33.7k
            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
32.8k
        let (_rest, v) = f(data, hdr)?;
531
33
        Ok((i, v))
532
41.8k
    }
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
20.9k
    move |i: &[u8]| {
523
20.9k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
20.9k
        let (i, data) = match hdr.len {
525
20.9k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
0
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
15.8k
        let (_rest, v) = f(data, hdr)?;
531
22
        Ok((i, v))
532
20.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_tgs_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
30.3k
    move |i: &[u8]| {
523
30.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
30.3k
        let (i, data) = match hdr.len {
525
30.3k
            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
26.8k
        let (_rest, v) = f(data, hdr)?;
531
11
        Ok((i, v))
532
30.3k
    }
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
135k
    move |i: &[u8]| {
523
135k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
131k
        let (i, data) = match hdr.len {
525
127k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
3.71k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
126k
        let (_rest, v) = f(data, hdr)?;
531
43.0k
        Ok((i, v))
532
135k
    }
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
79.6k
    move |i: &[u8]| {
523
79.6k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
79.6k
        let (i, data) = match hdr.len {
525
79.6k
            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
73.7k
        let (_rest, v) = f(data, hdr)?;
531
37.4k
        Ok((i, v))
532
79.6k
    }
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
76.1k
    move |i: &[u8]| {
523
76.1k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
76.1k
        let (i, data) = match hdr.len {
525
76.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.4k
        let (_rest, v) = f(data, hdr)?;
531
5.54k
        Ok((i, v))
532
76.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.1k
    move |i: &[u8]| {
523
31.1k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
27.9k
        let (i, data) = match hdr.len {
525
27.3k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
611
                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
6.51k
        Ok((i, v))
532
31.1k
    }
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.92k
    move |i: &[u8]| {
523
5.92k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
5.03k
        let (i, data) = match hdr.len {
525
4.45k
            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
4.40k
        let (_rest, v) = f(data, hdr)?;
531
346
        Ok((i, v))
532
5.92k
    }
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.65k
    move |i: &[u8]| {
523
8.65k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
8.16k
        let (i, data) = match hdr.len {
525
7.00k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.15k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
6.86k
        let (_rest, v) = f(data, hdr)?;
531
346
        Ok((i, v))
532
8.65k
    }
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
3.98k
    move |i: &[u8]| {
523
3.98k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.70k
        let (i, data) = match hdr.len {
525
3.19k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
513
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
2.15k
        let (_rest, v) = f(data, hdr)?;
531
308
        Ok((i, v))
532
3.98k
    }
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.22k
    move |i: &[u8]| {
523
3.22k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
2.69k
        let (i, data) = match hdr.len {
525
2.07k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
614
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
1.92k
        let (_rest, v) = f(data, hdr)?;
531
38
        Ok((i, v))
532
3.22k
    }
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
38.3k
    move |i: &[u8]| {
523
38.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
37.2k
        let (i, data) = match hdr.len {
525
35.1k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
2.13k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
34.6k
        let (_rest, v) = f(data, hdr)?;
531
3.83k
        Ok((i, v))
532
38.3k
    }
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
47.2k
    move |i: &[u8]| {
523
47.2k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
47.2k
        let (i, data) = match hdr.len {
525
47.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
38.7k
        let (_rest, v) = f(data, hdr)?;
531
3.83k
        Ok((i, v))
532
47.2k
    }
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.64k
    move |i: &[u8]| {
523
3.64k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.03k
        let (i, data) = match hdr.len {
525
2.44k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
585
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
2.30k
        let (_rest, v) = f(data, hdr)?;
531
871
        Ok((i, v))
532
3.64k
    }
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.4k
    move |i: &[u8]| {
523
22.4k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
22.0k
        let (i, data) = match hdr.len {
525
21.2k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
814
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
21.3k
        let (_rest, v) = f(data, hdr)?;
531
6.51k
        Ok((i, v))
532
22.4k
    }
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
1.60k
    move |i: &[u8]| {
523
1.60k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
1.21k
        let (i, data) = match hdr.len {
525
1.02k
            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
820
        let (_rest, v) = f(data, hdr)?;
531
44
        Ok((i, v))
532
1.60k
    }
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
15.6k
    move |i: &[u8]| {
523
15.6k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
15.2k
        let (i, data) = match hdr.len {
525
12.6k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
2.59k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
13.1k
        let (_rest, v) = f(data, hdr)?;
531
10.1k
        Ok((i, v))
532
15.6k
    }
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
33.5k
    move |i: &[u8]| {
523
33.5k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
32.2k
        let (i, data) = match hdr.len {
525
30.6k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.56k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
29.2k
        let (_rest, v) = f(data, hdr)?;
531
25.8k
        Ok((i, v))
532
33.5k
    }
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#5}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
13.7k
    move |i: &[u8]| {
523
13.7k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
13.1k
        let (i, data) = match hdr.len {
525
12.5k
            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
12.4k
        let (_rest, v) = f(data, hdr)?;
531
11.1k
        Ok((i, v))
532
13.7k
    }
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
4.13k
    move |i: &[u8]| {
523
4.13k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.73k
        let (i, data) = match hdr.len {
525
3.14k
            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
3.10k
        let (_rest, v) = f(data, hdr)?;
531
2.15k
        Ok((i, v))
532
4.13k
    }
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
31.9k
    move |i: &[u8]| {
523
31.9k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
30.3k
        let (i, data) = match hdr.len {
525
28.9k
            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
28.5k
        let (_rest, v) = f(data, hdr)?;
531
26.2k
        Ok((i, v))
532
31.9k
    }
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
125k
    move |i: &[u8]| {
523
125k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
122k
        let (i, data) = match hdr.len {
525
121k
            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
120k
        let (_rest, v) = f(data, hdr)?;
531
110k
        Ok((i, v))
532
125k
    }
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
52.5k
    move |i: &[u8]| {
523
52.5k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
51.9k
        let (i, data) = match hdr.len {
525
51.2k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
702
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
51.1k
        let (_rest, v) = f(data, hdr)?;
531
49.3k
        Ok((i, v))
532
52.5k
    }
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
45.6k
    move |i: &[u8]| {
523
45.6k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
34.4k
        let (i, data) = match hdr.len {
525
33.4k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.04k
                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
239
        Ok((i, v))
532
45.6k
    }
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::Ticket>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::Ticket>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#11}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
43.0k
    move |i: &[u8]| {
523
43.0k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
31.5k
        let (i, data) = match hdr.len {
525
30.5k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.04k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
20.9k
        let (_rest, v) = f(data, hdr)?;
531
0
        Ok((i, v))
532
43.0k
    }
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
47.5k
    move |i: &[u8]| {
523
47.5k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
47.0k
        let (i, data) = match hdr.len {
525
39.6k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
7.36k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
46.3k
        let (_rest, v) = f(data, hdr)?;
531
45.6k
        Ok((i, v))
532
47.5k
    }
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}
Line
Count
Source
522
19.3k
    move |i: &[u8]| {
523
19.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
18.8k
        let (i, data) = match hdr.len {
525
17.3k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.40k
                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
209
        Ok((i, v))
532
19.3k
    }
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_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.83k
    move |i: &[u8]| {
523
3.83k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.41k
        let (i, data) = match hdr.len {
525
2.81k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
596
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
2.54k
        let (_rest, v) = f(data, hdr)?;
531
656
        Ok((i, v))
532
3.83k
    }
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
57.2k
    move |i: &[u8]| {
523
57.2k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
56.7k
        let (i, data) = match hdr.len {
525
55.6k
            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
55.4k
        let (_rest, v) = f(data, hdr)?;
531
593
        Ok((i, v))
532
57.2k
    }
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
52.5k
    move |i: &[u8]| {
523
52.5k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
51.9k
        let (i, data) = match hdr.len {
525
51.2k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
702
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
51.1k
        let (_rest, v) = f(data, hdr)?;
531
1.23k
        Ok((i, v))
532
52.5k
    }
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
43.0k
    move |i: &[u8]| {
523
43.0k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
31.7k
        let (i, data) = match hdr.len {
525
30.7k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.04k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
21.1k
        let (_rest, v) = f(data, hdr)?;
531
199
        Ok((i, v))
532
43.0k
    }
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
9.02k
    move |i: &[u8]| {
523
9.02k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
8.42k
        let (i, data) = match hdr.len {
525
7.45k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
971
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
7.48k
        let (_rest, v) = f(data, hdr)?;
531
194
        Ok((i, v))
532
9.02k
    }
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
57.4k
    move |i: &[u8]| {
523
57.4k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
56.9k
        let (i, data) = match hdr.len {
525
56.0k
            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
56.0k
        let (_rest, v) = f(data, hdr)?;
531
980
        Ok((i, v))
532
57.4k
    }
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
60.8k
    move |i: &[u8]| {
523
60.8k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
60.4k
        let (i, data) = match hdr.len {
525
59.8k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
585
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
59.5k
        let (_rest, v) = f(data, hdr)?;
531
867
        Ok((i, v))
532
60.8k
    }
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
9.02k
    move |i: &[u8]| {
523
9.02k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
8.62k
        let (i, data) = match hdr.len {
525
7.59k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.02k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
7.69k
        let (_rest, v) = f(data, hdr)?;
531
210
        Ok((i, v))
532
9.02k
    }
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.83k
    move |i: &[u8]| {
523
3.83k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.41k
        let (i, data) = match hdr.len {
525
2.62k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
791
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
2.54k
        let (_rest, v) = f(data, hdr)?;
531
195
        Ok((i, v))
532
3.83k
    }
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.3k
    move |i: &[u8]| {
523
19.3k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
18.7k
        let (i, data) = match hdr.len {
525
17.3k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
1.40k
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
17.5k
        let (_rest, v) = f(data, hdr)?;
531
379
        Ok((i, v))
532
19.3k
    }
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.64k
    move |i: &[u8]| {
523
3.64k
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
3.24k
        let (i, data) = match hdr.len {
525
2.65k
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
585
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
2.51k
        let (_rest, v) = f(data, hdr)?;
531
578
        Ok((i, v))
532
3.64k
    }
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<_, _, _>::{closure#0}
533
2.27M
}
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_defined_g<alloc::vec::Vec<alloc::string::String>, der_parser::ber::multi::parse_ber_sequence_of_v<alloc::string::String, kerberos_parser::krb5_parser::parse_kerberos_string, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
12.4k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
12.4k
where
519
12.4k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
12.4k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
12.4k
}
der_parser::ber::multi::parse_ber_container::<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
8.01k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
8.01k
where
519
8.01k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
8.01k
    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.01k
}
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.9k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
26.9k
where
519
26.9k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
26.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
26.9k
}
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
47.5k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
47.5k
where
519
47.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
47.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
47.5k
}
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::KdcReqBody, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::KdcReqBody, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
70.9k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
70.9k
where
519
70.9k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
70.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
70.9k
}
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.06k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
5.06k
where
519
5.06k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
5.06k
    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.06k
}
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::multi::parse_ber_sequence_defined_g<kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_encrypted::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
6.89k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
6.89k
where
519
6.89k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
6.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
6.89k
}
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
20.0k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
20.0k
where
519
20.0k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
20.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
20.0k
}
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
17.5k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
17.5k
where
519
17.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
17.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
17.5k
}
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
41.8k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
41.8k
where
519
41.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
41.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
41.8k
}
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
135k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
135k
where
519
135k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
135k
    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
135k
}
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.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::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.92k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
5.92k
where
519
5.92k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
5.92k
    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.92k
}
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
38.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
38.3k
where
519
38.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
38.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
38.3k
}
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.7k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
14.7k
where
519
14.7k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
14.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
14.7k
}
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
49.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
49.3k
where
519
49.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
49.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
49.3k
}
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::HostAddress>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#9}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
45.6k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
45.6k
where
519
45.6k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
45.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
45.6k
}
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::PAData>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::PAData>, kerberos_parser::krb5_parser::parse_kdc_rep::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
20.8k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
20.8k
where
519
20.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
20.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
20.8k
}
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
99.0k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
99.0k
where
519
99.0k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
99.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
99.0k
}
der_parser::ber::multi::parse_ber_container::<alloc::vec::Vec<kerberos_parser::krb5::Ticket>, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, alloc::vec::Vec<kerberos_parser::krb5::Ticket>, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#11}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
43.0k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
43.0k
where
519
43.0k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
43.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
43.0k
}
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
6.72k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
6.72k
where
519
6.72k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
6.72k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
6.72k
}
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.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
19.3k
where
519
19.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
19.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
19.3k
}
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
19.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
19.3k
where
519
19.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
19.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
19.3k
}
der_parser::ber::multi::parse_ber_container::<der_parser::ber::ber::BerObject, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, der_parser::ber::ber::BerObject, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#12}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
3.83k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.83k
where
519
3.83k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.83k
    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.83k
}
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
67.8k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
67.8k
where
519
67.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
67.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
67.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#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
57.2k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
57.2k
where
519
57.2k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
57.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
57.2k
}
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
57.2k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
57.2k
where
519
57.2k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
57.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
57.2k
}
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
52.5k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
52.5k
where
519
52.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
52.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
52.5k
}
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
11.1k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
11.1k
where
519
11.1k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
11.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
11.1k
}
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.73k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.73k
where
519
3.73k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.73k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
3.73k
}
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
10.1k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
10.1k
where
519
10.1k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
10.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
10.1k
}
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
25.8k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
25.8k
where
519
25.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
25.8k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
25.8k
}
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5_constants::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
26.2k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
26.2k
where
519
26.2k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
26.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
26.2k
}
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
110k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
110k
where
519
110k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
110k
    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
110k
}
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.64k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
5.64k
where
519
5.64k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
5.64k
    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.64k
}
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
24.7k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
24.7k
where
519
24.7k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
24.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
24.7k
}
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
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::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
99.0k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
99.0k
where
519
99.0k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
99.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
99.0k
}
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_ap_rep::{closure#0}::{closure#0}::{closure#2}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::EncryptedData, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::EncryptedData, kerberos_parser::krb5_parser::parse_ap_req::{closure#0}::{closure#0}::{closure#4}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
308
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
308
where
519
308
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
308
    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
308
}
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
358
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
358
where
519
358
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
358
    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
358
}
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
38
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
38
where
519
38
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
38
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
38
}
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
43.0k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
43.0k
where
519
43.0k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
43.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
43.0k
}
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
9.02k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
9.02k
where
519
9.02k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
9.02k
    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.02k
}
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
364
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
364
where
519
364
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
364
    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
364
}
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.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
14.3k
where
519
14.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
14.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
14.3k
}
der_parser::ber::multi::parse_ber_container::<kerberos_parser::krb5::PrincipalName, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, kerberos_parser::krb5::PrincipalName, kerberos_parser::krb5_parser::parse_kdc_req_body::{closure#0}::{closure#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
57.4k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
57.4k
where
519
57.4k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
57.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
57.4k
}
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
60.8k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
60.8k
where
519
60.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
60.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
60.8k
}
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
20.7k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
20.7k
where
519
20.7k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
20.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
20.7k
}
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
9.02k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
9.02k
where
519
9.02k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
9.02k
    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.02k
}
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
9.02k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
9.02k
where
519
9.02k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
9.02k
    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.02k
}
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.95k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
1.95k
where
519
1.95k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
1.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
1.95k
}
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
20.8k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
20.8k
where
519
20.8k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
20.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
20.8k
}
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
60.6k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
60.6k
where
519
60.6k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
60.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
60.6k
}
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
20.9k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
20.9k
where
519
20.9k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
20.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
20.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_tgs_rep::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
30.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
30.3k
where
519
30.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
30.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
30.3k
}
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
79.6k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
79.6k
where
519
79.6k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
79.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
79.6k
}
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
76.1k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
76.1k
where
519
76.1k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
76.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
76.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.65k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
8.65k
where
519
8.65k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
8.65k
    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.65k
}
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
3.98k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.98k
where
519
3.98k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.98k
    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.98k
}
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.22k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.22k
where
519
3.22k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.22k
    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.22k
}
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
47.2k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
47.2k
where
519
47.2k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
47.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
47.2k
}
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.83k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.83k
where
519
3.83k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.83k
    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.83k
}
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.64k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.64k
where
519
3.64k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.64k
    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.64k
}
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.4k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
22.4k
where
519
22.4k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
22.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
22.4k
}
der_parser::ber::multi::parse_ber_container::<&[u8], der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, &[u8], kerberos_parser::krb5_parser::parse_krb5_hostaddress::{closure#0}::{closure#1}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
1.60k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
1.60k
where
519
1.60k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
1.60k
    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.60k
}
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
15.6k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
15.6k
where
519
15.6k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
15.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
15.6k
}
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb_error::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
33.5k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
33.5k
where
519
33.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
33.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
33.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#3}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
19.3k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
19.3k
where
519
19.3k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
19.3k
    E: ParseError<&'a [u8]> + From<BerError>,
521
{
522
    move |i: &[u8]| {
523
        let (i, hdr) = ber_read_element_header(i).map_err(nom::Err::convert)?;
524
        let (i, data) = match hdr.len {
525
            BerSize::Definite(len) => take(len)(i)?,
526
            BerSize::Indefinite => {
527
                ber_get_object_content(i, &hdr, MAX_RECURSION).map_err(nom::Err::convert)?
528
            }
529
        };
530
        let (_rest, v) = f(data, hdr)?;
531
        Ok((i, v))
532
    }
533
19.3k
}
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.7k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
13.7k
where
519
13.7k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
13.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
13.7k
}
der_parser::ber::multi::parse_ber_container::<u32, der_parser::ber::tagged::parse_ber_tagged_explicit_g<u32, u32, kerberos_parser::krb5_parser::parse_krb5_ticket::{closure#0}::{closure#0}::{closure#0}, der_parser::error::BerError>::{closure#0}, der_parser::error::BerError>
Line
Count
Source
517
4.13k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
4.13k
where
519
4.13k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
4.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
4.13k
}
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
31.9k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
31.9k
where
519
31.9k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
31.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
31.9k
}
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
125k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
125k
where
519
125k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
125k
    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
125k
}
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.64k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
3.64k
where
519
3.64k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
3.64k
    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.64k
}
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
52.5k
pub fn parse_ber_container<'a, O, F, E>(mut f: F) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>
518
52.5k
where
519
52.5k
    F: FnMut(&'a [u8], BerObjectHeader<'a>) -> IResult<&'a [u8], O, E>,
520
52.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
52.5k
}
Unexecuted instantiation: der_parser::ber::multi::parse_ber_container::<_, _, _>