# phpman > perldoc > Crypt::Stream::Sosemanuk

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

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

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

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

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

## METHODS
  new
     $stream = [Crypt::Stream::Sosemanuk](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AStream%3A%3ASosemanuk/markdown)->new($key, $iv);
     # $key .. keylen must be multiple of 4 bytes
     # $iv  .. ivlen must be multiple of 4 bytes (OPTIONAL)

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

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

  clone
     $stream->clone();

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

    *   <<https://en.wikipedia.org/wiki/SOSEMANUK>>

