ferron_common/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)]
8pub struct NoServerVerifier;
9
10impl Default for NoServerVerifier {
11 fn default() -> Self {
12 Self::new()
13 }
14}
15
16impl NoServerVerifier {
17 pub fn new() -> Self {
18 Self
19 }
20}
21
22impl ServerCertVerifier for NoServerVerifier {
23 fn verify_server_cert(
24 &self,
25 _end_entity: &CertificateDer<'_>,
26 _intermediates: &[CertificateDer<'_>],
27 _server_name: &ServerName<'_>,
28 _ocsp_response: &[u8],
29 _now: UnixTime,
30 ) -> Result<ServerCertVerified, rustls::Error> {
31 Ok(ServerCertVerified::assertion())
32 }
33
34 fn verify_tls12_signature(
35 &self,
36 _message: &[u8],
37 _cert: &CertificateDer<'_>,
38 _dss: &DigitallySignedStruct,
39 ) -> Result<HandshakeSignatureValid, rustls::Error> {
40 Ok(HandshakeSignatureValid::assertion())
41 }
42
43 fn verify_tls13_signature(
44 &self,
45 _message: &[u8],
46 _cert: &CertificateDer<'_>,
47 _dss: &DigitallySignedStruct,
48 ) -> Result<HandshakeSignatureValid, rustls::Error> {
49 Ok(HandshakeSignatureValid::assertion())
50 }
51
52 fn supported_verify_schemes(&self) -> Vec<SignatureScheme> {
53 vec![
55 ECDSA_NISTP384_SHA384,
56 ECDSA_NISTP256_SHA256,
57 ED25519,
58 RSA_PSS_SHA512,
59 RSA_PSS_SHA384,
60 RSA_PSS_SHA256,
61 RSA_PKCS1_SHA512,
62 RSA_PKCS1_SHA384,
63 RSA_PKCS1_SHA256,
64 ]
65 }
66}