<?php if (class_exists('ParagonIE_Sodium_Core_XChaCha20', false)) { return; } /** * Class ParagonIE_Sodium_Core_XChaCha20 */ class ParagonIE_Sodium_Core_XChaCha20 extends ParagonIE_Sodium_Core_HChaCha20 { /** * @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 stream($len = 64, $nonce = '', $key = '') { if (self::strlen($nonce) !== 24) { throw new SodiumException('Nonce must be 24 bytes long'); } return self::encryptBytes( new ParagonIE_Sodium_Core_ChaCha20_Ctx( self::hChaCha20( self::substr($nonce, 0, 16), $key ), self::substr($nonce, 16, 8) ), str_repeat("\x00", $len) ); } /** * @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 ietfStream($len = 64, $nonce = '', $key = '') { if (self::strlen($nonce) !== 24) { throw new SodiumException('Nonce must be 24 bytes long'); } return self::encryptBytes( new ParagonIE_Sodium_Core_ChaCha20_IetfCtx( self::hChaCha20( self::substr($nonce, 0, 16), $key ), "\x00\x00\x00\x00" . self::substr($nonce, 16, 8) ), str_repeat("\x00", $len) ); } /** * @internal You should not use this directly from another application * * @param string $message * @param string $nonce * @param string $key * @param string $ic * @return string * @throws SodiumException * @throws TypeError */ public static function streamXorIc($message, $nonce = '', $key = '', $ic = '') { if (self::strlen($nonce) !== 24) { throw new SodiumException('Nonce must be 24 bytes long'); } return self::encryptBytes( new ParagonIE_Sodium_Core_ChaCha20_Ctx( self::hChaCha20(self::substr($nonce, 0, 16), $key), self::substr($nonce, 16, 8), $ic ), $message ); } /** * @internal You should not use this directly from another application * * @param string $message * @param string $nonce * @param string $key * @param string $ic * @return string * @throws SodiumException * @throws TypeError */ public static function ietfStreamXorIc($message, $nonce = '', $key = '', $ic = '') { if (self::strlen($nonce) !== 24) { throw new SodiumException('Nonce must be 24 bytes long'); } return self::encryptBytes( new ParagonIE_Sodium_Core_ChaCha20_IetfCtx( self::hChaCha20(self::substr($nonce, 0, 16), $key), "\x00\x00\x00\x00" . self::substr($nonce, 16, 8), $ic ), $message ); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
AEGIS | Folder | 0755 |
|
|
AES | Folder | 0755 |
|
|
Base64 | Folder | 0755 |
|
|
ChaCha20 | Folder | 0755 |
|
|
Curve25519 | Folder | 0755 |
|
|
Poly1305 | Folder | 0755 |
|
|
SecretStream | Folder | 0755 |
|
|
AEGIS128L.php | File | 3.58 KB | 0644 |
|
AEGIS256.php | File | 3.51 KB | 0644 |
|
AES.php | File | 15.51 KB | 0644 |
|
BLAKE2b.php | File | 23.63 KB | 0644 |
|
ChaCha20.php | File | 12.63 KB | 0644 |
|
Curve25519.php | File | 139.29 KB | 0644 |
|
Ed25519.php | File | 17.07 KB | 0644 |
|
HChaCha20.php | File | 3.78 KB | 0644 |
|
HSalsa20.php | File | 3.59 KB | 0644 |
|
Poly1305.php | File | 1.54 KB | 0644 |
|
Ristretto255.php | File | 21.37 KB | 0644 |
|
Salsa20.php | File | 8.04 KB | 0644 |
|
SipHash.php | File | 8.04 KB | 0644 |
|
Util.php | File | 28.25 KB | 0644 |
|
X25519.php | File | 9.23 KB | 0644 |
|
XChaCha20.php | File | 3.29 KB | 0644 |
|
XSalsa20.php | File | 1.34 KB | 0644 |
|