#[non_exhaustive]
pub enum ErrorKind {
Show 17 variants
DateTime,
Failed,
Incomplete {
expected_len: Length,
actual_len: Length,
},
Length {
tag: Tag,
},
Noncanonical {
tag: Tag,
},
OidMalformed,
OidUnknown {
oid: ObjectIdentifier,
},
SetOrdering,
Overflow,
Overlength,
TagModeUnknown,
TagNumberInvalid,
TagUnexpected {
expected: Option<Tag>,
actual: Tag,
},
TagUnknown {
byte: u8,
},
TrailingData {
decoded: Length,
remaining: Length,
},
Utf8(Utf8Error),
Value {
tag: Tag,
},
}
Expand description
Error type.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
DateTime
Date-and-time related errors.
Failed
This error indicates a previous DER parsing operation resulted in
an error and tainted the state of a Decoder
or Encoder
.
Once this occurs, the overall operation has failed and cannot be subsequently resumed.
Incomplete
Fields
expected_len: Length
Expected message length.
Note that this length represents a minimum lower bound on how much additional data is needed to continue parsing the message.
It’s possible upon subsequent message parsing that the parser will discover even more data is needed.
actual_len: Length
Actual length of the message buffer currently being processed.
Message is incomplete and does not contain all of the expected data.
Length
Fields
tag: Tag
Tag of the value being decoded.
Incorrect length for a given field.
Noncanonical
Fields
tag: Tag
Tag of the value which is not canonically encoded.
Message is not canonically encoded.
OidMalformed
OID is improperly encoded.
OidUnknown
Fields
oid: ObjectIdentifier
OID value that was unrecognized by a parser for a DER-based format.
Unknown OID.
This error is intended to be used by libraries which parse DER-based formats which encounter unknown or unsupported OID libraries.
It enables passing back the OID value to the caller, which allows them to determine which OID(s) are causing the error (and then potentially contribute upstream support for algorithms they care about).
SetOrdering
SET
ordering error: items not in canonical order.
Overflow
Integer overflow occurred (library bug!).
Overlength
Message is longer than this library’s internal limits support.
TagModeUnknown
Unknown tag mode.
TagNumberInvalid
Invalid tag number.
The “tag number” is the lower 5-bits of a tag’s octet.
This error occurs in the case that all 5-bits are set to 1
,
which indicates a multi-byte tag which is unsupported by this library.
TagUnexpected
Fields
expected: Option<Tag>
Tag the decoder was expecting (if there is a single such tag).
None
if multiple tags are expected/allowed, but the actual
tag
does not match any of them.
actual: Tag
Actual tag encountered in the message.
Unexpected tag.
TagUnknown
Fields
byte: u8
Raw byte value of the tag.
Unknown/unsupported tag.
TrailingData
Fields
decoded: Length
Length of the decoded data.
remaining: Length
Total length of the remaining data left in the buffer.
Undecoded trailing data at end of message.
Utf8(Utf8Error)
UTF-8 errors.
Value
Fields
tag: Tag
Tag of the unexpected value.
Unexpected value.
Implementations
Trait Implementations
impl Copy for ErrorKind
impl Eq for ErrorKind
impl StructuralEq for ErrorKind
impl StructuralPartialEq for ErrorKind
Auto Trait Implementations
impl RefUnwindSafe for ErrorKind
impl Send for ErrorKind
impl Sync for ErrorKind
impl Unpin for ErrorKind
impl UnwindSafe for ErrorKind
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more