use crate::pki::impls::certificates::falcon1024::{Falcon1024Certificate, Falcon1024RootCertificate};
use crate::pki::impls::certificates::kyber1024::Kyber1024Certificate;
pub const ROOT_CERTIFICATE_SERIAL: u128 = 0;
pub trait CertificateService: Send + Sync{
fn set_root_certificate(&mut self, root_cert: Falcon1024RootCertificate);
fn add_signing_certificate(&mut self, cert: Falcon1024Certificate) -> bool;
fn add_encryption_certificate(&mut self, cert: Kyber1024Certificate) -> bool;
fn verify_signing_certificate(&self, cert: &Falcon1024Certificate) -> bool;
fn verify_encryption_certificate(&self, cert: &Kyber1024Certificate) -> bool;
fn get_signing_certificate(&self, serial: u128) -> Option<Falcon1024Certificate>;
fn get_encryption_certificate(&self, serial: u128) -> Option<Kyber1024Certificate>;
fn get_root_certificate(&self) -> Option<Falcon1024RootCertificate>;
fn commit(&self);
}