use super::Name;
use const_oid::ObjectIdentifier;
#[derive(Clone, Debug)]
pub struct Certificate {
pub subject: Name,
pub issuer: Name,
pub not_before: u64,
pub not_after: u64,
pub role: Role,
pub extensions: Vec<Extension>,
}
impl Default for Certificate {
fn default() -> Self {
Self {
subject: Name::default(),
issuer: Name::default(),
not_before: 0,
not_after: 0,
role: Role::Leaf,
extensions: Vec::new(),
}
}
}
#[derive(Clone, Debug)]
pub struct Verified<K> {
pub public_key: K,
pub cert: Certificate,
}
#[derive(Clone, Debug)]
pub enum Role {
Leaf,
Authority { path_len: Option<u8> },
}
#[derive(Clone, Debug)]
pub struct Extension {
pub oid: ObjectIdentifier,
pub critical: bool,
pub value: Vec<u8>,
}
#[derive(Clone, Copy, Debug)]
pub enum ValidityCheck {
Now,
At(u64),
Disabled,
}