@@ -28,8 +28,12 @@ $serverCode = <<<'CODE'
2828 exit(1);
2929 }
3030 foreach (Openssl\ChannelBindingType::cases() as $type) {
31- $v = openssl_get_channel_binding($conn, $type);
32- fwrite($conn, $type->value . "=" . (is_string($v) ? bin2hex($v) : "") . "\n");
31+ try {
32+ $v = openssl_get_channel_binding($conn, $type);
33+ fwrite($conn, $type->value . "=" . bin2hex($v) . "\n");
34+ } catch (Openssl\UnsupportedChannelBindingException) {
35+ fwrite($conn, $type->value . "=unsupported\n");
36+ }
3337 }
3438 phpt_wait();
3539 fclose($conn);
@@ -50,8 +54,14 @@ $clientCode = <<<'CODE'
5054 }
5155
5256 $my = [];
57+ $myException = [];
5358 foreach (Openssl\ChannelBindingType::cases() as $type) {
54- $my[$type->value] = openssl_get_channel_binding($client, $type);
59+ try {
60+ $my[$type->value] = openssl_get_channel_binding($client, $type);
61+ } catch (Openssl\UnsupportedChannelBindingException $e) {
62+ $my[$type->value] = null;
63+ $myException[$type->value] = $e::class . ': ' . $e->getMessage();
64+ }
5565 }
5666
5767 $peer = [];
@@ -62,7 +72,7 @@ $clientCode = <<<'CODE'
6272 $eq = strpos($line, "=");
6373 $t = substr($line, 0, $eq);
6474 $enc = substr($line, $eq + 1);
65- $peer[$t] = ($enc === "") ? null : hex2bin($enc);
75+ $peer[$t] = ($enc === "unsupported ") ? null : hex2bin($enc);
6676 }
6777
6878 foreach (Openssl\ChannelBindingType::cases() as $type) {
@@ -75,7 +85,8 @@ $clientCode = <<<'CODE'
7585 $t, var_export($c === $s, true), $lc, $ls);
7686 }
7787
78- echo "tls_unique_is_null=" . var_export($my["tls-unique"] === null, true) . "\n";
88+ echo "tls_unique_unsupported=" . var_export($my["tls-unique"] === null, true) . "\n";
89+ echo "tls_unique_message=" . ($myException["tls-unique"] ?? "none") . "\n";
7990
8091 $opts = stream_context_get_options($client);
8192 $cert = $opts['ssl']['peer_certificate'] ?? null;
@@ -102,5 +113,6 @@ ServerClientTestCase::getInstance()->run($clientCode, ['server' => $serverCode])
102113tls-unique equal=true len_client=null len_server=null
103114tls-server-end-point equal=true len_client=32 len_server=32
104115tls-exporter equal=true len_client=32 len_server=32
105- tls_unique_is_null=true
116+ tls_unique_unsupported=true
117+ tls_unique_message=Openssl\UnsupportedChannelBindingException: Channel binding type "tls-unique" is not supported for TLS 1.3
106118tse_matches_sha256_fingerprint=true
0 commit comments