]> granicus.if.org Git - php/commitdiff
Remove deprecated capture_session_meta OpenSSL stream context
authorGeorge Peter Banyard <girgias@php.net>
Sun, 23 Feb 2020 23:04:12 +0000 (00:04 +0100)
committerGeorge Peter Banyard <girgias@php.net>
Wed, 26 Feb 2020 02:09:13 +0000 (03:09 +0100)
Closes GH-5200

ext/openssl/tests/session_meta_capture.phpt
ext/openssl/tests/session_meta_capture_tlsv13.phpt
ext/openssl/xp_ssl.c

index c5840057b1bad37678b14e3ac9b7986f5d7245fd..e61ef923e63af2977500076d8c80585a75b8323f 100644 (file)
@@ -34,26 +34,22 @@ $clientCode = <<<'CODE'
     $clientCtx = stream_context_create(['ssl' => [
         'verify_peer' => true,
         'cafile' => '%s',
-        'peer_name' => '%s',
-        'capture_session_meta' => true,
+        'peer_name' => '%s'
     ]]);
 
     phpt_wait();
 
     stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT);
-    @stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
-    $meta = stream_context_get_options($clientCtx)['ssl']['session_meta'];
-    var_dump($meta['protocol']);
+    $stream = stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
+    var_dump(stream_get_meta_data($stream)['crypto']['protocol']);
 
     stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT);
-    @stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
-    $meta = stream_context_get_options($clientCtx)['ssl']['session_meta'];
-    var_dump($meta['protocol']);
+    $stream = stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
+    var_dump(stream_get_meta_data($stream)['crypto']['protocol']);
 
     stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT);
-    @stream_socket_client($serverUri, $errno, $errstr, 2, $clientFlags, $clientCtx);
-    $meta = stream_context_get_options($clientCtx)['ssl']['session_meta'];
-    var_dump($meta['protocol']);
+    $stream = stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
+    var_dump(stream_get_meta_data($stream)['crypto']['protocol']);
 CODE;
 $clientCode = sprintf($clientCode, $cacertFile, $peerName);
 
index 0f92463faef50073c6b3c5f85e32d0869d394321..717f832049c383478cf9aabe9f1e255ae5c5ed41 100644 (file)
@@ -33,16 +33,14 @@ $clientCode = <<<'CODE'
     $clientCtx = stream_context_create(['ssl' => [
         'verify_peer' => true,
         'cafile' => '%s',
-        'peer_name' => '%s',
-        'capture_session_meta' => true,
+        'peer_name' => '%s'
     ]]);
 
     phpt_wait();
 
     stream_context_set_option($clientCtx, 'ssl', 'crypto_method', STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT);
-    @stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
-    $meta = stream_context_get_options($clientCtx)['ssl']['session_meta'];
-    var_dump($meta['protocol']);
+    $stream = stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx);
+    var_dump(stream_get_meta_data($stream)['crypto']['protocol']);
 CODE;
 $clientCode = sprintf($clientCode, $cacertFile, $peerName);
 
index da175dcfb9eab5ffd927fb9b6c8163c094acfaea..85153b86f8bef1748447c057536929bb1f10a3f2 100644 (file)
@@ -1820,50 +1820,6 @@ int php_openssl_setup_crypto(php_stream *stream,
 }
 /* }}} */
 
-static zend_array *php_openssl_capture_session_meta(SSL *ssl_handle) /* {{{ */
-{
-       zval meta_arr;
-       char *proto_str;
-       long proto = SSL_version(ssl_handle);
-       const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl_handle);
-
-       switch (proto) {
-#ifdef HAVE_TLS13
-               case TLS1_3_VERSION:
-                       proto_str = "TLSv1.3";
-                       break;
-#endif
-#ifdef HAVE_TLS12
-               case TLS1_2_VERSION:
-                       proto_str = "TLSv1.2";
-                       break;
-#endif
-#ifdef HAVE_TLS11
-               case TLS1_1_VERSION:
-                       proto_str = "TLSv1.1";
-                       break;
-#endif
-               case TLS1_VERSION:
-                       proto_str = "TLSv1";
-                       break;
-#ifdef HAVE_SSL3
-               case SSL3_VERSION:
-                       proto_str = "SSLv3";
-                       break;
-#endif
-               default: proto_str = "UNKNOWN";
-       }
-
-       array_init(&meta_arr);
-       add_assoc_string(&meta_arr, "protocol", proto_str);
-       add_assoc_string(&meta_arr, "cipher_name", (char *) SSL_CIPHER_get_name(cipher));
-       add_assoc_long(&meta_arr, "cipher_bits", SSL_CIPHER_get_bits(cipher, NULL));
-       add_assoc_string(&meta_arr, "cipher_version", SSL_CIPHER_get_version(cipher));
-
-       return Z_ARR(meta_arr);
-}
-/* }}} */
-
 static int php_openssl_capture_peer_certs(php_stream *stream,
                php_openssl_netstream_data_t *sslsock, X509 *peer_cert) /* {{{ */
 {
@@ -2015,24 +1971,6 @@ static int php_openssl_enable_crypto(php_stream *stream,
                                n = -1;
                        } else {
                                sslsock->ssl_active = 1;
-
-                               if (PHP_STREAM_CONTEXT(stream)) {
-                                       zval *val;
-                                       if (NULL != (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream),
-                                               "ssl", "capture_session_meta"))
-                                       ) {
-                                                php_error(E_DEPRECATED,
-                                                       "capture_session_meta is deprecated; its information is now available via stream_get_meta_data()"
-                        );
-                                       }
-
-                                       if (val && zend_is_true(val)) {
-                                               zval meta_arr;
-                                               ZVAL_ARR(&meta_arr, php_openssl_capture_session_meta(sslsock->ssl_handle));
-                                               php_stream_context_set_option(PHP_STREAM_CONTEXT(stream), "ssl", "session_meta", &meta_arr);
-                                               zval_ptr_dtor(&meta_arr);
-                                       }
-                               }
                        }
                } else if (errno == EAGAIN) {
                        n = 0;