#[cfg(not(feature = "dimpl"))]
#[macro_use]
extern crate tracing;
mod srtp;
use srtp::WinCryptoSrtpProvider;
mod sha1;
use sha1::WinCryptoSha1HmacProvider;
mod sha256;
use sha256::WinCryptoSha256Provider;
#[cfg(feature = "dimpl")]
mod dimpl_provider;
#[cfg_attr(feature = "dimpl", path = "dtls_dimpl.rs")]
#[cfg_attr(not(feature = "dimpl"), path = "dtls_schannel.rs")]
mod dtls;
use dtls::WinCryptoDtlsProvider;
use str0m_proto::crypto::CryptoProvider;
pub use sys::WinCryptoError;
mod sys;
pub fn default_provider() -> CryptoProvider {
static SRTP: WinCryptoSrtpProvider = WinCryptoSrtpProvider;
static SHA1_HMAC: WinCryptoSha1HmacProvider = WinCryptoSha1HmacProvider;
static SHA256: WinCryptoSha256Provider = WinCryptoSha256Provider;
static DTLS: WinCryptoDtlsProvider = WinCryptoDtlsProvider;
CryptoProvider {
srtp_provider: &SRTP,
sha1_hmac_provider: &SHA1_HMAC,
sha256_provider: &SHA256,
dtls_provider: &DTLS,
}
}