Expose digest implementations

This commit is contained in:
asonix 2024-05-03 14:16:57 -05:00
parent 6334346a2a
commit 9f05a6cea5

View file

@ -20,10 +20,20 @@ pub trait DigestImplementation {
fn digest(&self, algorithm: DigestAlgorithm, bytes: &[u8]) -> Vec<u8>; fn digest(&self, algorithm: DigestAlgorithm, bytes: &[u8]) -> Vec<u8>;
} }
#[cfg(feature = "aws-lc-rs")]
pub use aws_lc_rs_backend::AwsLcRsDigest;
#[cfg(feature = "ring")]
pub use ring_backend::RingDigest;
#[cfg(feature = "rustcrypto")]
pub use rustcrypto_backend::RustcryptoDigest;
#[cfg(feature = "aws-lc-rs")] #[cfg(feature = "aws-lc-rs")]
mod aws_lc_rs_backend { mod aws_lc_rs_backend {
use super::{DigestAlgorithm, DigestImplementation}; use super::{DigestAlgorithm, DigestImplementation};
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct AwsLcRsDigest; pub struct AwsLcRsDigest;
impl DigestImplementation for AwsLcRsDigest { impl DigestImplementation for AwsLcRsDigest {
@ -44,6 +54,7 @@ mod aws_lc_rs_backend {
mod ring_backend { mod ring_backend {
use super::{DigestAlgorithm, DigestImplementation}; use super::{DigestAlgorithm, DigestImplementation};
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct RingDigest; pub struct RingDigest;
impl DigestImplementation for RingDigest { impl DigestImplementation for RingDigest {
@ -65,6 +76,7 @@ mod rustcrypto_backend {
use super::{DigestAlgorithm, DigestImplementation}; use super::{DigestAlgorithm, DigestImplementation};
use sha2::{Digest, Sha256, Sha384, Sha512}; use sha2::{Digest, Sha256, Sha384, Sha512};
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct RustcryptoDigest; pub struct RustcryptoDigest;
impl DigestImplementation for RustcryptoDigest { impl DigestImplementation for RustcryptoDigest {
@ -81,6 +93,7 @@ mod rustcrypto_backend {
} }
} }
#[derive(Clone)]
pub struct MakeRustlsConnect<D> { pub struct MakeRustlsConnect<D> {
config: Arc<ClientConfig>, config: Arc<ClientConfig>,
digest_impl: D, digest_impl: D,