solana_tls_utils/
quic_client_certificate.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use {
    crate::new_dummy_x509_certificate,
    rustls::pki_types::{CertificateDer, PrivateKeyDer},
    solana_keypair::Keypair,
};

pub struct QuicClientCertificate {
    pub certificate: CertificateDer<'static>,
    pub key: PrivateKeyDer<'static>,
}

impl QuicClientCertificate {
    pub fn new(keypair: Option<&Keypair>) -> Self {
        if let Some(keypair) = keypair {
            let (certificate, key) = new_dummy_x509_certificate(keypair);
            Self { certificate, key }
        } else {
            let (certificate, key) = new_dummy_x509_certificate(&Keypair::new());
            Self { certificate, key }
        }
    }
}