]> git.cryptolib.org Git - arm-crypto-lib.git/commitdiff
adding grain
authorbg <daniel.otte@rub.de>
Tue, 19 Jul 2011 20:53:51 +0000 (22:53 +0200)
committerbg <daniel.otte@rub.de>
Tue, 19 Jul 2011 20:53:51 +0000 (22:53 +0200)
grain/grain.c [new file with mode: 0644]
grain/grain.h [new file with mode: 0644]
mkfiles/grain.mk [new file with mode: 0644]
scal/scal_grain.c [new file with mode: 0644]
scal/scal_grain.h [new file with mode: 0644]
test_src/main-grain-test.c [new file with mode: 0644]
testvectors/grain__verified.test-vectors [new file with mode: 0644]

diff --git a/grain/grain.c b/grain/grain.c
new file mode 100644 (file)
index 0000000..7edfb1e
--- /dev/null
@@ -0,0 +1,194 @@
+/* grain.c */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2011  Daniel Otte (daniel.otte@rub.de)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+/**
+ * 
+ * author: Daniel Otte
+ * email:  daniel.otte@rub.de
+ * license: GPLv3 or later
+ * 
+ */
+
+
+#include <stdint.h>
+#include <string.h>
+#include "grain.h"
+
+
+#define GRAIN_REVERSEKEY
+
+/* s0, s1, s2, ..., s78, s79 */
+#define S(i) ((ctx->lfsr[9-((i)/8)])>>(7-((i)%8)))
+/* b0, b1, b2, ..., b78, b79 */
+#define B(i) ((ctx->nfsr[9-((i)/8)])>>(7-((i)%8)))
+#define _B(i) (((ctx->nfsr[9-((i)/8)])>>(7-((i)%8)))&1)
+
+
+uint8_t h_lut[4] = {0x4C, 0xB6, 0xD3, 0x26};
+
+#ifdef GRAIN_BADOPTIMISATION
+uint8_t g_lut[128] = {
+        0xF0, 0xA5, 0x0F, 0x5A, 0x0F, 0x5A, 0xF0, 0xA5, 0x0F, 0x5A, 0xF0, 0xA5, 0xF0, 0x5A, 0x0F, 0x0F, 
+        0xC3, 0x96, 0x3C, 0x69, 0x3C, 0x69, 0xC3, 0x96, 0x9C, 0xC9, 0x63, 0x36, 0x63, 0xC9, 0x9C, 0x9C, 
+        0x0F, 0x5A, 0x0F, 0x5A, 0xF0, 0xA5, 0xF0, 0x5A, 0xF0, 0xA5, 0xF0, 0xA5, 0x0F, 0xA5, 0x0F, 0xF0, 
+        0x3C, 0x69, 0x3C, 0x69, 0xC3, 0x96, 0xC3, 0x69, 0x63, 0x36, 0x63, 0x36, 0x9C, 0x36, 0x9C, 0x63, 
+        0x0F, 0xD2, 0xF0, 0x2D, 0xF0, 0x2D, 0x0F, 0xD2, 0xF0, 0x2D, 0x0F, 0xD2, 0x0F, 0x2D, 0xF0, 0x78, 
+        0x3C, 0xE1, 0xC3, 0x1E, 0xC3, 0x1E, 0x3C, 0xE1, 0x63, 0xBE, 0x9C, 0x41, 0x9C, 0xBE, 0x63, 0xEB, 
+        0x00, 0xDD, 0x00, 0xDD, 0xFF, 0x22, 0xFF, 0xDD, 0xFF, 0x22, 0xFF, 0x22, 0x00, 0x22, 0xF0, 0x87, 
+        0xF3, 0x2E, 0xF3, 0x2E, 0x0C, 0xD1, 0x0C, 0x2E, 0xAC, 0x71, 0xAC, 0x71, 0x53, 0x71, 0xA3, 0xD4  };
+#endif
+
+uint8_t grain_enc(grain_ctx_t* ctx){
+       uint8_t s80, s0, c1, c2;
+       uint8_t i;
+       /* clock the LFSR */
+       s0=S(0);
+       s80 =S(62) ^ S(51) ^ S(38) ^ S(23) ^ S(13) ^ s0;
+       s80 &= 1;
+       c1 = s80;
+       for(i=0; i<10; ++i){
+               c2 = (ctx->lfsr[i])>>7;
+               ctx->lfsr[i] = ((ctx->lfsr[i])<<1) | c1;
+               c1 = c2;
+       }
+       /* clock the NFSR */
+       uint8_t b80;
+/*     778 Byte in this variant / 617 clks enc_time */
+#ifndef GRAIN_BADOPTIMISATION
+    uint8_t a,b,d,e;
+       b80 = B(62) ^ B(60) ^ B(52) ^ B(45) ^ 
+             B(37) ^ B(33) ^ B(28) ^ B(21) ^ 
+             B(14) ^ B( 9) ^ B( 0) ^ s0;
+       b80 ^= (a = B(63) & B(60));
+       b80 ^= (b = B(37) & B(33));
+       b80 ^= B(15) & B( 9); // c 
+       b80 ^= (d = B(60) & B(52) & B(45));
+       b80 ^= (e = B(33) & B(28) & B(21));
+       b80 ^= B(63) & B(45) & B(28) & B(9); // f 
+       /* -- */
+       b80 ^= b & B(60) & B(52); // g 
+       b80 ^= a & B(21) & B(15); // h 
+       b80 ^= d & B(63) & B(37); // i 
+       b80 ^= e & B(15) & B( 9); // j 
+       b80 ^= e & B(52) & B(45) & B(37); // k
+#else
+       /* let's reorder the bits */
+       uint16_t x; 
+
+/*
+       x  = _B(21); x<<=1;
+       x |= _B(33); x<<=1;
+       x |= _B(9) ; x<<=1;
+       x |= _B(45); x<<=1;
+       x |= _B(52); x<<=1;
+       x |= _B(37); x<<=1;
+       x |= _B(60); x<<=1;
+       x |= _B(28); x<<=1;
+       x |= _B(15); x<<=1;
+       x |= _B(63);
+*/
+       x  = ((ctx->nfsr[8])&0x41)<<1; // B15 & B09
+       x |= ((ctx->nfsr[2])&0x09);    // B63 & B60 
+//     x |= ((ctx->nfsr[4])&0x04)<<4; // B45
+       x |= (((ctx->nfsr[5])&0x44) | 
+             ((ctx->nfsr[3])&0x08) | 
+             (((((ctx->nfsr[7])&0x04)<<3) |((ctx->nfsr[4])&0x04))<<2) )<<2; // B37 & B33
+//     x |= ((ctx->nfsr[3])&0x08)<<2; // B52
+       x |= ((ctx->nfsr[6])&0x08)>>1; // B28
+//     x |= ((ctx->nfsr[7])&0x04)<<7; // B21 
+
+
+       b80 = (g_lut[x/8])>>(x%8);
+       b80 ^= s0 ^ B(62) ^ B(14) ^ B(0);
+#endif
+       c1 = b80 & 1;
+       for(i=0; i<10; ++i){
+               c2 = (ctx->nfsr[i])>>7;
+               ctx->nfsr[i] = ((ctx->nfsr[i])<<1) | c1;
+               c1 = c2;
+       }
+       /* now the h function */
+       uint8_t h;
+       i = (S(2)&1) | 
+           ((S(24)&1) << 1) |
+           ((S(45)&1) << 2) |
+           ((S(63)&1) << 3) |
+           ((B(62)&1) << 4);
+       
+       h = (h_lut[i/8])>>(i%8);
+       
+       h ^= B(0) ^ B(1) ^ B(3) ^ B(9) ^ B(30) ^ B(42) ^ B(55);
+       return (h&1);
+}
+
+uint8_t grain_getbyte(grain_ctx_t* ctx){
+       uint8_t i=0;
+       uint8_t r=0;
+       do{
+               r >>= 1;
+               r |= grain_enc(ctx)?0x80:0x00;
+       }while(++i<8);
+       return r;
+}
+
+#ifdef GRAIN_REVERSEKEY
+
+static
+uint8_t reverse_bits(uint8_t a){
+       uint8_t lut[16] = {
+               0x0, 0x8, 0x4, 0xC,   /* 0000 1000 0100 1100 */
+               0x2, 0xA, 0x6, 0xE,   /* 0010 1010 0110 1110 */
+               0x1, 0x9, 0x5, 0xD,   /* 0001 1001 0101 1101 */
+               0x3, 0xB, 0x7, 0xF }; /* 0011 1011 0111 1111 */
+       uint8_t x;
+       x = ((lut[a&0xf]) << 4) | lut[a>>4];
+       return x;
+}
+#else
+
+#define reverse_bits(a) (a)
+
+#endif
+
+void grain_init(const void* key, const void* iv, grain_ctx_t* ctx){
+       uint8_t i,t;
+       
+       /* load the 80bit key */
+       for(i=0; i<10; ++i){
+               ctx->nfsr[9-i] = reverse_bits(((uint8_t*)key)[i]);
+       }
+       /* load the 64bit iv */
+       for(i=0; i<8; ++i){
+               ctx->lfsr[9-i] = reverse_bits(((uint8_t*)iv)[i]);
+       }
+       /* set the other bits of iv to 1 */
+       ctx->lfsr[0] = ctx->lfsr[1] = 0xFF;
+       
+       /* run it 160 times */
+       for(i=0; i<160; ++i){
+               t = grain_enc(ctx);
+               (ctx->lfsr[0]) ^= t;
+               (ctx->nfsr[0]) ^= t;
+       }
+}
+
+
+
+
+
+
diff --git a/grain/grain.h b/grain/grain.h
new file mode 100644 (file)
index 0000000..06e8c78
--- /dev/null
@@ -0,0 +1,42 @@
+/* grain.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/** \file grain.h
+ * \author  Daniel Otte
+ * \email   daniel.otte@rub.de
+ * \license GPLv3 or later
+ * \brief implementation of the Grain streamcipher
+ */
+
+#ifndef GRAIN_H_
+#define GRAIN_H_
+
+
+#include <stdint.h>
+
+typedef struct gain_ctx_st{
+       uint8_t lfsr[10];
+       uint8_t nfsr[10];
+} grain_ctx_t;
+
+uint8_t grain_getbyte(grain_ctx_t* ctx);
+uint8_t grain_enc(grain_ctx_t* ctx);
+void grain_init(const void* key, const void* iv, grain_ctx_t* ctx);
+
+#endif /*GRAIN_H_*/
diff --git a/mkfiles/grain.mk b/mkfiles/grain.mk
new file mode 100644 (file)
index 0000000..22ff619
--- /dev/null
@@ -0,0 +1,13 @@
+# Makefile for Grain
+ALGO_NAME := GRAIN
+
+# comment out the following line for removement of Grain from the build process
+STREAM_CIPHERS += $(ALGO_NAME)
+
+$(ALGO_NAME)_DIR      := grain/
+$(ALGO_NAME)_OBJ      := grain.o
+$(ALGO_NAME)_INCDIR   := memxor/ scal/
+$(ALGO_NAME)_TEST_BIN := main-grain-test.o $(CLI_STD) $(SCAL_STD) scal_grain.o
+$(ALGO_NAME)_NESSIE_TEST      := "nessie"
+$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
+$(ALGO_NAME)_DEF := NESSIE_ESTREAM=1
diff --git a/scal/scal_grain.c b/scal/scal_grain.c
new file mode 100644 (file)
index 0000000..b79963f
--- /dev/null
@@ -0,0 +1,55 @@
+/* scal_grain.c */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2011  Daniel Otte (daniel.otte@rub.de)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <stdlib.h>
+#include <stdint.h>
+#include "streamcipher_descriptor.h"
+#include "keysize_descriptor.h"
+
+#include "grain.h"
+
+const char grain_str[]    = "Grain";
+
+const uint8_t grain_keysize_desc[]  = {
+               KS_TYPE_LIST, 1, KS_INT(80),
+           KS_TYPE_TERMINATOR   };
+
+const uint8_t grain_ivsize_desc[]  = {
+               KS_TYPE_LIST, 1, KS_INT(64),
+        KS_TYPE_TERMINATOR   };
+
+const scdesc_t grain_desc  = {
+               SCDESC_TYPE_STREAMCIPHER,     /* abstraction layer type designator */
+               SC_INIT_TYPE_2|SC_GEN_TYPE_1, /* flags*/
+               grain_str,                    /* name string pointer */
+               sizeof(grain_ctx_t),          /* size of context */
+               8,                            /* blocksize */
+               {(void_fpt)grain_init},       /* init function pointer */
+               {(void_fpt)grain_getbyte},    /* key stream generator function pointer */
+               {(void_fpt)NULL},             /* key stream generator for random access function pointer */
+               (sc_free_fpt)NULL,                /* free function pointer */
+               grain_keysize_desc,           /* key size descriptor pointer */
+               grain_ivsize_desc             /* iv size descriptor pointer */
+};
+
+
+
+
+
+
diff --git a/scal/scal_grain.h b/scal/scal_grain.h
new file mode 100644 (file)
index 0000000..a67d1d5
--- /dev/null
@@ -0,0 +1,27 @@
+/* scal_grain.h */
+/*
+    This file is part of the AVR-Crypto-Lib.
+    Copyright (C) 2011 Daniel Otte (daniel.otte@rub.de)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef SCAL_GRAIN_H_
+#define SCAL_GRAIN_H_
+
+#include "streamcipher_descriptor.h"
+
+extern const scdesc_t grain_desc;
+
+#endif /* SCAL_GRAIN_H_ */
diff --git a/test_src/main-grain-test.c b/test_src/main-grain-test.c
new file mode 100644 (file)
index 0000000..e621326
--- /dev/null
@@ -0,0 +1,162 @@
+/* main-grain-test.c */
+/*
+    This file is part of the ARM-Crypto-Lib.
+    Copyright (C) 2006-2010  Daniel Otte (daniel.otte@rub.de)
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+/*
+ * grain test-suit
+ * 
+*/
+#include "main-test-common.h"
+
+#include "grain.h"
+#include "scal_grain.h"
+#include "scal-basic.h"
+#include "scal-nessie.h"
+#include "performance_test.h"
+
+char* algo_name = "Grain";
+
+/*****************************************************************************
+ *  additional validation-functions                                          *
+ *****************************************************************************/
+void grain_genctx_dummy(uint8_t* key, uint16_t keysize_b, void* ctx){
+       uint8_t iv[8]={0};
+       grain_init(key, &iv, ctx);
+}
+
+uint8_t grain_getbyte_dummy(grain_ctx_t* ctx){
+       uint8_t i,ret=0;
+       for(i=0; i<8; ++i){
+               ret<<=1;
+               ret |= grain_enc(ctx);
+       }
+       return ret;
+}
+
+uint8_t grain_getbyte_dummy_rev(grain_ctx_t* ctx){
+       uint8_t i,ret=0;
+       for(i=0; i<8; ++i){
+               ret >>= 1;
+               ret |= grain_enc(ctx)?0x80:0x00;
+       }
+       return ret;
+}
+
+void testrun_nessie_grain(void){
+       scal_nessie_set_estream(1);
+       scal_nessie_run(&grain_desc);
+}
+
+
+void testrun_std_grain(void){
+       grain_ctx_t ctx;
+       uint8_t i, key[10], iv[8], out[10];
+       
+       /* 1 */
+       memset(key, 0, 10);
+       memset(iv, 0, 8);
+       cli_putstr("\r\n=== std test ===");
+       cli_putstr("\r\n key: ");
+       cli_hexdump(key, 10);
+       cli_putstr("\r\n iv:  ");
+       cli_hexdump(key, 8);
+       grain_init(key, iv, &ctx);
+       for(i=0; i<10; ++i){
+               out[i] = grain_getbyte_dummy(&ctx);
+       }
+       cli_putstr("\r\n out: ");
+       cli_hexdump(out, 10);
+       
+       /* 2 */
+       for(i=0; i<8; ++i){
+               key[i] = i*0x22+1;
+       }
+       key[8]=0x12;
+       key[9]=0x34;
+       
+       for(i=0; i<8; ++i){
+               iv[i] = i*0x22+1;
+       }
+       cli_putstr("\r\n\r\n key: ");
+       cli_hexdump(key, 10);
+       cli_putstr("\r\n iv:  ");
+       cli_hexdump(key, 8);
+       grain_init(key, iv, &ctx);
+       for(i=0; i<10; ++i){
+               out[i] = grain_getbyte_dummy(&ctx);
+       }
+       cli_putstr("\r\n out: ");
+       cli_hexdump(out, 10);
+       
+       
+       cli_putstr("\r\n\r\n");
+}
+
+void testrun_performance_grain(void){
+       uint64_t t;
+       char str[16];
+       uint8_t key[10], iv[8];
+       grain_ctx_t ctx;
+       
+       calibrateTimer();
+       print_overhead();       
+       
+       memset(key,  0, 10);
+       memset(iv,  0, 8);
+       
+       startTimer(1);
+       grain_init(key, iv, &ctx);
+       t = stopTimer();
+       cli_putstr("\r\n\tctx-gen time: ");
+       ultoa((unsigned long)t, str, 10);
+       cli_putstr(str);
+       
+       startTimer(1);
+       grain_enc(&ctx);
+       t = stopTimer();
+       cli_putstr("\r\n\tencrypt time: ");
+       ultoa((unsigned long)t, str, 10);
+       cli_putstr(str);
+       
+       cli_putstr("\r\n");
+}
+
+/*****************************************************************************
+ *  main                                                                     *
+ *****************************************************************************/
+
+const char nessie_str[] = "nessie";
+const char test_str[] = "test";
+const char performance_str[] = "performance";
+const char echo_str[] = "echo";
+
+cmdlist_entry_t cmdlist[] = {
+       { nessie_str,      NULL, testrun_nessie_grain },
+       { test_str,        NULL, testrun_std_grain},
+       { performance_str, NULL, testrun_performance_grain},
+       { echo_str,    (void*)1, (void_fpt)echo_ctrl},
+       { NULL,            NULL, NULL}
+};
+
+int main (void){
+       main_setup();
+       
+       for(;;){
+               welcome_msg(algo_name);
+               cmd_interface(cmdlist);
+       }
+}
diff --git a/testvectors/grain__verified.test-vectors b/testvectors/grain__verified.test-vectors
new file mode 100644 (file)
index 0000000..32e81f2
--- /dev/null
@@ -0,0 +1,2025 @@
+********************************************************************************
+*                          ECRYPT Stream Cipher Project                        *
+********************************************************************************
+
+Primitive Name: Grain-v1
+========================
+Profile: ___H3
+Key size: 80 bits
+IV size: 64 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = FF7710B30F198D75A454AB7A6B92A022
+                               9236B89D41A44052E0587AB77169500A
+                               701FE5C01518E30CF9777DDDE4CD453A
+                               CBF5151A1EBE057AA9B4AEC3115790C1
+            stream[192..255] = A927E5B1A5DD1BF788C87EA2EE006751
+                               60C88F4DFB99999B885FA997FDDC31A4
+                               6B78E73650AC2F7F4363A3EB4C22AE54
+                               A28B3916681AB700E1AC75674AA9EB92
+            stream[256..319] = 4C6A430099FD36E17689ED5A12303C09
+                               BAD6B5FDF4E4B580E9183AA7CC493A1D
+                               9BF6AE8E61CADBE2CAF52C82CE1E5739
+                               B5408445CCA5295718F908D3F34DB4FD
+            stream[448..511] = A922F866F3B29802FF1B8D4C307F6FFC
+                               5866B54E1A35ECC4F555222A704A0A38
+                               4509AC0BE8F74C2F487972201955CFCD
+                               3C90AE072C9495D03F45131092E27A1C
+                  xor-digest = 515100F2E0DA1E26DD73B875D573759C
+                               46BA20D0363710B2F90FD6A9F6B90F4A
+                               74E6263328C0F1BA6786629E54508501
+                               144A8ACF24DB388C3731640D6B6A3824
+
+Set 1, vector#  9:
+                         key = 00400000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 61535B0E87FD494455C9483D4B95B73E
+                               1266F3A96A4D3C1C49DBA10DF095C738
+                               9227D866F03B745C5C7DA892B0B323B2
+                               7EA40B00D5CE4F80698039093ABC712F
+            stream[192..255] = 9A3F0D00DED3D501E160DF5C81E30061
+                               3028AAAAF8FA1665325AF62DD853B3FA
+                               7E33E1BE915D23D5BB91EAB18933BB4A
+                               3F107A0D64E5E27809AE97B14C2E1F03
+            stream[256..319] = 225AB6D0F53CD41EA01E7028F6B2113E
+                               847AE2DBF60BF7501C56B0DD6D3CA81D
+                               50FBC887F30C892515F502807F8BCF63
+                               A1672557A2CB5E806C729B47E3C08C47
+            stream[448..511] = EF8FCF0C87DEFBF61D036C0561F44F00
+                               0A3E53DD839C3BE9BE31B0D3D05AB775
+                               51D7E506882A068D08C808FC0148C4E3
+                               463961A5E772C0D56F00EE99F0F7C195
+                  xor-digest = 0D2B5D8ADA919072D0336510A0B8CAC2
+                               849ACCD153CCDC65B1470E12642E0537
+                               A1E28B95D0FE593145221155004BE3C0
+                               06942618AEBB288A9E3F6E3957650E35
+
+Set 1, vector# 18:
+                         key = 00002000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 21E7A4D96AE1D4A090C3FA3E9270DC52
+                               EFDD7E089074FF36B7BCDCF72EF0880B
+                               962ECAE561000AF48EF1BAE8A3BF5AEE
+                               4134D20A4C565AD829F9E311BB99FD8F
+            stream[192..255] = 1890D9102B1F41D385BD9B4A47520E02
+                               A5421596A2B8FF12AF36B5805C5FE656
+                               CD049B6F5B4CF0A81B9AC6EBE2E612DD
+                               CA5F7B08BB0FDA21B01E8578467E2C31
+            stream[256..319] = 7EE30A4E9B552CA46E785E4BB7D6C3C2
+                               0BA2855BA8AF54880FFF57123E61014A
+                               929E2675507796D3A7B0A1A0665219FB
+                               DFD5729EDB17F61BA56CB4EC17BA8FE9
+            stream[448..511] = 10A4ECA163D497F9516DB6C48CD40D1D
+                               223B75687B69F3592E1095F3DB0BA972
+                               BC7A4776821E82B7B7BCEC05AF126E57
+                               761CE7886851C456BBA6A12D1F7C918A
+                  xor-digest = 2CA5CFB3FC26287AAC9DA001F65515D0
+                               A2595605FF6CD3A1EFFA6A156D03783C
+                               BF7472605A5F2F1B0F2E8C3D2BA34FB7
+                               1211E672CC518A8ECB4A5C1BEEA0EABA
+
+Set 1, vector# 27:
+                         key = 00000010000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 556DCD7BAE2AE72DB8580DD1B2799AE4
+                               1DD6A470400144B03753B09C9CEDB0A4
+                               A8A9D11FABA4D3D003DADF64D67841E8
+                               77A5D5B6B5F4A086CFD7EBC6D8062396
+            stream[192..255] = DE7B1E782B15AA7F2A0D7B6FFE409CBD
+                               564AFC3E001592B49883BD1F9D30560E
+                               B3578E8493DD3BED975EA1BB40668A4F
+                               67B1DCD5BFEFACF586BF0935046E1A0B
+            stream[256..319] = E57CEF54A4BFD05ED009D2B5376758A7
+                               436BD60CB67BB7B8DDE44A4EE830211C
+                               EC2A8EEB754CB3167BD29107B38BF176
+                               48A128E90CD577D01AE91A52B580A611
+            stream[448..511] = 1A589CF3EC444675451A90645BD0F7FA
+                               67EA4B19FC4803061915AAF8ABD3CF1B
+                               1033CA7B17FFE35F0D805D4B7179A037
+                               3584A7E78CE096858F8EDCAB76E0611C
+                  xor-digest = C7F64C1B23BFEC7526093AF6D0E48A3E
+                               69ABFA8B7E97ED1CE779C9C6229793EB
+                               3D3DF27B81F16E4942E185EC03FB0F62
+                               A6673AE1EFDA69560F1E4A4FE4CBFC13
+
+Set 1, vector# 36:
+                         key = 00000000080000000000
+                          IV = 0000000000000000
+               stream[0..63] = FC78ABD898874B016A8BCE2D010163C0
+                               8814B8130FFC7D1F67CCF137E507A9DF
+                               2574570097C634D3D640D44B5E3A63B1
+                               4FAA7CE43E0B0B7377995443B2127E0A
+            stream[192..255] = B021DD6E60A9BC28D8424134255D016E
+                               0E2A09EF7487F8F402112B5B56A3D490
+                               B6CAFA4973A52C9327D23ED23FA56424
+                               613D868159195AAC60B9E1E09661BB27
+            stream[256..319] = 591876182C51C2E37F5810ED41E20331
+                               8BA22FD3F0D9E21ED07572577F7BC0D3
+                               46EEC4FF336EACAA8D6802D9763A8526
+                               56A06FAC7FFABF3B62F22F68D797E7F6
+            stream[448..511] = 3EE7777AFC4D58E58AB16C9F4B1FA486
+                               11CB512B5BE85F91A5E3A1312029FF35
+                               2B898E926118B40F55AC694BFD1DC98A
+                               44925BFD7979D6255D1A09578B25B3E6
+                  xor-digest = A36FB86AD0A4219817F9F3DED3F8C5D8
+                               0BC50BC171D56DEEB55210191D374C70
+                               1F4BDF35BC3C0F093B8A6898F382407E
+                               2E0DDF92EA5A756FD875A82E996B7997
+
+Set 1, vector# 45:
+                         key = 00000000000400000000
+                          IV = 0000000000000000
+               stream[0..63] = CC0A9858621C5E57B204F773D33A6599
+                               31D5238817B0647265818ADB7CEA3C35
+                               13BA44A3C78CD77B2E8D648E23570019
+                               C20CC0F9F756743076C54A476B35A6D4
+            stream[192..255] = C8C9E4625830BF6DA5B2AA80EA1A1D07
+                               4074310AB84D4ADA471FF958FA8873A7
+                               4C17DAF9F579067BCA78F4E79FD9F81F
+                               B969F104F98DA8E09E1CAA168AE094A0
+            stream[256..319] = 66D828080571E5614B2353DE3D3943D8
+                               88041EEE3D2DB0347D64B4702881867E
+                               A06BB01A840048466F2D65BC39F973F1
+                               2D27A1A1F5F0AD35B7FBB8FD53E4B77F
+            stream[448..511] = A289E6F0FB1591316E83D07784E191F2
+                               D998AB609A836995CD35AEC1F7B47F38
+                               82BD42B6608FA0CF01F2DE18F2DB97C4
+                               4B9306D3CE1E781C9B9CD58C5A78A98E
+                  xor-digest = 76EE32F403BBE674E8507ACAA79203E3
+                               08786598AEEC01BAEB66ED0A1924790C
+                               27315F8EFEA79F7538A6E74A55A296AF
+                               7D384129E8A79B0009A3AAC050374AE0
+
+Set 1, vector# 54:
+                         key = 00000000000002000000
+                          IV = 0000000000000000
+               stream[0..63] = 6DDE430D5F50561770BA10BF52AD8814
+                               68EA382B305424A660BAC2CE3F620A73
+                               DD425D85FDCF4777EA38460140683432
+                               C61B3C1D7050A67B1F6C5456203AB3C9
+            stream[192..255] = 3BF89D53B469914BDD74ED84B543F95F
+                               128F8E75E7048E42A86F44A58F1E9931
+                               E12A79F070D9843DDCEC02AEDEAD3CF3
+                               A4B7D254123488A30F7C803D55F77507
+            stream[256..319] = 7D41DB6791A44CE6E8ABD96140FBE0F9
+                               ABB556B3559CD5A61D0626BEEB946A7D
+                               666E643F29761EF08EF4704E7F50FD9A
+                               E2004E49D45E827FF4AE61E824495C5D
+            stream[448..511] = 4B2DF17C8D963732C760D7675E992650
+                               CF87B6D1EB44BD0FFD6C95008ACD7201
+                               72CEF19494C2845FEB72E66B319F892D
+                               408119CD5B0FB3C0EE56EF8CEA825CB0
+                  xor-digest = 0E0D5D1446115843E0A651FA6F5BFA8C
+                               565311542E22C0C3D018D7E0CCC34EAA
+                               90633FE962F77B8E84750155541FEB91
+                               D3CF65685077D8BC04DE1EA2F3265771
+
+Set 1, vector# 63:
+                         key = 00000000000000010000
+                          IV = 0000000000000000
+               stream[0..63] = 7909795501E3A6E4C12ED75DB29CE05E
+                               DDD271040F7865CF5285D80C565FBC1F
+                               FDEBA88EC6ED9A3670659A571329AB0F
+                               A32B164139C6F6A2B3149B62C2EC4646
+            stream[192..255] = 573CE5B341CA68B19BD65AD2DF93C6AC
+                               BE7CD7C96DA9123BA9FBD779B3D83B32
+                               30AE66282A72C6B80457E8AA319AA0BA
+                               7D36CF68ED496D58495F4764F9175191
+            stream[256..319] = 9F2634EBFF225B21107EBAE25D9D6F7D
+                               DE4ED0646949C7B4C8759A21ACF024F0
+                               53263D6415E45FC9FF3F92FE88198F11
+                               11EA879E3CEBB57C87032FF2DCCCE767
+            stream[448..511] = F4CC0E8504C85E6B5FF40CAC03080BF1
+                               8DAF25E641FE66CD7DF745186E8FC42A
+                               AE6C20EBD5DF06DBCEE7DA98580F2508
+                               C8B457D981B8AA60ED21263B82F233BC
+                  xor-digest = 9383552B70E0FFD5CBB91B74DAA52B29
+                               15123FEC5BDBEC9D5A9AE087C289434F
+                               BCE067FFCFAE9F2F6B33A8FEF1B1B5DF
+                               6B2D06C08AEB95AA3C3F155420EF809D
+
+Set 1, vector# 72:
+                         key = 00000000000000000080
+                          IV = 0000000000000000
+               stream[0..63] = 825E91EE86993AFDBC9CB5C15D011331
+                               AC112F59A6949A22E500108016D5D2ED
+                               7CE6B6174C2F3D048AB607E1B03564B9
+                               FCBEC297162374A765EABB18877727D9
+            stream[192..255] = 1E40C890A344DAB132F294F21C0D0931
+                               467E9F434261A440BBCC9A511E214016
+                               565032A9A93B3DAE2A28512FC9B62006
+                               BC89E5E7B943DDBCED06168FFC8C51B9
+            stream[256..319] = D13B7DBA3587595065F6730B2FEEC470
+                               B46A43BA9BBAC48F3127F0FE6FAA3EFB
+                               AF6CCF64C033C36B59B5B3172F87A1EC
+                               5A2FFDD4B409546249C48722AE9EC90F
+            stream[448..511] = D139358F57E4D80607E6A577E4210763
+                               B630DC05D4D4A32603058F4096550DEA
+                               9C6C9EE09D3D0D5A2ABFC82ED0FEA4B8
+                               BB980958D8C6FC8074C638B011A67E22
+                  xor-digest = 35E27ED9A9C3C33279DFBC38CA5020B1
+                               7AFB773070CEFC7638DF69E0BD294EA4
+                               9795699287BC65EF524242061B329296
+                               BF9EA793117348F11548AB88F138FA07
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = DEE931CF1662A72F77D02B6B6188A8F6
+                               A2C25AE10433ED468B1819741E326B0E
+                               D79B2F1655AC2FB8DD6DECBC9CD301D3
+                               E3DA1FAE749409F09215DE1CEE756FE7
+            stream[192..255] = 6BACD4115EE1ECB0410BE06632D9F590
+                               4DFB590BB7C05F5765CB6D3C7F595475
+                               E9E7B9DD3F0FFC062CEDEAF3EE1B256B
+                               4D6E61604C3EDF25B9677CBEEBCFB5BE
+            stream[256..319] = 61A7D2B488FEC8E27F84489F8288BB3E
+                               C171B49143DF6FA89F02F6205D70782C
+                               F4E3F145F52F806C73EC6400A1D558B4
+                               E2BD400A2B6EECBFC627A8B200FD76B2
+            stream[448..511] = 4B295080D161AF560D10110A11C52AFB
+                               6E8753FB7F11410D86D0ACB70B49AFBA
+                               412D6EB5E33548747700C331013C7201
+                               18F352BF974BDE06668BBCEE3520270A
+                  xor-digest = 0697470B0C2270878791C360DA4FC68F
+                               9C046F105D6DBE2D15191AA2B7F08D15
+                               1CD002800CE2690116646B8C4B449375
+                               AC2B7514B0D0482E6F2536398A9E1355
+
+Set 2, vector#  9:
+                         key = 09090909090909090909
+                          IV = 0000000000000000
+               stream[0..63] = 94B74AC48A62D882EAD987B305264147
+                               49308214BB2132CEFD95825BAA03E51E
+                               FD5300B287C2F9EBC4DA09BBF76F3D2F
+                               3F86E9FF99AFB0C49D946439D18E4C63
+            stream[192..255] = 34900ED9429EAC7E6A2251C36CC67F6D
+                               4F949D5FCECB1BD8079099B1689428B4
+                               8F7D8C9B9D90F56E2107E4ADB349902B
+                               C6C432E761B3BE6148D195C1BCDC939B
+            stream[256..319] = A893E3B98054CAD6C5A2DD21751D4A93
+                               5910A29D352AF1E65B7E5B04F2662C61
+                               31F1727E1249105ECBA6CD94EA09C0EA
+                               48E800589A749422556483B6D820C47E
+            stream[448..511] = EB1EE9D5CBAEA8DE5BCDE5BEED37DC82
+                               84A076D00BB0E6DF7A1E18634EB7BFD2
+                               5CA10FB55E8C05EED089FEB52B1FABDE
+                               A12FFA8F0668372328BC7E35B280633A
+                  xor-digest = A3516E6FE2C715AC043C7448F290269E
+                               CA8CFB77FB11DADCDA1EE1E9C20FD163
+                               82A9BC5F132DF2A7F5B345C5C50C05E2
+                               42D01897E08FEABDD79FB81E0222CE06
+
+Set 2, vector# 18:
+                         key = 12121212121212121212
+                          IV = 0000000000000000
+               stream[0..63] = 55D3C9BA82577BD002684E0EBDF1F505
+                               BAB1474DF886B8CE583B7AC11E00C02F
+                               8EDB5B95D83DCAB6A50440F24B4750DE
+                               37E9A40659108A539B7DE1B06792C3DA
+            stream[192..255] = 879B91A3968937D52BB068A386FE6047
+                               438B1BD77320CA8661E1AC323EB23FE8
+                               25222CCCFB976153291D8FFF3E1054D3
+                               CC32D6A8D124DBB3890E7ABC19E2E0BC
+            stream[256..319] = E9EEBF1C0DCB634AEE23C13CF3812DA8
+                               590AD053F70927E87A77D3E7ECA22D00
+                               4584A62CB7110CAE6703060A97A58389
+                               CF1DB04F32FD18B64F780352508809E1
+            stream[448..511] = F3E173050AB618B24A202E2163892952
+                               C28EB22D0646148D6DD9247F128D7867
+                               84CB89F0DE0441E7D017DB56607377A5
+                               09F594033090F15ED2D2139168E9DDCE
+                  xor-digest = 911B61D654C3974A9F102D20BBE3EBA4
+                               4947A8B787F16F5BBD5F6FFAE9ADE89C
+                               45B5F42F2C831297F008EA081FE91B63
+                               725D2846FCC2DB2766A5C2A62F34E0A4
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B
+                          IV = 0000000000000000
+               stream[0..63] = FB5A3BCE0884205BC239FAC5AF11CA53
+                               FC2822C00104C7D24390555B702ED7D6
+                               2D55AF159B0CEF44BDAAA50BE1EFF99D
+                               082A94B504B21E46891B9D116B7028F2
+            stream[192..255] = 6F751FE8C1E8125B38527D3D9891F776
+                               E496AECCA63ED40390D415611CA7FA96
+                               CD13F0F1CB9CB3CFA60F1F28975A5164
+                               FB8158D4E327F26E8C79777AEEBE358C
+            stream[256..319] = 82975DAAB81E1CDD70794E68D41D4B93
+                               6131CBB9155C0EA1E81242D8D7A531C5
+                               26B4A007BA32D95F6794F1A6BED75966
+                               686B3AD2C24FFD277BB03BFF6734AE54
+            stream[448..511] = D1F1AD3C1A72427E6EFDDA81DD65E6E8
+                               B5072BC1B3D12DBC44FA4597F219D784
+                               D7BD2CEFB8FB36EE20F140FDF3A2EE3B
+                               4CC7D04E4C754291FB65CF5B24AAC6EF
+                  xor-digest = 249D55D34B2CD86839CACA6E951A8F46
+                               C10949FCD602F9F063CA804E5D65C9A0
+                               76D2A2FB6E3B16A31B39A4543338CFD4
+                               0B771E0F0A1BE0C3E1C5F8688E96D49D
+
+Set 2, vector# 36:
+                         key = 24242424242424242424
+                          IV = 0000000000000000
+               stream[0..63] = B6C6516C103EE53F99EE5879F64B1EC6
+                               BB9990E88ADBA477F46BBF8FED29E04E
+                               3C91EB3CFD6DC1E26535ABBDA731DDA5
+                               E2490EFD64B1EA45EB534CE7C4E252DD
+            stream[192..255] = 156E5C413C9255B1B10D0D778C07C1DB
+                               2DF6D43F685264933511DF96E545E51E
+                               A5366E4E9A89E2622965CF2E190C692E
+                               39A3FC480E39A42B0EAD9389B378347D
+            stream[256..319] = 47E4D12E8AB96D1628EFD39A8AF786B8
+                               A3C55C86E6A7A02EEAD4920C073B3796
+                               46E5FE00AEE67D07F17CEF50E4D65301
+                               39241D09EE29D8DF4D3598ED342BE865
+            stream[448..511] = E4725964F480B4ACF9160ACC82B0A071
+                               8D073EB6588B39622513DFAE7F88D4E8
+                               A9BB68A51F0526B0133BCCBBBF5FF6DD
+                               163BE408EB09810DADFA97B9FBEB8202
+                  xor-digest = 6645C599E1512AB06970856B9C1895E9
+                               9210A6E7F68BA3AE5520B47BC4139BF8
+                               AE3DB59E871AA933216BD98479B6B016
+                               9AD8E3E9E7E2B898904B604BAF43AB8A
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D
+                          IV = 0000000000000000
+               stream[0..63] = 545D4BCE5331CD48C69AE3380683251F
+                               926B62AD99143364876311A8DD03A48C
+                               ECF60C04D068EE504B52D24E592F6532
+                               389DDB5398AD1F9E2D1C3ACF38E26D0E
+            stream[192..255] = 4C69FEE04CA65EA1B1D7D7D520DD8F39
+                               8CA147D7AC2FD306F9172111B30D96A2
+                               CC32CBB32A5B9AB10257D355B3947A5F
+                               03D316FE8E98BFDD13B28EE30D39F4E9
+            stream[256..319] = 8544591C6E2F703F6ECD1A7ECF46A3F0
+                               AED519E2C452AAA957B1F8242253C931
+                               CB3AD0781EFEA154FB0118A7E16D21CD
+                               97B8027961E2537176BD815F2B044D72
+            stream[448..511] = CAD76834051F36B76FECCBB3ED9B78B7
+                               E342C7D5A58DA5794AD30329F729CD3C
+                               89B5AAF754C82EC88FED1BD56573CBFF
+                               DA582FB42BD5C2B7B8FF569687C5AEB8
+                  xor-digest = D985AD94CFC6B0180386D1327BA69ADA
+                               BDF18D909841A620C53B69FAA94E5616
+                               9551F0B1B17F5032E4231B9A41BC3433
+                               867FC3BCF287E48110347A3B23C67C1A
+
+Set 2, vector# 54:
+                         key = 36363636363636363636
+                          IV = 0000000000000000
+               stream[0..63] = 9F4D064EB54E41B1A46FC20A93F3A8F3
+                               B7C7EFD36E40BF79972A25C50C16F062
+                               40206CD4D3C63E76390EE06F4ACE2F1F
+                               642FCAB56F8A8A932D129C595885236F
+            stream[192..255] = 8D60B0CFB3E40DC24A334A307A7417EE
+                               1E514D5A0C01A3A4382CD946E9E9D074
+                               FA3F439AEE27A11E4D5F7B29F632537D
+                               18854538D624ABB56B65C53EF4FBA47A
+            stream[256..319] = D6E29D581A1C60A8A13433825F7C65EE
+                               43101A099263FAD17FE8EBB9A4A46B33
+                               350103C3C2C7A5D7EC87921BA0D32256
+                               D22C4BC6DA8A9B62A3D9FEF0DD7143CB
+            stream[448..511] = D0D666907EA61C36D85DB96F489B6CF0
+                               A1778848243C77C3D749229A5932D9D9
+                               C1CC949C9FA17207B02816F9EE34D5E5
+                               204E42D595A2CCA1B7209122CE0A5763
+                  xor-digest = 1F990C916FFB2F991C1ED9CC9F0BE528
+                               C3113C0965AE90F4482674B513EE9481
+                               A39DFA5878D826D5D21BEC54D829A4FD
+                               24A4C74F7990CEE19C9570C8E56EA1A5
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F
+                          IV = 0000000000000000
+               stream[0..63] = B9A28855F3835E500E07F19D922452EF
+                               7FF1D57C3962AFA97FE5A9686568018F
+                               E0B46057B45FC00FA8DAD496D9431516
+                               397B3739ECF56A8646D844A23301A59E
+            stream[192..255] = 600EA58D2E3A4500CB91ABCE66C83D24
+                               1070A320FAC5989FEEA4688355F177B6
+                               039977E7551E62D59932B180F5465C6A
+                               FDD9FE29AE9718881CBEE5805F074997
+            stream[256..319] = 15DC80297AC57C73FF3FB59D572D34B4
+                               0D6446C08DC9F5E7C5B663CED35CE337
+                               7CA0DDCD2A57C0F70D05F6109290B5A1
+                               43BBB083140FECEE5E7BC8877592E334
+            stream[448..511] = 75E75F64CC52194F861F859DE897EA81
+                               3EFAD5FC14319BAC1BEFEB4642A70950
+                               2AAD9175A0BDD87AC4BD9B9858760B32
+                               C000D9EEE1598CEF56B776BF221C264F
+                  xor-digest = 0E6F1632EDF5DAB70320A27AA7389896
+                               B6383EA99B49EF55FCF261FA43D34CC3
+                               2AF0EEEE947C031A90119ED03DA7890D
+                               17FC8C3E96E1F2158E271C98BDB8E452
+
+Set 2, vector# 72:
+                         key = 48484848484848484848
+                          IV = 0000000000000000
+               stream[0..63] = FE775D885BD381F68A87BABFC34BE76D
+                               072DBAE89A9B058DA81655D964C0BE21
+                               233C6A37EB109ACD86711625FEB8B907
+                               52F16351DA53E2B7414754EB8A3AB764
+            stream[192..255] = E2FB568245765B4C25A42F6367137441
+                               E13456B75251B95609ECAB4606F2488B
+                               6F6FAE269ACD6DBC4A9E572D6CFAF215
+                               D821D0A1AE8ED7A0B422461D15F09204
+            stream[256..319] = F7966E83F2EE0423E45AE70155C718BF
+                               A57E188DBD85BE01A7FB60882D78696E
+                               D7BC54A5CF0C45F5127133292743E81B
+                               F4BD594A5819CC29D00A56617F3095B0
+            stream[448..511] = F38DF1966C03FF4FA523AE0986597F05
+                               BD4534161EFAC2262843BDE84A82775C
+                               59F4AE52944E67B9BF1F4BB441A6935F
+                               DA4DF8D79405BEDC035BEE98AC889AA9
+                  xor-digest = 7652833F744A3165036A09D7DE22DB06
+                               74CEEBADA0DA7C516AB6D31A6628B189
+                               BB9D7A8CE76385EE2C27FABC3C99484A
+                               B55CB1301AE2137A7E24096C4B9A5EFA
+
+Set 2, vector# 81:
+                         key = 51515151515151515151
+                          IV = 0000000000000000
+               stream[0..63] = C08ACF645B04ACA55955B90C4459E4C6
+                               9973D2C63CB7300F338431D861AF170F
+                               01816BECCD077CCBD9EDD29A399AA695
+                               D92A2EA0D68C4759E7F685AD8B045685
+            stream[192..255] = 55DD83EF34FC97503592A7DE36D59D20
+                               D97429A41BD11241885272A52A0BC84F
+                               76E61F9E846E7A20CD52B38175CF72A9
+                               42798F59B25641366BF50D13A167C2C8
+            stream[256..319] = 9C5838E87E1D0B9B27DE1B7B04FCD049
+                               1674835E1C8DF6D23311A9F40BC32718
+                               E111B7696C2319C109AD4FD3BBE1FA66
+                               4FE5EBD3EC1E0620573E1AF8F40BDB88
+            stream[448..511] = 34C0E87133977F08AA06636A48FF05FC
+                               727B433AD617DD0CDCC630F75D7E9B7D
+                               5406B8579973932109F987B3013417F7
+                               4736302F4464298427FE46C08CAD664A
+                  xor-digest = 0BE3D13F354DA15931D129E9736CE112
+                               F667A344C37C410E07F9B4908C403D70
+                               9C84C5F7DEE4A1874146AD4CA0985B30
+                               8143AB70B924E2FCDDE7F3F1937A18AC
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A
+                          IV = 0000000000000000
+               stream[0..63] = C02A2C469E4DEEACA45F3BC23C4EAFC8
+                               B9492861D2CEF6C6C966A93491BD4FC1
+                               1D2ABFD689BE3541AE5403944E02F067
+                               7C161E1035701EB7335A66C7798FDE16
+            stream[192..255] = CCF15BFEEA5B611CBF0E48A8201D6F37
+                               11BBE0D6D4851C3DD1F128BFA12797A8
+                               B7C078BBEB44B39947EEE806AE0F626B
+                               473E09E3677A7E81563BE84A6DA6FB75
+            stream[256..319] = 37379A54F42155E58B740E1FCDD2B09A
+                               D888C4B613AB946AA19EA46717DBA8A1
+                               0A70C4B170F73A36B3ADAB956479BA13
+                               565467D57D0ED0F39B415865226BDE1A
+            stream[448..511] = 3A37C1EB5B8088B4452B96AE03375824
+                               81B161DC5F975A74729219B97F087938
+                               1F72AACEACD77A9B93EA3FA26FE0878F
+                               9686CA15B37CA66A8A5899FD468DF533
+                  xor-digest = 7DEC3F43618BFF381734C42F6659828A
+                               DFBD896ADF9A9E868971D9A2712F8E53
+                               6B053B591458739DA42E4640A9D063F3
+                               6D93E20476D1D77928D8E3D237657A0B
+
+Set 2, vector# 99:
+                         key = 63636363636363636363
+                          IV = 0000000000000000
+               stream[0..63] = 5FCD2DEEF0AD2455029316617D1BAA1B
+                               276DFC47A719D59AB5F99A62F563938F
+                               D8C51977D14635B4E07555316C4C6E18
+                               D77412CEE9864C79C47F98F8F41F45DF
+            stream[192..255] = 83339332C6E6F095D8D6CC4D9A8ADD62
+                               61243D1BDA39EE9A17D6C6EE921EA1CC
+                               275D4B7EDB0F9A1AF19752A14089ED2B
+                               C2A34C9DBD1DC0724EF715BE0926B37E
+            stream[256..319] = B96A6C26571F74C09CF56BA8635D4204
+                               CB9FE739C54039BB18255E99CCD6F844
+                               A097EE18C98882D5F461AF11C4A6E09B
+                               72AA91009425551D175180B700F21EBA
+            stream[448..511] = 8C8F42F416422FE088CBB756545F74EC
+                               30AAAF5295D4B9F2807C36836A5CB6C3
+                               75970D7919118B723138A5B278B950E4
+                               1091F6CC0283EE4462ABAE3E1CA873AB
+                  xor-digest = D994B8A47B503ADE6713F612D1633BD2
+                               5A1F4D5702525ABECBB557108119B8A7
+                               A0D43D115E8E310873B00BD1F430E7AB
+                               33645CC7DC905EA4D17610573C574D1D
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C
+                          IV = 0000000000000000
+               stream[0..63] = 3F4275432583E8F728C943FCDDABBBF7
+                               643AFFDD7608F86F0D06F97640AED064
+                               A0B319993D1056750D9C8B23573C45E8
+                               6ACEF27A4F630C66A0DE675FFC88BF1A
+            stream[192..255] = 01F80F97EFE46888D9E65A500F459878
+                               C3791CFFB219079037409393CA79626D
+                               E2FB1F6BC1F1BF29D3CA0CC140338602
+                               3B27F63F8DB233E4B669F3678804B8B9
+            stream[256..319] = 0CF3D1CD7B3A83F08165E55E54ED508D
+                               1E8958835CBD34E757B45367B5763981
+                               22112BC37F2F6308FF4AFCCE3DE1BA5E
+                               117E3D4190049158432E345089F17248
+            stream[448..511] = C0605F17602BE61B12195830BF8EAB60
+                               136D446C71E11B2CC525762402329092
+                               E3466F13B0B97BE0404E3B963A0E23DE
+                               0880897C077D6C704486238DCBA6B4DC
+                  xor-digest = C07A9A42C29441133C2E45AA4157E3E3
+                               B2B57FC5C360623A890FCCE03976435C
+                               0A6170F3D9F2BA896441286F27EFE5E9
+                               44BC3CAE2C8D3A9AF625601FFABD45DB
+
+Set 2, vector#117:
+                         key = 75757575757575757575
+                          IV = 0000000000000000
+               stream[0..63] = E8AB04EA96652E3D29ADE98DF42F028D
+                               F1264E0FCA53B29E0B625BA9FCC5E4BC
+                               D67463F8DEA05EE94A65B6E8AB34A950
+                               F16BEF662280477D1383E8E7D09AA811
+            stream[192..255] = 55E9E0A3D7894ADD948B7F58C54DDE32
+                               2585BCAC3E8B804114FDA15824DBEB62
+                               3A28F0068845DED9707C74BDFB874537
+                               35C41D2BA1B6BA52C82B5A826C92B604
+            stream[256..319] = 1537CDE2732A0B32462CA4B553672598
+                               0CA28CEABA248F4234951D2E28FEAF66
+                               DDAF214136E87FAEEE3967F63AA6D476
+                               F8B6B8884C30F9E059E67AA6487B15E1
+            stream[448..511] = A719DE3CE164DD047C22529B81B4C26A
+                               3061FFDEF292F7CB8C2D4A84D1FD7195
+                               B83CD71339E6630CD8E5E700E5A780A1
+                               49FD7CF16D09794A433F6D97FA7B67DA
+                  xor-digest = 499C86B5992543832E3EF92848FD169C
+                               EEE6E444D6F0543AEB7DE6B618FC3E7A
+                               DB0DD4361693AAE8BC7A1361ECBF0C30
+                               699947A51AB87B0DDAF7106C8048F70C
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E
+                          IV = 0000000000000000
+               stream[0..63] = 83E09B6A0A4516CD45FAD6EFDD9056B6
+                               A398102F1E6E1CBD7EDDAAE19E66B2AC
+                               49F39ACD1D6696DE6CFF26CD0506BBC7
+                               D72256208AB15C0E4DA6238ECA07C622
+            stream[192..255] = 4D0B2546B85B63E23FC87BA38F20A60B
+                               8FDC19D893978DA648BF1D3C488886B4
+                               C7A4F808F3E24D0ECBBCEBAB7CDF7DC1
+                               F557E8C38E4CC1589439BC7B9B33746E
+            stream[256..319] = 829265E34EFB6B266B2A99D1D8AC1E8F
+                               CEE9FAC20A16136F9980B1D5CDB01E45
+                               BDFD437F94F9FBB43C7857B51A072053
+                               C9E43DB5498794196D88A617092B83F6
+            stream[448..511] = 6773B40CE1F0AC6DAE4E1739956E9D81
+                               86AE9D15CE10B4F622D8F4C75DA9E445
+                               0499A9564831C3F708F29CF7EC2F6B4B
+                               4C6FAB561B08114BB3058B3EBB20FDFE
+                  xor-digest = A8221DA33C4786DF8585AD76DFDC8575
+                               1F5EE703B19253405FAA5D7D5B93EADF
+                               9F454F74DF92D2CB6301406B7D3D98A6
+                               7941CD6BC768961F2434BC60118CC659
+
+Set 2, vector#135:
+                         key = 87878787878787878787
+                          IV = 0000000000000000
+               stream[0..63] = F227AE31CCB6BC96546D0676606B514F
+                               DEAA269E5452AEAD3BBD40C4EAD6B8D1
+                               FC7581FE7A5D05E1B1D30CD2F6467596
+                               94B878B329924682DE38C4170A8A77A4
+            stream[192..255] = 195F4619C0ADA93326195FD51DD71628
+                               06678055EAFB41F12CDA1385C89AEC8F
+                               E6FA755EBA3E6CBE47F9124BD8976FB5
+                               6C500A4EAF51FDA9C35A40CEA3DAED40
+            stream[256..319] = BBB7811AD772675A691EE6A5554EF4C9
+                               2489A26670E9391B7121A574D1B7D154
+                               8E67F6E191E197CDCFBD526EC6ED742A
+                               F97D61695DBDAB1776D370E6DD1652A8
+            stream[448..511] = 43275C8074E4DB49C347764C10AC3543
+                               BC090429CB1661ED4E403488E7EDB210
+                               F55FAB356988584A6F94CD83FED5185F
+                               F2F38CFAFBE8DAE5A77BC6E8F1CDE784
+                  xor-digest = EE7CAC49FF6ACE9C9136996C9328CF5A
+                               CDDC12F177F3EE8B73D86C46860573B3
+                               486C837EA08C7D722208D055C3454161
+                               9759E27856F1AC10A0B0CE327A8798EB
+
+Set 2, vector#144:
+                         key = 90909090909090909090
+                          IV = 0000000000000000
+               stream[0..63] = 0B83E2A6888B32679EC377FD850318AC
+                               12D8D8021C02816D7F3DCD418E88C314
+                               5B70383035C46FE4FDE686E0B6196DF0
+                               0DAF2CC0EBC56551B1F4C0093F7B8437
+            stream[192..255] = 5BF7EC05D9F7870871893A44C0CBF5CE
+                               CB539912FA67ACE4B751B02F1F0EE430
+                               818F031A14F1243372B3F8E7523A9952
+                               4064093592224AE0813F9A5E968A01F2
+            stream[256..319] = 84EBC26B26877378E2EA7D86A4DDE76F
+                               2147DE4A8EF84624D7C054FF79A79B00
+                               28B6CE55736EF7D4637A889EEADD426C
+                               77490E3A650FF83DED05434E02C4A7E0
+            stream[448..511] = BE113B099806808D8897B118A44A0E43
+                               55BEC50BF1E21F306E4D5A4763DBEE45
+                               542424B84F9969FCEBFAFE0A036BD754
+                               1EAC37B6DA0D579293718D3A3A27830D
+                  xor-digest = 51DBCE10874AA20699CF9A9D5AC7F535
+                               1F181BB8B564C7BDC7A60F3CFD31A609
+                               5A1BDD17E5CE9394798088F459DE9126
+                               42EAE9D9AD8A6546DF6F2AFA144E585C
+
+Set 2, vector#153:
+                         key = 99999999999999999999
+                          IV = 0000000000000000
+               stream[0..63] = 23F6BCF725CC0F9977612F1E628BADBC
+                               2DF7BC49C18909D65ACD40110E262082
+                               845EC8E9CC426FB8BE5B5EF9F4080456
+                               90045153A85AA953112A34ECFA3E228C
+            stream[192..255] = DE93214CAE340EC5724F17DB430CCAC2
+                               E9E89C04543692DBCA33D93A635B4AEE
+                               407ECB350867996C7167CB470FEDC6CC
+                               3D661630A76B5AF16F917C5EEBE62B99
+            stream[256..319] = A252CFE498A228F959F13CEDFF7582B7
+                               97585E46BF4149BEC4DB791531F0AF61
+                               1264A71763D32E054C5EE0B2A589E990
+                               6929F9A3E98BD63285000AE6F260D088
+            stream[448..511] = 1852B57759CF872AB91DD9DA02E10E40
+                               31D494F1E34DC8D52751829EB1717222
+                               D545E27535C063DABC1792B400A950D5
+                               18257C77339506D77BC2518CD63BD8A6
+                  xor-digest = F106F87C540B32273A3E11E1155FACAA
+                               114B394DB1827EBC1D75AF0FD807497D
+                               B4894CCA38CEFDDFC371F4A2613964D6
+                               B1968EC95857FD09BA9DAC6A38D08097
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2
+                          IV = 0000000000000000
+               stream[0..63] = B581D885F3D86316284CC1EBE73308EB
+                               A14BD6BF1FF4F057A930AD29C1BFCEAB
+                               B82748DB930254574D83AE94C068130C
+                               85205E0993B772B38E1F051D7E4906CB
+            stream[192..255] = 85B66B1EB0C125E3F9865639F5F58DA0
+                               FB5635203CCCEB24267A169CDDACDC26
+                               56D9D3F1B7C37A1AC12C2D4591A25581
+                               8056F4CE1EA322823B46E1D0262AF9C1
+            stream[256..319] = 5EF8664F0D06597FC9F9615A97707F5E
+                               6A13F64AB0EC392245BBC6EB57866470
+                               4C7B5DE5CCFAA645C87D740DE8ABD85C
+                               7EB436863ED9993A93C83E2E9B502AA2
+            stream[448..511] = 2B1E5C9F6F8579CCF2AC47462A3FA027
+                               54EF9674BD9DF7853846691FF3069B6B
+                               632A076A6F0A599DBA87D98345ACC1E0
+                               E69887B877BE34203ECAA7BB61FE2848
+                  xor-digest = F45D46E4C03BD623708DBEB7199CE4BA
+                               D1B134CF1A64003D13BE5ACA78B93FD1
+                               A7051E31EDD29950474EDFD0F5F39F77
+                               98C3E31AB21B13749CE04D5A71E761C5
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABAB
+                          IV = 0000000000000000
+               stream[0..63] = 19699AFBFEB858C0B8FDE8ED3132092E
+                               EB1BFD1EE952B5EF12E5B5BACE963F19
+                               A7534D093CFBA03CB4200BC711F78D32
+                               755BF79315A54B71E6275950C1103B7E
+            stream[192..255] = 3E7852EAD87C927D69D5BD3D2A5776F3
+                               BB5256FDAC06D4CB580E2C5FB89CF37A
+                               EA0ABCEA82FFC6A8C3DDD1494DFC4212
+                               530163F093CC2F7E4919C10B710FDCF2
+            stream[256..319] = AB4C66A62D981BA1D331C0EF0CDFA1DF
+                               C57A6BFFBEFC9CF69A01057C7A8F00DA
+                               870A4F0F0B998E63EE31AE412B552709
+                               CC7EBFD12D4B0956DA7BF136CD0CE676
+            stream[448..511] = 8969756E01B11938494961BD210547DF
+                               D71E7ED8C51E481E3AA87A909FDFEB6C
+                               BA724E9D99C69AEA298F77EEFBB0C339
+                               826D47FD1D733BE09554A4EE5C556C6F
+                  xor-digest = AAA5D74271D7CB5A2C60ACC6D6CFDF45
+                               CEBE408B8F2D6AFB4E029399980E17C0
+                               C4ECE5F11262DAE4AA26C40D1F6635C5
+                               E86A009165A026414F43A8A4672C1820
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4
+                          IV = 0000000000000000
+               stream[0..63] = 43777E64FA8A46B37A148622C5D239DC
+                               576E432903C5C3FCB1FF70E9FE2B4A2E
+                               2DAC79AD1D6CC96E3E1E917DC8E226C2
+                               C2B9918E031193E57A8E4A1553576F39
+            stream[192..255] = 585B293D093A7B98439402B5F1D11625
+                               6718BA7590E162090684E445DB3D3254
+                               1DDD4388DF0E258F3681EE2CB745F90A
+                               6EA56D301CBD44B5F5D087CB20960566
+            stream[256..319] = C720A67CD72EB12344F4097392093C33
+                               DE31762D6D881C1A53B84D8EDCCDC277
+                               CBB7C4DE72CD3E2C7D577164E3BD4831
+                               A0C60E36AA3A908E096915AA05DF1084
+            stream[448..511] = BBB07CB2CFBE366D730A5E332E957410
+                               9CBD268FD322F32AD71442CDC86C86F4
+                               E97F719DB9F8AD638AA7426E5805B9A5
+                               F6F7FACD46037F83FBF96DA2848F2485
+                  xor-digest = B940ABA5810883736827F2B2AA4561E8
+                               6735521C4FA428840DDEDE4FBC961049
+                               51F5F4CDBECDBFD3969A92E1A6AC2471
+                               2B9279258A6F6099CB4DCB55E507D3B3
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBD
+                          IV = 0000000000000000
+               stream[0..63] = 259D98A66976655F6F3395E80F30AF2F
+                               8480B5D8BA9BDB0750CEF022C4C756F0
+                               5E3771B22C1E4F438C4B0F54ED105E44
+                               9242E11835635BADB4D580E22B065E75
+            stream[192..255] = 2107132E373A80316A8B3CF0DD8C3BE7
+                               670D5E0ACC11089B14A09E0DD327B9D9
+                               D75180EEFA9AC8C8D7F3C02D36AD2488
+                               2BABCBCA98342A854F1FC0B5C5875E7B
+            stream[256..319] = 0C7AF847C78251495920232F828708F5
+                               6FCEE66E86BFBA6F279A10B304C26AD5
+                               F0F9A82419BE0AC24A89B73AEDD93178
+                               48A6F5B1ABAC11B8A212BE2C49D9CA09
+            stream[448..511] = F24D06FAE6168D7C9E869909249A8A2A
+                               9D9A4B424440533BE9A5818F97E8993A
+                               4D735514406957159DAEF80CD3B78EAF
+                               2AB7463F16A7FDBA493DC9CEA2C3803D
+                  xor-digest = 75A447CCBF9C30A9B0B84A58D76C1B3B
+                               8C7A1BC1FFC040620117B7228E77406F
+                               F0BC5D8A802B5E6C041541EF64E87DCC
+                               9A043AA3C57B19F0EAF73E49809AD1A3
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6
+                          IV = 0000000000000000
+               stream[0..63] = FC4A245C0ED0C18A4F1ECCF448EB6B49
+                               1DD5E6A13ED37AFBD9BBE377665E2C61
+                               13038F2A36A01A6CDC3B92C579D7D5C6
+                               CC9F940828EF8F2DF1E7BDE3099826B8
+            stream[192..255] = 31EC51814A2833E03EAAA143A1C7C146
+                               FA40B3860A714204C030DAB1AA6D9B8E
+                               2678A0D76BB1990349B251E169E89C50
+                               309EE8C97E1C232A4E4D047098978A1C
+            stream[256..319] = 3188B2D434D8CB0A678FB5493071E65D
+                               738403F6B680D66496E414EAB8653F88
+                               73EDEB11814DFC4819874B93AB7EB97F
+                               7B5E9DD167B50874A73D2EC6B8CF68B0
+            stream[448..511] = 12490C2A7A6DECB0050B492C616C2470
+                               42F6123A8EF50812B1C9B92EA0F64302
+                               7E307966757D26D57F0422981BA3F0AD
+                               FA7D833599EA568A6B97FD7A4C7AB521
+                  xor-digest = 9842463FE7F17039C945E9C3793EF70C
+                               33D6A23D8CECEA14689B8AB6C8FF2904
+                               09940FB0BF3B3100241D199EFFAF5C98
+                               1199D1933CB900F5E77B199099AE62B5
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCF
+                          IV = 0000000000000000
+               stream[0..63] = 1171EF6F03C07484C36B36A172DB23E3
+                               D76AB8158828483294EA2F04570B081E
+                               E26FDFF0B8D5CB66DABD23C56EB31D47
+                               763E5500F8DFC1A9ECF7FACAB545EA3B
+            stream[192..255] = 01AC754D09BF80977FB2B7C204F94293
+                               D4C03F0DDF0170B47C4A6393124AA488
+                               067FF64B889EE19AF4C70F2610905B7F
+                               D1462510F9CBF99133EBB156E2C4A82B
+            stream[256..319] = 3F84732DD5777698D4C866DD24A22F18
+                               6932450358104EFC4ED9CCBDB47C6412
+                               2355F8DCF3BDE0C3955E9CF2BDF4D710
+                               5F2E366B9F35CA387BF7F82A6CA2B96C
+            stream[448..511] = AB734E41F683C601C35F29EE3B1F7BE4
+                               424463EF75E5FC72F4E9006A10DD7472
+                               8CAC3D2A0CA402315D6438E692B35A04
+                               F4CE4739D5900C2702FCEC475B36FAE5
+                  xor-digest = 887A1880D92B4A537DA27B0DFEF24577
+                               6AEA48D8181765FBE0B8FCE1AC31F1DD
+                               C708E27BABE370A9917BBB1A04D5C5F5
+                               0CE80D8AFA1D0B973656E31BFBE7A9C0
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8
+                          IV = 0000000000000000
+               stream[0..63] = 0F4C6BBAC43D9E2462011B425B2AF0AA
+                               F4F4472749219FF58527694610F805D0
+                               7F4C123A22A0197EB83F9A57998E1AB5
+                               8842166B0C0E5043EF09C8D722C708F0
+            stream[192..255] = AB5FDFC97BCE171542082239F53EA898
+                               04BC492CA2B553DAE61E21EBC93B5F66
+                               2137CD694C3E5DA06EE7261D85D3AF6E
+                               8E22D3C9875712F32973CA0ED1AE3A78
+            stream[256..319] = CB76B3D0FB156CC9FE83D12A2ABA5151
+                               2C93E39421D047949C711CD4DF1F0CF4
+                               3543E43D30B05F9CB43305BBC0AA283D
+                               D6319D394D28454D6234A7F7FAAEF816
+            stream[448..511] = 8E5834B84AA99477DEBDACD3A2E4C976
+                               052724F43BE308F9BBDD60D4745DF427
+                               2A3DA5158254CDA83CED7184ABBB16C2
+                               1E3625395B5DC4E319300CADE2E77D96
+                  xor-digest = 9FF217552AA3F9DA75CEBBB092910F4B
+                               6FEE6498DE03A0A4DB78128B054D167F
+                               4E8F823254CA917436E953BD67D5C240
+                               A819E7DFC920347704D6794F82DCA205
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1
+                          IV = 0000000000000000
+               stream[0..63] = 40C7B4C41AB6C3E2179CF25DC2276CCA
+                               D584A4E951579A65677605E1303C923C
+                               786808E552200C8E18BAC59824AA0A54
+                               B7A6397A3294D9CA7F9DB39D4E9E541E
+            stream[192..255] = 498540F22935E1A2FAC6A35A0AC09157
+                               08F0C080EDB69722C13155AC6B9388D4
+                               18283BB36140B18F8DC26A1B63B9CDB3
+                               A5A7EA22C22A8B24D43D51EE7759F077
+            stream[256..319] = 0C9E0357AB612238E736132E1C1E6E43
+                               ECBC8C673AFB1BBF384ED3E0C9FA19C7
+                               4D78A10D8FE077FA235CF70809F0725C
+                               5893A78D1C0189DED7BB545C5D2063C4
+            stream[448..511] = B70C2A4129EF227A54629595601F6B2A
+                               3DD3C6C0758D4990B7DF370DCBC64E85
+                               519755E40413ECF512CB7B0043659DB4
+                               1BE20D5131CCF8F7361E64ACF5C31C1A
+                  xor-digest = BB8038D54EE67191F226FF34CCC34B9E
+                               2145F0C0BDF4BF87A42AA8AD79C7CD86
+                               32ADA42422C430EA072391904BD47162
+                               88C2CC61CED32E82DFAFF670F78412C7
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEA
+                          IV = 0000000000000000
+               stream[0..63] = 6C2F2E1D7A0337D560F641506E8D60D8
+                               999BBD4DD4F8FC9D7DCB38E916CF8E0E
+                               EA6E55808BB5B495B61EA490C4DF9324
+                               EFCF9FD16A4853734F8AF24049E300D8
+            stream[192..255] = 57BE8A966F934529B03162936FEF4323
+                               0A34BC00466703C175D84C7DF011D06F
+                               422AEE49B038D7C4914E9C5BCDC3D208
+                               1ADED025425759C5EB158216E7A8E67F
+            stream[256..319] = 88C5E2EF4F373FE7FF4CF0CBDDE0ED64
+                               FB5F508C96396A7FCBFB7D167BD6EC42
+                               25D77AD6C5123BE34A323DC89D89EF26
+                               FC57DD710C0E726711F1F06F4857F85D
+            stream[448..511] = 08846A7AD09A950A70A6ECDC7C8DD7B4
+                               6776A0F53A7F5479F10DCDC99232B97D
+                               27D9D0B98882DD886792326A04287A22
+                               7CFE1EC7A1575CAA637CB7EEB768CD38
+                  xor-digest = D4A7213EAFB88345DA7163E4B80C3D0D
+                               C3DFD8DA99D54618958CD4274119A929
+                               C7C2E2EFB81FAAD6FDFF27BA2CA7455B
+                               C906134F123C63266657AC934F48CDD8
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3
+                          IV = 0000000000000000
+               stream[0..63] = 917AA15D45025A23C5B9E2F47932C2E3
+                               C3F97B69547775A433A9224E6CB9EE8E
+                               16EF22299310E184BFF5BEDF77A9F9B8
+                               9F3D60D7D9FFE0ED1EABD48E1928A84B
+            stream[192..255] = 11FD219FFA07E90DF1FFB53DC198238A
+                               30057C16D107F03A8C2A2218649205CF
+                               CC8487DA92FC7A8DEB012583E2387BA6
+                               3FA386A94C2E838C37ADF1152DC3BEE0
+            stream[256..319] = E75DC42230CC855974AB1F25FA9A7780
+                               2EC221892C6DCCD8A4E7000973AF53A6
+                               62720CA6478271CC40812BDB8BC5FBB1
+                               2887FC6B2061B32DE0B7ED5D483EF675
+            stream[448..511] = 1571D95A132DE14F942A4D59EAC49B24
+                               621B254ADAEFDD177C8BF6EDC8BC73CF
+                               D7824CAA8B11F8AF349A033A77FE446D
+                               F1DAADFE4AE98C114DC5CE3FDD4174C5
+                  xor-digest = 0B6C52D155921E579F8015A416DA729A
+                               BD8189C24CA90060AF514622B23C66A5
+                               1C126171758DF78E839DF446350919CF
+                               47BAB610004447492960340FA86DDC4B
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFC
+                          IV = 0000000000000000
+               stream[0..63] = 899263A9CE37E955EF92925D42E169EC
+                               6AD615497E64ECBB0B74EAE669E07D5E
+                               E51589ACC4A532C39800B9E7D0CEC6C2
+                               148E739188611621187262E7325E6394
+            stream[192..255] = 27FA737AD5CFEB8CFF53C59676BDF696
+                               C871F29929936C20C79718E7E8931F2F
+                               6794DF5022A4C2F107ABB5055B289E01
+                               A4F38B9A7F97F9808B0499C6E3B135FE
+            stream[256..319] = 2A19F77A9046A7AE2F58231BA31F6D10
+                               2911262F25DD812CE4FFBD41FC1AC736
+                               A60CAFDAA43CE81A4E5A93319C58937E
+                               7DC7770FCFA3342FC86D257BAD5E3B6D
+            stream[448..511] = B940EEFC92CD38E1A9879B60BE3F29CD
+                               44A821817D2E0741418BBF0CFF82CB7A
+                               71F13E41FF6F8514617EC7F0169C5B1C
+                               1877F13B8EE2E8AAD858EC140DA115D5
+                  xor-digest = 180290ABAA4037BF689D655BD8DD6502
+                               613B775AF0292E2E9F62E801FDD79DA8
+                               1FF10467658850F906120A068A087A09
+                               0642A8C1FF4BA0AB489EE1970E1F8829
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 00010203040506070809
+                          IV = 0000000000000000
+               stream[0..63] = 8FBB05938890C28EBE13198462538950
+                               92F406DD9041C3CD66377E3F6D485E50
+                               7D72DA710BF895BE5BE52BB35AF1CF13
+                               666ACF4EA054C6C9246306C9B3258E28
+            stream[192..255] = 62E317BEEDF69791916694AD3792292F
+                               8675CCE8DB535B2199FE93D5C128577C
+                               EF22210F1DE65AF3B89612CD708B23D2
+                               21A8ED85B7FC23076B10EE089DA913DE
+            stream[256..319] = D51EA2973D8E0AB49ABCF8BFEE3769B2
+                               844A67CBDBD78F91ECB11B3CB3353B24
+                               8238DA823816F061D88544E46B91F1ED
+                               2ED4B1A4F051DFE9D96F5BFD748FCF1F
+            stream[448..511] = 642F22F11E3E2F6E5D866D5031F22177
+                               7443EA532911427A7A1FE9084D1BBD3A
+                               8C45638E83E5C75B20929BE96CF19902
+                               C3DB6990C5CDD8ABC8E9BD2B3532EABF
+                  xor-digest = 8169B575A5D7E2599C592D4DC87F12D7
+                               CCA4C0145C5CA5A1C7E85233AA2FA8D3
+                               911130F4650FC273AF1EE563DA881D45
+                               4356629746514BA4249C92723E5247CC
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112
+                          IV = 0000000000000000
+               stream[0..63] = B456ED402C2D0BA0A67187E36991AFD6
+                               FD45B256507998B6CB272DFDF27581AD
+                               AC07CCC11EDA08C21B69B550E8814470
+                               EAB44C98B526996719575822FACB0A37
+            stream[192..255] = DC6FD0F484C129D6AF7EF43DC7CCD9AE
+                               6D0486865CE19F36143F15A3D95FEB36
+                               A7E7ABC8102C5AEEC675CDF06BB05B40
+                               4A8766E95CD7AB9D596458D996D37771
+            stream[256..319] = D34F788A453B2BD77EC6C59EA34A3CDD
+                               11B64AD8162CE48B3608E385D5C61C64
+                               C0046D196A1014C436FE8B5A18A4D7D1
+                               E324D4A59A4FC05CE42FD6B6BB299463
+            stream[448..511] = 58230440A10F16A04B3C4C12B52BE3C6
+                               F07AD9B3036BE38965AAC8D35FB68E8D
+                               62547D73B756BA51A354BE3FB86B5879
+                               9F1542E4BD89A7B465284DAD409BD89F
+                  xor-digest = F83F29EF76CABC8BE7AD0B7BFFF6593F
+                               98FBECFDB72F155970034C71D8CA8819
+                               ACB39A39F296750DD348BB6E9E112E69
+                               2C4291A5EA1F470581CCB2F1A70A3B71
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B
+                          IV = 0000000000000000
+               stream[0..63] = 67BE253929BD2FDC177967719D13AC28
+                               23A963D64868570A3943D1372E9D5670
+                               010EA80FEA3D4853C931C6B50D335618
+                               F568EE0C1AC01C5C4A037D3B0221B8CE
+            stream[192..255] = 1C6F72A97CD629942A038CA2082D7169
+                               71891185735FC85C70CF4C8615A7456D
+                               1DF9DB6AF9610C4768BB09D0F076B2A6
+                               BEB583690E65DC810BD7F3A7A3688C98
+            stream[256..319] = 6FCF9DA032B499E0C29481906D4A9858
+                               E267A063113E212A81142E18F5E446B7
+                               AAC30FDB58E41FA7B3DE4FD5B53C32CD
+                               0014362FE73D8F9B5ACC3DBB571A42EF
+            stream[448..511] = EA420FA6DE60166F78E3979342202D0A
+                               825756DF62BCA0990EF7AD9F3A917FB0
+                               BB4E9A11374F3583EC78A531EBB11559
+                               8680FB37D40ED4AE586EF3B33C235A16
+                  xor-digest = 5FAD3E75389305841D7376B549304404
+                               F13118F31447D9AA2528AB5A7ED9A7DB
+                               A8F2682E96EE38F450200964EC80F253
+                               F9D9210E22D590AC4D903AB51585D868
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F2021222324
+                          IV = 0000000000000000
+               stream[0..63] = 9414A3FDE5CE63191CDF4977FC1B722A
+                               A8F1F76C76CAC1CB420BCA2BFF44467B
+                               DE51B248375C9544BD144ACD71D2C797
+                               FB32C4F02765CEFFD7AD6968E8561F23
+            stream[192..255] = B24CE417EF0C1F74675CC4FE8551C280
+                               E557A12B44ECEA330068C34401CFC3D2
+                               76448BB7348D50D72FEA430DE424259D
+                               8F911E2A3CCE5FDB4D52BB7A0292DBFE
+            stream[256..319] = 865EAEBC52AFE97606D6F088CB55FB96
+                               65647478E0DC588BAF60DE33D2DB9CD3
+                               B62E584FE307C974256C1BD9817DD0AD
+                               24127181247EB65B76ABF199F1BF42C8
+            stream[448..511] = BB1A64FD78257D141084ABE20C6D9AE2
+                               4E8A6F985E19A82B538F1E54E3E1BE75
+                               2C8C1044DF633BF8326CF6D4972AD66A
+                               FF7B3EE201861E9C89139D422B420AC6
+                  xor-digest = 9713E0E5704FA43A3E9EB406A5C13FF3
+                               D20EE8E84D33BEFC8264CF160425E231
+                               B849E18D7BBB26A63E375352E0D1C1CE
+                               F9BC8B468B6C856C22AF0D4C7AD59EC2
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D
+                          IV = 0000000000000000
+               stream[0..63] = 728FC5D8E9DB75D401696EDC029B6DBA
+                               E66E3F74D203A1CEA43CDAA79F71D0D3
+                               8BE427C4A20CC18F5FC7EA025563E2C1
+                               613C3FDE0FAF52109E000C3119DCC42E
+            stream[192..255] = 2CBF3985AADF34A4FA76CA990753C801
+                               C71B161C59445C70EDFEF6DDA8E2452A
+                               E1B66C43685F5457DB8B0CB38609C5A7
+                               9B131F6A0A28F103352C0809054608E5
+            stream[256..319] = B7451EC620EC92E0B23F0F8BD813F0AA
+                               33CC865A7EE5AAC215A9001E15BA87F7
+                               026D78F00C8038A56FE29047D6A1B532
+                               5E75A79154F419ABE45E63CFE46C719A
+            stream[448..511] = E79F738A940D21613AEDE8F5159D60AA
+                               3ACC145439ADDB9340CC6A80C67764E6
+                               F091E6E9D7F0F1624561122A34F718C0
+                               FA18D9DC9CA6EAB169AD64A63039F2B8
+                  xor-digest = 548F20CD49881DDCA90E3A48FAD586B8
+                               1BBEF350CF2E0907BC57B11FD61457AA
+                               240984080A805743FBA5AAE7524E26B8
+                               995F848DD3A7CE843CDC1EB23B0C55BF
+
+Set 3, vector# 45:
+                         key = 2D2E2F30313233343536
+                          IV = 0000000000000000
+               stream[0..63] = 77F2C518041023126A69CE4EC79CF615
+                               8DC085790135C0148C5F57208740DE6F
+                               02CEAEF71ADD6CE94239978496C653F1
+                               A84B7AB0D3C4530877FCA886971CF6AB
+            stream[192..255] = B592A4799B92D84EFEF8101B9393D214
+                               3C4574421A3DEE6D52D7B411AB94199B
+                               521F860F75421A26DD7A40C61EA27726
+                               D20563A86A9C545DE1641BC8876954AF
+            stream[256..319] = 6B5CF0A2E44329C41C6FBE0CC38B264A
+                               BFA99C27E4C8C04A98CAE3DBBB028B0B
+                               98CC3184432EEA1327EF9EDEFE8F4B25
+                               C4C2ECCD624BDE98C32968C3437855F6
+            stream[448..511] = A3F48AEBE55DD8D0EF7034B969FEE52B
+                               159A8E1B64D8D322F1F7230C98E4FEE9
+                               4087ABB7E83078260584D32845A499F7
+                               6466CC0375579EA68BF233B708597752
+                  xor-digest = 60F5543EAA07A4C209F7A2913B0424A4
+                               109FD4D36B9FF2BE37CA04976E094A48
+                               A4020BEC3B8150CEE281FB86C3EBAE0F
+                               1B0A80FD785ADCF153FE8FC048D52C20
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F
+                          IV = 0000000000000000
+               stream[0..63] = 7162A7EFD5F94FF52F861C7635F37F42
+                               6BAA72657B2F062265247E6FC540B840
+                               461018118515F0F40250F014E6C51252
+                               54A31A9EEBAB6C68CA269A03DA673C30
+            stream[192..255] = EBAFF76EBA8D7CC62E7F0D663A5D8806
+                               788D3ADE006CACA5402D000062A35EA8
+                               F007EE0859A4132C19E15E423F07A6DD
+                               DF81232C51E6AA7B7B8A9D5CD65F27DC
+            stream[256..319] = 40E2ABF3A038D695708FABE6DF6534C5
+                               D10E54CE7F34F89D16852183E0F9F8E1
+                               867C10B45B6D7820FAE61067EE1A2B41
+                               0829345A403456367FB8222110C4C687
+            stream[448..511] = 17F7D977F1CB048938FE517A73DAE10B
+                               7811EBF3EE2C6DC4D9951358BB168DAF
+                               9A339D7A90597C862E971FA89B7EBBCD
+                               0F1CD3E9962A44D4E9DB67CE6CAF3B5B
+                  xor-digest = 14B19F2825BB22EA0A1FBBF953647A22
+                               25575FBA5E159D8D01384AB2369AC76F
+                               59BA29828FAB3CCDD8E133CF83FB4C24
+                               C76FA7FE8AAC72E629EB764B50814E4D
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748
+                          IV = 0000000000000000
+               stream[0..63] = 2F2A5B1D3258CFA82BAD69EE8E8B5259
+                               8E7ED89CA7A6DF55EC65BB6EC6E83CA5
+                               0A29D8AD54761C3B6CB952DD39539500
+                               867B783939F4A64627357604D48369C8
+            stream[192..255] = ACE1C17F6154D45CE752CBB8DB7EF01A
+                               2CA4D6D37D92DC25003DBC4ABFAC22CA
+                               9E252BDE213DC7ACDBA695C1141192F4
+                               C09EDBA198B5C08DEC404F622A27A5B7
+            stream[256..319] = E7BC2187BD3EF07557DBAD24935D7EB1
+                               3AF246EFB93113068296C96A87902384
+                               EA3357AF49D17643E48EED5F47350D68
+                               CED7AC49CACAEAD33D96DA05716E79FC
+            stream[448..511] = E639BC49D5FD94E06C9E75D2D910B7C1
+                               ADE5EE5F04A7C3654468FC362CB537E4
+                               B90146B60E78D7B08B08AE483CB80DE6
+                               C111707356968B3A10C44DB148CDBDE4
+                  xor-digest = 4E4C67CEF3BA5C443BDAFA309AF1F3EE
+                               69B0D59A260B8B263C71565C4B16A1A6
+                               F31E038D0507DB40ECFC6213F20ACAF9
+                               F2B33E024290E85B54A03CB8FB8A7958
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051
+                          IV = 0000000000000000
+               stream[0..63] = 11E6E5763F2AFD0ACCE3E6B7F4188205
+                               2DEBA7B14C276BAF3ACEC85D3FB1C30E
+                               3BDD2EF764723DE7932900C098DB4C76
+                               4236FC6F45A1256A0DAD7EBAFE9FF19D
+            stream[192..255] = CCBEFD20B01C85029525FE88B4BB2004
+                               2DE2052F83179401A37713801F113179
+                               5C98527C34E57E397FB380B32A5587A2
+                               58DD1F869AD6BA38F6CF208F714447E6
+            stream[256..319] = 82DCF2E56CD51574F71CC3B78088D004
+                               01CF5E2CD2A1E7709B27EC0968ED1958
+                               4CA99E721982BF8D199C047FE7D9226F
+                               2FE0110A75B3CE589D1C6DA527A74425
+            stream[448..511] = 15AAF46C6F14E02FCA8DDF91F07E5104
+                               7D0D8F4B6FC44694D7834B6BD09736CC
+                               F7722BD45A3265841981164B7CB95F0D
+                               280E306467318E37875425B41377F41D
+                  xor-digest = 17595C45C3502CA757C005B36B101F29
+                               75DBB29A38F0AB5207F3C07F498DB9F5
+                               2673A976174408AB5B63B1F4BD8E659E
+                               EB9AC5D9EF903C701C8CFF8E98C633EF
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A
+                          IV = 0000000000000000
+               stream[0..63] = 15B36A37BE08F56B2756A595919A4099
+                               CE131F6515F976DB648550F4BF77511C
+                               57CED51989270339E281DC2630B761FA
+                               FEA435DBBCBBB5D54A290C42C40821D3
+            stream[192..255] = C2D48928A3EA49B9EB641DD6698D0A43
+                               4A91E81C69DFA82561B3659E0AC2EB12
+                               33C489F79120A31DCD57E47478C11E4A
+                               CC15BE6BE3A78CD54D502F392A8E2B9A
+            stream[256..319] = 904C54A47DA194D017FCFDA84A0A6917
+                               FA85BCF4A692D5B8F286CDB0D55C6C10
+                               4D5341AFE9BED71B48C265D1006E3C73
+                               BD757D95F5B0796620CFEF13637CDE67
+            stream[448..511] = A046675131EE800C6FF1017FCFBC463A
+                               2C475563BC2423548C794F8453E57E16
+                               F1ECB9635A35D3AC64B1BDCACE1B0CC5
+                               62EABB2D351C5D7F8B08CA0C82BED1EA
+                  xor-digest = A4D226F44A8815D2C6A83AE8DBE601E1
+                               CDBF010EC2224CC3F27BFC06718EFA66
+                               64022CAD04E73BA0ADE44E4B2979AB27
+                               D794B0D723D598C6DA6011C8B1D42A3E
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263
+                          IV = 0000000000000000
+               stream[0..63] = 15A6AAF067B88A6BD5B4A66BDD6E2760
+                               04E0EAAF79927E54663BCE6EF016AEBA
+                               FBDBC85030FC8AB22C074DE4B608D822
+                               DB06846B4FDD62AD64051579F80268F0
+            stream[192..255] = F8F308A3AB7F4A87E3DCBAE1E52BCBE5
+                               4AD50851F7CCD498BD23EA01AA8F181E
+                               37EE849F9E5DB749D4A3F31EA010FA99
+                               BC36E0031D384D803BE00A60712B69AB
+            stream[256..319] = D64771E1A9E4FDFD12010DD24087F046
+                               0087D138FC9F28D4EE99049BDE073E90
+                               121405A76BF8B465C73595C43EDBFA3A
+                               669098F409919036E7A8C2177B37B3E5
+            stream[448..511] = C6F9901654A9229AED8A65FA98194DCB
+                               E32FD084D4D79B59C8C4FE383757FDA9
+                               E890CF0C4A7A1A9EAE91E148A12C6194
+                               2B76E4726F0C47E5C07EED8C4F04F1F6
+                  xor-digest = 5C7D6B728EC920772CE3AF1759BA8DC2
+                               42C8E35A4E498BB87B5802432F71E1C8
+                               8D2C5C01DAB4F0F9C5F88FDCDE9AF13D
+                               5DF1EE60BF98479BD9D130A319ED4DB7
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C
+                          IV = 0000000000000000
+               stream[0..63] = 0AD5708246A177C95B49CF625665BB4D
+                               90E82CB734693BF97D455BBC443ACDB4
+                               D1AFE534F14150409019A00C61B3059E
+                               A257A4E70F4A211181BDFBF3D9243A46
+            stream[192..255] = E17DA0C501B8DC177BD62E2E98FB044E
+                               C18B2BE05816B2C0CBAA580354C93FC8
+                               29B694F706202FD8A717D3F8EDDF3173
+                               BE27B60FE1481DAF8608456BA40A2B45
+            stream[256..319] = EB15011A7EA818F63D3CCB5B64ED5FA9
+                               F322142927F6B7351F4FAFD40A7844BC
+                               9FBF450C6432FBD80D901BF650C852B9
+                               824CBD66B820214EB11576C19545FFA7
+            stream[448..511] = 3034ACE6B026090C1EEDB6B8A13E888A
+                               BAAC4A1AEEF976536253BE061A704F61
+                               43EE4D320E917E468FB87EF5731BEC9E
+                               EE87462C59324A34EB002C8999135CA4
+                  xor-digest = 99C46E0265CD539081CBE47BD2E6480B
+                               6403A97E6C5E1BEC41FE75D90F823AF0
+                               CE0E3A1402468DE669A642E7A68C70A7
+                               247DAA556628008016E03CC6D6D562B6
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475
+                          IV = 0000000000000000
+               stream[0..63] = 18A90F5C4E94A1E97D4CD19D225FFF4A
+                               BE6F82CDB7C898339D551AFA1D0775CB
+                               CB73423260FCFD5EAB8964971C396656
+                               4287D1D7B2CD4668AAA7B49E04771E0A
+            stream[192..255] = 8207D25C36F5922FBC667897D557F1A3
+                               533A4A17B4EE8709BFE1AD84A6A4136D
+                               45163B13098A2B2C5611D618EA253374
+                               1543A6DF88F0F59DD4952DC8770D7161
+            stream[256..319] = 978CFCD34FB5147D5C2857302C5CF77D
+                               9071F292B491E63075695A2D057419CC
+                               A5BB58BC2D5A0CC0768CEE290AEB9973
+                               565E67E2E2E90D7EE74025FAE3C651BF
+            stream[448..511] = FAC21AF2EF250348F87C73FE2E7D4A80
+                               6C79052C516BCE0712E3DF268032D476
+                               DFCE4BBF856B9A4D266F84D98D710D85
+                               960FB9D235325994F6625DB6A2481BCB
+                  xor-digest = 8E8A446199FD7F7B2C70781379CE0D1F
+                               CE2A20420B409E7E51A5A0FFE036D6D1
+                               111477462A598161B9F8C8DB2D8B5FA5
+                               B9690C2A1375C83FFCA14E3609F2562B
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E
+                          IV = 0000000000000000
+               stream[0..63] = 6FD19988C036138C2208713FDDB256DF
+                               3A82D2B644F1086AB7658CA1D9A907E7
+                               12035F301B748EC61879118E218BEEF3
+                               39ED631DEF5B52936C58DFD2E278E82B
+            stream[192..255] = 3CCA0595C340CB3A21F3B68BE4C8A2D7
+                               7EE6420C30BF2640E394661BBB20B94C
+                               7F257005DCC24DCACAAE7B4E366F8B0E
+                               C50CD5D55A78B4C9613397D925AB7740
+            stream[256..319] = D68D23E413C47390647810DD30D99358
+                               8A909FEA63BB74DE6BCD4D78C43E2614
+                               84EEB3943AED8837A91631EABE18E395
+                               26D164D4C36AD18835F5B9D2C7B8B839
+            stream[448..511] = 2417E102F0BB6D3092047474AC9A0D74
+                               E5308B7EE9A31C1EB06E73A44FA8ABE9
+                               61DBF175CF8952FA810435288549F712
+                               E81AE7C5C65F10680093B4200F591550
+                  xor-digest = 3739985F5BDCFFEE160E9B1687DAB5FE
+                               236578BFD9B56082F2B1A557B6463DF8
+                               CD017789EFFB4A115A73D56D84D0EEA6
+                               C7DA5FB7979BFE3DB94476D543985FCC
+
+Set 3, vector#126:
+                         key = 7E7F8081828384858687
+                          IV = 0000000000000000
+               stream[0..63] = 3B427E33024635136A0E83BD9647D8DB
+                               E4F69563632C1AD0629711EEADE4A078
+                               DC9E4038F72AC4240D0AB7A478453C23
+                               9EB0983B6EEBC9301B1B734C50A5358C
+            stream[192..255] = 4DE9DDE00CB99D194BD42AEFA1B4CEEC
+                               673E8771281909EE7B21FE320B9F157E
+                               53477EBADB39E1C533CB542ABBEC949E
+                               7DD75E2CDF4F8953CFE2658391A975D3
+            stream[256..319] = E13306970335C1BC94190C578BDFD236
+                               079E03794C42F3E3924DC10329E58F9A
+                               EF1A0E1642ADB6CC172BA9EC06ECB8AA
+                               F4AAE185EBB735AA7878B4DFB4D70F73
+            stream[448..511] = 95758DCA555D7FB0DC4E315837C8D009
+                               67AC5F307EF77EE40E4D44E2B6EC0899
+                               074428A478900DAF4DF9BCD6791D891A
+                               8BD84C81A74C04947E282AE40BA16DE4
+                  xor-digest = 0147757DC10372B87DFE9CE3BE85EDBD
+                               B172239F075A84821C5911095D95DA72
+                               34BB74F4E9E8167AADA47C5F3C60BB11
+                               E999080F233C9413D4DE1725D5F4732C
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90
+                          IV = 0000000000000000
+               stream[0..63] = 1B9857EF439C34749ABA9CE02055DF15
+                               9AD34187D97F0C3D56F3C3CB60891968
+                               2F6393137AB98C1723ECB29B760C3028
+                               6744DDD6C62DFAE05B17F01F2DC1B48C
+            stream[192..255] = 8057723D83EAEE1AC388EFFA606BEEA2
+                               C8AE9C04A53C6EEDDA04A903539A7522
+                               BF406997C5BF2A182E0BCFE96290CFDB
+                               C2DF72A10B1E89B7702459E752FAFD9C
+            stream[256..319] = BB727DEC7647FDACC6FECD8B1218C26F
+                               5BA1781072852F4907EB3BAE57344629
+                               09D4266A7571D1B3379BB62E58B8B024
+                               49327F7C4B5A6C873E1EC4B2BD67A396
+            stream[448..511] = 139D2F15D86271EAE4978A8CFFA6358A
+                               402E3AA43EF47A3E3FAA90A5AF4CFD57
+                               8693393F9EB42ED8A5889BBF48F2554A
+                               6D7CCC1520E32DB2388C6AFAD4EFADD6
+                  xor-digest = 9C7353A84717D9F41EA7C71316826B51
+                               9029F1849C29E87528191CD8CB412C64
+                               5D1A35EFF919C75146B0D98D075CBB2C
+                               E49C005F1DA8AA30EC5E9B3A4F9978C6
+
+Set 3, vector#144:
+                         key = 90919293949596979899
+                          IV = 0000000000000000
+               stream[0..63] = 8F40F554126F135C3EE44BEC9E17813B
+                               A17C482EB34DAC1AD2B0D7809F4E70A2
+                               2C652CDFAF80AF56E871E30F6E4A2C2E
+                               2C228579CDD0BAFB27212584217BC1E7
+            stream[192..255] = B84B4DFB637A1DDA0EABED599196D06A
+                               D4A1C7BEFB03C751B05DF05E632167CA
+                               27055D454734A4DB771E8625B9BC0623
+                               DF054B30AFE0238837AB8744D559E3F6
+            stream[256..319] = 21FC131A504B2C161172AD4FFF4795DD
+                               0AF26EA5DE0853FEAC20624B30075B8F
+                               A920BE1E60AA2C3CD774EEB1280CB89C
+                               61241551D7CCC9E6B7B5864FDD8E4D40
+            stream[448..511] = 220F42D646E5790016C95924CDFDAD87
+                               913574CF985FEA3079A7D4A0CC4A9009
+                               F811EE91258B81C7EABB401153E5AC61
+                               55FC7A61309AB7C3A2D00A88DD23CADB
+                  xor-digest = 7558D5AB744B5B6319CBD471D9A5223C
+                               63657D7DCB4F4B2FEED1C954AE4A5FB1
+                               20E8F969E3403F18CAFF35A63E1FEFA3
+                               40D39504FEC642008B625B4C3B6EC2FC
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2
+                          IV = 0000000000000000
+               stream[0..63] = 65CD1BFDA3AD37E86331BB02D1AFE4D8
+                               484772C9EC97FE691F9A43C13181E039
+                               DB2AE113EF2CCF17988F2FB8940D06BF
+                               E995833254544BACAB4EC85B3BAC57A0
+            stream[192..255] = 2A104806AE18383DE8F11F71B084BEBF
+                               4408310FB140940E7451286BD8EC46EF
+                               05CBE3BD8A2962B111E456F637F0BDB8
+                               0424A126F0B783722FB3D2C3EC91EBC9
+            stream[256..319] = 88BDED3D8843A8FEF37C2236C214C912
+                               B8ABE628BFF17A5705CA86B4444F85B4
+                               00DD84E173F69640ED5CE98F0D48B4B5
+                               8A9F45EFCB94A9A4FDEAD493ED8C6968
+            stream[448..511] = D2C8FBE1EE356CDA60DA9CD517B685E7
+                               C74208369F6515D1C1B5BB7A038D92C2
+                               7E4C0236031C2B76264E57D28973EEC7
+                               0C3996B4C4AE8D9D19DB6C1302A14EFE
+                  xor-digest = E5D2DB5200D4249D8685739DEF194796
+                               E64DDCC5A3B13DA2ED999C6597B1CC06
+                               F4466BE3ED2FE4D6532F95179F7D8AD5
+                               8E41BC081291A131081067391AA921FD
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAAB
+                          IV = 0000000000000000
+               stream[0..63] = FC745B2ACEEE3E0C67A57FA3E0D61AF4
+                               B0C7D6CDD3B7D671169A1ACA514FCF03
+                               60B35CB1AB0A21635E4662F413A3060D
+                               E7B8537FD6F821B5E42B476F929E7945
+            stream[192..255] = F37E34F6138D6C3BDEE7BEB5A924DE80
+                               8E61913F2294E88EE3637D0EC58206BD
+                               AECC26A34640B0B72440A54254E06BC5
+                               B73AE768030342D118961F38C9B3528F
+            stream[256..319] = 1E4D276E37A8757B463E0EE802C82282
+                               DA0361DFC75FB10E2391E3745CA89C82
+                               91281F442A123CCDB8FC320D4CDE071A
+                               4B9DCD91042F359D60D8CF63426D5689
+            stream[448..511] = 4B0D95B6C37BB873C51306ABDD966608
+                               7DA067CA3DBB57E4E9C226CFB3D92277
+                               B9397C42D9178448F2264A7147C97BE4
+                               F4014308CEE9ED7F5ADC1DB51225BE44
+                  xor-digest = 28FE5EC64458B95E564A01BB6290889C
+                               031744B80E7C27262002172F1B724A23
+                               EE50B4406A01C127DBECD04F4B8AC9E5
+                               31B7791FB4FE84EC24CA404AD57C902F
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4
+                          IV = 0000000000000000
+               stream[0..63] = 41215B1F02C2D912E82584631C5F85A4
+                               4987127584E5CCB8C01E26A2BEE5065C
+                               84A3FEBB392F859516E6728F43308E6F
+                               0CD08C5023AD5017FB87C879E589F129
+            stream[192..255] = 22C9AD380AE1D1EF211BA57DB5D39E5F
+                               834E95A418907E4D89697EDEEC748392
+                               E6B98A7302A2B615419951C5F646FD8A
+                               E000B5472FA1E83A0B68A7974A081471
+            stream[256..319] = FD35879DB6122BCAC0B8B9268EFDE167
+                               2A28F624097865E62EC7CB8920DF8975
+                               BC1B3A960870D882740B7BD00F3B4B80
+                               84D62D7FCE3935FB45DB37F7F45A11B2
+            stream[448..511] = 6ADEB3F5C0B0C301B1DEDADBD90E1CA4
+                               CF751C99E7021CA911D5E70E06738515
+                               5EF540B02B81CD51A6E8B8FFA9A6B9F4
+                               B2DADDE52E63ABFCF3A76BF7449424FB
+                  xor-digest = 525C8A60B8824E0D270760CCDE345C15
+                               10E2B70729AFE7193EB82E46F9210181
+                               A81E9AB5ABCF5B35FF0640CD6444C05B
+                               EAFDE2D10F1370494A8B1EA7F8618839
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBD
+                          IV = 0000000000000000
+               stream[0..63] = 0903EF2F01532E4314EF63AC651CE737
+                               A22E6296506DD8411A4028680D40BC63
+                               1947E4F5E0B1D3DFA75EBAFB5D59FED7
+                               F84830610B28CE1651A8B54F5CC68814
+            stream[192..255] = DC4F70265E8D9BC30CFF73545B48A9E6
+                               5C4B0F5F2B196013226A97BED640C341
+                               236971D5AB0A484E9C183FF0B40A9D23
+                               47785DD6B14C6BA7E543DE0FBE72E4D3
+            stream[256..319] = 9CD784CE89D4B9A686BC024A2522D887
+                               748768CA545895ADD33AA464A35BBE8E
+                               CC0F718793A947F24E46DEA47F0D3375
+                               B6DDE773383214C176C8ADC2B90C5F5C
+            stream[448..511] = A7EEE91CBAF14F5EA320B527B5A8CCC2
+                               418085671A4C07CB7A5B23E325B9C2BF
+                               4D0A14D07A90CD801DB63D7928173D43
+                               9DBE661E2FF8C4D9527A4C9B01DA16AB
+                  xor-digest = EFCEAB4A86ABC046C243EEB978E7A868
+                               61278939C65E6E5111A54710D13F4B64
+                               912499A79BBCE0626992428A9288A827
+                               7A795AC84F0278909424371295158243
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6
+                          IV = 0000000000000000
+               stream[0..63] = C547FDEB9B21D27387DED1CE013D0A46
+                               10A94591337307D8490D084FB06BD1AD
+                               B2801FECCAC1A76F96E89BEC2E7FCE4A
+                               E83BC212CF1FA03E027D6F8D4078C12C
+            stream[192..255] = 16348EDFB0B34556E129351D6C032BB3
+                               3E546782156ACDEC901DFAD6957F4DDB
+                               40DB1EEB4DBDE6766E345CED3977E27E
+                               FE7558277CA6D731B46C2EAAA730AAAC
+            stream[256..319] = EBB90ABA8A69AF960E2B34DA73808CB1
+                               EA579C94AB52F2C6810FC6286091FFED
+                               966895AE0AA12786365D03982969B594
+                               D17AD0034E2DE3B8F6C40F2E18484896
+            stream[448..511] = 614EF59DA86EA61EB83ED7B1522C7180
+                               CF698E9AFF4BC3592F096029A54161D5
+                               0C5583ED6E61FB62787EB5B452B60A5B
+                               13378D503564A7BF2A46EE3DD31C3ADB
+                  xor-digest = 8EC82878F9636990BDDBF035B73BE82E
+                               2E9A8EE901B30983CC733915292200F1
+                               42ABC0C1C8BD959699019913036E1C19
+                               021AB686C731F3A3081D5234E59A0CD2
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECF
+                          IV = 0000000000000000
+               stream[0..63] = A3AA3180C990066993F39878F1C3609B
+                               E8C1A940EE843F258215DB1E515A594F
+                               2BF9313400DE866DA29E79EC8D76D156
+                               1A4CDF04BF3291EFF33ABAF0E87B0B74
+            stream[192..255] = 30EE63F80C38B7C0A565E2DED188BDED
+                               0DF23A2CA3443A4A9C4845720F983098
+                               E044E71A847014E62F4A1B25842115CA
+                               E95687AC67FDCA4D93413B241E651449
+            stream[256..319] = C8010EC7569B93F56F200F6C27022972
+                               5EB75A4CB48C1CF776EA343D0141B458
+                               174BF25A6A0C25BE0A0497CC2EDFA356
+                               5C10CEDB828AE79006C6F1745EB89508
+            stream[448..511] = 3B1D508608645DF5BD9CE94A87F67EB1
+                               3005F4C18DE8A1E8164CD671A7DF9949
+                               A0B2136489F5F48BA768A97031A3CACF
+                               14EB106AC087AC2FFA7C67592309030B
+                  xor-digest = 575EC3CEB730350112AB5528E185FB41
+                               54AC64F2B9F74E4D86D23313F6954751
+                               3302710988AEF31F7E99C3585F48FD81
+                               4A35CD4129352076E78D389BA6F278A1
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8
+                          IV = 0000000000000000
+               stream[0..63] = FFC6F717F60B07582C65A6365B391AEE
+                               04CD8F7EC56134CA8C3C9DC4590E30A9
+                               AAF7AD4311EA954BBE34E966C3A6309D
+                               F888D72D8D52B9598A2F023F9EBC7A43
+            stream[192..255] = 06D1C4ABBA55E7CA94B37F4D00BE5C0E
+                               6C10F86AEC2ACFB15646EB109D2B048A
+                               F3F0F40505E9A9819891444D41BDA588
+                               C0599C921483303BE10A62A734D6F0FA
+            stream[256..319] = 5DC3E96DEF5DD5C68F2E93EB92D73583
+                               DEA71E96998C8B67DD0896B5C1C16902
+                               A8DDD6FC3D072EA2DE7702F99E66E200
+                               52617CE8F873935B71EC5A4FBBEF97DA
+            stream[448..511] = A3752A840A93216F829D08201E09302B
+                               81925CC40ECC085306C40333CEB273C3
+                               2ECB967D0DE00991B18B2FF280D7A114
+                               143FE8E90627F24A3EAD10865EC9FDAA
+                  xor-digest = CCC29583E0EC7D40F0FDAB552B8BFA8B
+                               2B79A5E5252C984105C7F7BFBA759E40
+                               BFF9FEEBD02731C6BBBF7DEC542F98E8
+                               B4E65389B2B5B8F03B5F00FD12B82C55
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1
+                          IV = 0000000000000000
+               stream[0..63] = 812F8E9A650A8CF16BB3AB184FD1D31F
+                               EF4F252AA4F8050EB6716B4620354966
+                               3A8766FE627246B0665AB010B6DC843C
+                               A3FE354F8DAD348EE89B55F93A0CAA5F
+            stream[192..255] = CD4AD6EBAF1493FBFBA932ECE192404B
+                               9859E57EC5D0FD9EC0D3DA356B710311
+                               C829D0B04E0FD491E71620BFCC3E2EF1
+                               8637149B228D6A23354A5171E966DC46
+            stream[256..319] = D6D774BEF485D061D088CA338F5B13CF
+                               4DF38A632C2DA74746ABD1FC91DBC754
+                               35D43B9001CD277BD563CCF9F7778D65
+                               A70BA9C7EDCA2F4E79F69E488A17D9FF
+            stream[448..511] = 4DB232C6939080D89B8F7CACF259EF30
+                               B0BCE358E534925BB562E06FF4D45C88
+                               3F83BEFCDA513914EBBAA9413B2B54C4
+                               B3E8BD223B5971D94B994A8002DF458B
+                  xor-digest = 083204226062916C19CB55172BE9F5E3
+                               C4E6FE98226A76BC1DED82964708FFEB
+                               72C95CFE1CF517865788A60882775E24
+                               B1027305B967F9F323688383C854AEA0
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EA
+                          IV = 0000000000000000
+               stream[0..63] = FCD78F73AD6A042862F97BFE0F51B9D8
+                               7C4BE8AB997A29624437F3618AE0A115
+                               4AFF626D1587F74D2B8BA9A06A61AD07
+                               6B3E42A4CAB56F17B5BAEEA76BC3A08C
+            stream[192..255] = 1E6C4761AE88601B90EF63B5B4498CAC
+                               D3BB8D5787944C4AE2701ADE032062A7
+                               787200929F2C8D14F7FA0129342C98DE
+                               C9392A2A3A613533295B9CB6AD607A7F
+            stream[256..319] = BB3E18E8D7027B75FFF944DD47C1B4EC
+                               A7CD931CFCCB66217FC57CE56D8C3175
+                               F276C40708F1A1BE26D4653F16310C4E
+                               34213FB05498BC21E61D6426475E2FEA
+            stream[448..511] = D152DF128114D2B0EFA12B75EE2944FE
+                               F4264757AE149B805B5454F2058DE5D3
+                               55DDFA7EFFFD52178AB9F3D9DA4A5D3A
+                               37588C226B91D670839DD4838B30BE9C
+                  xor-digest = 27EE15ED913084724C1D9B55FA4868D4
+                               1129E570E32122F169517AE9FC6EA1BA
+                               74015F35EA6D0DA3003D88B43967C902
+                               0B889CE7549E0E635D56A7ECB44D5F57
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3
+                          IV = 0000000000000000
+               stream[0..63] = B897FF96C8D82DEB8649C1CCE2859956
+                               26F5835FD5FC74DB54E4B0CFEB0ED422
+                               B2B46C663524CDA4127DAFCE96FD5E31
+                               05DCD4BB8A87576D08E80EB150F8079D
+            stream[192..255] = 67116467718A3A55597CEF13533345CE
+                               40388A0D291DEB8B1A2B89DE4B7BCC37
+                               EB872293EB46DB23F894686DEC4F9BEA
+                               2164F912987FF1E8883D002BF09BECE2
+            stream[256..319] = 243EB369F15474FF7118A0EE6FCEFEC5
+                               4E1ED102389910B43232368D6C1D18C8
+                               B6E8DE66BB679D5F88CBCF5E307824C8
+                               0B41E7E6B6E2CC13C4BF328616897F51
+            stream[448..511] = 8BEBB5F5E1FD4A62B2EB4D59659DDA2B
+                               9A7158A94DACAE33950AAC2BA5A5B347
+                               B0EBE24BBDEFF78B20BDAA58A1C9D52F
+                               905CE1FE91FFC030D744970C267C59AD
+                  xor-digest = DFD8322810D23F5C847D32EEC51240CC
+                               C6FC1D32B9E9CDDB34F9346A845D3C18
+                               B7797FC07DF1D752DC1AB9921F6C6B15
+                               8C57336AC2308412B735BD1142378FCF
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFC
+                          IV = 0000000000000000
+               stream[0..63] = 1C871DC649871E394E06E10BC4BD1109
+                               BCB5FEB1DB50E67DD3C9F60BCB00C391
+                               32FF718C1A31396FE8EDD041B91A2822
+                               D7BEB69849F88C03C0367F0CF38D7E07
+            stream[192..255] = 4702CFBB4DFF8A6E3EE9ECED3B463A45
+                               ED09B02AA51C595107144B92B07B37E9
+                               AAE451D87A7AB1EC6A899830606EB9D1
+                               BDC01206ACFC06A6C01410E65AA2E608
+            stream[256..319] = 708E1580E3275E976B6EFA0C6320087A
+                               F63A4881A79638DA73BEF3298F95BC2D
+                               E72C517A87DA44DC6949A15B0F0DEA5C
+                               A33F0B2B7FD5120BD62A86CE21CC9069
+            stream[448..511] = F393BB1916B9C1846B168482320617BF
+                               5E24A778C01BD0967C16D5FB68F47257
+                               D59E20BA0F80DF8E04DD366FD5244A70
+                               834A41FE82EF8B8443A110DA21027DE7
+                  xor-digest = D952F236DA536B3313CCD1007FFC19D9
+                               6D4CF0F5C1A61879C131D01A5469376D
+                               C77F61A3381A96B7FB452AA2D6FBCC73
+                               18A6BDDF17620E8054561E2ABE026752
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405
+                          IV = 0000000000000000
+               stream[0..63] = A154B44BB36F0C2D49096E4308BB2642
+                               5A925F4CD962DBBE344922607D2685C0
+                               30C82EB1C55D8D27BBD61474705C1977
+                               B65AB09302D11AD4004E8F17152F36FA
+            stream[192..255] = 70971E5964AC6AA08A2C4203796AB670
+                               747AB4FD9FE3014F4E180AE501A61A39
+                               C064B32E022C1485700FB66DAE518EFD
+                               6A52E8C1242CB954FBF546131435941F
+            stream[256..319] = B646DD32962E795ED39927BB004BBECF
+                               2864F7FDC8D4212897764B66A5972BC2
+                               7A41BD9C63958E928B3843FCE8C9C028
+                               7EA928F1691E23BAA73C8F95A4DDD836
+            stream[448..511] = 2A7A3CD8E7A105DFE3C5F2122482B151
+                               42B67BE331DE9C8E7A3D65F382E06973
+                               41024651FE92B9934C63591D6DFF5C44
+                               96C65ACF76E9152050FF0D18223A2C8E
+                  xor-digest = C1B0B06DD274D92A5B00BCB0C57B61EB
+                               AA427051C21C0624B9F3240693F1C165
+                               394B8DAF24641D83E68358539B65B2EB
+                               75DCC25D76A7A8DB00B1E613749EC709
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB
+                          IV = 0000000000000000
+               stream[0..63] = 5091E9C5398B2017021686B85F60CDAB
+                               9166DD09184E1532CC3FB5392734D8AE
+                               88A2ADECEEB7E07077677E5F8D732CF7
+                               1BB5F632336FDFB9BDE053CAEB5DFA89
+        stream[65472..65535] = A3066681B7F312D413BD83310875393F
+                               14CE89C2BAC9D6A0F999FE7420CD9C53
+                               ACA21441864BC9DB96139D89B8535FD7
+                               6F6664D0A8664D7D223F4523231276D0
+        stream[65536..65599] = 7A1CE5BB334302FD4B35AB01217A70CC
+                               82CF8767A7FD8DAE98FA60960B61C10B
+                               5ECE8F1E86F9B74E0D6E2BABD8A05CA3
+                               D27E2A8171C754A22C410EDDA7FD50AD
+      stream[131008..131071] = C2C50D9680447CFDB8AD39B7A00F1FFD
+                               C10FE646BEF2A83F0660CBB28BB3F515
+                               9E09429683A23CD6639E8C72666FAFAB
+                               BCEC9E6FDC3C8D94C4EC09AD33CEEFC2
+                  xor-digest = C186F30DABD38213B944837AD59E1EEB
+                               C9EBAB630C6212D1B1A9A1E735F6BAEE
+                               BA74B319B9A0F6A38136C9AC2F0D51E0
+                               B047BA3B738F2874E5FA40CBC38CAAA3
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF0
+                          IV = 0000000000000000
+               stream[0..63] = 063040D057814B53C4D186F91EEFE7CF
+                               2EDB193AD1DF81D921127B4FDB6E54A0
+                               E60231FECC69AF6E09A1B2B4A6A706C1
+                               D7D6041EB8EEC9567426A9CD8FBDF17C
+        stream[65472..65535] = 14ED5B564DE0839D907143A967616601
+                               0876E6A1AAE760B1C4B2699FC8A87EC5
+                               DA77BCC701B4D117C870142E423A9B3D
+                               6E533EC3DE2266172AD9174C315822D3
+        stream[65536..65599] = 7923588C931BAF745BEAAC8F6C9DE5A4
+                               CB7E8F37E3E76DD3C37E68C70D81DC25
+                               85E27E9CDD9452517B9DC87A2E114D91
+                               333D38167E766E4D14BBC44F33E0F046
+      stream[131008..131071] = 2FB8BB39AF99A63E543EFBFE4190604D
+                               2EBB71C61EB11243AE70138DA3B2A4CF
+                               226D877F4AB000C749086D8BB9B5ABF6
+                               6B8E83E1468BE7E7BDA2925601C1AA0B
+                  xor-digest = AB23E288CB130159CFA385B369AE6A27
+                               94CB2290E349E6C7A98BF9886E90FEC9
+                               768633EB20387AC4337FA9963E284F42
+                               F780B6AA51A56358E72C23D31030C605
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5
+                          IV = 0000000000000000
+               stream[0..63] = F349C56AA219721FA1EB8E8996E5FE7D
+                               A666381C900336FA802A2F723D159507
+                               A3FDE25857E2A9B389EBA34928F7853D
+                               2E91E15ED13B7BC4BFB976C35B5B7C6B
+        stream[65472..65535] = C685BE3DF2E83C17874CC6480BBCFF5D
+                               89EB77DF2DE4E6BF870B7D07D9EA61E7
+                               E5FC735A26E0DDBD4920E32825A3204F
+                               876DDA6E715710986397712B1E702722
+        stream[65536..65599] = ABD8A78BDC89C14B11FBA875CC5A1C23
+                               96B4D794BE8C25591BBBD12506347605
+                               43D28CB4163E378058D38CAEA78C9A65
+                               B2859E9A8E461C15B344EEB7B151195B
+      stream[131008..131071] = 029F6DA29DE987BBE7C58C8961D4E011
+                               4E9D4E964C8C5F13BF23470C50E87BAB
+                               9159F357180C4684F4168E139D44D66C
+                               09BE1A9A1B0DF8B5951096A30EC39884
+                  xor-digest = 6A33A26D0A501D413CBCDFAF457FC559
+                               15674937012D4694335BCB406461B7FE
+                               8904AD30E86CBA067C8FE9C273DC9BF2
+                               C1EA484791F6B21A35CCA4067F6365E3
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA
+                          IV = 0000000000000000
+               stream[0..63] = F8363E0806F60AF02604D15B7FB9B2B8
+                               8D5710669C4808C6C3428ACEF5D42719
+                               DA055FEFCF3735B40BCFA9591A9DF4DC
+                               ECD278BB6C70FE04AEACB0889EC7277C
+        stream[65472..65535] = 71D7DAB292A1BECDAC0419DF4B06A8D7
+                               1988BF35FB4D6A1011BE97F430916744
+                               F7A7BBED491E9027B53DE9C669DB9C08
+                               CBFD4F9AC1B609C602973C35ECE9D5A6
+        stream[65536..65599] = E3A8353979EEEFAF0ACCADA7F0BAC959
+                               95DE46A90035924AF94C5FF9E554149B
+                               DFF0753207C61915FAEB9B3189577CF4
+                               39DE3F888E269DB9C717CB86354666B5
+      stream[131008..131071] = 608D85CCAA3D106C95F03F5647FBB7BD
+                               A0DA6FE65CE865304116D80FE60D4F85
+                               069AB65F9E353010567DC57D2DE184C8
+                               51430B9B9664555FD9C06AB7A2D2686D
+                  xor-digest = 42E0912C4DCE205FB1A12DECFA68D058
+                               3AC741EBE567BC0F255E746DD46C0A76
+                               96B3F9920D666F25A6106E2D46595ECA
+                               E09A34D4EACB2D83E8E87AF93CEE1F75
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000
+                          IV = 8000000000000000
+               stream[0..63] = AA31003C39BBC0D415E0D00CFB0040D4
+                               CF12A2CA751958774124D23BD83D7BCB
+                               E9C3D6A85F6CBA4DC2C1344FB1F49AC2
+                               0EF62690FE8C164CC899E41756C5F00D
+            stream[192..255] = 4FA6A5F7B33631E3C6CFFEC037703A1F
+                               9BBDC35ADF72E95D2D48539B88F7C19B
+                               57146E906F6EE50AAF6E88968FEFACF3
+                               614149BD4C91DF2F1779B06A92B78E7C
+            stream[256..319] = 5BF9FB7D0A00E7379D234B44B4A68270
+                               1DE56877A924086C6CF8FA66EB6C89F7
+                               E88A8219182241794DC96145962BCDA8
+                               22AAA1AB437FE9B1E6B1C020C548F599
+            stream[448..511] = 3989BF325BAF276F2C334ED2AA764EFB
+                               319163D6C70577348479D5A8C480EA92
+                               FC28E8909A2C4C7D4623CBEAC289B2E5
+                               DC095E039620235A3ECAE3394387CAB3
+                  xor-digest = 5FB0B317607EC61E7BB97528B7AF49AF
+                               76A347C68A2D37549308569969353925
+                               0B697879FEC80FF4A4DB42C9E54B5239
+                               26507E5C31E267E04635A53834FE82D6
+
+Set 5, vector#  9:
+                         key = 00000000000000000000
+                          IV = 0040000000000000
+               stream[0..63] = EDCF6E2DFB1F02241830309B14A02FD6
+                               BB071C6B319E26D205DE01982F98D507
+                               9336FAA86D61DC33AC9FC84F8D6E18C0
+                               1BBDCB53F7160B7F8A31DDE9C964FC5D
+            stream[192..255] = 425F35E48B8557127FBED09EA3E4542C
+                               059E9DFCBBCA0576B9D0740F3770AB08
+                               2D106DE7DFA8363F7D889D027F95E429
+                               C10741B421EA331EC3DB64ADCF1691C7
+            stream[256..319] = 58CB65CDA3AF9955F04FBCB082D93875
+                               A55921392ACF2037370734005896E5B7
+                               F15C3427D7A05BD0F82487BD1B545A15
+                               5814C17570F62AC37CF33C4F2BB5D6D9
+            stream[448..511] = 05CFBC5F2DC9AA8222E6ACC0326EDDE6
+                               9F96BB7F6A7B61D38EC64C9191C4B3BB
+                               B86C9E7CB7C79F6C8D9E56316D32D12C
+                               281AF66E76D45FE8FAC4CD97EE4F3713
+                  xor-digest = 1D0FA1F8CA6B06A0F95D5A848778879B
+                               660E2DB9985102BDE85C18FA615122A7
+                               EC0AC5BC43DADBBD9F40AABB0902314B
+                               E0FD31658F83F5283DF3D9017414E071
+
+Set 5, vector# 18:
+                         key = 00000000000000000000
+                          IV = 0000200000000000
+               stream[0..63] = AA830DFD314BE843F988DD7FFFB04C19
+                               4B9760305818B8D940E5C1B793D8F73D
+                               A73D9F81B6BA1FA56D5F98108FDE0E8B
+                               080094B8035D9B5319CA0609E57D97F7
+            stream[192..255] = AB0607CADE88E52F6BB8B4729B00E6C7
+                               DCDBF0BA25DB5832D026D4E9BCE90972
+                               264D939F82CE281DA6C2E4871B7EFA07
+                               368FDDD6AFEEAF88C40B0FA8BEEC2801
+            stream[256..319] = EDCCF48CD8C613F2BB2CC08B6A8F0538
+                               A2A5F741D3519B2C600F2AEEC0CF9856
+                               73E7CFD1EF17E24D35F9F9F5E658205F
+                               A0D0D38BC30F8F39426A64102C501BFE
+            stream[448..511] = 7C26191CB34F9629EF58FFD7CEA9ADC0
+                               FA86786E15FD04ED0DF3E297E8E8BECA
+                               23B7567628D9EA8B0AFC82B764571516
+                               CA3B819C2EE5380BD26849109E424A8F
+                  xor-digest = 64ACCE84D649704CC3896D792CA30BAA
+                               F16B81FC164A33407454771D50A893B2
+                               C35DB0177268C666DA8AA6A01E66A880
+                               3CCA39993BC179F1E6F0703F641F1661
+
+Set 5, vector# 27:
+                         key = 00000000000000000000
+                          IV = 0000001000000000
+               stream[0..63] = D80CA9F2391BB88AE73439F213225129
+                               625C52777CD5357C9E568CDD4A378370
+                               C80D1C8013B14B819A37306FAE73DE29
+                               1CE782955D22307540BFAF708C9E3DE9
+            stream[192..255] = 75CCD48F91EFD9C88B19E20933BD361E
+                               8DE89295A535738B360A070A116928AF
+                               A5BDB489E6D285D953C4DE394687E660
+                               8ED2E353245838A75F959EEEFA3EE02C
+            stream[256..319] = D77FBEFA74992D2C7C15EB25748AFB1D
+                               F1D50C1D77FBA2AD784345E4A87541A0
+                               3ED9150710C5699CA712130C7FF5694B
+                               23F6CDCD36BF475C12DBF9B7C6743DF8
+            stream[448..511] = 6F9BFC6BD5B73A7401009A530FCB5883
+                               D38864178D6460287CB58C41D0392099
+                               A6BA3D0A7B4A1A6805924C30E3DEE87C
+                               A83C090E903F7B8B5C9F4FA7F50D4649
+                  xor-digest = 09888ECB9B3B42A7B1C505D725EE16D8
+                               4835C46129A2655DA8AE7AECDF1984B1
+                               2F3BF1B1D1BE0E92D241AAF75D21ACB7
+                               CB8B3360F1A06717DEDDD1750640D2B1
+
+Set 5, vector# 36:
+                         key = 00000000000000000000
+                          IV = 0000000008000000
+               stream[0..63] = 9746378BAA4BA9EB639320E3D2E116E6
+                               4150CFEE6D1B7A9AB21645565214892B
+                               BF43351C91AAF149A8148D19A5418732
+                               49335938CF2243A4CFEF34C83D7BC831
+            stream[192..255] = C18F8F48F24AD9DF5871E333A7B6FDCD
+                               B5233F46D4250213C87BD37C19D0DCC5
+                               0FFB8E945D36ED071003C3807757E1EC
+                               B8B8BFD0C892E6DD649F5E0CED7B283A
+            stream[256..319] = 42C046C617AD85FBB5A4DC805FAE5463
+                               90F5CBCCF1AB9867E3AB22EDB59DAA8C
+                               00A7C2767B58724477D2A106C3C49F3D
+                               B580CE0D00CBE5A6849AD15E635286A8
+            stream[448..511] = B80AF7EFB65058A9F78CCA279160A8FE
+                               56347CC44AE11404DAA704EE51BD35C6
+                               E80A9F2FD4FEBE72BE96B5E841F4AEBB
+                               44FDF2638312578D89CAB1E1D43ACA8E
+                  xor-digest = CB7327C3D0EF3FF2786E256B47C2E7D2
+                               CFF895850C487A8AF75D984EE80FCA83
+                               B08EC9F929B9C51A3511E2AD43626707
+                               F84A35783EF1C2C7E1FD3E06D8A73DC1
+
+Set 5, vector# 45:
+                         key = 00000000000000000000
+                          IV = 0000000000040000
+               stream[0..63] = 41502AA6BB25EA190C4504A881AD89B3
+                               7D80388F2CF9AF4C61E9B12FB211F523
+                               A4EB9C768FB4DDB0F01D198E4E3AD6BF
+                               D84631AB11368B52BE0741332F52BA58
+            stream[192..255] = 97BAD42000E5D922197EB5310603D1FF
+                               F8BB3F46BD950562AB04CDAB243146AC
+                               B52B4C037A5FA0F5C0A13A1C1F67D9DD
+                               4CF251DEF7443758A01F9A8EFD35E3BB
+            stream[256..319] = 496E6896CF2293878863E405DBB92BD0
+                               35CB640447FD71651A9BCA9A1CDD5B8A
+                               3E17EC74A4F9995AD69C5EE5B0EFF6A4
+                               E08F64EF130C3E7D8526654BAD4AD38C
+            stream[448..511] = 235A255598E2C31DDFE49470FC091545
+                               F66AA90741E583831B66D333602741E8
+                               F680228393AE9B9A408929B6C7CE1E6B
+                               80ED6774546EF51C6A02604B960232FC
+                  xor-digest = F7EBC32DBFFEEB8DE747947442906010
+                               6520C75A5D8502286557E2388D22862F
+                               D4A308861F381A7D64458A09870982DE
+                               BD801DE5CFE02C300570C3CDFE81D062
+
+Set 5, vector# 54:
+                         key = 00000000000000000000
+                          IV = 0000000000000200
+               stream[0..63] = ED151DCEDD9F1F783F8C893B82CD83CB
+                               91E69D41F88042BB7262B6002B8C4CFE
+                               350012645CC6DDDE3D6E031EBC0FB2CE
+                               6A04589C30D059575A7C8169A7948D5B
+            stream[192..255] = 2DAA44EA6467284B875C6DFB1167DFB8
+                               17E70D4A0ECDBA8F37735858E5A5CD0B
+                               24A0382D6DA70A7E5FF1ADF0BCA15B0E
+                               A3704D8E58910F6B299F454624C46C07
+            stream[256..319] = 06FC81FB36BB519AD57AE6B5874BDAB4
+                               0C97EF3FC9D11905B03BFB259B909316
+                               48B149A42DDE6A11D5EA7CC272731BFA
+                               9DF5BF2AC62E16C7CAD3DB9EA307E343
+            stream[448..511] = 641689788115C42FD7CB38D295063BA5
+                               E78C56E56C8AA132BB086AC418664C74
+                               05AC6F1FADE55B32B56B55DE3FD9EBF5
+                               9A316813E314491733A61CE8A6267570
+                  xor-digest = A56A14246435F872248A5223A448EC09
+                               E0E120B89E63642FA575AC40DA19447C
+                               D19216050400A747E25978028E05E97B
+                               9819B6B4197110C61A305E47441D2964
+
+Set 5, vector# 63:
+                         key = 00000000000000000000
+                          IV = 0000000000000001
+               stream[0..63] = 5629A5B12B8569521F16AA0A6B02A9D5
+                               14DD1A3699818A73EFC0DCC08D10AF43
+                               AD1E9DC32764E142A506AE39CDE4EE17
+                               C594C60AE66475EDD564EF9D394C85D7
+            stream[192..255] = 817B3F1AB1F1908281659B8B6A6E763E
+                               4516626DDD267C92CBCEDBD3F03AE1A1
+                               0115E5F1AE3AD94823453035EE9A302A
+                               49D7E6F182EE680E325F3398CFD1B7C0
+            stream[256..319] = 6D4E4DCC30C00ADF6D552B1BDAF3EA47
+                               62D62BB29071E8FD4B3B6C6D621BD148
+                               94ABDD3445F046D79CC3B6A683249F94
+                               42C22DCA9FCD7C197A7C359F8F426F38
+            stream[448..511] = 8C18799D3880C4A5604201B2DCD37F34
+                               B4007CDD94D46F9D46F79382D6E511BC
+                               A797B3641DFE6B07F75666D9617A5E68
+                               0BD19AAFC94239D4233BA68EF43D664B
+                  xor-digest = 20AD20207AA2FAD0B4360B1F3DF1ABB4
+                               29D8013C0B6E388A7A36D20D0D60E991
+                               2E393FE4E7D063B40C7E0CD727163B9E
+                               5CFCC6E132B9603A792343728AA10706
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB
+                          IV = 0D74DB42A91077DE
+               stream[0..63] = 44C9A6EEDF1CFABF9AA1EE1B078E5AD0
+                               8CFC65E8ED81A5F14024EA247921D778
+                               F321C2C64E47434177204BDCD3A797E3
+                               45E75B6538657CD976975B9D403421A6
+        stream[65472..65535] = F9C956C6627B067579FEB50D4E564174
+                               3ABB723F333754C1B0D9582DD49B65F0
+                               820011AD0283C090B063C41BBD31AA3B
+                               6A7367F04E56786B8DCB01E799E98D67
+        stream[65536..65599] = FC022915EE1042E10FD3C63E7AF02416
+                               044A4EAACBB9CC92F4119484CBFA4E2D
+                               4D1BB4E87D7B05D314B098981E1545DC
+                               85D04E67B776D3F9B1ED25C14C8F8B19
+      stream[131008..131071] = F9B3E21FD02852138306AF19F428F9F9
+                               4EBFA95EE3170C5442E7749A87C8456D
+                               F0E5ACA727A64EFF7D8C083072665099
+                               5C5022C5137478DD757C32B3759D5399
+                  xor-digest = 9C97C07E5A95FDD0301C8B13C4DAE4E9
+                               C7115C403CE3FCE6B0BA1045C3C34934
+                               2168378B62E93A5FD6187528CC67C2A2
+                               3815757847DA917083A8CEB097106D18
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF0
+                          IV = 167DE44BB21980E7
+               stream[0..63] = 801C4B9D53B0CC1ED89245FF17AC3479
+                               6564BCD985C88FD1ABEBEE2AA6F938CE
+                               1A7A55B85FAEDBD56BEA3B33E031034F
+                               11A80E94207A0A2C260D7BBFC0583F59
+        stream[65472..65535] = 65D6B5431068ED625E3C2E4A4FA3B130
+                               0EE46304E80E7573858EFE0D887437F9
+                               5183D22B4B109E143CBA408503982B7D
+                               9E1AAB2C49319B14B1EA502F56CA3E6B
+        stream[65536..65599] = BBB3489076C28F413C8084723BE20E77
+                               D47EB3073571DADDEF13807136C9AB8C
+                               2CAF21DCB979FD5102091CB955966400
+                               83BEDCB05B70F009D002E35CF10EF506
+      stream[131008..131071] = 844C1C60C0FCF6FBD548D674873FE985
+                               54DD396D6AB48A86E66EAE650882B4CC
+                               BF37799E6FBDAFD2321E2EA0DB3C144D
+                               7B0FD3D487835C02661F9D74C780F8AD
+                  xor-digest = 33671463C35BD5A17C5AA95C76DE4FF3
+                               E22308F7C1C8BEA262F6481D2F299B90
+                               E97C1641D20B40E8CBCB0A684000C428
+                               6FECBD754F160651833F4575C9881B1F
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5
+                          IV = 1F86ED54BB2289F0
+               stream[0..63] = 19080DFB74B357983C45F72C0FB7AC6F
+                               919CB22C518D409F3EA0780DA423A1F1
+                               007B8FEEDE0AE9561CC595B591BFF7F5
+                               EC6AEE6285FB4A0B1245A9298A082CF9
+        stream[65472..65535] = 23ADAECB4360025B6F56DBA4CF122EE1
+                               BDB0A72B1D0CB8CA155EF06E3FD89A4E
+                               B001B4D468A858BE294CF18CA1CF9C9B
+                               5B9610EFADE2F7DA4A43765F7A7ADBDF
+        stream[65536..65599] = 276C1B647795D3B14ACEDF31D19BBAAA
+                               F74A570CFE99E786908C378E05938A86
+                               B84E89AA863A510D3CC2A9F7B9CA4BEB
+                               068BD354BB791E0D6082CA93B0282300
+      stream[131008..131071] = E88AA2BD2F64E7F294B52A15BBF5B0DD
+                               EFF62DF0F5A3DA9DCA04EC6DAA353494
+                               F4D99FFDC333A5257C3BD0088AA298BD
+                               5D306484FD213633E59A76BF7468E499
+                  xor-digest = 753A31EA8C198D447EDB0F5AA8FA16D6
+                               678459FDDA091461D6022F138AD28ADE
+                               49D540E803D3E79BDEE5C54604EC7086
+                               D1EFBB5C22964542917FF7AF7A39382A
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA
+                          IV = 288FF65DC42B92F9
+               stream[0..63] = 017D13ECB20AE0C9ACF784CB06525F72
+                               CE6D52BEBB948F124668C35064559024
+                               49EEA505C19F3EE4D052C3D19DA9C4D1
+                               B92DBC7F07AFEA6A3D845DE60D8471FD
+        stream[65472..65535] = E35D6F2E060A4CDB3269870555C6DEFC
+                               B75330E6915AA39236464E428238AE31
+                               6D97BDDD3DE9A556B01C13575B6B007C
+                               27CAC12B2ABDCF488E6825C5F8D89FB7
+        stream[65536..65599] = 833FB4385A8B3E8D6A464E64511805FD
+                               2417C89BDE6A73112AB9DFA21CDAF0AF
+                               08BE79B6AA5883851158B9486A7E5925
+                               4670830B30A2E9FD97B2A528AEC0AA3B
+      stream[131008..131071] = DED91BE816A7F5A920DDA7EA30400FFC
+                               695CE6301CB05BDD1D743C1A16E3F610
+                               7C655886670209CF0B75F2FAC499C0E9
+                               9E619BA80E3D0C0A57A903A127671A74
+                  xor-digest = 7741874A0EF5E5637FE9779CD2375C21
+                               88822B9584CB09A3B82E77CE65A2CB39
+                               97D73244F3B5F06F0406B0697CD26EA4
+                               8A11A02B69D706DB1D52456A06C3C18E
+
+
+
+End of test vectors