Skip to main content

nexus_sdk/signed_http/v3/
error.rs

1use {super::wire::SIGNATURE_VERSION_V3, thiserror::Error};
2
3#[derive(Debug, Error)]
4pub enum SignedHttpError {
5    #[error("unsupported signature version '{0}', expected '{SIGNATURE_VERSION_V3}'")]
6    UnsupportedVersion(String),
7    #[error("missing required header '{0}'")]
8    MissingHeader(&'static str),
9    #[error("invalid integer in header '{header}': {value}")]
10    InvalidInteger { header: &'static str, value: String },
11    #[error("invalid base64url in header '{header}': {source}")]
12    InvalidBase64 {
13        header: &'static str,
14        #[source]
15        source: base64::DecodeError,
16    },
17    #[error("invalid byte length in header '{header}': got {actual}, expected {expected}")]
18    InvalidLength {
19        header: &'static str,
20        actual: usize,
21        expected: usize,
22    },
23    #[error("unknown leader key (leader_id={leader_id}, leader_key_id={leader_key_id})")]
24    UnknownLeaderKey {
25        leader_id: String,
26        leader_key_id: u64,
27    },
28    #[error("invalid ed25519 public key for {identity}")]
29    InvalidPublicKey { identity: String },
30    #[error("invalid ed25519 signature")]
31    InvalidSignature,
32    #[error("invalid allowed-leaders file: {0}")]
33    InvalidAllowedLeadersFile(String),
34    #[error("io error: {0}")]
35    Io(#[from] std::io::Error),
36}