6.114. kink/tls/TLS_SERVER¶
6.114.1. tls_server型¶
tls_serverは、サーバサイドのTLS接続のファクトリである。
tls_serverは、単一のTLS接続よりも長く生存する種々のデータを保持する。たとえば鍵ペア、証明書、 セッション再開のためのデータなどである。
6.114.1.1. Serv.connect(Tcp ...[$config={}])¶
connectは、新しいTLS接続を作り、最初のハンドシェイクを行う。
コンフィグメソッド
• C.need_cert
• C.on_success($success): default = VAL.identity
• C.on_error($error): default = {(:Exc) Exc.raise }
接続ができて、最初のハンドシェイクが成功した場合、connectは、作られたtls値を引数として$successを末尾呼び出しする。
接続ができなかった場合、または最初のハンドシェイクが失敗した場合、connectは、exceptionを引数として$errorを末尾呼び出しする。
クライアント認証
C.need_certが呼ばれた場合、TLS接続は証明書ベースのクライアント認証を求める。また、戻された証明書を検証する。
クライアントが証明書を戻さなかった場合、検証は失敗し、connectはエラーとなる。
tls_serverがクライアント認証を求める場合、通常は、tls_serverには空でないtrust_anchorを設定しなければならない。
事前条件
TcpはTLS接続が使うtcp値でなければならない。
TcpのプロトコルファミリはIPv4かIPv6でなければならない。
Tcpは開いていなければならない。
$successは、tls値を取る関数でなければならない。
$errorは、exceptionを取る関数でなければならない。
6.114.2. TLS_SERVER.new(Key_pair_set ...[$config={}])¶
newは、新しいtls_serverを作る。
コンフィグメソッド
• C.trust_anchor(Ta): default = 空のtrust_anchor
• C.on_success($success): default = VAL.identity
• C.on_error($error): default = {(:Exc) Exc.raise }
Taは、TLSクライアントの証明書を検証するのに使われる。
成功したら、newは、作られたtls_serverを引数として$successを末尾呼び出しする。
エラーの際は、newは、exceptionを引数として$errorを末尾呼び出しする。
事前条件
Key_pair_setは、サーバの鍵ペアを含むkey_pair_setでなければならない。
Taはtrust_anchorでなければならない。
$successは、tls_serverを取る関数でなければならない。
$errorは、exceptionを取る関数でなければならない。
6.114.3. TLS_SERVER.is?(Val)¶
is?は、Valがtls_serverであるかどうかを戻す。