diff options
Diffstat (limited to '')
-rw-r--r-- | vendor/paragonie/sodium_compat/src/Core32/XSalsa20.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/paragonie/sodium_compat/src/Core32/XSalsa20.php b/vendor/paragonie/sodium_compat/src/Core32/XSalsa20.php new file mode 100644 index 0000000..a16b93b --- /dev/null +++ b/vendor/paragonie/sodium_compat/src/Core32/XSalsa20.php @@ -0,0 +1,57 @@ +<?php + +if (class_exists('ParagonIE_Sodium_Core32_XSalsa20', false)) { + return; +} + +/** + * Class ParagonIE_Sodium_Core32_XSalsa20 + */ +abstract class ParagonIE_Sodium_Core32_XSalsa20 extends ParagonIE_Sodium_Core32_HSalsa20 +{ + /** + * Expand a key and nonce into an xsalsa20 keystream. + * + * @internal You should not use this directly from another application + * + * @param int $len + * @param string $nonce + * @param string $key + * @return string + * @throws SodiumException + * @throws TypeError + */ + public static function xsalsa20($len, $nonce, $key) + { + $ret = self::salsa20( + $len, + self::substr($nonce, 16, 8), + self::hsalsa20($nonce, $key) + ); + return $ret; + } + + /** + * Encrypt a string with XSalsa20. Doesn't provide integrity. + * + * @internal You should not use this directly from another application + * + * @param string $message + * @param string $nonce + * @param string $key + * @return string + * @throws SodiumException + * @throws TypeError + */ + public static function xsalsa20_xor($message, $nonce, $key) + { + return self::xorStrings( + $message, + self::xsalsa20( + self::strlen($message), + $nonce, + $key + ) + ); + } +} |