use super::types::Item;
use commonware_cryptography::{certificate, Digest};
pub trait Scheme<D: Digest>: for<'a> certificate::Scheme<Subject<'a, D> = &'a Item<D>> {}
impl<D: Digest, S> Scheme<D> for S where S: for<'a> certificate::Scheme<Subject<'a, D> = &'a Item<D>>
{}
pub mod bls12381_multisig {
use crate::aggregation::types::{Item, Namespace};
use commonware_cryptography::impl_certificate_bls12381_multisig;
impl_certificate_bls12381_multisig!(&'a Item<D>, Namespace);
}
pub mod bls12381_threshold {
use crate::aggregation::types::{Item, Namespace};
use commonware_cryptography::impl_certificate_bls12381_threshold;
impl_certificate_bls12381_threshold!(&'a Item<D>, Namespace);
}
pub mod ed25519 {
use crate::aggregation::types::{Item, Namespace};
use commonware_cryptography::impl_certificate_ed25519;
impl_certificate_ed25519!(&'a Item<D>, Namespace);
}
pub mod secp256r1 {
use crate::aggregation::types::{Item, Namespace};
use commonware_cryptography::impl_certificate_secp256r1;
impl_certificate_secp256r1!(&'a Item<D>, Namespace);
}