From 58709cff791d28ec4cbac799e63d4b96964455db Mon Sep 17 00:00:00 2001 From: terrafrost Date: Thu, 28 Nov 2024 23:09:12 -0600 Subject: [PATCH] RSA: PHP 8.4 deprecated xml_set_object() --- phpseclib/Crypt/RSA.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/phpseclib/Crypt/RSA.php b/phpseclib/Crypt/RSA.php index 15aab4ab..dfc82bb6 100644 --- a/phpseclib/Crypt/RSA.php +++ b/phpseclib/Crypt/RSA.php @@ -1478,9 +1478,14 @@ class Crypt_RSA $this->components = array(); $xml = xml_parser_create('UTF-8'); - xml_set_object($xml, $this); - xml_set_element_handler($xml, '_start_element_handler', '_stop_element_handler'); - xml_set_character_data_handler($xml, '_data_handler'); + if (version_compare(PHP_VERSION, '8.4.0', '>=')) { + xml_set_element_handler($xml, array($this, '_start_element_handler'), array($this, '_stop_element_handler')); + xml_set_character_data_handler($xml, array($this, '_data_handler')); + } else { + xml_set_object($xml, $this); + xml_set_element_handler($xml, '_start_element_handler', '_stop_element_handler'); + xml_set_character_data_handler($xml, '_data_handler'); + } // add to account for "dangling" tags like ... that are sometimes added if (!xml_parse($xml, '' . $key . '')) { xml_parser_free($xml);