rustls/server/
common.rs

1use crate::{key, sign};
2
3/// ActiveCertifiedKey wraps CertifiedKey and tracks OSCP and SCT state
4/// in a single handshake.
5pub(super) struct ActiveCertifiedKey<'a> {
6    key: &'a sign::CertifiedKey,
7    ocsp: Option<&'a [u8]>,
8    sct_list: Option<&'a [u8]>,
9}
10
11impl<'a> ActiveCertifiedKey<'a> {
12    pub(super) fn from_certified_key(key: &sign::CertifiedKey) -> ActiveCertifiedKey {
13        ActiveCertifiedKey {
14            key,
15            ocsp: key.ocsp.as_deref(),
16            sct_list: key.sct_list.as_deref(),
17        }
18    }
19
20    /// Get the certificate chain
21    #[inline]
22    pub(super) fn get_cert(&self) -> &[key::Certificate] {
23        &self.key.cert
24    }
25
26    /// Get the signing key
27    #[inline]
28    pub(super) fn get_key(&self) -> &dyn sign::SigningKey {
29        &*self.key.key
30    }
31
32    #[inline]
33    pub(super) fn get_ocsp(&self) -> Option<&[u8]> {
34        self.ocsp
35    }
36
37    #[inline]
38    pub(super) fn get_sct_list(&self) -> Option<&[u8]> {
39        self.sct_list
40    }
41}