Diff: STRATO-apps/wordpress_03/app/wp-includes/sodium_compat/src/Core32/XSalsa20.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 +
3 + if (class_exists('ParagonIE_Sodium_Core32_XSalsa20', false)) {
4 + return;
5 + }
6 +
7 + /**
8 + * Class ParagonIE_Sodium_Core32_XSalsa20
9 + */
10 + abstract class ParagonIE_Sodium_Core32_XSalsa20 extends ParagonIE_Sodium_Core32_HSalsa20
11 + {
12 + /**
13 + * Expand a key and nonce into an xsalsa20 keystream.
14 + *
15 + * @internal You should not use this directly from another application
16 + *
17 + * @param int $len
18 + * @param string $nonce
19 + * @param string $key
20 + * @return string
21 + * @throws SodiumException
22 + * @throws TypeError
23 + */
24 + public static function xsalsa20($len, $nonce, $key)
25 + {
26 + $ret = self::salsa20(
27 + $len,
28 + self::substr($nonce, 16, 8),
29 + self::hsalsa20($nonce, $key)
30 + );
31 + return $ret;
32 + }
33 +
34 + /**
35 + * Encrypt a string with XSalsa20. Doesn't provide integrity.
36 + *
37 + * @internal You should not use this directly from another application
38 + *
39 + * @param string $message
40 + * @param string $nonce
41 + * @param string $key
42 + * @return string
43 + * @throws SodiumException
44 + * @throws TypeError
45 + */
46 + public static function xsalsa20_xor($message, $nonce, $key)
47 + {
48 + return self::xorStrings(
49 + $message,
50 + self::xsalsa20(
51 + self::strlen($message),
52 + $nonce,
53 + $key
54 + )
55 + );
56 + }
57 + }
58 +