
use strict;
use warnings;
use Test::More;


use Crypt::NaCl::Sodium qw(:utils);

my $crypto_stream = Crypt::NaCl::Sodium->stream();

my $key = join('', map { chr($_) } 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85, 0xd4, 0x62, 0xcd, 0x51,
        0x19, 0x7a, 0x9a, 0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac, 0x64,
        0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08, 0x44, 0xf6, 0x83, 0x89);

my $nonce = join('', map { chr($_) } 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6, 0x2b, 0x73,
                            0xcd, 0x62, 0xbd, 0xa8, 0x75, 0xfc, 0x73, 0xd6,
                            0x82, 0x19, 0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37);

my $bytes = $crypto_stream->bytes(32, $nonce, $key);
my $bytes_hex = bin2hex($bytes);

is($bytes_hex, "eea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880", "Got expected hash of bytes: $bytes_hex");

done_testing();

