/rust/registry/src/index.crates.io-1949cf8c6b5b557f/der-0.7.10/src/reader.rs
Line | Count | Source |
1 | | //! Reader trait. |
2 | | |
3 | | pub(crate) mod nested; |
4 | | #[cfg(feature = "pem")] |
5 | | pub(crate) mod pem; |
6 | | pub(crate) mod slice; |
7 | | |
8 | | pub(crate) use nested::NestedReader; |
9 | | |
10 | | use crate::{ |
11 | | asn1::ContextSpecific, Decode, DecodeValue, Encode, Error, ErrorKind, FixedTag, Header, Length, |
12 | | Result, Tag, TagMode, TagNumber, |
13 | | }; |
14 | | |
15 | | #[cfg(feature = "alloc")] |
16 | | use alloc::vec::Vec; |
17 | | |
18 | | /// Reader trait which reads DER-encoded input. |
19 | | pub trait Reader<'r>: Sized { |
20 | | /// Get the length of the input. |
21 | | fn input_len(&self) -> Length; |
22 | | |
23 | | /// Peek at the next byte of input without modifying the cursor. |
24 | | fn peek_byte(&self) -> Option<u8>; |
25 | | |
26 | | /// Peek forward in the input data, attempting to decode a [`Header`] from |
27 | | /// the data at the current position in the decoder. |
28 | | /// |
29 | | /// Does not modify the decoder's state. |
30 | | fn peek_header(&self) -> Result<Header>; |
31 | | |
32 | | /// Get the position within the buffer. |
33 | | fn position(&self) -> Length; |
34 | | |
35 | | /// Attempt to read data borrowed directly from the input as a slice, |
36 | | /// updating the internal cursor position. |
37 | | /// |
38 | | /// # Returns |
39 | | /// - `Ok(slice)` on success |
40 | | /// - `Err(ErrorKind::Incomplete)` if there is not enough data |
41 | | /// - `Err(ErrorKind::Reader)` if the reader can't borrow from the input |
42 | | fn read_slice(&mut self, len: Length) -> Result<&'r [u8]>; |
43 | | |
44 | | /// Attempt to decode an ASN.1 `CONTEXT-SPECIFIC` field with the |
45 | | /// provided [`TagNumber`]. |
46 | 2.97k | fn context_specific<T>(&mut self, tag_number: TagNumber, tag_mode: TagMode) -> Result<Option<T>> |
47 | 2.97k | where |
48 | 2.97k | T: DecodeValue<'r> + FixedTag, |
49 | | { |
50 | 2.97k | Ok(match tag_mode { |
51 | 2.97k | TagMode::Explicit => ContextSpecific::<T>::decode_explicit(self, tag_number)?, |
52 | 0 | TagMode::Implicit => ContextSpecific::<T>::decode_implicit(self, tag_number)?, |
53 | | } |
54 | 2.45k | .map(|field| field.value)) |
55 | 2.97k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::context_specific::<alloc::vec::Vec<crypto::x509::Extension>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::context_specific::<der::asn1::bit_string::BitStringRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::context_specific::<der::asn1::integer::uint::UintRef> Unexecuted instantiation: <_ as der::reader::Reader>::context_specific::<_> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::context_specific::<alloc::vec::Vec<crypto::x509::Extension>> Line | Count | Source | 46 | 212 | fn context_specific<T>(&mut self, tag_number: TagNumber, tag_mode: TagMode) -> Result<Option<T>> | 47 | 212 | where | 48 | 212 | T: DecodeValue<'r> + FixedTag, | 49 | | { | 50 | 212 | Ok(match tag_mode { | 51 | 212 | TagMode::Explicit => ContextSpecific::<T>::decode_explicit(self, tag_number)?, | 52 | 0 | TagMode::Implicit => ContextSpecific::<T>::decode_implicit(self, tag_number)?, | 53 | | } | 54 | 13 | .map(|field| field.value)) | 55 | 212 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::context_specific::<der::asn1::bit_string::BitStringRef> Line | Count | Source | 46 | 67 | fn context_specific<T>(&mut self, tag_number: TagNumber, tag_mode: TagMode) -> Result<Option<T>> | 47 | 67 | where | 48 | 67 | T: DecodeValue<'r> + FixedTag, | 49 | | { | 50 | 67 | Ok(match tag_mode { | 51 | 67 | TagMode::Explicit => ContextSpecific::<T>::decode_explicit(self, tag_number)?, | 52 | 0 | TagMode::Implicit => ContextSpecific::<T>::decode_implicit(self, tag_number)?, | 53 | | } | 54 | 20 | .map(|field| field.value)) | 55 | 67 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::context_specific::<der::asn1::integer::uint::UintRef> Line | Count | Source | 46 | 2.69k | fn context_specific<T>(&mut self, tag_number: TagNumber, tag_mode: TagMode) -> Result<Option<T>> | 47 | 2.69k | where | 48 | 2.69k | T: DecodeValue<'r> + FixedTag, | 49 | | { | 50 | 2.69k | Ok(match tag_mode { | 51 | 2.69k | TagMode::Explicit => ContextSpecific::<T>::decode_explicit(self, tag_number)?, | 52 | 0 | TagMode::Implicit => ContextSpecific::<T>::decode_implicit(self, tag_number)?, | 53 | | } | 54 | 2.42k | .map(|field| field.value)) | 55 | 2.69k | } |
Unexecuted instantiation: <_ as der::reader::Reader>::context_specific::<_> |
56 | | |
57 | | /// Decode a value which impls the [`Decode`] trait. |
58 | 272k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { |
59 | 272k | T::decode(self).map_err(|e| e.nested(self.position())) Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<bool>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<bool>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::Time>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<1>>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<2>>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<alloc::vec::Vec<crypto::crl::RevokedCertificate>>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::crl::Extensions>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Extensions>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Time>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::SubjectPublicKeyInfo>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Time>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Version>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Validity>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::integer::uint::UintRef>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::crl::TbsCertList>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::TBSCertificate>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}Unexecuted instantiation: <_ as der::reader::Reader>::decode::<_>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>>::{closure#0}Line | Count | Source | 59 | 12 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<bool>>::{closure#0}Line | Count | Source | 59 | 41 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Line | Count | Source | 59 | 155 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}Line | Count | Source | 59 | 58 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>>::{closure#0}Line | Count | Source | 59 | 36 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<bool>>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Line | Count | Source | 59 | 17 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>>::{closure#0}Line | Count | Source | 59 | 37 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Line | Count | Source | 59 | 91 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier>::{closure#0}Line | Count | Source | 59 | 80 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::Time>::{closure#0}Line | Count | Source | 59 | 524 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef>::{closure#0}Line | Count | Source | 59 | 73 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<1>>>::{closure#0}Line | Count | Source | 59 | 35 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<2>>>::{closure#0}Line | Count | Source | 59 | 17 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<alloc::vec::Vec<crypto::crl::RevokedCertificate>>>::{closure#0}Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::crl::Extensions>>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Extensions>>::{closure#0}Line | Count | Source | 59 | 200 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Time>>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>>::{closure#0}Line | Count | Source | 59 | 8 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>>::{closure#0}Line | Count | Source | 59 | 598 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier>::{closure#0}Line | Count | Source | 59 | 50 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier>::{closure#0}Line | Count | Source | 59 | 207 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::SubjectPublicKeyInfo>::{closure#0}Line | Count | Source | 59 | 213 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Time>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Version>::{closure#0}Line | Count | Source | 59 | 302 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Validity>::{closure#0}Line | Count | Source | 59 | 664 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::integer::uint::UintRef>::{closure#0}Line | Count | Source | 59 | 81 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::crl::TbsCertList>::{closure#0}<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::TBSCertificate>::{closure#0}Line | Count | Source | 59 | 2.52k | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier>::{closure#0}Line | Count | Source | 59 | 137 | T::decode(self).map_err(|e| e.nested(self.position())) |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef>::{closure#0}Line | Count | Source | 59 | 110 | T::decode(self).map_err(|e| e.nested(self.position())) |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::any::AnyRef>::{closure#0}Unexecuted instantiation: <_ as der::reader::Reader>::decode::<_>::{closure#0} |
60 | 272k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<bool>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<bool>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::Time> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<1>>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<2>>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<alloc::vec::Vec<crypto::crl::RevokedCertificate>>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::crl::Extensions>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Extensions>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Time>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::SubjectPublicKeyInfo> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Time> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Version> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Validity> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::integer::uint::UintRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::crl::TbsCertList> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::TBSCertificate> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> Unexecuted instantiation: <_ as der::reader::Reader>::decode::<_> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>> Line | Count | Source | 58 | 71.5k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 71.5k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 71.5k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<core::option::Option<bool>> Line | Count | Source | 58 | 71.6k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 71.6k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 71.6k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Line | Count | Source | 58 | 86.4k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 86.4k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 86.4k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> Line | Count | Source | 58 | 14.7k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 14.7k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 14.7k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::octet_string::OctetStringRef>> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>> Line | Count | Source | 58 | 776 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 776 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 776 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<core::option::Option<bool>> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Line | Count | Source | 58 | 793 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 793 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 793 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>> Line | Count | Source | 58 | 2.15k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.15k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.15k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Line | Count | Source | 58 | 2.24k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.24k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.24k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier> Line | Count | Source | 58 | 812 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 812 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 812 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<crypto::x509::Time> Line | Count | Source | 58 | 2.50k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.50k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.50k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef> Line | Count | Source | 58 | 732 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 732 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 732 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<1>>> Line | Count | Source | 58 | 632 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 632 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 632 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::UniqueIdentifier<2>>> Line | Count | Source | 58 | 597 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 597 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 597 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<alloc::vec::Vec<crypto::crl::RevokedCertificate>>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::crl::Extensions>> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Extensions>> Line | Count | Source | 58 | 580 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 580 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 580 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<crypto::x509::Time>> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<core::option::Option<der::asn1::any::AnyRef>> Line | Count | Source | 58 | 202 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 202 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 202 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>> Line | Count | Source | 58 | 3.00k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 3.00k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 3.00k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<const_oid::ObjectIdentifier> Line | Count | Source | 58 | 252 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 252 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 252 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier> Line | Count | Source | 58 | 2.31k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.31k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.31k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::SubjectPublicKeyInfo> Line | Count | Source | 58 | 845 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 845 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 845 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Time> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Version> Line | Count | Source | 58 | 2.69k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.69k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.69k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<crypto::x509::Validity> Line | Count | Source | 58 | 1.55k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 1.55k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 1.55k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::decode::<der::asn1::integer::uint::UintRef> Line | Count | Source | 58 | 2.39k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.39k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.39k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::crl::TbsCertList> <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::TBSCertificate> Line | Count | Source | 58 | 2.83k | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 2.83k | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 2.83k | } |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<crypto::x509::AlgorithmIdentifier> Line | Count | Source | 58 | 311 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 311 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 311 | } |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::bit_string::BitStringRef> Line | Count | Source | 58 | 174 | fn decode<T: Decode<'r>>(&mut self) -> Result<T> { | 59 | 174 | T::decode(self).map_err(|e| e.nested(self.position())) | 60 | 174 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::decode::<der::asn1::any::AnyRef> Unexecuted instantiation: <_ as der::reader::Reader>::decode::<_> |
61 | | |
62 | | /// Return an error with the given [`ErrorKind`], annotating it with |
63 | | /// context about where the error occurred. |
64 | 0 | fn error(&mut self, kind: ErrorKind) -> Error { |
65 | 0 | kind.at(self.position()) |
66 | 0 | } Unexecuted instantiation: <_ as der::reader::Reader>::error Unexecuted instantiation: <_ as der::reader::Reader>::error |
67 | | |
68 | | /// Finish decoding, returning the given value if there is no |
69 | | /// remaining data, or an error otherwise |
70 | 151k | fn finish<T>(self, value: T) -> Result<T> { |
71 | 151k | if !self.is_finished() { |
72 | 263 | Err(ErrorKind::TrailingData { |
73 | 263 | decoded: self.position(), |
74 | 263 | remaining: self.remaining_len(), |
75 | 263 | } |
76 | 263 | .at(self.position())) |
77 | | } else { |
78 | 151k | Ok(value) |
79 | | } |
80 | 151k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::finish::<crypto::x509::DistinguishedName> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::finish::<crypto::x509::Extension> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<alloc::vec::Vec<crypto::x509::Extension>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<crypto::crl::RevokedCertificate> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<crypto::x509::AlgorithmIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<crypto::x509::Extension> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<alloc::vec::Vec<crypto::crl::RevokedCertificate>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<alloc::vec::Vec<crypto::x509::Extension>> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<crypto::x509::AlgorithmIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<crypto::x509::SubjectPublicKeyInfo> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<crypto::x509::Validity> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<der::asn1::bit_string::BitStringRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<der::asn1::integer::uint::UintRef> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::finish::<crypto::crl::TbsCertList> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::finish::<crypto::x509::TBSCertificate> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::finish::<crypto::x509::AlgorithmIdentifier> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::finish::<crypto::crl::Crl> Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::finish::<crypto::x509::Certificate> Unexecuted instantiation: <_ as der::reader::Reader>::finish::<_> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::finish::<crypto::x509::DistinguishedName> Line | Count | Source | 70 | 14.6k | fn finish<T>(self, value: T) -> Result<T> { | 71 | 14.6k | if !self.is_finished() { | 72 | 9 | Err(ErrorKind::TrailingData { | 73 | 9 | decoded: self.position(), | 74 | 9 | remaining: self.remaining_len(), | 75 | 9 | } | 76 | 9 | .at(self.position())) | 77 | | } else { | 78 | 14.6k | Ok(value) | 79 | | } | 80 | 14.6k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::finish::<crypto::x509::Extension> Line | Count | Source | 70 | 71.5k | fn finish<T>(self, value: T) -> Result<T> { | 71 | 71.5k | if !self.is_finished() { | 72 | 19 | Err(ErrorKind::TrailingData { | 73 | 19 | decoded: self.position(), | 74 | 19 | remaining: self.remaining_len(), | 75 | 19 | } | 76 | 19 | .at(self.position())) | 77 | | } else { | 78 | 71.5k | Ok(value) | 79 | | } | 80 | 71.5k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<alloc::vec::Vec<crypto::x509::Extension>> Line | Count | Source | 70 | 51 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 51 | if !self.is_finished() { | 72 | 0 | Err(ErrorKind::TrailingData { | 73 | 0 | decoded: self.position(), | 74 | 0 | remaining: self.remaining_len(), | 75 | 0 | } | 76 | 0 | .at(self.position())) | 77 | | } else { | 78 | 51 | Ok(value) | 79 | | } | 80 | 51 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>> Line | Count | Source | 70 | 55.4k | fn finish<T>(self, value: T) -> Result<T> { | 71 | 55.4k | if !self.is_finished() { | 72 | 0 | Err(ErrorKind::TrailingData { | 73 | 0 | decoded: self.position(), | 74 | 0 | remaining: self.remaining_len(), | 75 | 0 | } | 76 | 0 | .at(self.position())) | 77 | | } else { | 78 | 55.4k | Ok(value) | 79 | | } | 80 | 55.4k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<crypto::crl::RevokedCertificate> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<crypto::x509::AlgorithmIdentifier> Line | Count | Source | 70 | 740 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 740 | if !self.is_finished() { | 72 | 8 | Err(ErrorKind::TrailingData { | 73 | 8 | decoded: self.position(), | 74 | 8 | remaining: self.remaining_len(), | 75 | 8 | } | 76 | 8 | .at(self.position())) | 77 | | } else { | 78 | 732 | Ok(value) | 79 | | } | 80 | 740 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::finish::<crypto::x509::Extension> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>> Line | Count | Source | 70 | 2.40k | fn finish<T>(self, value: T) -> Result<T> { | 71 | 2.40k | if !self.is_finished() { | 72 | 0 | Err(ErrorKind::TrailingData { | 73 | 0 | decoded: self.position(), | 74 | 0 | remaining: self.remaining_len(), | 75 | 0 | } | 76 | 0 | .at(self.position())) | 77 | | } else { | 78 | 2.40k | Ok(value) | 79 | | } | 80 | 2.40k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<alloc::vec::Vec<crypto::crl::RevokedCertificate>> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<alloc::vec::Vec<crypto::x509::Extension>> Line | Count | Source | 70 | 51 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 51 | if !self.is_finished() { | 72 | 38 | Err(ErrorKind::TrailingData { | 73 | 38 | decoded: self.position(), | 74 | 38 | remaining: self.remaining_len(), | 75 | 38 | } | 76 | 38 | .at(self.position())) | 77 | | } else { | 78 | 13 | Ok(value) | 79 | | } | 80 | 51 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<crypto::x509::AlgorithmIdentifier> Line | Count | Source | 70 | 2.12k | fn finish<T>(self, value: T) -> Result<T> { | 71 | 2.12k | if !self.is_finished() { | 72 | 14 | Err(ErrorKind::TrailingData { | 73 | 14 | decoded: self.position(), | 74 | 14 | remaining: self.remaining_len(), | 75 | 14 | } | 76 | 14 | .at(self.position())) | 77 | | } else { | 78 | 2.10k | Ok(value) | 79 | | } | 80 | 2.12k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<crypto::x509::SubjectPublicKeyInfo> Line | Count | Source | 70 | 659 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 659 | if !self.is_finished() { | 72 | 27 | Err(ErrorKind::TrailingData { | 73 | 27 | decoded: self.position(), | 74 | 27 | remaining: self.remaining_len(), | 75 | 27 | } | 76 | 27 | .at(self.position())) | 77 | | } else { | 78 | 632 | Ok(value) | 79 | | } | 80 | 659 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<crypto::x509::Validity> Line | Count | Source | 70 | 904 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 904 | if !self.is_finished() { | 72 | 10 | Err(ErrorKind::TrailingData { | 73 | 10 | decoded: self.position(), | 74 | 10 | remaining: self.remaining_len(), | 75 | 10 | } | 76 | 10 | .at(self.position())) | 77 | | } else { | 78 | 894 | Ok(value) | 79 | | } | 80 | 904 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<der::asn1::bit_string::BitStringRef> Line | Count | Source | 70 | 35 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 35 | if !self.is_finished() { | 72 | 15 | Err(ErrorKind::TrailingData { | 73 | 15 | decoded: self.position(), | 74 | 15 | remaining: self.remaining_len(), | 75 | 15 | } | 76 | 15 | .at(self.position())) | 77 | | } else { | 78 | 20 | Ok(value) | 79 | | } | 80 | 35 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::finish::<der::asn1::integer::uint::UintRef> Line | Count | Source | 70 | 2.39k | fn finish<T>(self, value: T) -> Result<T> { | 71 | 2.39k | if !self.is_finished() { | 72 | 1 | Err(ErrorKind::TrailingData { | 73 | 1 | decoded: self.position(), | 74 | 1 | remaining: self.remaining_len(), | 75 | 1 | } | 76 | 1 | .at(self.position())) | 77 | | } else { | 78 | 2.39k | Ok(value) | 79 | | } | 80 | 2.39k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::finish::<crypto::crl::TbsCertList> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::finish::<crypto::x509::TBSCertificate> Line | Count | Source | 70 | 380 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 380 | if !self.is_finished() { | 72 | 69 | Err(ErrorKind::TrailingData { | 73 | 69 | decoded: self.position(), | 74 | 69 | remaining: self.remaining_len(), | 75 | 69 | } | 76 | 69 | .at(self.position())) | 77 | | } else { | 78 | 311 | Ok(value) | 79 | | } | 80 | 380 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::finish::<crypto::x509::AlgorithmIdentifier> Line | Count | Source | 70 | 194 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 194 | if !self.is_finished() { | 72 | 20 | Err(ErrorKind::TrailingData { | 73 | 20 | decoded: self.position(), | 74 | 20 | remaining: self.remaining_len(), | 75 | 20 | } | 76 | 20 | .at(self.position())) | 77 | | } else { | 78 | 174 | Ok(value) | 79 | | } | 80 | 194 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::finish::<crypto::crl::Crl> <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::finish::<crypto::x509::Certificate> Line | Count | Source | 70 | 64 | fn finish<T>(self, value: T) -> Result<T> { | 71 | 64 | if !self.is_finished() { | 72 | 33 | Err(ErrorKind::TrailingData { | 73 | 33 | decoded: self.position(), | 74 | 33 | remaining: self.remaining_len(), | 75 | 33 | } | 76 | 33 | .at(self.position())) | 77 | | } else { | 78 | 31 | Ok(value) | 79 | | } | 80 | 64 | } |
Unexecuted instantiation: <_ as der::reader::Reader>::finish::<_> |
81 | | |
82 | | /// Have we read all of the input data? |
83 | 793k | fn is_finished(&self) -> bool { |
84 | 793k | self.remaining_len().is_zero() |
85 | 793k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::is_finished Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::is_finished Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::is_finished Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::is_finished Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::is_finished Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::is_finished <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::is_finished Line | Count | Source | 83 | 229k | fn is_finished(&self) -> bool { | 84 | 229k | self.remaining_len().is_zero() | 85 | 229k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::is_finished Line | Count | Source | 83 | 268k | fn is_finished(&self) -> bool { | 84 | 268k | self.remaining_len().is_zero() | 85 | 268k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::is_finished Line | Count | Source | 83 | 141k | fn is_finished(&self) -> bool { | 84 | 141k | self.remaining_len().is_zero() | 85 | 141k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::is_finished Line | Count | Source | 83 | 78.1k | fn is_finished(&self) -> bool { | 84 | 78.1k | self.remaining_len().is_zero() | 85 | 78.1k | } |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::is_finished Line | Count | Source | 83 | 76.5k | fn is_finished(&self) -> bool { | 84 | 76.5k | self.remaining_len().is_zero() | 85 | 76.5k | } |
<der::reader::slice::SliceReader as der::reader::Reader>::is_finished Line | Count | Source | 83 | 31 | fn is_finished(&self) -> bool { | 84 | 31 | self.remaining_len().is_zero() | 85 | 31 | } |
|
86 | | |
87 | | /// Offset within the original input stream. |
88 | | /// |
89 | | /// This is used for error reporting, and doesn't need to be overridden |
90 | | /// by any reader implementations (except for the built-in `NestedReader`, |
91 | | /// which consumes nested input messages) |
92 | 3.68k | fn offset(&self) -> Length { |
93 | 3.68k | self.position() |
94 | 3.68k | } Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::offset Unexecuted instantiation: <_ as der::reader::Reader>::offset <der::reader::slice::SliceReader as der::reader::Reader>::offset Line | Count | Source | 92 | 3.68k | fn offset(&self) -> Length { | 93 | 3.68k | self.position() | 94 | 3.68k | } |
Unexecuted instantiation: <_ as der::reader::Reader>::offset |
95 | | |
96 | | /// Peek at the next byte in the decoder and attempt to decode it as a |
97 | | /// [`Tag`] value. |
98 | | /// |
99 | | /// Does not modify the decoder's state. |
100 | 2.50k | fn peek_tag(&self) -> Result<Tag> { |
101 | 2.50k | match self.peek_byte() { |
102 | 2.35k | Some(byte) => byte.try_into(), |
103 | 144 | None => Err(Error::incomplete(self.input_len())), |
104 | | } |
105 | 2.50k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::peek_tag Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::peek_tag Unexecuted instantiation: <_ as der::reader::Reader>::peek_tag <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::peek_tag Line | Count | Source | 100 | 2.50k | fn peek_tag(&self) -> Result<Tag> { | 101 | 2.50k | match self.peek_byte() { | 102 | 2.35k | Some(byte) => byte.try_into(), | 103 | 144 | None => Err(Error::incomplete(self.input_len())), | 104 | | } | 105 | 2.50k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::peek_tag Unexecuted instantiation: <_ as der::reader::Reader>::peek_tag |
106 | | |
107 | | /// Read a single byte. |
108 | 724k | fn read_byte(&mut self) -> Result<u8> { |
109 | 724k | let mut buf = [0]; |
110 | 724k | self.read_into(&mut buf)?; |
111 | 724k | Ok(buf[0]) |
112 | 724k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::read_byte Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::read_byte Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_byte Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_byte Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_byte Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_byte <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::read_byte Line | Count | Source | 108 | 371k | fn read_byte(&mut self) -> Result<u8> { | 109 | 371k | let mut buf = [0]; | 110 | 371k | self.read_into(&mut buf)?; | 111 | 371k | Ok(buf[0]) | 112 | 371k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::read_byte Line | Count | Source | 108 | 176k | fn read_byte(&mut self) -> Result<u8> { | 109 | 176k | let mut buf = [0]; | 110 | 176k | self.read_into(&mut buf)?; | 111 | 176k | Ok(buf[0]) | 112 | 176k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_byte Line | Count | Source | 108 | 133k | fn read_byte(&mut self) -> Result<u8> { | 109 | 133k | let mut buf = [0]; | 110 | 133k | self.read_into(&mut buf)?; | 111 | 132k | Ok(buf[0]) | 112 | 133k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_byte Line | Count | Source | 108 | 28.1k | fn read_byte(&mut self) -> Result<u8> { | 109 | 28.1k | let mut buf = [0]; | 110 | 28.1k | self.read_into(&mut buf)?; | 111 | 27.8k | Ok(buf[0]) | 112 | 28.1k | } |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_byte Line | Count | Source | 108 | 8.28k | fn read_byte(&mut self) -> Result<u8> { | 109 | 8.28k | let mut buf = [0]; | 110 | 8.28k | self.read_into(&mut buf)?; | 111 | 8.18k | Ok(buf[0]) | 112 | 8.28k | } |
<der::reader::slice::SliceReader as der::reader::Reader>::read_byte Line | Count | Source | 108 | 7.49k | fn read_byte(&mut self) -> Result<u8> { | 109 | 7.49k | let mut buf = [0]; | 110 | 7.49k | self.read_into(&mut buf)?; | 111 | 7.45k | Ok(buf[0]) | 112 | 7.49k | } |
|
113 | | |
114 | | /// Attempt to read input data, writing it into the provided buffer, and |
115 | | /// returning a slice on success. |
116 | | /// |
117 | | /// # Returns |
118 | | /// - `Ok(slice)` if there is sufficient data |
119 | | /// - `Err(ErrorKind::Incomplete)` if there is not enough data |
120 | 816k | fn read_into<'o>(&mut self, buf: &'o mut [u8]) -> Result<&'o [u8]> { |
121 | 816k | let input = self.read_slice(buf.len().try_into()?)?; |
122 | 816k | buf.copy_from_slice(input); |
123 | 816k | Ok(buf) |
124 | 816k | } Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_into <der::reader::slice::SliceReader as der::reader::Reader>::read_into Line | Count | Source | 120 | 816k | fn read_into<'o>(&mut self, buf: &'o mut [u8]) -> Result<&'o [u8]> { | 121 | 816k | let input = self.read_slice(buf.len().try_into()?)?; | 122 | 816k | buf.copy_from_slice(input); | 123 | 816k | Ok(buf) | 124 | 816k | } |
|
125 | | |
126 | | /// Read nested data of the given length. |
127 | 159k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> |
128 | 159k | where |
129 | 159k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, |
130 | | { |
131 | 159k | let mut reader = NestedReader::new(self, len)?; |
132 | 159k | let ret = f(&mut reader)?; |
133 | 151k | reader.finish(ret) |
134 | 159k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::read_nested::<crypto::x509::DistinguishedName, <crypto::x509::DistinguishedName as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::read_nested::<crypto::x509::Extension, <crypto::x509::Extension as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::x509::Extension>, <alloc::vec::Vec<crypto::x509::Extension> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>, <der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<crypto::crl::RevokedCertificate, <crypto::crl::RevokedCertificate as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<crypto::x509::AlgorithmIdentifier, <crypto::x509::AlgorithmIdentifier as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<crypto::x509::Extension, <crypto::x509::Extension as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>, <alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::crl::RevokedCertificate>, <alloc::vec::Vec<crypto::crl::RevokedCertificate> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::x509::Extension>, <der::asn1::context_specific::ContextSpecific<alloc::vec::Vec<crypto::x509::Extension>> as der::decode::Decode>::decode<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::x509::Extension>, <alloc::vec::Vec<crypto::x509::Extension> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<crypto::x509::AlgorithmIdentifier, <crypto::x509::AlgorithmIdentifier as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<crypto::x509::SubjectPublicKeyInfo, <crypto::x509::SubjectPublicKeyInfo as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<crypto::x509::Validity, <crypto::x509::Validity as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<der::asn1::bit_string::BitStringRef, <der::asn1::context_specific::ContextSpecific<der::asn1::bit_string::BitStringRef> as der::decode::Decode>::decode<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<der::asn1::integer::uint::UintRef, <der::asn1::context_specific::ContextSpecific<der::asn1::integer::uint::UintRef> as der::decode::Decode>::decode<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_nested::<crypto::crl::TbsCertList, <crypto::crl::TbsCertList as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_nested::<crypto::x509::TBSCertificate, <crypto::x509::TBSCertificate as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>::{closure#0}>Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_nested::<crypto::x509::AlgorithmIdentifier, <crypto::x509::AlgorithmIdentifier as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>::{closure#0}>Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_nested::<crypto::crl::Crl, <crypto::crl::Crl as der::decode::DecodeValue>::decode_value<der::reader::slice::SliceReader>::{closure#0}>Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_nested::<crypto::x509::Certificate, <crypto::x509::Certificate as der::decode::DecodeValue>::decode_value<der::reader::slice::SliceReader>::{closure#0}>Unexecuted instantiation: <_ as der::reader::Reader>::read_nested::<_, _> <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::read_nested::<crypto::x509::DistinguishedName, <crypto::x509::DistinguishedName as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>>::{closure#0}>Line | Count | Source | 127 | 14.9k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 14.9k | where | 129 | 14.9k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 14.9k | let mut reader = NestedReader::new(self, len)?; | 132 | 14.8k | let ret = f(&mut reader)?; | 133 | 14.6k | reader.finish(ret) | 134 | 14.9k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::read_nested::<crypto::x509::Extension, <crypto::x509::Extension as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>>::{closure#0}>Line | Count | Source | 127 | 71.6k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 71.6k | where | 129 | 71.6k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 71.6k | let mut reader = NestedReader::new(self, len)?; | 132 | 71.6k | let ret = f(&mut reader)?; | 133 | 71.5k | reader.finish(ret) | 134 | 71.6k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::x509::Extension>, <alloc::vec::Vec<crypto::x509::Extension> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Line | Count | Source | 127 | 185 | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 185 | where | 129 | 185 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 185 | let mut reader = NestedReader::new(self, len)?; | 132 | 182 | let ret = f(&mut reader)?; | 133 | 51 | reader.finish(ret) | 134 | 185 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>, <der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Line | Count | Source | 127 | 55.8k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 55.8k | where | 129 | 55.8k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 55.8k | let mut reader = NestedReader::new(self, len)?; | 132 | 55.8k | let ret = f(&mut reader)?; | 133 | 55.4k | reader.finish(ret) | 134 | 55.8k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<crypto::crl::RevokedCertificate, <crypto::crl::RevokedCertificate as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}><der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<crypto::x509::AlgorithmIdentifier, <crypto::x509::AlgorithmIdentifier as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}>Line | Count | Source | 127 | 806 | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 806 | where | 129 | 806 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 806 | let mut reader = NestedReader::new(self, len)?; | 132 | 793 | let ret = f(&mut reader)?; | 133 | 740 | reader.finish(ret) | 134 | 806 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::read_nested::<crypto::x509::Extension, <crypto::x509::Extension as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>::{closure#0}><der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>>, <alloc::vec::Vec<der::asn1::set_of::SetOfVec<crypto::x509::DistinguishedName>> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 2.89k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 2.89k | where | 129 | 2.89k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 2.89k | let mut reader = NestedReader::new(self, len)?; | 132 | 2.88k | let ret = f(&mut reader)?; | 133 | 2.40k | reader.finish(ret) | 134 | 2.89k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::crl::RevokedCertificate>, <alloc::vec::Vec<crypto::crl::RevokedCertificate> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}><der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::x509::Extension>, <der::asn1::context_specific::ContextSpecific<alloc::vec::Vec<crypto::x509::Extension>> as der::decode::Decode>::decode<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 206 | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 206 | where | 129 | 206 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 206 | let mut reader = NestedReader::new(self, len)?; | 132 | 199 | let ret = f(&mut reader)?; | 133 | 51 | reader.finish(ret) | 134 | 206 | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<alloc::vec::Vec<crypto::x509::Extension>, <alloc::vec::Vec<crypto::x509::Extension> as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}><der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<crypto::x509::AlgorithmIdentifier, <crypto::x509::AlgorithmIdentifier as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 2.27k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 2.27k | where | 129 | 2.27k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 2.27k | let mut reader = NestedReader::new(self, len)?; | 132 | 2.24k | let ret = f(&mut reader)?; | 133 | 2.12k | reader.finish(ret) | 134 | 2.27k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<crypto::x509::SubjectPublicKeyInfo, <crypto::x509::SubjectPublicKeyInfo as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 814 | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 814 | where | 129 | 814 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 814 | let mut reader = NestedReader::new(self, len)?; | 132 | 812 | let ret = f(&mut reader)?; | 133 | 659 | reader.finish(ret) | 134 | 814 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<crypto::x509::Validity, <crypto::x509::Validity as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 1.43k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 1.43k | where | 129 | 1.43k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 1.43k | let mut reader = NestedReader::new(self, len)?; | 132 | 1.42k | let ret = f(&mut reader)?; | 133 | 904 | reader.finish(ret) | 134 | 1.43k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<der::asn1::bit_string::BitStringRef, <der::asn1::context_specific::ContextSpecific<der::asn1::bit_string::BitStringRef> as der::decode::Decode>::decode<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 51 | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 51 | where | 129 | 51 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 51 | let mut reader = NestedReader::new(self, len)?; | 132 | 47 | let ret = f(&mut reader)?; | 133 | 35 | reader.finish(ret) | 134 | 51 | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::read_nested::<der::asn1::integer::uint::UintRef, <der::asn1::context_specific::ContextSpecific<der::asn1::integer::uint::UintRef> as der::decode::Decode>::decode<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>::{closure#0}>Line | Count | Source | 127 | 2.61k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 2.61k | where | 129 | 2.61k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 2.61k | let mut reader = NestedReader::new(self, len)?; | 132 | 2.53k | let ret = f(&mut reader)?; | 133 | 2.39k | reader.finish(ret) | 134 | 2.61k | } |
Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_nested::<crypto::crl::TbsCertList, <crypto::crl::TbsCertList as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>::{closure#0}><der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_nested::<crypto::x509::TBSCertificate, <crypto::x509::TBSCertificate as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>::{closure#0}>Line | Count | Source | 127 | 2.72k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 2.72k | where | 129 | 2.72k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 2.72k | let mut reader = NestedReader::new(self, len)?; | 132 | 2.69k | let ret = f(&mut reader)?; | 133 | 380 | reader.finish(ret) | 134 | 2.72k | } |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::read_nested::<crypto::x509::AlgorithmIdentifier, <crypto::x509::AlgorithmIdentifier as der::decode::DecodeValue>::decode_value<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>::{closure#0}>Line | Count | Source | 127 | 277 | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 277 | where | 129 | 277 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 277 | let mut reader = NestedReader::new(self, len)?; | 132 | 252 | let ret = f(&mut reader)?; | 133 | 194 | reader.finish(ret) | 134 | 277 | } |
Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_nested::<crypto::crl::Crl, <crypto::crl::Crl as der::decode::DecodeValue>::decode_value<der::reader::slice::SliceReader>::{closure#0}><der::reader::slice::SliceReader as der::reader::Reader>::read_nested::<crypto::x509::Certificate, <crypto::x509::Certificate as der::decode::DecodeValue>::decode_value<der::reader::slice::SliceReader>::{closure#0}>Line | Count | Source | 127 | 2.93k | fn read_nested<'n, T, F>(&'n mut self, len: Length, f: F) -> Result<T> | 128 | 2.93k | where | 129 | 2.93k | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, | 130 | | { | 131 | 2.93k | let mut reader = NestedReader::new(self, len)?; | 132 | 2.83k | let ret = f(&mut reader)?; | 133 | 64 | reader.finish(ret) | 134 | 2.93k | } |
Unexecuted instantiation: <_ as der::reader::Reader>::read_nested::<_, _> |
135 | | |
136 | | /// Read a byte vector of the given length. |
137 | | #[cfg(feature = "alloc")] |
138 | 0 | fn read_vec(&mut self, len: Length) -> Result<Vec<u8>> { |
139 | 0 | let mut bytes = vec![0u8; usize::try_from(len)?]; |
140 | 0 | self.read_into(&mut bytes)?; |
141 | 0 | Ok(bytes) |
142 | 0 | } Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_vec Unexecuted instantiation: <der::reader::slice::SliceReader as der::reader::Reader>::read_vec |
143 | | |
144 | | /// Get the number of bytes still remaining in the buffer. |
145 | 951k | fn remaining_len(&self) -> Length { |
146 | 951k | debug_assert!(self.position() <= self.input_len()); |
147 | 951k | self.input_len().saturating_sub(self.position()) |
148 | 951k | } Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::remaining_len Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::remaining_len Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::remaining_len Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::remaining_len Unexecuted instantiation: <der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::remaining_len Unexecuted instantiation: <_ as der::reader::Reader>::remaining_len <der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>>> as der::reader::Reader>::remaining_len Line | Count | Source | 145 | 229k | fn remaining_len(&self) -> Length { | 146 | 229k | debug_assert!(self.position() <= self.input_len()); | 147 | 229k | self.input_len().saturating_sub(self.position()) | 148 | 229k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>>> as der::reader::Reader>::remaining_len Line | Count | Source | 145 | 355k | fn remaining_len(&self) -> Length { | 146 | 355k | debug_assert!(self.position() <= self.input_len()); | 147 | 355k | self.input_len().saturating_sub(self.position()) | 148 | 355k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>>> as der::reader::Reader>::remaining_len Line | Count | Source | 145 | 198k | fn remaining_len(&self) -> Length { | 146 | 198k | debug_assert!(self.position() <= self.input_len()); | 147 | 198k | self.input_len().saturating_sub(self.position()) | 148 | 198k | } |
<der::reader::nested::NestedReader<der::reader::nested::NestedReader<der::reader::slice::SliceReader>> as der::reader::Reader>::remaining_len Line | Count | Source | 145 | 88.9k | fn remaining_len(&self) -> Length { | 146 | 88.9k | debug_assert!(self.position() <= self.input_len()); | 147 | 88.9k | self.input_len().saturating_sub(self.position()) | 148 | 88.9k | } |
<der::reader::nested::NestedReader<der::reader::slice::SliceReader> as der::reader::Reader>::remaining_len Line | Count | Source | 145 | 79.7k | fn remaining_len(&self) -> Length { | 146 | 79.7k | debug_assert!(self.position() <= self.input_len()); | 147 | 79.7k | self.input_len().saturating_sub(self.position()) | 148 | 79.7k | } |
Unexecuted instantiation: <_ as der::reader::Reader>::remaining_len |
149 | | |
150 | | /// Read an ASN.1 `SEQUENCE`, creating a nested [`Reader`] for the body and |
151 | | /// calling the provided closure with it. |
152 | 0 | fn sequence<'n, F, T>(&'n mut self, f: F) -> Result<T> |
153 | 0 | where |
154 | 0 | F: FnOnce(&mut NestedReader<'n, Self>) -> Result<T>, |
155 | | { |
156 | 0 | let header = Header::decode(self)?; |
157 | 0 | header.tag.assert_eq(Tag::Sequence)?; |
158 | 0 | self.read_nested(header.length, f) |
159 | 0 | } Unexecuted instantiation: <_ as der::reader::Reader>::sequence::<_, _> Unexecuted instantiation: <_ as der::reader::Reader>::sequence::<_, _> |
160 | | |
161 | | /// Obtain a slice of bytes contain a complete TLV production suitable for parsing later. |
162 | 0 | fn tlv_bytes(&mut self) -> Result<&'r [u8]> { |
163 | 0 | let header = self.peek_header()?; |
164 | 0 | let header_len = header.encoded_len()?; |
165 | 0 | self.read_slice((header_len + header.length)?) |
166 | 0 | } Unexecuted instantiation: <_ as der::reader::Reader>::tlv_bytes Unexecuted instantiation: <_ as der::reader::Reader>::tlv_bytes |
167 | | } |