diff --git a/net/quinn/src/utils.rs b/net/quinn/src/utils.rs index f1faa3d0..5811b836 100644 --- a/net/quinn/src/utils.rs +++ b/net/quinn/src/utils.rs @@ -155,11 +155,11 @@ pub fn make_socket_addr(addr: &str) -> Result { * Following functions are taken from Quinn documentation/repository */ #[derive(Debug)] -struct SkipServerVerification; +struct SkipServerVerification(Arc); impl SkipServerVerification { pub fn new() -> Arc { - Arc::new(Self) + Arc::new(Self(Arc::new(rustls::crypto::ring::default_provider()))) } } @@ -177,38 +177,34 @@ impl rustls::client::danger::ServerCertVerifier for SkipServerVerification { fn verify_tls12_signature( &self, - _: &[u8], - _: &rustls_pki_types::CertificateDer<'_>, - _: &rustls::DigitallySignedStruct, + message: &[u8], + cert: &rustls_pki_types::CertificateDer<'_>, + dss: &rustls::DigitallySignedStruct, ) -> Result { - Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) + rustls::crypto::verify_tls12_signature( + message, + cert, + dss, + &self.0.signature_verification_algorithms, + ) } fn verify_tls13_signature( &self, - _: &[u8], - _: &rustls_pki_types::CertificateDer<'_>, - _: &rustls::DigitallySignedStruct, + message: &[u8], + cert: &rustls_pki_types::CertificateDer<'_>, + dss: &rustls::DigitallySignedStruct, ) -> Result { - Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) + rustls::crypto::verify_tls13_signature( + message, + cert, + dss, + &self.0.signature_verification_algorithms, + ) } fn supported_verify_schemes(&self) -> Vec { - vec![ - rustls::SignatureScheme::RSA_PKCS1_SHA1, - rustls::SignatureScheme::ECDSA_SHA1_Legacy, - rustls::SignatureScheme::RSA_PKCS1_SHA256, - rustls::SignatureScheme::ECDSA_NISTP256_SHA256, - rustls::SignatureScheme::RSA_PKCS1_SHA384, - rustls::SignatureScheme::ECDSA_NISTP384_SHA384, - rustls::SignatureScheme::RSA_PKCS1_SHA512, - rustls::SignatureScheme::ECDSA_NISTP521_SHA512, - rustls::SignatureScheme::RSA_PSS_SHA256, - rustls::SignatureScheme::RSA_PSS_SHA384, - rustls::SignatureScheme::RSA_PSS_SHA512, - rustls::SignatureScheme::ED25519, - rustls::SignatureScheme::ED448, - ] + self.0.signature_verification_algorithms.supported_schemes() } }