1use crate::config::Config;
10use crate::signature::DerSigEncoder;
11use crate::x509::X509CertBackend;
12
13#[cfg(feature = "ring")]
14use crate::crypto::RingCrypto;
15#[cfg(feature = "rustcrypto")]
16use crate::crypto::RustCryptoCrypto;
17
18#[cfg(feature = "ring")]
22pub struct RingConfig;
23
24#[cfg(feature = "ring")]
25impl Config for RingConfig {
26 type X509 = X509CertBackend;
27 type SigEncoder = DerSigEncoder;
28 type Crypto = RingCrypto;
29}
30
31#[cfg(feature = "rustcrypto")]
34pub struct RustCryptoConfig;
35
36#[cfg(feature = "rustcrypto")]
37impl Config for RustCryptoConfig {
38 type X509 = X509CertBackend;
39 type SigEncoder = DerSigEncoder;
40 type Crypto = RustCryptoCrypto;
41}
42
43#[cfg(feature = "ring")]
46pub type DefaultConfig = RingConfig;
47
48#[cfg(all(not(feature = "ring"), feature = "rustcrypto"))]
49pub type DefaultConfig = RustCryptoConfig;