#![allow(clippy::redundant_pub_crate)]
#[cfg(not(any(feature = "rustcrypto", feature = "aws-lc-rs", feature = "aws-lc-rs-fips")))]
compile_error!(
"roughtime: exactly one crypto backend feature must be enabled: \
`rustcrypto`, `aws-lc-rs`, or `aws-lc-rs-fips`"
);
#[cfg(any(
all(feature = "rustcrypto", feature = "aws-lc-rs"),
all(feature = "rustcrypto", feature = "aws-lc-rs-fips"),
))]
compile_error!(
"roughtime: only one crypto backend feature may be enabled at a time \
(`rustcrypto` is mutually exclusive with `aws-lc-rs`/`aws-lc-rs-fips`)"
);
#[cfg(feature = "rustcrypto")]
mod rustcrypto;
#[cfg(any(feature = "aws-lc-rs", feature = "aws-lc-rs-fips"))]
mod aws_lc;
#[cfg(feature = "rustcrypto")]
pub(crate) use rustcrypto::{sha512, verify_ed25519};
#[cfg(all(feature = "rustcrypto", feature = "std"))]
pub(crate) use rustcrypto::fill_random;
#[cfg(any(feature = "aws-lc-rs", feature = "aws-lc-rs-fips"))]
pub(crate) use aws_lc::{sha512, verify_ed25519};
#[cfg(all(any(feature = "aws-lc-rs", feature = "aws-lc-rs-fips"), feature = "std"))]
pub(crate) use aws_lc::fill_random;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub(crate) enum CryptoError {
InvalidSignature,
#[cfg(feature = "rustcrypto")]
InvalidKey,
#[cfg(feature = "std")]
RandomUnavailable,
}