ParagonIE_Sodium_Core32_Salsa20::salsa20() public WP 1.0
{} Это метод класса: ParagonIE_Sodium_Core32_Salsa20{}
Хуков нет.
Возвращает
Строку.
Использование
$result = ParagonIE_Sodium_Core32_Salsa20::salsa20( $len, $nonce, $key );
- $len(число) (обязательный)
- -
- $nonce(строка) (обязательный)
- -
- $key(строка) (обязательный)
- -
Код ParagonIE_Sodium_Core32_Salsa20::salsa20() ParagonIE Sodium Core32 Salsa20::salsa20 WP 5.6.2
public static function salsa20($len, $nonce, $key)
{
if (self::strlen($key) !== 32) {
throw new RangeException('Key must be 32 bytes long');
}
$kcopy = '' . $key;
$in = self::substr($nonce, 0, 8) . str_repeat("\0", 8);
$c = '';
while ($len >= 64) {
$c .= self::core_salsa20($in, $kcopy, null);
$u = 1;
// Internal counter.
for ($i = 8; $i < 16; ++$i) {
$u += self::chrToInt($in[$i]);
$in[$i] = self::intToChr($u & 0xff);
$u >>= 8;
}
$len -= 64;
}
if ($len > 0) {
$c .= self::substr(
self::core_salsa20($in, $kcopy, null),
0,
$len
);
}
try {
ParagonIE_Sodium_Compat::memzero($kcopy);
} catch (SodiumException $ex) {
$kcopy = null;
}
return $c;
}