pub trait ServerConfig: Send + Sync {
// Required methods
fn initial_keys(
&self,
version: u32,
dst_cid: &ConnectionId,
) -> Result<Keys, UnsupportedVersion>;
fn retry_tag(
&self,
version: u32,
orig_dst_cid: &ConnectionId,
packet: &[u8],
) -> [u8; 16];
fn start_session(
self: Arc<Self>,
version: u32,
params: &TransportParameters,
) -> Box<dyn Session>;
}展开描述
加密协议的服务器端配置
必需方法§
源代码fn initial_keys(
&self,
version: u32,
dst_cid: &ConnectionId,
) -> Result<Keys, UnsupportedVersion>
fn initial_keys( &self, version: u32, dst_cid: &ConnectionId, ) -> Result<Keys, UnsupportedVersion>
根据客户端的初始目标 ConnectionId 创建初始密钥集合
源代码fn retry_tag(
&self,
version: u32,
orig_dst_cid: &ConnectionId,
packet: &[u8],
) -> [u8; 16]
fn retry_tag( &self, version: u32, orig_dst_cid: &ConnectionId, packet: &[u8], ) -> [u8; 16]
为 retry 包生成完整性 tag
若 initial_keys 拒绝了 version,则不会调用此方法。
源代码fn start_session(
self: Arc<Self>,
version: u32,
params: &TransportParameters,
) -> Box<dyn Session>
fn start_session( self: Arc<Self>, version: u32, params: &TransportParameters, ) -> Box<dyn Session>
使用该配置启动一个服务器会话
若 initial_keys 拒绝了 version,则不会调用此方法。