TLS 1.2 について、server 側が client 側の TLS payload を処理しようとしたとき、すでに encrypted であるならばそれを復号する必要がある。このとき、その TLS session で使う暗号スイートは ServerHello でのみ表明されるため、うまい具合にして本来の server が送信した ServerHello を見て利用する対象の cipher suite を把握し、これを
rustls::ServerConnection
に注入する必要がある。
ExpectClientHello.with_certified_key
の中で
ServerKeyExchange
の送信などをしている。このタイミングで
cx.common.suite
に
SupportedCipherSuite
を注入しているので、現実的に TLS 1.2 の通信を復号するためには実際にパケットがネットワークインターフェイスを出入りする順序にならって
rustls::ClientConnection
と
rustls::ServerConnection
を同時並行で進めていく必要がありそうであることがわかった。
それで、
rustls::ClientConnection
に与える
ClientConfig
に
std::sync::mpsc::Receiver<SupportedCipherSuite>
を渡すことにする。
cherish
https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%B3%E3%82%B0%E3%83%AA%E3%83%83%E3%82%B7%E3%83%A5
https://ja.wikipedia.org/wiki/%E9%A3%9F%E6%88%9F%E3%81%AE%E3%82%BD%E3%83%BC%E3%83%9E
101 匹わんちゃん
ケッ
または魔法のミッキーが定石らしい
DYNAMIC CHORD