use crate::config::Config;
use crate::signature::DerSigEncoder;
use crate::x509::X509CertBackend;
#[cfg(feature = "ring")]
use crate::crypto::RingCrypto;
#[cfg(feature = "rustcrypto")]
use crate::crypto::RustCryptoCrypto;
#[cfg(feature = "ring")]
pub struct RingConfig;
#[cfg(feature = "ring")]
impl Config for RingConfig {
type X509 = X509CertBackend;
type SigEncoder = DerSigEncoder;
type Crypto = RingCrypto;
}
#[cfg(feature = "rustcrypto")]
pub struct RustCryptoConfig;
#[cfg(feature = "rustcrypto")]
impl Config for RustCryptoConfig {
type X509 = X509CertBackend;
type SigEncoder = DerSigEncoder;
type Crypto = RustCryptoCrypto;
}
#[cfg(feature = "ring")]
pub type DefaultConfig = RingConfig;
#[cfg(all(not(feature = "ring"), feature = "rustcrypto"))]
pub type DefaultConfig = RustCryptoConfig;