golem_certificate/
error.rs1use chrono::{DateTime, Utc};
2
3use crate::schemas::{
4 certificate::key_usage::KeyUsage, permissions::Permissions, validity_period::ValidityPeriod,
5};
6
7#[derive(thiserror::Error, Debug, PartialEq)]
8pub enum Error {
9 #[error("Expired: was valid to {0}")]
10 Expired(DateTime<Utc>),
11 #[error("Not valid yet: will be valid from {0}")]
12 NotValidYet(DateTime<Utc>),
13 #[error("Validity period extended: {parent:?}, {child:?}")]
14 ValidityPeriodExtended {
15 parent: ValidityPeriod,
16 child: ValidityPeriod,
17 },
18 #[error("Permissions extended: {parent:?}, {child:?}")]
19 PermissionsExtended {
20 parent: Permissions,
21 child: Permissions,
22 },
23 #[error("Key usage extended: {parent:?}, {child:?}")]
24 KeyUsageExtended { parent: KeyUsage, child: KeyUsage },
25 #[error("Certificate signing not permitted")]
26 CertSignNotPermitted,
27 #[error("Certificate cannot sign Node Descriptor")]
28 NodeSignNotPermitted,
29 #[error("Invalid signature")]
30 InvalidSignature,
31 #[error("Invalid signature value (cannot deserialize)")]
32 InvalidSignatureValue,
33 #[error("Invalid public key")]
34 InvalidPublicKey,
35 #[error("Invalid json: {0}")]
36 InvalidJson(String),
37 #[error("JCS serialization error: {0}")]
38 JcsSerializationError(String),
39 #[error("Json does not conform to schema: {0}")]
40 JsonDoesNotConformToSchema(String),
41 #[error("Unsupported schema for structure {structure_name}: {schema}")]
42 UnsupportedSchema {
43 schema: String,
44 structure_name: String,
45 },
46}
47
48pub type Result<T> = std::result::Result<T, Error>;