Changeset 54150
- Timestamp:
- 09/14/2022 12:11:11 AM (2 years ago)
- Location:
- trunk/src/wp-includes/sodium_compat
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/sodium_compat/autoload.php
r51002 r54150 43 43 44 44 /* Explicitly, always load the Compat class: */ 45 require_once dirname(__FILE__) . '/src/Compat.php'; 45 if (!class_exists('ParagonIE_Sodium_Compat', false)) { 46 require_once dirname(__FILE__) . '/src/Compat.php'; 47 } 46 48 47 49 if (!class_exists('SodiumException', false)) { … … 70 72 require_once(dirname(__FILE__) . '/lib/php72compat.php'); 71 73 } 74 require_once(dirname(__FILE__) . '/lib/stream-xchacha20.php'); 72 75 require_once(dirname(__FILE__) . '/lib/ristretto255.php'); -
trunk/src/wp-includes/sodium_compat/lib/stream-xchacha20.php
r51002 r54150 42 42 } 43 43 } 44 if (!is_callable('sodium_crypto_stream_xchacha20_xor_ic')) { 45 /** 46 * @see ParagonIE_Sodium_Compat::crypto_stream_xchacha20_xor_ic() 47 * @param string $message 48 * @param string $nonce 49 * @param int $counter 50 * @param string $key 51 * @return string 52 * @throws SodiumException 53 * @throws TypeError 54 */ 55 function sodium_crypto_stream_xchacha20_xor_ic($message, $nonce, $counter, $key) 56 { 57 return ParagonIE_Sodium_Compat::crypto_stream_xchacha20_xor_ic($message, $nonce, $counter, $key, true); 58 } 59 } -
trunk/src/wp-includes/sodium_compat/src/Compat.php
r52988 r54150 3156 3156 3157 3157 /** 3158 * DANGER! UNAUTHENTICATED ENCRYPTION! 3159 * 3160 * Unless you are following expert advice, do not use this feature. 3161 * 3162 * Algorithm: XChaCha20 3163 * 3164 * This DOES NOT provide ciphertext integrity. 3165 * 3166 * @param string $message Plaintext message 3167 * @param string $nonce Number to be used Once; must be 24 bytes 3168 * @param int $counter 3169 * @param string $key Encryption key 3170 * @return string Encrypted text which is vulnerable to chosen- 3171 * ciphertext attacks unless you implement some 3172 * other mitigation to the ciphertext (i.e. 3173 * Encrypt then MAC) 3174 * @param bool $dontFallback 3175 * @throws SodiumException 3176 * @throws TypeError 3177 * @psalm-suppress MixedArgument 3178 */ 3179 public static function crypto_stream_xchacha20_xor_ic($message, $nonce, $counter, $key, $dontFallback = false) 3180 { 3181 /* Type checks: */ 3182 ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1); 3183 ParagonIE_Sodium_Core_Util::declareScalarType($nonce, 'string', 2); 3184 ParagonIE_Sodium_Core_Util::declareScalarType($counter, 'int', 3); 3185 ParagonIE_Sodium_Core_Util::declareScalarType($key, 'string', 4); 3186 3187 /* Input validation: */ 3188 if (ParagonIE_Sodium_Core_Util::strlen($nonce) !== self::CRYPTO_STREAM_XCHACHA20_NONCEBYTES) { 3189 throw new SodiumException('Argument 2 must be CRYPTO_SECRETBOX_XCHACHA20_NONCEBYTES long.'); 3190 } 3191 if (ParagonIE_Sodium_Core_Util::strlen($key) !== self::CRYPTO_STREAM_XCHACHA20_KEYBYTES) { 3192 throw new SodiumException('Argument 3 must be CRYPTO_SECRETBOX_XCHACHA20_KEYBYTES long.'); 3193 } 3194 3195 if (is_callable('sodium_crypto_stream_xchacha20_xor_ic') && !$dontFallback) { 3196 return sodium_crypto_stream_xchacha20_xor_ic($message, $nonce, $counter, $key); 3197 } 3198 3199 $ic = ParagonIE_Sodium_Core_Util::store64_le($counter); 3200 if (PHP_INT_SIZE === 4) { 3201 return ParagonIE_Sodium_Core32_XChaCha20::streamXorIc($message, $nonce, $key, $ic); 3202 } 3203 return ParagonIE_Sodium_Core_XChaCha20::streamXorIc($message, $nonce, $key, $ic); 3204 } 3205 3206 /** 3158 3207 * Return a secure random key for use with crypto_stream_xchacha20 3159 3208 * -
trunk/src/wp-includes/sodium_compat/src/Core/Ed25519.php
r51002 r54150 3 3 if (class_exists('ParagonIE_Sodium_Core_Ed25519', false)) { 4 4 return; 5 } 6 if (!class_exists('ParagonIE_Sodium_Core_Curve25519', false)) { 7 require_once dirname(__FILE__) . '/Curve25519.php'; 5 8 } 6 9 -
trunk/src/wp-includes/sodium_compat/src/Core32/Ed25519.php
r51002 r54150 3 3 if (class_exists('ParagonIE_Sodium_Core32_Ed25519', false)) { 4 4 return; 5 } 6 if (!class_exists('ParagonIE_Sodium_Core32_Curve25519')) { 7 require_once dirname(__FILE__) . '/Curve25519.php'; 5 8 } 6 9
Note: See TracChangeset
for help on using the changeset viewer.