File Coverage

blib/lib/Crypt/Stream/Salsa20.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1             package Crypt::Stream::Salsa20;
2              
3 3     3   54220 use strict;
  3         13  
  3         69  
4 3     3   11 use warnings;
  3         6  
  3         94  
5             our $VERSION = '0.080';
6              
7 3     3   297 use CryptX;
  3         6  
  3         94  
8              
9             1;
10              
11             =pod
12              
13             =head1 NAME
14              
15             Crypt::Stream::Salsa20 - Stream cipher Salsa20
16              
17             =head1 SYNOPSIS
18              
19             use Crypt::Stream::Salsa20;
20              
21             # encrypt
22             $key = "1234567890123456";
23             $iv = "12345678";
24             $stream = Crypt::Stream::Salsa20->new($key, $iv);
25             $ct = $stream->crypt("plain message");
26              
27             # decrypt
28             $key = "1234567890123456";
29             $iv = "12345678";
30             $stream = Crypt::Stream::Salsa20->new($key, $iv);
31             $pt = $stream->crypt($ct);
32              
33             =head1 DESCRIPTION
34              
35             Provides an interface to the Salsa20 stream cipher.
36              
37             =head1 METHODS
38              
39             =head2 new
40              
41             $stream = Crypt::Stream::Salsa20->new($key, $iv);
42             #or
43             $stream = Crypt::Stream::Salsa20->new($key, $iv, $counter, $rounds);
44              
45             # $key .. 32 or 16 bytes
46             # $iv .. 8 bytes
47             # $counter .. initial counter value (DEFAULT: 0)
48             # $rounds .. rounds (DEFAULT: 20)
49              
50             =head2 crypt
51              
52             $ciphertext = $stream->crypt($plaintext);
53             #or
54             $plaintext = $stream->crypt($ciphertext);
55              
56             =head2 keystream
57              
58             $random_key = $stream->keystream($length);
59              
60             =head2 clone
61              
62             $stream->clone();
63              
64             =head1 SEE ALSO
65              
66             =over
67              
68             =item * L, L, L, L
69              
70             =back
71              
72             =cut