# Crypt::Stream::Salsa20 - Stream cipher Salsa20 - perldoc - [phpMan]

## NAME
    [Crypt::Stream::Salsa20](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASalsa20/markdown) - Stream cipher Salsa20

## SYNOPSIS
       use [Crypt::Stream::Salsa20](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASalsa20/markdown);

       # encrypt
       $key = "1234567890123456";
       $iv  = "12345678";
       $stream = [Crypt::Stream::Salsa20](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASalsa20/markdown)->new($key, $iv);
       $ct = $stream->crypt("plain message");

       # decrypt
       $key = "1234567890123456";
       $iv  = "12345678";
       $stream = [Crypt::Stream::Salsa20](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASalsa20/markdown)->new($key, $iv);
       $pt = $stream->crypt($ct);

## DESCRIPTION
    Provides an interface to the Salsa20 stream cipher.

## METHODS
  new
     $stream = [Crypt::Stream::Salsa20](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASalsa20/markdown)->new($key, $iv);
     #or
     $stream = [Crypt::Stream::Salsa20](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASalsa20/markdown)->new($key, $iv, $counter, $rounds);

     # $key     .. 32 or 16 bytes
     # $iv      .. 8 bytes
     # $counter .. initial counter value (DEFAULT: 0)
     # $rounds  .. rounds (DEFAULT: 20)

  crypt
     $ciphertext = $stream->crypt($plaintext);
     #or
     $plaintext = $stream->crypt($ciphertext);

  keystream
     $random_key = $stream->keystream($length);

  clone
     $stream->clone();

## SEE ALSO
    *   [Crypt::Stream::ChaCha](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3AChaCha/markdown), [Crypt::Stream::RC4](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ARC4/markdown), [Crypt::Stream::Sober128](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASober128/markdown), [Crypt::Stream::Sosemanuk](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASosemanuk/markdown)

