Skip to main content

Erc8128Error

Enum Erc8128Error 

Source
#[non_exhaustive]
pub enum Erc8128Error {
Show 29 variants InvalidUrl(String), InvalidOptions(String), InvalidHeaderValue(String), InvalidDerivedValue(String), InvalidFormat(String), DigestError(String), SigningFailed(String), MissingHeaders, LabelNotFound, BadSignatureInput(String), BadKeyId, BadTime, NotYetValid, Expired, ValidityTooLong, ReplayableNotAllowed, ReplayableInvalidationRequired, ReplayableNotBefore, ReplayableInvalidated, NotRequestBound, ClassBoundNotAllowed, NonceWindowTooLong, DigestRequired, DigestMismatch, BadSignatureBytes, BadSignature, Replay, AlgNotAllowed, VerificationFailed(String),
}
Expand description

Errors produced by ERC-8128 signing and verification.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

InvalidUrl(String)

The request URL is not absolute or cannot be parsed.

§

InvalidOptions(String)

Sign/verify options are invalid (e.g. expires <= created).

§

InvalidHeaderValue(String)

A Structured Fields value contains forbidden characters.

§

InvalidDerivedValue(String)

A derived component (@method, @authority, …) produced non-visible-ASCII.

§

InvalidFormat(String)

A required field is empty or the overall format is wrong.

§

DigestError(String)

content-digest handling failed during signing.

§

SigningFailed(String)

The signer returned an empty or malformed signature.

§

MissingHeaders

Signature-Input / Signature headers are missing.

§

LabelNotFound

The requested signature label was not found.

§

BadSignatureInput(String)

Signature-Input / Signature could not be parsed.

§

BadKeyId

The keyid does not match erc8128:<chainId>:<address>.

§

BadTime

created / expires are missing, non-integer, or expires <= created.

§

NotYetValid

Signature is not yet valid (now + skew < created).

§

Expired

Signature has expired (now - skew > expires).

§

ValidityTooLong

expires - created exceeds the policy maximum.

§

ReplayableNotAllowed

Replayable (nonce-less) signature rejected by policy.

§

ReplayableInvalidationRequired

Replayable signature accepted but no invalidation mechanism is provided. Required by ERC-8128 Section 3.2.2 + 5.2.

§

ReplayableNotBefore

Replayable signature rejected: created before the per-key not_before cutoff.

§

ReplayableInvalidated

Replayable signature explicitly invalidated by policy hook.

§

NotRequestBound

Signed components do not satisfy request-bound requirements.

§

ClassBoundNotAllowed

Signed components do not match any class-bound policy.

§

NonceWindowTooLong

expires - created exceeds the nonce retention window.

§

DigestRequired

content-digest header required by components but missing.

§

DigestMismatch

content-digest value does not match the body.

§

BadSignatureBytes

Signature bytes could not be decoded (bad base64 or empty).

§

BadSignature

The signature is cryptographically invalid.

§

Replay

The nonce has already been consumed (replay detected).

§

AlgNotAllowed

Algorithm is not allowed by policy.

§

VerificationFailed(String)

The cryptographic verification call itself failed (e.g. RPC error).

Trait Implementations§

Source§

impl Debug for Erc8128Error

Source§

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

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

impl Display for Erc8128Error

Source§

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

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

impl Error for Erc8128Error

1.30.0 · 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)
Provides type-based access to context intended for error reports. Read more

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.

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§

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.