diff -r 48c4eec2b7e6 -r 8c2e4d02f4ef wp/wp-includes/sodium_compat/src/Core/Util.php --- a/wp/wp-includes/sodium_compat/src/Core/Util.php Fri Sep 05 18:40:08 2025 +0200 +++ b/wp/wp-includes/sodium_compat/src/Core/Util.php Fri Sep 05 18:52:52 2025 +0200 @@ -9,6 +9,8 @@ */ abstract class ParagonIE_Sodium_Core_Util { + const U32_MAX = 0xFFFFFFFF; + /** * @param int $integer * @param int $size (16, 32, 64) @@ -34,6 +36,28 @@ } /** + * @param string $a + * @param string $b + * @return string + * @throws SodiumException + */ + public static function andStrings($a, $b) + { + /* Type checks: */ + if (!is_string($a)) { + throw new TypeError('Argument 1 must be a string'); + } + if (!is_string($b)) { + throw new TypeError('Argument 2 must be a string'); + } + $len = self::strlen($a); + if (self::strlen($b) !== $len) { + throw new SodiumException('Both strings must be of equal length to combine with bitwise AND'); + } + return $a & $b; + } + + /** * Convert a binary string into a hexadecimal string without cache-timing * leaks *