nexus_sdk/signed_http/v2/
error.rs1use {super::wire::SIGNATURE_VERSION_V2, thiserror::Error};
2
3#[derive(Debug, Error)]
4pub enum SignedHttpError {
5 #[error("unsupported signature version '{0}', expected '{SIGNATURE_VERSION_V2}'")]
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}