pub struct ServerHello {
pub server_nonce: [u8; 32],
pub ciphertext: HybridCiphertext,
pub server_verify_key: HybridVerifyingKey,
pub signature: HybridSignature,
pub session_id: [u8; 32],
pub early_data_accepted: bool,
}std only.Expand description
Server hello message (response to ClientHello)
Fields§
§server_nonce: [u8; 32]Server-contributed 32-byte nonce (T4.3). Replaces the former ~1184 B
server_key_package — a full ML-KEM key package whose KEM secret was discarded
(the protocol runs no second KEM round). It is bound into the signed transcript,
so it remains a session-specific, tamper-evident server contribution beyond
session_id + the client nonce; a future second-KEM ring could repurpose this
slot. Saves ~1.1 KB on every ServerHello.
ciphertext: HybridCiphertextEncapsulated secret (ciphertext for client)
server_verify_key: HybridVerifyingKeyServer’s hybrid verifying key
signature: HybridSignatureSignature over handshake transcript
session_id: [u8; 32]Session ID assigned by server
early_data_accepted: booltrue iff the server decrypted and accepted the client’s 0-RTT
early-data. false when there was none, the resumption ticket was
unknown/expired, the blob exceeded the size cap, or AEAD decryption
failed — in every false case the handshake still completes as a
normal 1-RTT exchange.
Trait Implementations§
Source§impl BorshDeserialize for ServerHello
impl BorshDeserialize for ServerHello
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for ServerHello
impl BorshSerialize for ServerHello
Source§impl Clone for ServerHello
impl Clone for ServerHello
Source§fn clone(&self) -> ServerHello
fn clone(&self) -> ServerHello
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more