Plan 9(9legacy)は、安定版のパッチを当ててもTLS_RSA_WITH_AES_128_CBC_SHA256までしか対応してなく、そろそろ古くなってきています。9frontはもっと強い暗号スイートに対応しているので、必要なものを移植しようと思いました。とはいえTLSについて詳しくないので、何がどう関連しているのかを中心に既存実装を読んだメモです。 TLSの概要 TLSは、以下の要素(暗号スイート)で構成されている。 鍵交換(暗号化で利用する共通鍵の交換方法) 認証(なりすまし防止) これで証明書に含まれる公開鍵の種類が決まる 暗号化 メッセージ認証(改ざん防止、ハッシュ) RFC 5246 - TLS Protocol Version 1.2では、これらを一つの文字列に連結して、例えばTLS_RSA_WITH_AES_128_CBC_SHA256のようなIDとして表現している。