wolfSSL は新しい DTLS 1.3 プロトコルをサポートしています。 このプロトコルの詳細については、「DTLS 1.3 の新機能」を参照してください。 wolfSSL で DTLS 1.3 を使用するのは、DTLS 1.2 と同じくらい簡単です。 クライアント側実装では、既存の wolfDTLSv1_2_client_method() 呼び出しを wolfDTLSv1_3_client_method() に変更するだけで済みます。 wolfSSL の組み込みネットワーク I/O を使用している場合は、他に何も心配する必要はありません。 DTLS で TLS 1.3 の利点を享受し始めることができます。 サーバー側実装では、wolfDTLSv1_2_server_method() 呼び出しを wolfDTLSv1_3_server_method() に変更することから始める必要があります。 DTLS 1.3 で Cookie 交換を使用することもお勧めします。 Cookie 交換が有効になり、wolfSSL_send_hrr_cookie() API を使用して Cookie シークレットが設定されます。
wolfSSL でカスタム ネットワーク I/O コールバックを使用している場合は、知っておくべきもう 1 つの新機能があります。 wolfSSL_dtls13_use_quick_timeout() API を使用して、より迅速なタイムアウトを設定する必要があります。 ハンドシェイク メッセージの順不同の配信を可能にするために、wolfSSL はユーザーにクイック タイムアウトを設定するように要求する場合があります。 クイック タイムアウトの推奨タイムアウト時間は、wolfSSL_dtls_get_current_timeout() / 4 です。
これら新しいAPIは以下のサンプルプログラムで使われています:
ベーシックなクライアントサンプルプログラム:
ベーシックなサーバーサンプルプログラム:
カスタムI/Oコールバックを使ったイベントドリブンのサーバーサンプルプログラム:
サンプルは make でコンパイルできます。 ベーシックなクライアントサンプルプログラムのループは、プロンプトに「end」を送信することで終了できます。
過去のDTLS1.3関係の記事: