pub struct HandshakeEngine {
pub state: HandshakeState,
pub cipher_suite: Option<CipherSuite>,
pub handshake_secret: Option<[u8; 32]>,
pub client_hs_traffic_secret: Option<[u8; 32]>,
pub server_hs_traffic_secret: Option<[u8; 32]>,
pub client_app_traffic_secret: Option<[u8; 32]>,
pub server_app_traffic_secret: Option<[u8; 32]>,
pub peer_certificate: Option<Vec<u8>>,
/* private fields */
}Expand description
Handshake engine managing state transitions and transcript
Fields§
§state: HandshakeState§cipher_suite: Option<CipherSuite>Negotiated cipher suite
handshake_secret: Option<[u8; 32]>Derived handshake secrets
client_hs_traffic_secret: Option<[u8; 32]>Client handshake traffic secret
server_hs_traffic_secret: Option<[u8; 32]>Server handshake traffic secret
client_app_traffic_secret: Option<[u8; 32]>Client application traffic secret
server_app_traffic_secret: Option<[u8; 32]>Server application traffic secret
peer_certificate: Option<Vec<u8>>Peer certificate (DER bytes)
Implementations§
Source§impl HandshakeEngine
impl HandshakeEngine
Sourcepub fn build_client_hello(&mut self, random: [u8; 32]) -> Option<Vec<u8>>
pub fn build_client_hello(&mut self, random: [u8; 32]) -> Option<Vec<u8>>
Build and return the ClientHello message, advancing state
Sourcepub fn process_server_hello(&mut self, data: &[u8]) -> Option<()>
pub fn process_server_hello(&mut self, data: &[u8]) -> Option<()>
Process a received ServerHello message
Sourcepub fn process_encrypted_extensions(&mut self, data: &[u8]) -> Option<()>
pub fn process_encrypted_extensions(&mut self, data: &[u8]) -> Option<()>
Process EncryptedExtensions message
Sourcepub fn process_certificate(&mut self, data: &[u8]) -> Option<()>
pub fn process_certificate(&mut self, data: &[u8]) -> Option<()>
Process Certificate message
Sourcepub fn process_certificate_verify(&mut self, data: &[u8]) -> Option<()>
pub fn process_certificate_verify(&mut self, data: &[u8]) -> Option<()>
Process CertificateVerify message
Sourcepub fn process_finished(&mut self, data: &[u8]) -> Option<()>
pub fn process_finished(&mut self, data: &[u8]) -> Option<()>
Process server Finished message and derive application traffic secrets
Sourcepub fn build_client_finished(&self) -> Option<Vec<u8>>
pub fn build_client_finished(&self) -> Option<Vec<u8>>
Build the client Finished message