ferron/util/
no_server_verifier.rs1use rustls::client::danger::{HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier};
2use rustls::DigitallySignedStruct;
3use rustls::SignatureScheme::{self, *};
4use rustls_pki_types::{CertificateDer, ServerName, UnixTime};
5
6#[derive(Debug)]
7pub struct NoServerVerifier;
8
9impl NoServerVerifier {
10 pub fn new() -> Self {
11 Self
12 }
13}
14
15impl ServerCertVerifier for NoServerVerifier {
16 fn verify_server_cert(
17 &self,
18 _end_entity: &CertificateDer<'_>,
19 _intermediates: &[CertificateDer<'_>],
20 _server_name: &ServerName<'_>,
21 _ocsp_response: &[u8],
22 _now: UnixTime,
23 ) -> Result<ServerCertVerified, rustls::Error> {
24 Ok(ServerCertVerified::assertion())
25 }
26
27 fn verify_tls12_signature(
28 &self,
29 _message: &[u8],
30 _cert: &CertificateDer<'_>,
31 _dss: &DigitallySignedStruct,
32 ) -> Result<HandshakeSignatureValid, rustls::Error> {
33 Ok(HandshakeSignatureValid::assertion())
34 }
35
36 fn verify_tls13_signature(
37 &self,
38 _message: &[u8],
39 _cert: &CertificateDer<'_>,
40 _dss: &DigitallySignedStruct,
41 ) -> Result<HandshakeSignatureValid, rustls::Error> {
42 Ok(HandshakeSignatureValid::assertion())
43 }
44
45 fn supported_verify_schemes(&self) -> Vec<SignatureScheme> {
46 vec![
48 ECDSA_NISTP384_SHA384,
49 ECDSA_NISTP256_SHA256,
50 ED25519,
51 RSA_PSS_SHA512,
52 RSA_PSS_SHA384,
53 RSA_PSS_SHA256,
54 RSA_PKCS1_SHA512,
55 RSA_PKCS1_SHA384,
56 RSA_PKCS1_SHA256,
57 ]
58 }
59}