Enum reth_ecies::ECIESErrorImpl

source ·
pub enum ECIESErrorImpl {
Show 15 variants IO(Error), TagCheckDecryptFailed, TagCheckHeaderFailed, TagCheckBodyFailed, InvalidAuthData, InvalidAckData, InvalidHeader, Secp256k1(Error), RLPDecoding(Error), FromInt(TryFromIntError), EncryptedDataTooSmall, OutOfBounds { idx: usize, len: usize, }, InvalidHandshake { expected: IngressECIESValue, msg: Option<IngressECIESValue>, }, UnreadableStream, StreamTimeout,
}
Expand description

An error that occurs while reading or writing to an ECIES stream.

Variants§

§

IO(Error)

Error during IO

§

TagCheckDecryptFailed

Error when checking the HMAC tag against the tag on the message being decrypted

§

TagCheckHeaderFailed

Error when checking the HMAC tag against the tag on the header

§

TagCheckBodyFailed

Error when checking the HMAC tag against the tag on the body

§

InvalidAuthData

Error when parsing AUTH data

§

InvalidAckData

Error when parsing ACK data

§

InvalidHeader

Error when reading the header if its length is <3

§

Secp256k1(Error)

Error when interacting with secp256k1

§

RLPDecoding(Error)

Error when decoding RLP data

§

FromInt(TryFromIntError)

Error when converting to integer

§

EncryptedDataTooSmall

The encrypted data is not large enough for all fields

§

OutOfBounds

Error when trying to split an array beyond its length

Fields

§idx: usize

The index you are trying to split at

§len: usize

The length of the array

§

InvalidHandshake

Error when handshaking with a peer (ack / auth)

Fields

§expected: IngressECIESValue

The expected return value from the peer

§msg: Option<IngressECIESValue>

The actual value returned from the peer

§

UnreadableStream

Error when the stream was closed by the peer for being unreadable.

This exact error case happens when the wrapped stream in Framed is closed by the peer, See ConnectionReset and the ecies codec fails to decode a message from the (partially filled) buffer.

§

StreamTimeout

Error when data is not received from peer for a prolonged period.

Trait Implementations§

source§

impl Debug for ECIESErrorImpl

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ECIESErrorImpl

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ECIESErrorImpl

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access #99301)
Provides type-based access to context intended for error reports. Read more
source§

impl From<ECIESErrorImpl> for ECIESError

source§

fn from(source: ECIESErrorImpl) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 144 bytes

Size for each variant:

  • IO: 16 bytes
  • TagCheckDecryptFailed: 0 bytes
  • TagCheckHeaderFailed: 0 bytes
  • TagCheckBodyFailed: 0 bytes
  • InvalidAuthData: 0 bytes
  • InvalidAckData: 0 bytes
  • InvalidHeader: 0 bytes
  • Secp256k1: 12 bytes
  • RLPDecoding: 32 bytes
  • FromInt: 0 bytes
  • EncryptedDataTooSmall: 0 bytes
  • OutOfBounds: 24 bytes
  • InvalidHandshake: 144 bytes
  • UnreadableStream: 0 bytes
  • StreamTimeout: 0 bytes