1use thiserror::Error;
2
3pub type HttpSigResult<T> = std::result::Result<T, HttpSigError>;
5
6#[derive(Error, Debug)]
8pub enum HttpSigError {
9 #[error("Base64 decode error: {0}")]
10 Base64DecodeError(#[from] base64::DecodeError),
11
12 #[error("Failed to parse private key: {0}")]
15 ParsePrivateKeyError(String),
16 #[error("Failed to parse public key: {0}")]
18 ParsePublicKeyError(String),
19 #[error("Failed to parse signature: {0}")]
21 ParseSignatureError(String),
22 #[error("Invalid Signature: {0}")]
24 InvalidSignature(String),
25
26 #[error("Failed to parse structured field value: {0}")]
29 ParseSFVError(String),
30 #[error("Invalid http message component name: {0}")]
32 InvalidComponentName(String),
33 #[error("Invalid http message component param: {0}")]
35 InvalidComponentParam(String),
36 #[error("Invalid http message component id: {0}")]
38 InvalidComponentId(String),
39 #[error("Invalid http message component: {0}")]
41 InvalidComponent(String),
42
43 #[error("Invalid signature params: {0}")]
46 InvalidSignatureParams(String),
47
48 #[error("Failed to build signature header: {0}")]
50 BuildSignatureHeaderError(String),
51
52 #[error("Failed to build signature base: {0}")]
54 BuildSignatureBaseError(String),
55
56 #[error("Expired signature params: {0}")]
58 ExpiredSignatureParams(String),
59
60 #[error("Not yet implemented: {0}")]
63 NotYetImplemented(String),
64}