]> git.cryptolib.org Git - avr-crypto-lib.git/commitdiff
a lot of fixes
authorbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Wed, 14 Mar 2012 16:38:51 +0000 (16:38 +0000)
committerbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Wed, 14 Mar 2012 16:38:51 +0000 (16:38 +0000)
243 files changed:
Makefile
aes/aes_invsbox.c
aes/aes_keyschedule.c
aes/aes_sbox.c
arcfour/arcfour.c
avr-makefile.inc
base64/base64_enc.c
bcal/bcal-nessie.c
bcal/bcal-nessie.h
bcal/bcal-performance.c
bcal/bcal-performance.h
bcal/bcal_camellia128.c
bcal/bcal_cast5.c
bcal/bcal_des.c
bcal/bcal_serpent.c
blake/blake_common.c
blake/blake_large.c
blake/blake_small.c
bmw/bmw_large.c
bmw/bmw_small.c
camellia/camellia128-stub.c
camellia/camellia_C.c
cast5/cast5-sbox.c [new file with mode: 0644]
cast5/cast5-sbox.h
cast6/cast6-sbox.c [new file with mode: 0644]
cast6/cast6-sbox.h [new file with mode: 0644]
cast6/cast6.c
cscipher/cscipher_sbox.c
cscipher/cscipher_small.c
des/des.c
dsa/dsa_key_blob.c
echo/aes_enc_round-asm.S
echo/echo.c
grain/grain.c
groestl/groestl_large.c
groestl/groestl_small.c
hfal/hfal-nessie.c
hfal/hfal-nessie.h
hfal/hfal-performance.c
hfal/hfal-performance.h
host/get_test.rb
host/nessie_check.rb
host/shavs_test2.rb
jh/jh_simple_small_core.c
jh/jh_simple_speed_core.c
jh/jh_tables.c
keccak/keccak.c
keysize_descriptor.c
khazad/khazad.c
md5/md5_sbox.c [new file with mode: 0644]
md5/md5_sbox.h
mickey128/mickey128.c
mkfiles/a5_1.mk
mkfiles/aes.mk
mkfiles/aes128.mk
mkfiles/aes192.mk
mkfiles/aes256.mk
mkfiles/aes_asm_faster.mk
mkfiles/aes_c.mk
mkfiles/arcfour.mk
mkfiles/arcfour_c.mk
mkfiles/base64.mk
mkfiles/bigint.mk
mkfiles/blake_c.mk
mkfiles/bmw.mk
mkfiles/bmw_c.mk
mkfiles/bmw_tiny.mk
mkfiles/bmw_tiny_sep.mk
mkfiles/camellia.mk
mkfiles/camellia_c.mk
mkfiles/cast5.mk
mkfiles/cast6.mk
mkfiles/cscipher_small_c.mk
mkfiles/cscipher_tiny.mk
mkfiles/cscipher_tiny_c.mk
mkfiles/cubehash_c.mk
mkfiles/des.mk
mkfiles/dsa.mk
mkfiles/echo_c.mk
mkfiles/entropium.mk
mkfiles/grain.mk
mkfiles/groestl_c.mk
mkfiles/hmac-md5.mk
mkfiles/hmac-sha1.mk
mkfiles/hmac-sha256.mk
mkfiles/jh_simple_small_c.mk
mkfiles/jh_simple_speed_c.mk
mkfiles/keccak_c.mk
mkfiles/khazad_small_c.mk
mkfiles/md5.mk
mkfiles/md5_c.mk
mkfiles/mickey128.mk
mkfiles/mqq160-sign.mk
mkfiles/mqq160-sign_c.mk
mkfiles/mugi.mk
mkfiles/noekeon.mk
mkfiles/noekeon_c.mk
mkfiles/omac_noekeon.mk
mkfiles/omac_noekeon_c.mk
mkfiles/present.mk
mkfiles/rabbit_c.mk
mkfiles/rabbit_estream_c.mk
mkfiles/rc5.mk
mkfiles/rc6.mk
mkfiles/rsa.mk
mkfiles/salsa20_c.mk
mkfiles/seed.mk
mkfiles/seed_C.mk
mkfiles/serpent-bitslice.mk
mkfiles/serpent_asm_bitslice.mk
mkfiles/serpent_asm_fast.mk
mkfiles/serpent_asm_small.mk
mkfiles/serpent_c.mk
mkfiles/sha1.mk
mkfiles/sha1_c.mk
mkfiles/sha256.mk
mkfiles/sha256_c.mk
mkfiles/shabal.mk
mkfiles/shabal_c.mk
mkfiles/shabea.mk
mkfiles/shacal1enc.mk
mkfiles/shacal2enc.mk
mkfiles/skein.mk
mkfiles/skein_c.mk
mkfiles/skipjack.mk
mkfiles/skipjack_nessie.mk [new file with mode: 0644]
mkfiles/tdes.mk
mkfiles/threefish.mk
mkfiles/threefish_C.mk
mkfiles/threefish_small.mk
mkfiles/trivium.mk
mkfiles/twister.mk
mkfiles/twister_c.mk
mkfiles/ubi.mk
mkfiles/ubi_c.mk
mkfiles/whirlpool_0_fast_c.mk
mkfiles/whirlpool_fast_c.mk
mkfiles/whirlpool_small_c.mk
mkfiles/whirlpool_t_fast_c.mk
mkfiles/whirlpool_t_small_c.mk
mkfiles/xtea.mk
mkfiles/xtea_c.mk
mkfiles/xtea_new.mk [new file with mode: 0644]
mqq-sign/mqq160-sign.c
mqq-sign/mqq160-sign.h
mqq-sign/mqq160-sign_P.c
mqq-sign/mqq160-sign_testkey.c
mqq-sign/mqq160-sign_testkey.h
mugi/mugi.c
noekeon/noekeon.c
present/present.c
rabbit/rabbit_c.c
rsa/rsa_key_blob.c
salsa20/salsa20.c
scal/scal-basic.c
seed/seed_sbox.h
serpent/serpent-sboxes_c.c
shabal/shabal192.c
shabal/shabal224.c
shabal/shabal256.c
shabal/shabal384.c
shabal/shabal512.c
skein/ubi.h
skein/ubi1024.c
skein/ubi256.c
skein/ubi512.c
skipjack/skipjack.c
test_src/cli-core.S
test_src/config.h
test_src/dump-decl.c
test_src/main-a5_1-test.c
test_src/main-aes-test.c
test_src/main-aes128-test.c
test_src/main-aes192-test.c
test_src/main-aes256-test.c
test_src/main-arcfour-test.c
test_src/main-base64-test.c
test_src/main-bigint-test.c
test_src/main-blake-test.c
test_src/main-bmw-test.c
test_src/main-camellia-test.c
test_src/main-cast5-test.c
test_src/main-cast6-test.c
test_src/main-cscipher-test.c
test_src/main-cubehash-test.c
test_src/main-des-test.c
test_src/main-dsa-test.c
test_src/main-echo-test.c
test_src/main-entropium-test.c
test_src/main-grain-test.c
test_src/main-groestl-test.c
test_src/main-hmac-md5-test.c
test_src/main-hmac-sha1-test.c
test_src/main-hmac-sha256-test.c
test_src/main-jh-test.c
test_src/main-keccak-test.c
test_src/main-khazad-test.c
test_src/main-md5-test.c
test_src/main-mickey128-test.c
test_src/main-mqq160-sign-test.c
test_src/main-mugi-test.c
test_src/main-noekeon-test.c
test_src/main-omac-noekeon-test.c
test_src/main-present-test.c
test_src/main-rabbit-test.c
test_src/main-rc5-test.c
test_src/main-rc6-test.c
test_src/main-rsa-test.c
test_src/main-salsa20-test.c
test_src/main-seed-test.c
test_src/main-serpent-test.c
test_src/main-sha1-test.c
test_src/main-sha256-test.c
test_src/main-shabal-test.c
test_src/main-shabea-test.c
test_src/main-shacal1_enc-test.c
test_src/main-shacal2_enc-test.c
test_src/main-skein-test.c
test_src/main-skipjack-test.c
test_src/main-tdes-test.c
test_src/main-threefish-test.c
test_src/main-trivium-test.c
test_src/main-twister-test.c
test_src/main-ubi-test.c
test_src/main-whirlpool-0-test.c
test_src/main-whirlpool-t-test.c
test_src/main-whirlpool-test.c
test_src/main-xtea-test.c
test_src/nessie_hash_test.c
test_src/nessie_mac_test.c
test_src/shavs.c
testconf/Groestl.conf
testconf/Skein.conf
testport.conf
testvectors/CAST-256.rfc2612.testvectors.txt [new file with mode: 0644]
testvectors/Mickey-v2-128-unverified.test-vectors [new file with mode: 0644]
testvectors/grain-v1-verified.test-vectors [new file with mode: 0644]
testvectors/salsa20-full-128-verified.test-vectors [new file with mode: 0644]
testvectors/salsa20-full-256-verified.test-vectors [new file with mode: 0644]
twister/twister.c
twister/twister_tables.c [new file with mode: 0644]
twister/twister_tables.h
whirlpool/whirlpool.c

index 53d2a397c25727eccee1e8ad1ec93c21dbf26b4b..d9e8d033bfb74800e8e4fd97e04acce0a364fba2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -38,13 +38,14 @@ GLOBAL_INCDIR := ./ $(TESTSRC_DIR)
 
 #-------------------------------------------------------------------------------
 # inclusion of make stubs
+include mkfiles/0*.mk
 include mkfiles/*.mk
 
 #-------------------------------------------------------------------------------
 ALGORITHMS = $(BLOCK_CIPHERS) $(STREAM_CIPHERS) $(HASHES) $(PRNGS) $(MACS) \
                         $(ENCODINGS) $(SIGNATURE) $(PK_CIPHERS) $(AUX)
 ALGORITHMS_OBJ = $(patsubst %,%_OBJ, $(ALGORITHMS))
-ALGORITHMS_TEST_BIN = $(patsubst %,%_TEST_BIN, $(ALGORITHMS))
+ALGORITHMS_TESTBIN = $(patsubst %,%_TESTBIN, $(ALGORITHMS))
 
 #-------------------------------------------------------------------------------
 # define binary object in $(BIN_DIR)$(ALGO)/<obj>
@@ -59,7 +60,7 @@ $(foreach a, $(ALGORITHMS), $(eval $(call Assert_Template, \
 
 $(foreach a, $(ALGORITHMS), $(eval $(call Assert_Template, \
     $(a)_TESTBINOBJ, \
-    $(addprefix $(BIN_DIR)$(call lc,$(a))/$(TEST_DIR),$($(a)_TEST_BIN)) \
+    $(addprefix $(BIN_DIR)$(call lc,$(a))/$(TEST_DIR),$($(a)_TESTBIN)) \
 )))
 
 
@@ -73,6 +74,15 @@ $(1): $(2)
        @$(CC) $(CFLAGS_A) $(addprefix -I./,$(3)) $(addprefix -D, $(4)) -c -o $(1) $(2)
 endef
 
+
+
+define TargetSourceList_Template
+$(1): $(2)
+       @echo "[cc]: $(1) <-- $(2)"
+       @mkdir -p $(dir $(1))
+       @$(CC) $(CFLAGS_A) $(addprefix -I./,$(3)) $(addprefix -D, $(4)) $(LIST_OPT) -c -o /dev/null $(2) > $(1)
+endef
+
 # ----------------------------------------------------------------------------
 # Function:  find_source_file
 # Arguments: 1: name of the binary file (.o extension) to search
@@ -100,7 +110,7 @@ $(foreach a, $(ALGORITHMS), \
 )
 
 $(foreach a, $(ALGORITHMS), \
-  $(foreach b, $($(a)_TEST_BIN), \
+  $(foreach b, $($(a)_TESTBIN), \
     $(eval $(call TargetSource_Template, \
       $(BIN_DIR)$(call lc, $(a))/$(TEST_DIR)$(b), \
       $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\
@@ -110,10 +120,23 @@ $(foreach a, $(ALGORITHMS), \
   ) \
 )
 
+             
+$(foreach a, $(ALGORITHMS), \
+  $(foreach b, $($(a)_OBJ), \
+    $(eval $(call TargetSourceList_Template, \
+      $(LIST_DIR)$(call lc, $(a))/$(patsubst %.o,%.s,$(b)), \
+      $(call find_source_file, $(b), $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR) ),\
+      $($(a)_DIR) $($(a)_INCDIR) $(GLOBAL_INCDIR), \
+      $($(a)_DEF), \
+    )) \
+  ) \
+)
+
 #-------------------------------------------------------------------------------
 
 define MainTestElf_Template
 $(1): $(2) $(3)
+       @mkdir -p $(dir $(1))
        @echo "[ld]: $(1)"
        @$(CC) $(CFLAGS_A) $(LDFLAGS)$(patsubst %.elf,%.map,$(1)) -o \
        $(1) \
@@ -146,6 +169,17 @@ $(foreach algo, $(ALGORITHMS), $(eval $(call TestBin_TEMPLATE, \
 
 #-------------------------------------------------------------------------------
 
+define Listing_TEMPLATE
+$(1)_LIST: $(2)
+endef
+
+$(foreach algo, $(ALGORITHMS), $(eval $(call Listing_TEMPLATE, \
+    $(algo), \
+    $(foreach obj,$($(algo)_OBJ), $(LIST_DIR)$(call lc, $(algo))/$(obj:.o=.s)) \
+)))
+
+#-------------------------------------------------------------------------------
+
 %.hex: %.elf
        @echo "[objcopy]: $@"
        @$(OBJCOPY) -j .text -j .data -O ihex $< $@
@@ -201,12 +235,16 @@ blockcipher_size: $(foreach algo, $(BLOCK_CIPHERS), $(algo)_SIZE)
 #-------------------------------------------------------------------------------
 
 .PHONY: tests
-tests: $(foreach a, $(ALGORITHMS), $(a)_TEST_BIN)
+tests: $(foreach a, $(ALGORITHMS), $(a)_TESTBIN)
 
 #-------------------------------------------------------------------------------
 
 define TestRun_Template
 $(1)_TESTRUN: $(1)_FLASH
+       @echo "[reset]"
+       @sleep 3
+       @$(RESETCMD)
+       @sleep 1
        @echo "[test]: $(1)"
        $(RUBY) $(GET_TEST) $(TESTPORT) $(TESTPORTBAUDR) 8 1 nessie $(TESTLOG_DIR)$(TESTPREFIX) $(2)
 endef
index 921ff49eee2065eb1d1ee2a36a6a4a3c5b75a0d0..6517264a8833a5b78d0756d730d3fdc3821610ee 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <stdint.h>
 #include <avr/pgmspace.h>
-uint8_t aes_invsbox[256] PROGMEM = {
+const uint8_t aes_invsbox[256] PROGMEM = {
  0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
  0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
  0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
index 9225323a6082aa687321cddc8f8dd89379634e05..fff0700150c63f190c5c6a0ce6042aa744d5426a 100644 (file)
@@ -42,7 +42,7 @@ void aes_rotword(void* a){
        ((uint8_t*)a)[3] = t;
 }
 
-uint8_t rc_tab[] PROGMEM = { 0x01, 0x02, 0x04, 0x08,
+const uint8_t rc_tab[] PROGMEM = { 0x01, 0x02, 0x04, 0x08,
                              0x10, 0x20, 0x40, 0x80,
                              0x1b, 0x36 };
 
index 85b08deb14e4736dc9e8b87e6ff7048c7e066fa6..342e5c221e5f95718022f91f8cb5cd733653ef41 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <stdint.h>
 #include <avr/pgmspace.h>
-uint8_t aes_sbox[256] PROGMEM = {
+const uint8_t aes_sbox[256] PROGMEM = {
  0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
  0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
  0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
index 6c068a8023ee0acb487b33a313c050f6afa8e9b4..ba66c165dd44e89e2d5691b2c3b0414fbe3b1d9f 100644 (file)
 
 void arcfour_init(const void *key, uint16_t length_b, arcfour_ctx_t *ctx){
        uint8_t t;
-       uint8_t length_B = length_b/8;
+       const uint8_t length_B = length_b/8;
+       uint8_t nidx = length_B;
        uint8_t x=0,y=0;
-       uint8_t *kptr=key;
+       const uint8_t *kptr = (const uint8_t*)key;
        do{
                ctx->s[x]=x;
-       }while(++x);
+       }while((uint8_t)++x);
 
        do{
                y += ctx->s[x] + *kptr++;
-               if(x==length_B){
-                       kptr = key;
+               if(!--nidx){
+                       kptr = (const uint8_t*)key;
+                       nidx = length_B;
                }
                y &= 0xff;
                /* ctx->s[y] <--> ctx->s[x] */
                t = ctx->s[y];
                ctx->s[y] = ctx->s[x];
                ctx->s[x] = t;
-       }while(++x);
+       }while((uint8_t)++x);
 
        ctx->i = ctx->j = 0;
 }
index 4396b24800e543cd1f3bb696baa0567b3444ea93..39b10f8f1cf9bebb24f21d82cae7b6f3e1178e09 100644 (file)
@@ -1,22 +1,23 @@
 
-MCU_TARGET     = atmega644
-F_CPU          = 20000000
+MCU_TARGET     = atmega128
+F_CPU          = 14745600
 OPTIMIZE       = -Os # -Os
 DEBUG          = -gdwarf-2
-WARNING        = -pedantic -Wall -Wstrict-prototypes
-PROGRAMMER     = avr911
-PROG_PORT      = /dev/ttyUSB0
+WARNING        = -pedantic -Wall -Werror -Wstrict-prototypes
+PROGRAMMER     = jtagmkII
+PROG_PORT      = usb
 DEFS           = -D$(call uc, $(MCU_TARGET)) -DF_CPU=$(F_CPU)
 FLASHCMD       = avrdude -p $(MCU_TARGET) -P $(PROG_PORT) -c $(PROGRAMMER) -U flash:w:# no space at the end
 #FLASHCMD       = avrdude -p $(MCU_TARGET) -c usbasp -U flash:w:# no space at the end
-RESETCMD       = avrdude -p $(MCU_TARGET) -P $(PROG_PORT) -c $(PROGRAMMER) 
+#RESETCMD       = avrdude -p $(MCU_TARGET) -P $(PROG_PORT) -c $(PROGRAMMER) 
+RESETCMD       = avarice -2 -R -j usb
 DEP_DIR        = deps/
 TEST_DIR       = test/
 BIN_DIR        = bin/
 TESTSRC_DIR    = test_src/
 #uisp -dprog=bsd -dlpt=/dev/parport1 --upload if=$(PRG).hex
 ERASECMD       =
-TESTPORT       = /dev/ttyUSB1
+TESTPORT       = /dev/ttyUSB0
 TESTPORTBAUDR  = 115200
 TESTLOG_DIR    = testlog/#
 TESTPREFIX     = nessie-
@@ -26,16 +27,17 @@ SPEEDPREFIX    =
 SPEEDCMD       = performance
 SIZE_DIR       = size_log/#
 LIST_DIR       = listings/#
+LIST_OPT       = -Wa,-adhln -g
 STAT_DIR       = stats/#
 AUTOASM_DIR    = autoasm/#
 AUTOASM_OPT    = -S
-CC            = avr-gcc
+CC                = avr-gcc
 CSTD           = c99
 
 override CFLAGS_A      = -MMD -MF$(DEP_DIR)$(patsubst %.o,%.d,$(notdir $(1))) $(DEBUG) $(WARNING) -std=$(CSTD) $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
 override CFLAGS        = -MMD -MF$(DEP_DIR)$(patsubst %.o,%.d,$(notdir $@))   $(DEBUG) $(WARNING) -std=$(CSTD) $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
 
-override LDFLAGS       = -gdwarf-2 -Wl,-Map,
+override LDFLAGS       = -gdwarf-2 -Wl,-Map,#
 override ASFLAGS          = -mmcu=$(MCU_TARGET) -Wa,--gdwarf-2
 
 SIZESTAT_FILE = sizestats.txt
index c58899830cd87c71ed3ba29c12a919a109f03483..ae0612756a55745f6c6b2c07f2eeaef9ce813e82 100644 (file)
@@ -32,7 +32,7 @@
 #if 1
 #include <avr/pgmspace.h>
 
-char base64_alphabet[64] PROGMEM = {
+const char base64_alphabet[64] PROGMEM = {
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 
        'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 
        'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 
index 387a7d7c7feba18598c51aed55363f6d4eb8b6ac..00121f00d6cd347380d5b3ee333eaa2b410e904d 100644 (file)
@@ -69,7 +69,7 @@ void bcal_nessie(const bcdesc_t* bcd){
 
 }
 
-void bcal_nessie_multiple(const bcdesc_t** bcd_list){
+void bcal_nessie_multiple(const bcdesc_t* const* bcd_list){
        const bcdesc_t* bcd;
        for(;;){
                bcd = (void*)pgm_read_word(bcd_list);
index 5e4285f4e5eb6f95422f4908047f3d28f7f80cb6..01209615d75576c97a2356e90434f8af2aafef80 100644 (file)
@@ -31,7 +31,7 @@
 #include "blockcipher_descriptor.h"
 
 void bcal_nessie(const bcdesc_t* bcd);
-void bcal_nessie_multiple(const bcdesc_t** bcd_list);
+void bcal_nessie_multiple(const bcdesc_t* const* bcd_list);
 
 
 #endif /* BCALNESSIE_H_ */
index 36cc82317948677733cee2f3b8f58dc61d6ff1c6..feeda105d716d7da0df967e00660f183d76603ee 100644 (file)
@@ -210,7 +210,7 @@ void bcal_stacksize(const bcdesc_t* bcd){
        }
 }
 
-void bcal_performance_multiple(const bcdesc_t** bcd_list){
+void bcal_performance_multiple(const bcdesc_t* const* bcd_list){
        const bcdesc_t* bcd;
        for(;;){
                bcd = (void*)pgm_read_word(bcd_list);
index b8c56663fbe0a595f537dc8adf276a674ea1ff4e..19207ea722b30e6b28561f12887ac7144e96ff54 100644 (file)
@@ -32,7 +32,7 @@
 #include "blockcipher_descriptor.h"
 
 void bcal_performance(const bcdesc_t* hd);
-void bcal_performance_multiple(const bcdesc_t** hd_list);
+void bcal_performance_multiple(const bcdesc_t* const* hd_list);
 
 
 #endif /* BCAL_PERFORMANCE_H_ */
index a891b9dfbc994611b975036c76a6b793bce1f14f..f247b4861c957356cde265010a99f16f5012ec4b 100644 (file)
@@ -38,7 +38,7 @@ const uint8_t camellia128_keysize_desc[] PROGMEM = { KS_TYPE_LIST, 1, KS_INT(128
 
 const bcdesc_t camellia128_desc PROGMEM = {
        BCDESC_TYPE_BLOCKCIPHER,
-       BC_INIT_TYPE_2,
+       BC_INIT_TYPE_1,
        camellia128_str,
        sizeof(camellia128_ctx_t),
        128,
index bc91297f79c97ed441a360f24645c3fa0a7df5db..a6866b3daef143f3af5f741190974fea139839fa 100644 (file)
@@ -41,7 +41,7 @@ const bcdesc_t cast5_desc PROGMEM = {
        BC_INIT_TYPE_2,
        cast5_str,
        sizeof(cast5_ctx_t),
-       128,
+       64,
        {(void_fpt)cast5_init},
        {(void_fpt)cast5_enc},
        {(void_fpt)cast5_dec},
index 04ed5e5c61cd45a909d35f9b6d1a06bbbf688605..0e8068b95f8804542bf5a5016490e99d5ed5ae9a 100644 (file)
@@ -50,7 +50,7 @@ const bcdesc_t des_desc PROGMEM = {
        BC_INIT_TYPE_1,
        des_str,
        8,
-       128,
+       64,
        {(void_fpt)NULL},
        {(void_fpt)des_dummy_enc},
        {(void_fpt)des_dummy_dec},
index df1b5788c1c37f21e20dca5bca03b08e0a461c1d..a6cf994ac4f340827e212f68658e16cf43d8ea61 100644 (file)
 #include "keysize_descriptor.h"
 
 const char serpent_str[]   PROGMEM = "serpent";
+/*
+const uint8_t serpent_keysize_desc[] PROGMEM = { KS_TYPE_RANGE, KS_INT(1), KS_INT(256),
+                                                 KS_TYPE_TERMINATOR    };
 
-const uint8_t serpent_keysize_desc[] PROGMEM = { KS_TYPE_RANGE, KS_INT(1), KS_INT(256), 
+*/
+const uint8_t serpent_keysize_desc[] PROGMEM = { KS_TYPE_LIST, 3, KS_INT(128), KS_INT(192), KS_INT(256),
                                                  KS_TYPE_TERMINATOR    };
 
 const bcdesc_t serpent_desc PROGMEM = {
index eadd247fb1963d8d04fc7e522beaa0dd85449bf2..9be43eaaf8f8cc4cd338dcb874ce98ffdb479e0a 100644 (file)
@@ -28,7 +28,7 @@
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
-uint8_t blake_sigma[] PROGMEM = {
+const uint8_t blake_sigma[] PROGMEM = {
    0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF,
    0xEA, 0x48, 0x9F, 0xD6, 0x1C, 0x02, 0xB7, 0x53,
    0xB8, 0xC0, 0x52, 0xFD, 0xAE, 0x36, 0x71, 0x94,
@@ -41,7 +41,7 @@ uint8_t blake_sigma[] PROGMEM = {
    0xA2, 0x84, 0x76, 0x15, 0xFB, 0x9E, 0x3C, 0xD0,
 };
 
-uint8_t blake_index_lut[] PROGMEM = {
+const uint8_t blake_index_lut[] PROGMEM = {
        0x0, 0x4, 0x8, 0xC,
        0x1, 0x5, 0x9, 0xD,
        0x2, 0x6, 0xA, 0xE,
index b0b6cebf1c4df679d6d24168066a70d9fa3488ef..eb6511c6d0014b0883d0e935d84230c1310ad274 100644 (file)
@@ -33,7 +33,7 @@
 #include "blake_common.h"
 
 static
-uint64_t pgm_read_qword(void* p){
+uint64_t pgm_read_qword(const void* p){
        union{
                uint64_t v64;
                uint32_t v32[2];
@@ -44,7 +44,7 @@ uint64_t pgm_read_qword(void* p){
 }
 
 static
-uint64_t blake_c[] PROGMEM = {
+const uint64_t blake_c[] PROGMEM = {
    0x243F6A8885A308D3LL, 0x13198A2E03707344LL,
    0xA4093822299F31D0LL, 0x082EFA98EC4E6C89LL,
    0x452821E638D01377LL, 0xBE5466CF34E90C6CLL,
@@ -176,7 +176,7 @@ void blake_large_lastBlock(blake_large_ctx_t* ctx, const void* msg, uint16_t len
 
 }
 
-uint64_t blake512_iv[] PROGMEM = {
+const uint64_t blake512_iv[] PROGMEM = {
     0x6A09E667F3BCC908LL, 0xBB67AE8584CAA73BLL,
     0x3C6EF372FE94F82BLL, 0xA54FF53A5F1D36F1LL,
     0x510E527FADE682D1LL, 0x9B05688C2B3E6C1FLL,
@@ -193,7 +193,7 @@ void blake512_init(blake512_ctx_t* ctx){
        ctx->appendone = 1;
 }
 
-uint64_t blake384_iv[] PROGMEM = {
+const uint64_t blake384_iv[] PROGMEM = {
     0xCBBB9D5DC1059ED8LL, 0x629A292A367CD507LL,
     0x9159015A3070DD17LL, 0x152FECD8F70E5939LL,
     0x67332667FFC00B31LL, 0x8EB44A8768581511LL,
index d3559401adbe55be31f1c00e08e189d954b6da75..cc3f6d2dd21a0579ba400c1b0946d88aa471e58e 100644 (file)
@@ -33,7 +33,7 @@
 #include "blake_common.h"
 
 static
-uint32_t blake_c[] PROGMEM = {
+const uint32_t blake_c[] PROGMEM = {
    0x243F6A88, 0x85A308D3,
    0x13198A2E, 0x03707344,
    0xA4093822, 0x299F31D0,
@@ -179,7 +179,7 @@ void blake_small_lastBlock(blake_small_ctx_t* ctx, const void* msg, uint16_t len
 
 }
 
-uint32_t blake256_iv[] PROGMEM = {
+const uint32_t blake256_iv[] PROGMEM = {
        0x6A09E667L, 0xBB67AE85,
        0x3C6EF372L, 0xA54FF53A,
        0x510E527FL, 0x9B05688C,
@@ -196,7 +196,7 @@ void blake256_init(blake256_ctx_t* ctx){
        ctx->appendone = 1;
 }
 
-uint32_t blake224_iv[] PROGMEM = {
+const uint32_t blake224_iv[] PROGMEM = {
        0xC1059ED8, 0x367CD507,
        0x3070DD17, 0xF70E5939,
        0xFFC00B31, 0x68581511,
index 719b5859c0199c154a2cc4a861f0a5be1ad00091..4b2b768f25e3425d5bcb3161602b6b2303495b33 100644 (file)
@@ -203,7 +203,7 @@ uint64_t bmw_large_r7(uint64_t x){
 #define K    0x0555555555555555LL
 #define MASK 0xFFFFFFFFFFFFFFFFLL
 static
-uint64_t k_lut[] PROGMEM = {
+const uint64_t k_lut[] PROGMEM = {
        16LL*K, 17LL*K, 18LL*K, 19LL*K,
        20LL*K, 21LL*K, 22LL*K, 23LL*K,
        24LL*K, 25LL*K, 26LL*K, 27LL*K,
@@ -211,7 +211,7 @@ uint64_t k_lut[] PROGMEM = {
 */
 /* the same as above but precomputed to avoid compiler warnings */
 static
-uint64_t k_lut[] PROGMEM = {
+const uint64_t k_lut[] PROGMEM = {
        0x5555555555555550LL, 0x5aaaaaaaaaaaaaa5LL, 0x5ffffffffffffffaLL,
        0x655555555555554fLL, 0x6aaaaaaaaaaaaaa4LL, 0x6ffffffffffffff9LL,
        0x755555555555554eLL, 0x7aaaaaaaaaaaaaa3LL, 0x7ffffffffffffff8LL,
@@ -308,8 +308,8 @@ uint64_t bmw_large_expand2(uint8_t j, const uint64_t* q, const void* m, const vo
 
 #if F0_HACK==2
 /* to understand this implementation take a look at f0-opt-table.txt */
-static uint16_t hack_table[5] PROGMEM = { 0x0311, 0xDDB3, 0x2A79, 0x07AA, 0x51C2 };
-static uint8_t  offset_table[5] PROGMEM = { 4+16, 6+16, 9+16, 12+16, 13+16 };
+static const uint16_t hack_table[5] PROGMEM = { 0x0311, 0xDDB3, 0x2A79, 0x07AA, 0x51C2 };
+static const uint8_t  offset_table[5] PROGMEM = { 4+16, 6+16, 9+16, 12+16, 13+16 };
 
 
 static
@@ -355,7 +355,7 @@ void bmw_large_f0(uint64_t* q, const uint64_t* h, const void* m){
 
 #if F0_HACK==1
 static
-uint8_t f0_lut[] PROGMEM ={
+const uint8_t f0_lut[] PROGMEM ={
         5<<1, ( 7<<1)+1, (10<<1)+0, (13<<1)+0, (14<<1)+0,
         6<<1, ( 8<<1)+1, (11<<1)+0, (14<<1)+0, (15<<1)+1,
         0<<1, ( 7<<1)+0, ( 9<<1)+0, (12<<1)+1, (15<<1)+0,
index 349ccf8f2c67359f9a856988e1a714f676d6d4a5..b7013f314f6f635f756f9fcec51be0e138fe751e 100644 (file)
@@ -195,7 +195,7 @@ uint32_t bmw_small_r7(uint32_t x){
 /*
 #define K 0x05555555L
 static
-uint32_t k_lut[] PROGMEM = {
+const uint32_t k_lut[] PROGMEM = {
        16L*K, 17L*K, 18L*K, 19L*K, 20L*K, 21L*K, 22L*K, 23L*K,
        24L*K, 25L*K, 26L*K, 27L*K, 28L*K, 29L*K, 30L*K, 31L*K
 };
@@ -203,7 +203,7 @@ uint32_t k_lut[] PROGMEM = {
 /* same as above but precomputed to avoid compiler warnings */
 
 static
-uint32_t k_lut[] PROGMEM = {
+const uint32_t k_lut[] PROGMEM = {
        0x55555550L, 0x5aaaaaa5L, 0x5ffffffaL,
        0x6555554fL, 0x6aaaaaa4L, 0x6ffffff9L,
        0x7555554eL, 0x7aaaaaa3L, 0x7ffffff8L,
@@ -273,8 +273,8 @@ uint32_t bmw_small_expand2(uint8_t j, const uint32_t* q, const void* m, const vo
 
 #if F0_HACK==2
 /* to understand this implementation take a look at f0-opt-table.txt */
-static uint16_t hack_table[5] PROGMEM = { 0x0311, 0xDDB3, 0x2A79, 0x07AA, 0x51C2 };
-static uint8_t  offset_table[5] PROGMEM = { 4+16, 6+16, 9+16, 12+16, 13+16 };
+static const uint16_t hack_table[5] PROGMEM = { 0x0311, 0xDDB3, 0x2A79, 0x07AA, 0x51C2 };
+static const uint8_t  offset_table[5] PROGMEM = { 4+16, 6+16, 9+16, 12+16, 13+16 };
 
 static
 void bmw_small_f0(uint32_t* q, uint32_t* h, const void* m){
@@ -319,7 +319,7 @@ void bmw_small_f0(uint32_t* q, uint32_t* h, const void* m){
 
 #if F0_HACK==1
 static
-uint8_t f0_lut[] PROGMEM = {
+const uint8_t f0_lut[] PROGMEM = {
         5<<1, ( 7<<1)+1, (10<<1)+0, (13<<1)+0, (14<<1)+0,
         6<<1, ( 8<<1)+1, (11<<1)+0, (14<<1)+0, (15<<1)+1,
         0<<1, ( 7<<1)+0, ( 9<<1)+0, (12<<1)+1, (15<<1)+0,
index a09223af3ff1e0bc29c4ca4371638a67a6d4a351..57ed483a6ff57e68dbbf27d6c55bd24cd08a4e72 100644 (file)
@@ -50,7 +50,7 @@ uint64_t PROGMEM camellia_sigma[6]={ / * 64 byte table * /
        0xB05688C2B3E6C1FDLL
 };     
 */
-uint32_t PROGMEM camellia_sigma[12]={ /* 48 byte table */
+const uint32_t camellia_sigma[12] PROGMEM = { /* 48 byte table */
          0x3BCC908BL, 0xA09E667FL,
          0x4CAA73B2L, 0xB67AE858L,
          0xE94F82BEL, 0xC6EF372FL,
@@ -61,11 +61,11 @@ uint32_t PROGMEM camellia_sigma[12]={ /* 48 byte table */
 
 /* an ugly macro to load an entry form the table above */
 /*
-#define SIGMA(p) (( ((uint64_t)(pgm_read_dword((prog_uint32_t*)camellia_sigma+2*(p)+1)))<<32) | \
-                    ((uint64_t)(pgm_read_dword((prog_uint32_t*)camellia_sigma+2*(p)+0))) )
+#define SIGMA(p) (( ((uint64_t)(pgm_read_dword((uint32_t*)camellia_sigma+2*(p)+1)))<<32) | \
+                    ((uint64_t)(pgm_read_dword((uint32_t*)camellia_sigma+2*(p)+0))) )
 */
-#define SIGMA(p) (( ((uint64_t)(pgm_read_dword(&(((prog_uint32_t*)camellia_sigma)[2*(p)+1]))))<<32) | \
-                    ((uint64_t)(pgm_read_dword(&(((prog_uint32_t*)camellia_sigma)[2*(p)+0])))) )
+#define SIGMA(p) (( ((uint64_t)(pgm_read_dword(&(((uint32_t*)camellia_sigma)[2*(p)+1]))))<<32) | \
+                    ((uint64_t)(pgm_read_dword(&(((uint32_t*)camellia_sigma)[2*(p)+0])))) )
 
 
 
@@ -81,7 +81,7 @@ void camellia128_ctx_dump(camellia128_ctx_t *s){
 }
 */
 /*****************************************************************************/
-/* extern prog_uint64_t camellia_sigma[6]; */
+/* extern uint64_t camellia_sigma[6]; */
 
 void camellia128_init(const void* key, camellia128_ctx_t* s){
        uint8_t i;
index c8cf45050f57e7e08fb8395954d0ffd9da9684ab..2f309346fb9a0fb6bf6ed80268409231ddbd9667 100644 (file)
 #endif 
 /*****************************************************************************/
 
-uint8_t rol(uint8_t a, uint8_t n){return ((a<<n) | (a>>(8-n)));}
+static
+uint8_t rol(uint8_t a, uint8_t n){
+       return ((a<<n) | (a>>(8-n)));
+}
 
 /*****************************************************************************/
 
-uint8_t ror(uint8_t a, uint8_t n){return ((a<<(8-n)) | (a>>n));}
+static
+uint8_t ror(uint8_t a, uint8_t n){
+       return ((a<<(8-n)) | (a>>n));
+}
 
 /*****************************************************************************/
 
+static
 uint32_t rol32(uint32_t a, uint8_t n){
        return ((a<<n)|(a>>(32-n)));
 }
 
 /*****************************************************************************/
-
+/*
+static
 uint64_t rol64(uint64_t a, uint8_t n){
        return ((a<<n)|(a>>(64-n)));
 }
-
+*/
 /*****************************************************************************/
  
-uint8_t camellia_s1_table[256] PROGMEM = {
+static
+const uint8_t camellia_s1_table[256] PROGMEM = {
  112, 130,  44, 236, 179,  39, 192, 229, 228, 133,  87,  53, 234,  12, 174,  65,
   35, 239, 107, 147,  69,  25, 165,  33, 237,  14,  79,  78,  29, 101, 146, 189,
  134, 184, 175, 143, 124, 235,  31, 206,  62,  48, 220,  95,  94, 197,  11,  26,
@@ -75,30 +84,35 @@ uint8_t camellia_s1_table[256] PROGMEM = {
 
 /*****************************************************************************/
 
+static
 uint8_t camellia_s1(uint8_t b){
-       return pgm_read_byte_near(&(camellia_s1_table[b]));
+       return pgm_read_byte(&(camellia_s1_table[b]));
 }
 
 /*****************************************************************************/
 
+static
 uint8_t camellia_s2(uint8_t b){
-       return rol(pgm_read_byte_near(&(camellia_s1_table[b])),1);
+       return rol(pgm_read_byte(&(camellia_s1_table[b])),1);
 }
 
 /*****************************************************************************/
 
+static
 uint8_t camellia_s3(uint8_t b){
-       return ror(pgm_read_byte_near(&(camellia_s1_table[b])),1);
+       return ror(pgm_read_byte(&(camellia_s1_table[b])),1);
 }
 
 /*****************************************************************************/
 
+static
 uint8_t camellia_s4(uint8_t b){
-       return pgm_read_byte_near(&(camellia_s1_table[rol(b,1)]));
+       return pgm_read_byte(&(camellia_s1_table[rol(b,1)]));
 }
 
 /*****************************************************************************/
 
+static
 uint64_t camellia_s(uint64_t d){
 //     cli_putstr("\n\r S von "); cli_hexdump(&(d), 8);
        #define D ((uint8_t*)(&d))
@@ -118,6 +132,7 @@ uint64_t camellia_s(uint64_t d){
 
 /*****************************************************************************/
 
+static
 uint64_t camellia_p(uint64_t d){
        uint64_t z=0;
        #define D ((uint8_t*)(&d))
@@ -153,6 +168,7 @@ uint64_t camellia_p(uint64_t d){
 
 /*****************************************************************************/
 
+static
 uint64_t camellia_f(uint64_t x, uint64_t k){
        uint64_t y;
        y = camellia_p(camellia_s(x ^ k));
@@ -161,6 +177,7 @@ uint64_t camellia_f(uint64_t x, uint64_t k){
 
 /*****************************************************************************/
 
+static
 uint64_t camellia_fl(uint64_t x, uint64_t k){
 //     uint64_t lx, lk, y;
        uint32_t lx[2], lk[2], yr, yl;
@@ -191,6 +208,7 @@ uint64_t camellia_fl(uint64_t x, uint64_t k){
 
 /*****************************************************************************/
 
+static
 uint64_t camellia_fl_inv(uint64_t y, uint64_t k){
 //volatile     uint32_t xl, xr;
        uint32_t ly[2], lk[2], x[2];
@@ -220,7 +238,8 @@ uint64_t camellia_fl_inv(uint64_t y, uint64_t k){
 
 /*****************************************************************************/
 
-uint64_t camellia_sigma[6]={
+static
+const uint64_t camellia_sigma_table[6] PROGMEM = {
        0xA09E667F3BCC908BLL,
        0xB67AE8584CAA73B2LL,
        0xC6EF372FE94F82BELL,
@@ -241,6 +260,17 @@ void camellia128_ctx_dump(camellia128_ctx_t *s){
 }
 #endif
 /*****************************************************************************/
+static
+uint64_t camellia_sigma(uint8_t idx){
+       union{
+               uint32_t v32[2];
+               uint64_t v64;
+       } r;
+       r.v32[0] = pgm_read_dword((uint8_t*)camellia_sigma_table + idx * 8);
+       r.v32[1] = pgm_read_dword((uint8_t*)camellia_sigma_table + idx * 8 + 4);
+       return r.v64;
+}
+/*****************************************************************************/
 
 void camellia128_init(const void* key, camellia128_ctx_t* s){
        uint8_t i;
@@ -261,20 +291,21 @@ void camellia128_init(const void* key, camellia128_ctx_t* s){
        s->kal = s->kll;
        s->kar = s->klr;
        
-       s->kar ^= camellia_f(s->kal, camellia_sigma[0]);
-       s->kal ^= camellia_f(s->kar, camellia_sigma[1]);
+       s->kar ^= camellia_f(s->kal, camellia_sigma(0));
+       s->kal ^= camellia_f(s->kar, camellia_sigma(1));
        
        s->kal ^= s->kll;
        s->kar ^= s->klr;
        
-       s->kar ^= camellia_f(s->kal, camellia_sigma[2]);
-       s->kal ^= camellia_f(s->kar, camellia_sigma[3]);
+       s->kar ^= camellia_f(s->kal, camellia_sigma(2));
+       s->kal ^= camellia_f(s->kar, camellia_sigma(3));
        /**/
 //     cli_putstr("\n\r----------------init finished--------------------");
 }
 
 /*****************************************************************************/
 
+static
 void camellia128_keyop(camellia128_ctx_t* s, int8_t q){
        /* first we do 16 bit left-rols for kl and ka (128bit each) */
        uint32_t temp;
@@ -291,6 +322,7 @@ void camellia128_keyop(camellia128_ctx_t* s, int8_t q){
 
 /*****************************************************************************/
 
+static
 void camellia128_keyop_inv(camellia128_ctx_t* s, int8_t q){
        /* first we do 16 bit right-rols for kl and ka (128bit each) */
        uint32_t temp;
@@ -322,6 +354,7 @@ void camellia128_keyop_inv(camellia128_ctx_t* s, int8_t q){
 #define KEY_ROL17               0x08
 #define KEY_ROL15               0x00
 
+static
 void camellia_6rounds(const camellia128_ctx_t* s, uint64_t* bl, uint64_t* br, uint8_t roundop, uint8_t keychoice){
        uint8_t i;
        uint64_t* k[4];
@@ -350,6 +383,7 @@ void camellia_6rounds(const camellia128_ctx_t* s, uint64_t* bl, uint64_t* br, ui
 
 /*****************************************************************************/
 
+static
 void change_endian(void* data, uint8_t length){
        uint8_t i,a;
        for(i=0; i<length/2; ++i){
diff --git a/cast5/cast5-sbox.c b/cast5/cast5-sbox.c
new file mode 100644 (file)
index 0000000..5855589
--- /dev/null
@@ -0,0 +1,601 @@
+/* cast5-sbox.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:       cast5-sbox.h
+ * Author:     Daniel Otte
+ * Date:       26.07.2006
+ * License: GPL
+ * Description: sboxes for CAST5 (aka CAST-128) cipher algorithm as described in RFC 2144.
+ * 
+ */
+#ifndef CAST5_SBOX_H_
+#define CAST5_SBOX_H_
+
+#include <avr/pgmspace.h>
+#include <stdint.h>
+
+#ifndef BIG_ENDIAN
+
+const uint32_t s1[] PROGMEM = {
+0x30fb40d4UL, 0x9fa0ff0bUL, 0x6beccd2fUL, 0x3f258c7aUL, 0x1e213f2fUL, 0x9c004dd3UL, 0x6003e540UL, 0xcf9fc949UL,
+0xbfd4af27UL, 0x88bbbdb5UL, 0xe2034090UL, 0x98d09675UL, 0x6e63a0e0UL, 0x15c361d2UL, 0xc2e7661dUL, 0x22d4ff8eUL,
+0x28683b6fUL, 0xc07fd059UL, 0xff2379c8UL, 0x775f50e2UL, 0x43c340d3UL, 0xdf2f8656UL, 0x887ca41aUL, 0xa2d2bd2dUL,
+0xa1c9e0d6UL, 0x346c4819UL, 0x61b76d87UL, 0x22540f2fUL, 0x2abe32e1UL, 0xaa54166bUL, 0x22568e3aUL, 0xa2d341d0UL,
+0x66db40c8UL, 0xa784392fUL, 0x004dff2fUL, 0x2db9d2deUL, 0x97943facUL, 0x4a97c1d8UL, 0x527644b7UL, 0xb5f437a7UL,
+0xb82cbaefUL, 0xd751d159UL, 0x6ff7f0edUL, 0x5a097a1fUL, 0x827b68d0UL, 0x90ecf52eUL, 0x22b0c054UL, 0xbc8e5935UL,
+0x4b6d2f7fUL, 0x50bb64a2UL, 0xd2664910UL, 0xbee5812dUL, 0xb7332290UL, 0xe93b159fUL, 0xb48ee411UL, 0x4bff345dUL,
+0xfd45c240UL, 0xad31973fUL, 0xc4f6d02eUL, 0x55fc8165UL, 0xd5b1caadUL, 0xa1ac2daeUL, 0xa2d4b76dUL, 0xc19b0c50UL,
+0x882240f2UL, 0x0c6e4f38UL, 0xa4e4bfd7UL, 0x4f5ba272UL, 0x564c1d2fUL, 0xc59c5319UL, 0xb949e354UL, 0xb04669feUL,
+0xb1b6ab8aUL, 0xc71358ddUL, 0x6385c545UL, 0x110f935dUL, 0x57538ad5UL, 0x6a390493UL, 0xe63d37e0UL, 0x2a54f6b3UL,
+0x3a787d5fUL, 0x6276a0b5UL, 0x19a6fcdfUL, 0x7a42206aUL, 0x29f9d4d5UL, 0xf61b1891UL, 0xbb72275eUL, 0xaa508167UL,
+0x38901091UL, 0xc6b505ebUL, 0x84c7cb8cUL, 0x2ad75a0fUL, 0x874a1427UL, 0xa2d1936bUL, 0x2ad286afUL, 0xaa56d291UL,
+0xd7894360UL, 0x425c750dUL, 0x93b39e26UL, 0x187184c9UL, 0x6c00b32dUL, 0x73e2bb14UL, 0xa0bebc3cUL, 0x54623779UL,
+0x64459eabUL, 0x3f328b82UL, 0x7718cf82UL, 0x59a2cea6UL, 0x04ee002eUL, 0x89fe78e6UL, 0x3fab0950UL, 0x325ff6c2UL,
+0x81383f05UL, 0x6963c5c8UL, 0x76cb5ad6UL, 0xd49974c9UL, 0xca180dcfUL, 0x380782d5UL, 0xc7fa5cf6UL, 0x8ac31511UL,
+0x35e79e13UL, 0x47da91d0UL, 0xf40f9086UL, 0xa7e2419eUL, 0x31366241UL, 0x051ef495UL, 0xaa573b04UL, 0x4a805d8dUL,
+0x548300d0UL, 0x00322a3cUL, 0xbf64cddfUL, 0xba57a68eUL, 0x75c6372bUL, 0x50afd341UL, 0xa7c13275UL, 0x915a0bf5UL,
+0x6b54bfabUL, 0x2b0b1426UL, 0xab4cc9d7UL, 0x449ccd82UL, 0xf7fbf265UL, 0xab85c5f3UL, 0x1b55db94UL, 0xaad4e324UL,
+0xcfa4bd3fUL, 0x2deaa3e2UL, 0x9e204d02UL, 0xc8bd25acUL, 0xeadf55b3UL, 0xd5bd9e98UL, 0xe31231b2UL, 0x2ad5ad6cUL,
+0x954329deUL, 0xadbe4528UL, 0xd8710f69UL, 0xaa51c90fUL, 0xaa786bf6UL, 0x22513f1eUL, 0xaa51a79bUL, 0x2ad344ccUL,
+0x7b5a41f0UL, 0xd37cfbadUL, 0x1b069505UL, 0x41ece491UL, 0xb4c332e6UL, 0x032268d4UL, 0xc9600accUL, 0xce387e6dUL,
+0xbf6bb16cUL, 0x6a70fb78UL, 0x0d03d9c9UL, 0xd4df39deUL, 0xe01063daUL, 0x4736f464UL, 0x5ad328d8UL, 0xb347cc96UL,
+0x75bb0fc3UL, 0x98511bfbUL, 0x4ffbcc35UL, 0xb58bcf6aUL, 0xe11f0abcUL, 0xbfc5fe4aUL, 0xa70aec10UL, 0xac39570aUL,
+0x3f04442fUL, 0x6188b153UL, 0xe0397a2eUL, 0x5727cb79UL, 0x9ceb418fUL, 0x1cacd68dUL, 0x2ad37c96UL, 0x0175cb9dUL,
+0xc69dff09UL, 0xc75b65f0UL, 0xd9db40d8UL, 0xec0e7779UL, 0x4744ead4UL, 0xb11c3274UL, 0xdd24cb9eUL, 0x7e1c54bdUL,
+0xf01144f9UL, 0xd2240eb1UL, 0x9675b3fdUL, 0xa3ac3755UL, 0xd47c27afUL, 0x51c85f4dUL, 0x56907596UL, 0xa5bb15e6UL,
+0x580304f0UL, 0xca042cf1UL, 0x011a37eaUL, 0x8dbfaadbUL, 0x35ba3e4aUL, 0x3526ffa0UL, 0xc37b4d09UL, 0xbc306ed9UL,
+0x98a52666UL, 0x5648f725UL, 0xff5e569dUL, 0x0ced63d0UL, 0x7c63b2cfUL, 0x700b45e1UL, 0xd5ea50f1UL, 0x85a92872UL,
+0xaf1fbda7UL, 0xd4234870UL, 0xa7870bf3UL, 0x2d3b4d79UL, 0x42e04198UL, 0x0cd0ede7UL, 0x26470db8UL, 0xf881814cUL,
+0x474d6ad7UL, 0x7c0c5e5cUL, 0xd1231959UL, 0x381b7298UL, 0xf5d2f4dbUL, 0xab838653UL, 0x6e2f1e23UL, 0x83719c9eUL,
+0xbd91e046UL, 0x9a56456eUL, 0xdc39200cUL, 0x20c8c571UL, 0x962bda1cUL, 0xe1e696ffUL, 0xb141ab08UL, 0x7cca89b9UL,
+0x1a69e783UL, 0x02cc4843UL, 0xa2f7c579UL, 0x429ef47dUL, 0x427b169cUL, 0x5ac9f049UL, 0xdd8f0f00UL, 0x5c8165bfUL};
+
+const uint32_t s2[] PROGMEM = {
+0x1f201094UL, 0xef0ba75bUL, 0x69e3cf7eUL, 0x393f4380UL, 0xfe61cf7aUL, 0xeec5207aUL, 0x55889c94UL, 0x72fc0651UL,
+0xada7ef79UL, 0x4e1d7235UL, 0xd55a63ceUL, 0xde0436baUL, 0x99c430efUL, 0x5f0c0794UL, 0x18dcdb7dUL, 0xa1d6eff3UL,
+0xa0b52f7bUL, 0x59e83605UL, 0xee15b094UL, 0xe9ffd909UL, 0xdc440086UL, 0xef944459UL, 0xba83ccb3UL, 0xe0c3cdfbUL,
+0xd1da4181UL, 0x3b092ab1UL, 0xf997f1c1UL, 0xa5e6cf7bUL, 0x01420ddbUL, 0xe4e7ef5bUL, 0x25a1ff41UL, 0xe180f806UL,
+0x1fc41080UL, 0x179bee7aUL, 0xd37ac6a9UL, 0xfe5830a4UL, 0x98de8b7fUL, 0x77e83f4eUL, 0x79929269UL, 0x24fa9f7bUL,
+0xe113c85bUL, 0xacc40083UL, 0xd7503525UL, 0xf7ea615fUL, 0x62143154UL, 0x0d554b63UL, 0x5d681121UL, 0xc866c359UL,
+0x3d63cf73UL, 0xcee234c0UL, 0xd4d87e87UL, 0x5c672b21UL, 0x071f6181UL, 0x39f7627fUL, 0x361e3084UL, 0xe4eb573bUL,
+0x602f64a4UL, 0xd63acd9cUL, 0x1bbc4635UL, 0x9e81032dUL, 0x2701f50cUL, 0x99847ab4UL, 0xa0e3df79UL, 0xba6cf38cUL,
+0x10843094UL, 0x2537a95eUL, 0xf46f6ffeUL, 0xa1ff3b1fUL, 0x208cfb6aUL, 0x8f458c74UL, 0xd9e0a227UL, 0x4ec73a34UL,
+0xfc884f69UL, 0x3e4de8dfUL, 0xef0e0088UL, 0x3559648dUL, 0x8a45388cUL, 0x1d804366UL, 0x721d9bfdUL, 0xa58684bbUL,
+0xe8256333UL, 0x844e8212UL, 0x128d8098UL, 0xfed33fb4UL, 0xce280ae1UL, 0x27e19ba5UL, 0xd5a6c252UL, 0xe49754bdUL,
+0xc5d655ddUL, 0xeb667064UL, 0x77840b4dUL, 0xa1b6a801UL, 0x84db26a9UL, 0xe0b56714UL, 0x21f043b7UL, 0xe5d05860UL,
+0x54f03084UL, 0x066ff472UL, 0xa31aa153UL, 0xdadc4755UL, 0xb5625dbfUL, 0x68561be6UL, 0x83ca6b94UL, 0x2d6ed23bUL,
+0xeccf01dbUL, 0xa6d3d0baUL, 0xb6803d5cUL, 0xaf77a709UL, 0x33b4a34cUL, 0x397bc8d6UL, 0x5ee22b95UL, 0x5f0e5304UL,
+0x81ed6f61UL, 0x20e74364UL, 0xb45e1378UL, 0xde18639bUL, 0x881ca122UL, 0xb96726d1UL, 0x8049a7e8UL, 0x22b7da7bUL,
+0x5e552d25UL, 0x5272d237UL, 0x79d2951cUL, 0xc60d894cUL, 0x488cb402UL, 0x1ba4fe5bUL, 0xa4b09f6bUL, 0x1ca815cfUL,
+0xa20c3005UL, 0x8871df63UL, 0xb9de2fcbUL, 0x0cc6c9e9UL, 0x0beeff53UL, 0xe3214517UL, 0xb4542835UL, 0x9f63293cUL,
+0xee41e729UL, 0x6e1d2d7cUL, 0x50045286UL, 0x1e6685f3UL, 0xf33401c6UL, 0x30a22c95UL, 0x31a70850UL, 0x60930f13UL,
+0x73f98417UL, 0xa1269859UL, 0xec645c44UL, 0x52c877a9UL, 0xcdff33a6UL, 0xa02b1741UL, 0x7cbad9a2UL, 0x2180036fUL,
+0x50d99c08UL, 0xcb3f4861UL, 0xc26bd765UL, 0x64a3f6abUL, 0x80342676UL, 0x25a75e7bUL, 0xe4e6d1fcUL, 0x20c710e6UL,
+0xcdf0b680UL, 0x17844d3bUL, 0x31eef84dUL, 0x7e0824e4UL, 0x2ccb49ebUL, 0x846a3baeUL, 0x8ff77888UL, 0xee5d60f6UL,
+0x7af75673UL, 0x2fdd5cdbUL, 0xa11631c1UL, 0x30f66f43UL, 0xb3faec54UL, 0x157fd7faUL, 0xef8579ccUL, 0xd152de58UL,
+0xdb2ffd5eUL, 0x8f32ce19UL, 0x306af97aUL, 0x02f03ef8UL, 0x99319ad5UL, 0xc242fa0fUL, 0xa7e3ebb0UL, 0xc68e4906UL,
+0xb8da230cUL, 0x80823028UL, 0xdcdef3c8UL, 0xd35fb171UL, 0x088a1bc8UL, 0xbec0c560UL, 0x61a3c9e8UL, 0xbca8f54dUL,
+0xc72feffaUL, 0x22822e99UL, 0x82c570b4UL, 0xd8d94e89UL, 0x8b1c34bcUL, 0x301e16e6UL, 0x273be979UL, 0xb0ffeaa6UL,
+0x61d9b8c6UL, 0x00b24869UL, 0xb7ffce3fUL, 0x08dc283bUL, 0x43daf65aUL, 0xf7e19798UL, 0x7619b72fUL, 0x8f1c9ba4UL,
+0xdc8637a0UL, 0x16a7d3b1UL, 0x9fc393b7UL, 0xa7136eebUL, 0xc6bcc63eUL, 0x1a513742UL, 0xef6828bcUL, 0x520365d6UL,
+0x2d6a77abUL, 0x3527ed4bUL, 0x821fd216UL, 0x095c6e2eUL, 0xdb92f2fbUL, 0x5eea29cbUL, 0x145892f5UL, 0x91584f7fUL,
+0x5483697bUL, 0x2667a8ccUL, 0x85196048UL, 0x8c4baceaUL, 0x833860d4UL, 0x0d23e0f9UL, 0x6c387e8aUL, 0x0ae6d249UL,
+0xb284600cUL, 0xd835731dUL, 0xdcb1c647UL, 0xac4c56eaUL, 0x3ebd81b3UL, 0x230eabb0UL, 0x6438bc87UL, 0xf0b5b1faUL,
+0x8f5ea2b3UL, 0xfc184642UL, 0x0a036b7aUL, 0x4fb089bdUL, 0x649da589UL, 0xa345415eUL, 0x5c038323UL, 0x3e5d3bb9UL,
+0x43d79572UL, 0x7e6dd07cUL, 0x06dfdf1eUL, 0x6c6cc4efUL, 0x7160a539UL, 0x73bfbe70UL, 0x83877605UL, 0x4523ecf1UL};
+
+const uint32_t s3[] PROGMEM = {
+0x8defc240UL, 0x25fa5d9fUL, 0xeb903dbfUL, 0xe810c907UL, 0x47607fffUL, 0x369fe44bUL, 0x8c1fc644UL, 0xaececa90UL,
+0xbeb1f9bfUL, 0xeefbcaeaUL, 0xe8cf1950UL, 0x51df07aeUL, 0x920e8806UL, 0xf0ad0548UL, 0xe13c8d83UL, 0x927010d5UL,
+0x11107d9fUL, 0x07647db9UL, 0xb2e3e4d4UL, 0x3d4f285eUL, 0xb9afa820UL, 0xfade82e0UL, 0xa067268bUL, 0x8272792eUL,
+0x553fb2c0UL, 0x489ae22bUL, 0xd4ef9794UL, 0x125e3fbcUL, 0x21fffceeUL, 0x825b1bfdUL, 0x9255c5edUL, 0x1257a240UL,
+0x4e1a8302UL, 0xbae07fffUL, 0x528246e7UL, 0x8e57140eUL, 0x3373f7bfUL, 0x8c9f8188UL, 0xa6fc4ee8UL, 0xc982b5a5UL,
+0xa8c01db7UL, 0x579fc264UL, 0x67094f31UL, 0xf2bd3f5fUL, 0x40fff7c1UL, 0x1fb78dfcUL, 0x8e6bd2c1UL, 0x437be59bUL,
+0x99b03dbfUL, 0xb5dbc64bUL, 0x638dc0e6UL, 0x55819d99UL, 0xa197c81cUL, 0x4a012d6eUL, 0xc5884a28UL, 0xccc36f71UL,
+0xb843c213UL, 0x6c0743f1UL, 0x8309893cUL, 0x0feddd5fUL, 0x2f7fe850UL, 0xd7c07f7eUL, 0x02507fbfUL, 0x5afb9a04UL,
+0xa747d2d0UL, 0x1651192eUL, 0xaf70bf3eUL, 0x58c31380UL, 0x5f98302eUL, 0x727cc3c4UL, 0x0a0fb402UL, 0x0f7fef82UL,
+0x8c96fdadUL, 0x5d2c2aaeUL, 0x8ee99a49UL, 0x50da88b8UL, 0x8427f4a0UL, 0x1eac5790UL, 0x796fb449UL, 0x8252dc15UL,
+0xefbd7d9bUL, 0xa672597dUL, 0xada840d8UL, 0x45f54504UL, 0xfa5d7403UL, 0xe83ec305UL, 0x4f91751aUL, 0x925669c2UL,
+0x23efe941UL, 0xa903f12eUL, 0x60270df2UL, 0x0276e4b6UL, 0x94fd6574UL, 0x927985b2UL, 0x8276dbcbUL, 0x02778176UL,
+0xf8af918dUL, 0x4e48f79eUL, 0x8f616ddfUL, 0xe29d840eUL, 0x842f7d83UL, 0x340ce5c8UL, 0x96bbb682UL, 0x93b4b148UL,
+0xef303cabUL, 0x984faf28UL, 0x779faf9bUL, 0x92dc560dUL, 0x224d1e20UL, 0x8437aa88UL, 0x7d29dc96UL, 0x2756d3dcUL,
+0x8b907ceeUL, 0xb51fd240UL, 0xe7c07ce3UL, 0xe566b4a1UL, 0xc3e9615eUL, 0x3cf8209dUL, 0x6094d1e3UL, 0xcd9ca341UL,
+0x5c76460eUL, 0x00ea983bUL, 0xd4d67881UL, 0xfd47572cUL, 0xf76cedd9UL, 0xbda8229cUL, 0x127dadaaUL, 0x438a074eUL,
+0x1f97c090UL, 0x081bdb8aUL, 0x93a07ebeUL, 0xb938ca15UL, 0x97b03cffUL, 0x3dc2c0f8UL, 0x8d1ab2ecUL, 0x64380e51UL,
+0x68cc7bfbUL, 0xd90f2788UL, 0x12490181UL, 0x5de5ffd4UL, 0xdd7ef86aUL, 0x76a2e214UL, 0xb9a40368UL, 0x925d958fUL,
+0x4b39fffaUL, 0xba39aee9UL, 0xa4ffd30bUL, 0xfaf7933bUL, 0x6d498623UL, 0x193cbcfaUL, 0x27627545UL, 0x825cf47aUL,
+0x61bd8ba0UL, 0xd11e42d1UL, 0xcead04f4UL, 0x127ea392UL, 0x10428db7UL, 0x8272a972UL, 0x9270c4a8UL, 0x127de50bUL,
+0x285ba1c8UL, 0x3c62f44fUL, 0x35c0eaa5UL, 0xe805d231UL, 0x428929fbUL, 0xb4fcdf82UL, 0x4fb66a53UL, 0x0e7dc15bUL,
+0x1f081fabUL, 0x108618aeUL, 0xfcfd086dUL, 0xf9ff2889UL, 0x694bcc11UL, 0x236a5caeUL, 0x12deca4dUL, 0x2c3f8cc5UL,
+0xd2d02dfeUL, 0xf8ef5896UL, 0xe4cf52daUL, 0x95155b67UL, 0x494a488cUL, 0xb9b6a80cUL, 0x5c8f82bcUL, 0x89d36b45UL,
+0x3a609437UL, 0xec00c9a9UL, 0x44715253UL, 0x0a874b49UL, 0xd773bc40UL, 0x7c34671cUL, 0x02717ef6UL, 0x4feb5536UL,
+0xa2d02fffUL, 0xd2bf60c4UL, 0xd43f03c0UL, 0x50b4ef6dUL, 0x07478cd1UL, 0x006e1888UL, 0xa2e53f55UL, 0xb9e6d4bcUL,
+0xa2048016UL, 0x97573833UL, 0xd7207d67UL, 0xde0f8f3dUL, 0x72f87b33UL, 0xabcc4f33UL, 0x7688c55dUL, 0x7b00a6b0UL,
+0x947b0001UL, 0x570075d2UL, 0xf9bb88f8UL, 0x8942019eUL, 0x4264a5ffUL, 0x856302e0UL, 0x72dbd92bUL, 0xee971b69UL,
+0x6ea22fdeUL, 0x5f08ae2bUL, 0xaf7a616dUL, 0xe5c98767UL, 0xcf1febd2UL, 0x61efc8c2UL, 0xf1ac2571UL, 0xcc8239c2UL,
+0x67214cb8UL, 0xb1e583d1UL, 0xb7dc3e62UL, 0x7f10bdceUL, 0xf90a5c38UL, 0x0ff0443dUL, 0x606e6dc6UL, 0x60543a49UL,
+0x5727c148UL, 0x2be98a1dUL, 0x8ab41738UL, 0x20e1be24UL, 0xaf96da0fUL, 0x68458425UL, 0x99833be5UL, 0x600d457dUL,
+0x282f9350UL, 0x8334b362UL, 0xd91d1120UL, 0x2b6d8da0UL, 0x642b1e31UL, 0x9c305a00UL, 0x52bce688UL, 0x1b03588aUL,
+0xf7baefd5UL, 0x4142ed9cUL, 0xa4315c11UL, 0x83323ec5UL, 0xdfef4636UL, 0xa133c501UL, 0xe9d3531cUL, 0xee353783UL};
+
+const uint32_t s4[] PROGMEM = {
+0x9db30420UL, 0x1fb6e9deUL, 0xa7be7befUL, 0xd273a298UL, 0x4a4f7bdbUL, 0x64ad8c57UL, 0x85510443UL, 0xfa020ed1UL,
+0x7e287affUL, 0xe60fb663UL, 0x095f35a1UL, 0x79ebf120UL, 0xfd059d43UL, 0x6497b7b1UL, 0xf3641f63UL, 0x241e4adfUL,
+0x28147f5fUL, 0x4fa2b8cdUL, 0xc9430040UL, 0x0cc32220UL, 0xfdd30b30UL, 0xc0a5374fUL, 0x1d2d00d9UL, 0x24147b15UL,
+0xee4d111aUL, 0x0fca5167UL, 0x71ff904cUL, 0x2d195ffeUL, 0x1a05645fUL, 0x0c13fefeUL, 0x081b08caUL, 0x05170121UL,
+0x80530100UL, 0xe83e5efeUL, 0xac9af4f8UL, 0x7fe72701UL, 0xd2b8ee5fUL, 0x06df4261UL, 0xbb9e9b8aUL, 0x7293ea25UL,
+0xce84ffdfUL, 0xf5718801UL, 0x3dd64b04UL, 0xa26f263bUL, 0x7ed48400UL, 0x547eebe6UL, 0x446d4ca0UL, 0x6cf3d6f5UL,
+0x2649abdfUL, 0xaea0c7f5UL, 0x36338cc1UL, 0x503f7e93UL, 0xd3772061UL, 0x11b638e1UL, 0x72500e03UL, 0xf80eb2bbUL,
+0xabe0502eUL, 0xec8d77deUL, 0x57971e81UL, 0xe14f6746UL, 0xc9335400UL, 0x6920318fUL, 0x081dbb99UL, 0xffc304a5UL,
+0x4d351805UL, 0x7f3d5ce3UL, 0xa6c866c6UL, 0x5d5bcca9UL, 0xdaec6feaUL, 0x9f926f91UL, 0x9f46222fUL, 0x3991467dUL,
+0xa5bf6d8eUL, 0x1143c44fUL, 0x43958302UL, 0xd0214eebUL, 0x022083b8UL, 0x3fb6180cUL, 0x18f8931eUL, 0x281658e6UL,
+0x26486e3eUL, 0x8bd78a70UL, 0x7477e4c1UL, 0xb506e07cUL, 0xf32d0a25UL, 0x79098b02UL, 0xe4eabb81UL, 0x28123b23UL,
+0x69dead38UL, 0x1574ca16UL, 0xdf871b62UL, 0x211c40b7UL, 0xa51a9ef9UL, 0x0014377bUL, 0x041e8ac8UL, 0x09114003UL,
+0xbd59e4d2UL, 0xe3d156d5UL, 0x4fe876d5UL, 0x2f91a340UL, 0x557be8deUL, 0x00eae4a7UL, 0x0ce5c2ecUL, 0x4db4bba6UL,
+0xe756bdffUL, 0xdd3369acUL, 0xec17b035UL, 0x06572327UL, 0x99afc8b0UL, 0x56c8c391UL, 0x6b65811cUL, 0x5e146119UL,
+0x6e85cb75UL, 0xbe07c002UL, 0xc2325577UL, 0x893ff4ecUL, 0x5bbfc92dUL, 0xd0ec3b25UL, 0xb7801ab7UL, 0x8d6d3b24UL,
+0x20c763efUL, 0xc366a5fcUL, 0x9c382880UL, 0x0ace3205UL, 0xaac9548aUL, 0xeca1d7c7UL, 0x041afa32UL, 0x1d16625aUL,
+0x6701902cUL, 0x9b757a54UL, 0x31d477f7UL, 0x9126b031UL, 0x36cc6fdbUL, 0xc70b8b46UL, 0xd9e66a48UL, 0x56e55a79UL,
+0x026a4cebUL, 0x52437effUL, 0x2f8f76b4UL, 0x0df980a5UL, 0x8674cde3UL, 0xedda04ebUL, 0x17a9be04UL, 0x2c18f4dfUL,
+0xb7747f9dUL, 0xab2af7b4UL, 0xefc34d20UL, 0x2e096b7cUL, 0x1741a254UL, 0xe5b6a035UL, 0x213d42f6UL, 0x2c1c7c26UL,
+0x61c2f50fUL, 0x6552daf9UL, 0xd2c231f8UL, 0x25130f69UL, 0xd8167fa2UL, 0x0418f2c8UL, 0x001a96a6UL, 0x0d1526abUL,
+0x63315c21UL, 0x5e0a72ecUL, 0x49bafefdUL, 0x187908d9UL, 0x8d0dbd86UL, 0x311170a7UL, 0x3e9b640cUL, 0xcc3e10d7UL,
+0xd5cad3b6UL, 0x0caec388UL, 0xf73001e1UL, 0x6c728affUL, 0x71eae2a1UL, 0x1f9af36eUL, 0xcfcbd12fUL, 0xc1de8417UL,
+0xac07be6bUL, 0xcb44a1d8UL, 0x8b9b0f56UL, 0x013988c3UL, 0xb1c52fcaUL, 0xb4be31cdUL, 0xd8782806UL, 0x12a3a4e2UL,
+0x6f7de532UL, 0x58fd7eb6UL, 0xd01ee900UL, 0x24adffc2UL, 0xf4990fc5UL, 0x9711aac5UL, 0x001d7b95UL, 0x82e5e7d2UL,
+0x109873f6UL, 0x00613096UL, 0xc32d9521UL, 0xada121ffUL, 0x29908415UL, 0x7fbb977fUL, 0xaf9eb3dbUL, 0x29c9ed2aUL,
+0x5ce2a465UL, 0xa730f32cUL, 0xd0aa3fe8UL, 0x8a5cc091UL, 0xd49e2ce7UL, 0x0ce454a9UL, 0xd60acd86UL, 0x015f1919UL,
+0x77079103UL, 0xdea03af6UL, 0x78a8565eUL, 0xdee356dfUL, 0x21f05cbeUL, 0x8b75e387UL, 0xb3c50651UL, 0xb8a5c3efUL,
+0xd8eeb6d2UL, 0xe523be77UL, 0xc2154529UL, 0x2f69efdfUL, 0xafe67afbUL, 0xf470c4b2UL, 0xf3e0eb5bUL, 0xd6cc9876UL,
+0x39e4460cUL, 0x1fda8538UL, 0x1987832fUL, 0xca007367UL, 0xa99144f8UL, 0x296b299eUL, 0x492fc295UL, 0x9266beabUL,
+0xb5676e69UL, 0x9bd3dddaUL, 0xdf7e052fUL, 0xdb25701cUL, 0x1b5e51eeUL, 0xf65324e6UL, 0x6afce36cUL, 0x0316cc04UL,
+0x8644213eUL, 0xb7dc59d0UL, 0x7965291fUL, 0xccd6fd43UL, 0x41823979UL, 0x932bcdf6UL, 0xb657c34dUL, 0x4edfd282UL,
+0x7ae5290cUL, 0x3cb9536bUL, 0x851e20feUL, 0x9833557eUL, 0x13ecf0b0UL, 0xd3ffb372UL, 0x3f85c5c1UL, 0x0aef7ed2UL};
+
+#else
+
+const uint32_t s1[] PROGMEM = {
+0xd440fb30UL, 0x0bffa09fUL, 0x2fcdec6bUL, 0x7a8c253fUL, 0x2f3f211eUL, 0xd34d009cUL, 0x40e50360UL, 0x49c99fcfUL,
+0x27afd4bfUL, 0xb5bdbb88UL, 0x904003e2UL, 0x7596d098UL, 0xe0a0636eUL, 0xd261c315UL, 0x1d66e7c2UL, 0x8effd422UL,
+0x6f3b6828UL, 0x59d07fc0UL, 0xc87923ffUL, 0xe2505f77UL, 0xd340c343UL, 0x56862fdfUL, 0x1aa47c88UL, 0x2dbdd2a2UL,
+0xd6e0c9a1UL, 0x19486c34UL, 0x876db761UL, 0x2f0f5422UL, 0xe132be2aUL, 0x6b1654aaUL, 0x3a8e5622UL, 0xd041d3a2UL,
+0xc840db66UL, 0x2f3984a7UL, 0x2fff4d00UL, 0xded2b92dUL, 0xac3f9497UL, 0xd8c1974aUL, 0xb7447652UL, 0xa737f4b5UL,
+0xefba2cb8UL, 0x59d151d7UL, 0xedf0f76fUL, 0x1f7a095aUL, 0xd0687b82UL, 0x2ef5ec90UL, 0x54c0b022UL, 0x35598ebcUL,
+0x7f2f6d4bUL, 0xa264bb50UL, 0x104966d2UL, 0x2d81e5beUL, 0x902233b7UL, 0x9f153be9UL, 0x11e48eb4UL, 0x5d34ff4bUL,
+0x40c245fdUL, 0x3f9731adUL, 0x2ed0f6c4UL, 0x6581fc55UL, 0xadcab1d5UL, 0xae2daca1UL, 0x6db7d4a2UL, 0x500c9bc1UL,
+0xf2402288UL, 0x384f6e0cUL, 0xd7bfe4a4UL, 0x72a25b4fUL, 0x2f1d4c56UL, 0x19539cc5UL, 0x54e349b9UL, 0xfe6946b0UL,
+0x8aabb6b1UL, 0xdd5813c7UL, 0x45c58563UL, 0x5d930f11UL, 0xd58a5357UL, 0x9304396aUL, 0xe0373de6UL, 0xb3f6542aUL,
+0x5f7d783aUL, 0xb5a07662UL, 0xdffca619UL, 0x6a20427aUL, 0xd5d4f929UL, 0x91181bf6UL, 0x5e2772bbUL, 0x678150aaUL,
+0x91109038UL, 0xeb05b5c6UL, 0x8ccbc784UL, 0x0f5ad72aUL, 0x27144a87UL, 0x6b93d1a2UL, 0xaf86d22aUL, 0x91d256aaUL,
+0x604389d7UL, 0x0d755c42UL, 0x269eb393UL, 0xc9847118UL, 0x2db3006cUL, 0x14bbe273UL, 0x3cbcbea0UL, 0x79376254UL,
+0xab9e4564UL, 0x828b323fUL, 0x82cf1877UL, 0xa6cea259UL, 0x2e00ee04UL, 0xe678fe89UL, 0x5009ab3fUL, 0xc2f65f32UL,
+0x053f3881UL, 0xc8c56369UL, 0xd65acb76UL, 0xc97499d4UL, 0xcf0d18caUL, 0xd5820738UL, 0xf65cfac7UL, 0x1115c38aUL,
+0x139ee735UL, 0xd091da47UL, 0x86900ff4UL, 0x9e41e2a7UL, 0x41623631UL, 0x95f41e05UL, 0x043b57aaUL, 0x8d5d804aUL,
+0xd0008354UL, 0x3c2a3200UL, 0xdfcd64bfUL, 0x8ea657baUL, 0x2b37c675UL, 0x41d3af50UL, 0x7532c1a7UL, 0xf50b5a91UL,
+0xabbf546bUL, 0x26140b2bUL, 0xd7c94cabUL, 0x82cd9c44UL, 0x65f2fbf7UL, 0xf3c585abUL, 0x94db551bUL, 0x24e3d4aaUL,
+0x3fbda4cfUL, 0xe2a3ea2dUL, 0x024d209eUL, 0xac25bdc8UL, 0xb355dfeaUL, 0x989ebdd5UL, 0xb23112e3UL, 0x6cadd52aUL,
+0xde294395UL, 0x2845beadUL, 0x690f71d8UL, 0x0fc951aaUL, 0xf66b78aaUL, 0x1e3f5122UL, 0x9ba751aaUL, 0xcc44d32aUL,
+0xf0415a7bUL, 0xadfb7cd3UL, 0x0595061bUL, 0x91e4ec41UL, 0xe632c3b4UL, 0xd4682203UL, 0xcc0a60c9UL, 0x6d7e38ceUL,
+0x6cb16bbfUL, 0x78fb706aUL, 0xc9d9030dUL, 0xde39dfd4UL, 0xda6310e0UL, 0x64f43647UL, 0xd828d35aUL, 0x96cc47b3UL,
+0xc30fbb75UL, 0xfb1b5198UL, 0x35ccfb4fUL, 0x6acf8bb5UL, 0xbc0a1fe1UL, 0x4afec5bfUL, 0x10ec0aa7UL, 0x0a5739acUL,
+0x2f44043fUL, 0x53b18861UL, 0x2e7a39e0UL, 0x79cb2757UL, 0x8f41eb9cUL, 0x8dd6ac1cUL, 0x967cd32aUL, 0x9dcb7501UL,
+0x09ff9dc6UL, 0xf0655bc7UL, 0xd840dbd9UL, 0x79770eecUL, 0xd4ea4447UL, 0x74321cb1UL, 0x9ecb24ddUL, 0xbd541c7eUL,
+0xf94411f0UL, 0xb10e24d2UL, 0xfdb37596UL, 0x5537aca3UL, 0xaf277cd4UL, 0x4d5fc851UL, 0x96759056UL, 0xe615bba5UL,
+0xf0040358UL, 0xf12c04caUL, 0xea371a01UL, 0xdbaabf8dUL, 0x4a3eba35UL, 0xa0ff2635UL, 0x094d7bc3UL, 0xd96e30bcUL,
+0x6626a598UL, 0x25f74856UL, 0x9d565effUL, 0xd063ed0cUL, 0xcfb2637cUL, 0xe1450b70UL, 0xf150ead5UL, 0x7228a985UL,
+0xa7bd1fafUL, 0x704823d4UL, 0xf30b87a7UL, 0x794d3b2dUL, 0x9841e042UL, 0xe7edd00cUL, 0xb80d4726UL, 0x4c8181f8UL,
+0xd76a4d47UL, 0x5c5e0c7cUL, 0x591923d1UL, 0x98721b38UL, 0xdbf4d2f5UL, 0x538683abUL, 0x231e2f6eUL, 0x9e9c7183UL,
+0x46e091bdUL, 0x6e45569aUL, 0x0c2039dcUL, 0x71c5c820UL, 0x1cda2b96UL, 0xff96e6e1UL, 0x08ab41b1UL, 0xb989ca7cUL,
+0x83e7691aUL, 0x4348cc02UL, 0x79c5f7a2UL, 0x7df49e42UL, 0x9c167b42UL, 0x49f0c95aUL, 0x000f8fddUL, 0xbf65815cUL};
+
+const uint32_t s2[] PROGMEM = {
+0x9410201fUL, 0x5ba70befUL, 0x7ecfe369UL, 0x80433f39UL, 0x7acf61feUL, 0x7a20c5eeUL, 0x949c8855UL, 0x5106fc72UL,
+0x79efa7adUL, 0x35721d4eUL, 0xce635ad5UL, 0xba3604deUL, 0xef30c499UL, 0x94070c5fUL, 0x7ddbdc18UL, 0xf3efd6a1UL,
+0x7b2fb5a0UL, 0x0536e859UL, 0x94b015eeUL, 0x09d9ffe9UL, 0x860044dcUL, 0x594494efUL, 0xb3cc83baUL, 0xfbcdc3e0UL,
+0x8141dad1UL, 0xb12a093bUL, 0xc1f197f9UL, 0x7bcfe6a5UL, 0xdb0d4201UL, 0x5befe7e4UL, 0x41ffa125UL, 0x06f880e1UL,
+0x8010c41fUL, 0x7aee9b17UL, 0xa9c67ad3UL, 0xa43058feUL, 0x7f8bde98UL, 0x4e3fe877UL, 0x69929279UL, 0x7b9ffa24UL,
+0x5bc813e1UL, 0x8300c4acUL, 0x253550d7UL, 0x5f61eaf7UL, 0x54311462UL, 0x634b550dUL, 0x2111685dUL, 0x59c366c8UL,
+0x73cf633dUL, 0xc034e2ceUL, 0x877ed8d4UL, 0x212b675cUL, 0x81611f07UL, 0x7f62f739UL, 0x84301e36UL, 0x3b57ebe4UL,
+0xa4642f60UL, 0x9ccd3ad6UL, 0x3546bc1bUL, 0x2d03819eUL, 0x0cf50127UL, 0xb47a8499UL, 0x79dfe3a0UL, 0x8cf36cbaUL,
+0x94308410UL, 0x5ea93725UL, 0xfe6f6ff4UL, 0x1f3bffa1UL, 0x6afb8c20UL, 0x748c458fUL, 0x27a2e0d9UL, 0x343ac74eUL,
+0x694f88fcUL, 0xdfe84d3eUL, 0x88000eefUL, 0x8d645935UL, 0x8c38458aUL, 0x6643801dUL, 0xfd9b1d72UL, 0xbb8486a5UL,
+0x336325e8UL, 0x12824e84UL, 0x98808d12UL, 0xb43fd3feUL, 0xe10a28ceUL, 0xa59be127UL, 0x52c2a6d5UL, 0xbd5497e4UL,
+0xdd55d6c5UL, 0x647066ebUL, 0x4d0b8477UL, 0x01a8b6a1UL, 0xa926db84UL, 0x1467b5e0UL, 0xb743f021UL, 0x6058d0e5UL,
+0x8430f054UL, 0x72f46f06UL, 0x53a11aa3UL, 0x5547dcdaUL, 0xbf5d62b5UL, 0xe61b5668UL, 0x946bca83UL, 0x3bd26e2dUL,
+0xdb01cfecUL, 0xbad0d3a6UL, 0x5c3d80b6UL, 0x09a777afUL, 0x4ca3b433UL, 0xd6c87b39UL, 0x952be25eUL, 0x04530e5fUL,
+0x616fed81UL, 0x6443e720UL, 0x78135eb4UL, 0x9b6318deUL, 0x22a11c88UL, 0xd12667b9UL, 0xe8a74980UL, 0x7bdab722UL,
+0x252d555eUL, 0x37d27252UL, 0x1c95d279UL, 0x4c890dc6UL, 0x02b48c48UL, 0x5bfea41bUL, 0x6b9fb0a4UL, 0xcf15a81cUL,
+0x05300ca2UL, 0x63df7188UL, 0xcb2fdeb9UL, 0xe9c9c60cUL, 0x53ffee0bUL, 0x174521e3UL, 0x352854b4UL, 0x3c29639fUL,
+0x29e741eeUL, 0x7c2d1d6eUL, 0x86520450UL, 0xf385661eUL, 0xc60134f3UL, 0x952ca230UL, 0x5008a731UL, 0x130f9360UL,
+0x1784f973UL, 0x599826a1UL, 0x445c64ecUL, 0xa977c852UL, 0xa633ffcdUL, 0x41172ba0UL, 0xa2d9ba7cUL, 0x6f038021UL,
+0x089cd950UL, 0x61483fcbUL, 0x65d76bc2UL, 0xabf6a364UL, 0x76263480UL, 0x7b5ea725UL, 0xfcd1e6e4UL, 0xe610c720UL,
+0x80b6f0cdUL, 0x3b4d8417UL, 0x4df8ee31UL, 0xe424087eUL, 0xeb49cb2cUL, 0xae3b6a84UL, 0x8878f78fUL, 0xf6605deeUL,
+0x7356f77aUL, 0xdb5cdd2fUL, 0xc13116a1UL, 0x436ff630UL, 0x54ecfab3UL, 0xfad77f15UL, 0xcc7985efUL, 0x58de52d1UL,
+0x5efd2fdbUL, 0x19ce328fUL, 0x7af96a30UL, 0xf83ef002UL, 0xd59a3199UL, 0x0ffa42c2UL, 0xb0ebe3a7UL, 0x06498ec6UL,
+0x0c23dab8UL, 0x28308280UL, 0xc8f3dedcUL, 0x71b15fd3UL, 0xc81b8a08UL, 0x60c5c0beUL, 0xe8c9a361UL, 0x4df5a8bcUL,
+0xfaef2fc7UL, 0x992e8222UL, 0xb470c582UL, 0x894ed9d8UL, 0xbc341c8bUL, 0xe6161e30UL, 0x79e93b27UL, 0xa6eaffb0UL,
+0xc6b8d961UL, 0x6948b200UL, 0x3fceffb7UL, 0x3b28dc08UL, 0x5af6da43UL, 0x9897e1f7UL, 0x2fb71976UL, 0xa49b1c8fUL,
+0xa03786dcUL, 0xb1d3a716UL, 0xb793c39fUL, 0xeb6e13a7UL, 0x3ec6bcc6UL, 0x4237511aUL, 0xbc2868efUL, 0xd6650352UL,
+0xab776a2dUL, 0x4bed2735UL, 0x16d21f82UL, 0x2e6e5c09UL, 0xfbf292dbUL, 0xcb29ea5eUL, 0xf5925814UL, 0x7f4f5891UL,
+0x7b698354UL, 0xcca86726UL, 0x48601985UL, 0xeaac4b8cUL, 0xd4603883UL, 0xf9e0230dUL, 0x8a7e386cUL, 0x49d2e60aUL,
+0x0c6084b2UL, 0x1d7335d8UL, 0x47c6b1dcUL, 0xea564cacUL, 0xb381bd3eUL, 0xb0ab0e23UL, 0x87bc3864UL, 0xfab1b5f0UL,
+0xb3a25e8fUL, 0x424618fcUL, 0x7a6b030aUL, 0xbd89b04fUL, 0x89a59d64UL, 0x5e4145a3UL, 0x2383035cUL, 0xb93b5d3eUL,
+0x7295d743UL, 0x7cd06d7eUL, 0x1edfdf06UL, 0xefc46c6cUL, 0x39a56071UL, 0x70bebf73UL, 0x05768783UL, 0xf1ec2345UL};
+
+const uint32_t s3[] PROGMEM = {
+0x40c2ef8dUL, 0x9f5dfa25UL, 0xbf3d90ebUL, 0x07c910e8UL, 0xff7f6047UL, 0x4be49f36UL, 0x44c61f8cUL, 0x90caceaeUL,
+0xbff9b1beUL, 0xeacafbeeUL, 0x5019cfe8UL, 0xae07df51UL, 0x06880e92UL, 0x4805adf0UL, 0x838d3ce1UL, 0xd5107092UL,
+0x9f7d1011UL, 0xb97d6407UL, 0xd4e4e3b2UL, 0x5e284f3dUL, 0x20a8afb9UL, 0xe082defaUL, 0x8b2667a0UL, 0x2e797282UL,
+0xc0b23f55UL, 0x2be29a48UL, 0x9497efd4UL, 0xbc3f5e12UL, 0xeefcff21UL, 0xfd1b5b82UL, 0xedc55592UL, 0x40a25712UL,
+0x02831a4eUL, 0xff7fe0baUL, 0xe7468252UL, 0x0e14578eUL, 0xbff77333UL, 0x88819f8cUL, 0xe84efca6UL, 0xa5b582c9UL,
+0xb71dc0a8UL, 0x64c29f57UL, 0x314f0967UL, 0x5f3fbdf2UL, 0xc1f7ff40UL, 0xfc8db71fUL, 0xc1d26b8eUL, 0x9be57b43UL,
+0xbf3db099UL, 0x4bc6dbb5UL, 0xe6c08d63UL, 0x999d8155UL, 0x1cc897a1UL, 0x6e2d014aUL, 0x284a88c5UL, 0x716fc3ccUL,
+0x13c243b8UL, 0xf143076cUL, 0x3c890983UL, 0x5fdded0fUL, 0x50e87f2fUL, 0x7e7fc0d7UL, 0xbf7f5002UL, 0x049afb5aUL,
+0xd0d247a7UL, 0x2e195116UL, 0x3ebf70afUL, 0x8013c358UL, 0x2e30985fUL, 0xc4c37c72UL, 0x02b40f0aUL, 0x82ef7f0fUL,
+0xadfd968cUL, 0xae2a2c5dUL, 0x499ae98eUL, 0xb888da50UL, 0xa0f42784UL, 0x9057ac1eUL, 0x49b46f79UL, 0x15dc5282UL,
+0x9b7dbdefUL, 0x7d5972a6UL, 0xd840a8adUL, 0x0445f545UL, 0x03745dfaUL, 0x05c33ee8UL, 0x1a75914fUL, 0xc2695692UL,
+0x41e9ef23UL, 0x2ef103a9UL, 0xf20d2760UL, 0xb6e47602UL, 0x7465fd94UL, 0xb2857992UL, 0xcbdb7682UL, 0x76817702UL,
+0x8d91aff8UL, 0x9ef7484eUL, 0xdf6d618fUL, 0x0e849de2UL, 0x837d2f84UL, 0xc8e50c34UL, 0x82b6bb96UL, 0x48b1b493UL,
+0xab3c30efUL, 0x28af4f98UL, 0x9baf9f77UL, 0x0d56dc92UL, 0x201e4d22UL, 0x88aa3784UL, 0x96dc297dUL, 0xdcd35627UL,
+0xee7c908bUL, 0x40d21fb5UL, 0xe37cc0e7UL, 0xa1b466e5UL, 0x5e61e9c3UL, 0x9d20f83cUL, 0xe3d19460UL, 0x41a39ccdUL,
+0x0e46765cUL, 0x3b98ea00UL, 0x8178d6d4UL, 0x2c5747fdUL, 0xd9ed6cf7UL, 0x9c22a8bdUL, 0xaaad7d12UL, 0x4e078a43UL,
+0x90c0971fUL, 0x8adb1b08UL, 0xbe7ea093UL, 0x15ca38b9UL, 0xff3cb097UL, 0xf8c0c23dUL, 0xecb21a8dUL, 0x510e3864UL,
+0xfb7bcc68UL, 0x88270fd9UL, 0x81014912UL, 0xd4ffe55dUL, 0x6af87eddUL, 0x14e2a276UL, 0x6803a4b9UL, 0x8f955d92UL,
+0xfaff394bUL, 0xe9ae39baUL, 0x0bd3ffa4UL, 0x3b93f7faUL, 0x2386496dUL, 0xfabc3c19UL, 0x45756227UL, 0x7af45c82UL,
+0xa08bbd61UL, 0xd1421ed1UL, 0xf404adceUL, 0x92a37e12UL, 0xb78d4210UL, 0x72a97282UL, 0xa8c47092UL, 0x0be57d12UL,
+0xc8a15b28UL, 0x4ff4623cUL, 0xa5eac035UL, 0x31d205e8UL, 0xfb298942UL, 0x82dffcb4UL, 0x536ab64fUL, 0x5bc17d0eUL,
+0xab1f081fUL, 0xae188610UL, 0x6d08fdfcUL, 0x8928fff9UL, 0x11cc4b69UL, 0xae5c6a23UL, 0x4dcade12UL, 0xc58c3f2cUL,
+0xfe2dd0d2UL, 0x9658eff8UL, 0xda52cfe4UL, 0x675b1595UL, 0x8c484a49UL, 0x0ca8b6b9UL, 0xbc828f5cUL, 0x456bd389UL,
+0x3794603aUL, 0xa9c900ecUL, 0x53527144UL, 0x494b870aUL, 0x40bc73d7UL, 0x1c67347cUL, 0xf67e7102UL, 0x3655eb4fUL,
+0xff2fd0a2UL, 0xc460bfd2UL, 0xc0033fd4UL, 0x6defb450UL, 0xd18c4707UL, 0x88186e00UL, 0x553fe5a2UL, 0xbcd4e6b9UL,
+0x168004a2UL, 0x33385797UL, 0x677d20d7UL, 0x3d8f0fdeUL, 0x337bf872UL, 0x334fccabUL, 0x5dc58876UL, 0xb0a6007bUL,
+0x01007b94UL, 0xd2750057UL, 0xf888bbf9UL, 0x9e014289UL, 0xffa56442UL, 0xe0026385UL, 0x2bd9db72UL, 0x691b97eeUL,
+0xde2fa26eUL, 0x2bae085fUL, 0x6d617aafUL, 0x6787c9e5UL, 0xd2eb1fcfUL, 0xc2c8ef61UL, 0x7125acf1UL, 0xc23982ccUL,
+0xb84c2167UL, 0xd183e5b1UL, 0x623edcb7UL, 0xcebd107fUL, 0x385c0af9UL, 0x3d44f00fUL, 0xc66d6e60UL, 0x493a5460UL,
+0x48c12757UL, 0x1d8ae92bUL, 0x3817b48aUL, 0x24bee120UL, 0x0fda96afUL, 0x25844568UL, 0xe53b8399UL, 0x7d450d60UL,
+0x50932f28UL, 0x62b33483UL, 0x20111dd9UL, 0xa08d6d2bUL, 0x311e2b64UL, 0x005a309cUL, 0x88e6bc52UL, 0x8a58031bUL,
+0xd5efbaf7UL, 0x9ced4241UL, 0x115c31a4UL, 0xc53e3283UL, 0x3646efdfUL, 0x01c533a1UL, 0x1c53d3e9UL, 0x833735eeUL};
+
+const uint32_t s4[] PROGMEM = {
+0x2004b39dUL, 0xdee9b61fUL, 0xef7bbea7UL, 0x98a273d2UL, 0xdb7b4f4aUL, 0x578cad64UL, 0x43045185UL, 0xd10e02faUL,
+0xff7a287eUL, 0x63b60fe6UL, 0xa1355f09UL, 0x20f1eb79UL, 0x439d05fdUL, 0xb1b79764UL, 0x631f64f3UL, 0xdf4a1e24UL,
+0x5f7f1428UL, 0xcdb8a24fUL, 0x400043c9UL, 0x2022c30cUL, 0x300bd3fdUL, 0x4f37a5c0UL, 0xd9002d1dUL, 0x157b1424UL,
+0x1a114deeUL, 0x6751ca0fUL, 0x4c90ff71UL, 0xfe5f192dUL, 0x5f64051aUL, 0xfefe130cUL, 0xca081b08UL, 0x21011705UL,
+0x00015380UL, 0xfe5e3ee8UL, 0xf8f49aacUL, 0x0127e77fUL, 0x5feeb8d2UL, 0x6142df06UL, 0x8a9b9ebbUL, 0x25ea9372UL,
+0xdfff84ceUL, 0x018871f5UL, 0x044bd63dUL, 0x3b266fa2UL, 0x0084d47eUL, 0xe6eb7e54UL, 0xa04c6d44UL, 0xf5d6f36cUL,
+0xdfab4926UL, 0xf5c7a0aeUL, 0xc18c3336UL, 0x937e3f50UL, 0x612077d3UL, 0xe138b611UL, 0x030e5072UL, 0xbbb20ef8UL,
+0x2e50e0abUL, 0xde778decUL, 0x811e9757UL, 0x46674fe1UL, 0x005433c9UL, 0x8f312069UL, 0x99bb1d08UL, 0xa504c3ffUL,
+0x0518354dUL, 0xe35c3d7fUL, 0xc666c8a6UL, 0xa9cc5b5dUL, 0xea6fecdaUL, 0x916f929fUL, 0x2f22469fUL, 0x7d469139UL,
+0x8e6dbfa5UL, 0x4fc44311UL, 0x02839543UL, 0xeb4e21d0UL, 0xb8832002UL, 0x0c18b63fUL, 0x1e93f818UL, 0xe6581628UL,
+0x3e6e4826UL, 0x708ad78bUL, 0xc1e47774UL, 0x7ce006b5UL, 0x250a2df3UL, 0x028b0979UL, 0x81bbeae4UL, 0x233b1228UL,
+0x38adde69UL, 0x16ca7415UL, 0x621b87dfUL, 0xb7401c21UL, 0xf99e1aa5UL, 0x7b371400UL, 0xc88a1e04UL, 0x03401109UL,
+0xd2e459bdUL, 0xd556d1e3UL, 0xd576e84fUL, 0x40a3912fUL, 0xdee87b55UL, 0xa7e4ea00UL, 0xecc2e50cUL, 0xa6bbb44dUL,
+0xffbd56e7UL, 0xac6933ddUL, 0x35b017ecUL, 0x27235706UL, 0xb0c8af99UL, 0x91c3c856UL, 0x1c81656bUL, 0x1961145eUL,
+0x75cb856eUL, 0x02c007beUL, 0x775532c2UL, 0xecf43f89UL, 0x2dc9bf5bUL, 0x253becd0UL, 0xb71a80b7UL, 0x243b6d8dUL,
+0xef63c720UL, 0xfca566c3UL, 0x8028389cUL, 0x0532ce0aUL, 0x8a54c9aaUL, 0xc7d7a1ecUL, 0x32fa1a04UL, 0x5a62161dUL,
+0x2c900167UL, 0x547a759bUL, 0xf777d431UL, 0x31b02691UL, 0xdb6fcc36UL, 0x468b0bc7UL, 0x486ae6d9UL, 0x795ae556UL,
+0xeb4c6a02UL, 0xff7e4352UL, 0xb4768f2fUL, 0xa580f90dUL, 0xe3cd7486UL, 0xeb04daedUL, 0x04bea917UL, 0xdff4182cUL,
+0x9d7f74b7UL, 0xb4f72aabUL, 0x204dc3efUL, 0x7c6b092eUL, 0x54a24117UL, 0x35a0b6e5UL, 0xf6423d21UL, 0x267c1c2cUL,
+0x0ff5c261UL, 0xf9da5265UL, 0xf831c2d2UL, 0x690f1325UL, 0xa27f16d8UL, 0xc8f21804UL, 0xa6961a00UL, 0xab26150dUL,
+0x215c3163UL, 0xec720a5eUL, 0xfdfeba49UL, 0xd9087918UL, 0x86bd0d8dUL, 0xa7701131UL, 0x0c649b3eUL, 0xd7103eccUL,
+0xb6d3cad5UL, 0x88c3ae0cUL, 0xe10130f7UL, 0xff8a726cUL, 0xa1e2ea71UL, 0x6ef39a1fUL, 0x2fd1cbcfUL, 0x1784dec1UL,
+0x6bbe07acUL, 0xd8a144cbUL, 0x560f9b8bUL, 0xc3883901UL, 0xca2fc5b1UL, 0xcd31beb4UL, 0x062878d8UL, 0xe2a4a312UL,
+0x32e57d6fUL, 0xb67efd58UL, 0x00e91ed0UL, 0xc2ffad24UL, 0xc50f99f4UL, 0xc5aa1197UL, 0x957b1d00UL, 0xd2e7e582UL,
+0xf6739810UL, 0x96306100UL, 0x21952dc3UL, 0xff21a1adUL, 0x15849029UL, 0x7f97bb7fUL, 0xdbb39eafUL, 0x2aedc929UL,
+0x65a4e25cUL, 0x2cf330a7UL, 0xe83faad0UL, 0x91c05c8aUL, 0xe72c9ed4UL, 0xa954e40cUL, 0x86cd0ad6UL, 0x19195f01UL,
+0x03910777UL, 0xf63aa0deUL, 0x5e56a878UL, 0xdf56e3deUL, 0xbe5cf021UL, 0x87e3758bUL, 0x5106c5b3UL, 0xefc3a5b8UL,
+0xd2b6eed8UL, 0x77be23e5UL, 0x294515c2UL, 0xdfef692fUL, 0xfb7ae6afUL, 0xb2c470f4UL, 0x5bebe0f3UL, 0x7698ccd6UL,
+0x0c46e439UL, 0x3885da1fUL, 0x2f838719UL, 0x677300caUL, 0xf84491a9UL, 0x9e296b29UL, 0x95c22f49UL, 0xabbe6692UL,
+0x696e67b5UL, 0xdaddd39bUL, 0x2f057edfUL, 0x1c7025dbUL, 0xee515e1bUL, 0xe62453f6UL, 0x6ce3fc6aUL, 0x04cc1603UL,
+0x3e214486UL, 0xd059dcb7UL, 0x1f296579UL, 0x43fdd6ccUL, 0x79398241UL, 0xf6cd2b93UL, 0x4dc357b6UL, 0x82d2df4eUL,
+0x0c29e57aUL, 0x6b53b93cUL, 0xfe201e85UL, 0x7e553398UL, 0xb0f0ec13UL, 0x72b3ffd3UL, 0xc1c5853fUL, 0xd27eef0aUL};
+
+#endif
+
+/*********************************************************************************************************/
+
+#ifdef BIG_ENDIAN
+
+const uint32_t s5[] PROGMEM = {
+0x7ec90c04UL, 0x2c6e74b9UL, 0x9b0e66dfUL, 0xa6337911UL, 0xb86a7fffUL, 0x1dd358f5UL, 0x44dd9d44UL, 0x1731167fUL,
+0x08fbf1faUL, 0xe7f511ccUL, 0xd2051b00UL, 0x735aba00UL, 0x2ab722d8UL, 0x386381cbUL, 0xacf6243aUL, 0x69befd7aUL,
+0xe6a2e77fUL, 0xf0c720cdUL, 0xc4494816UL, 0xccf5c180UL, 0x38851640UL, 0x15b0a848UL, 0xe68b18cbUL, 0x4caadeffUL,
+0x5f480a01UL, 0x0412b2aaUL, 0x259814fcUL, 0x41d0efe2UL, 0x4e40b48dUL, 0x248eb6fbUL, 0x8dba1cfeUL, 0x41a99b02UL,
+0x1a550a04UL, 0xba8f65cbUL, 0x7251f4e7UL, 0x95a51725UL, 0xc106ecd7UL, 0x97a5980aUL, 0xc539b9aaUL, 0x4d79fe6aUL,
+0xf2f3f763UL, 0x68af8040UL, 0xed0c9e56UL, 0x11b4958bUL, 0xe1eb5a88UL, 0x8709e6b0UL, 0xd7e07156UL, 0x4e29fea7UL,
+0x6366e52dUL, 0x02d1c000UL, 0xc4ac8e05UL, 0x9377f571UL, 0x0c05372aUL, 0x578535f2UL, 0x2261be02UL, 0xd642a0c9UL,
+0xdf13a280UL, 0x74b55bd2UL, 0x682199c0UL, 0xd421e5ecUL, 0x53fb3ce8UL, 0xc8adedb3UL, 0x28a87fc9UL, 0x3d959981UL,
+0x5c1ff900UL, 0xfe38d399UL, 0x0c4eff0bUL, 0x062407eaUL, 0xaa2f4fb1UL, 0x4fb96976UL, 0x90c79505UL, 0xb0a8a774UL,
+0xef55a1ffUL, 0xe59ca2c2UL, 0xa6b62d27UL, 0xe66a4263UL, 0xdf65001fUL, 0x0ec50966UL, 0xdfdd55bcUL, 0x29de0655UL,
+0x911e739aUL, 0x17af8975UL, 0x32c7911cUL, 0x89f89468UL, 0x0d01e980UL, 0x524755f4UL, 0x03b63cc9UL, 0x0cc844b2UL,
+0xbcf3f0aaUL, 0x87ac36e9UL, 0xe53a7426UL, 0x01b3d82bUL, 0x1a9e7449UL, 0x64ee2d7eUL, 0xcddbb1daUL, 0x01c94910UL,
+0xb868bf80UL, 0x0d26f3fdUL, 0x9342ede7UL, 0x04a5c284UL, 0x636737b6UL, 0x50f5b616UL, 0xf24766e3UL, 0x8eca36c1UL,
+0x136e05dbUL, 0xfef18391UL, 0xfb887a37UL, 0xd6e7f7d4UL, 0xc7fb7dc9UL, 0x3063fcdfUL, 0xb6f589deUL, 0xec2941daUL,
+0x26e46695UL, 0xb7566419UL, 0xf654efc5UL, 0xd08d58b7UL, 0x48925401UL, 0xc1bacb7fUL, 0xe5ff550fUL, 0xb6083049UL,
+0x5bb5d0e8UL, 0x87d72e5aUL, 0xab6a6ee1UL, 0x223a66ceUL, 0xc62bf3cdUL, 0x9e0885f9UL, 0x68cb3e47UL, 0x086c010fUL,
+0xa21de820UL, 0xd18b69deUL, 0xf3f65777UL, 0xfa02c3f6UL, 0x407edac3UL, 0xcbb3d550UL, 0x1793084dUL, 0xb0d70ebaUL,
+0x0ab378d5UL, 0xd951fb0cUL, 0xded7da56UL, 0x4124bbe4UL, 0x94ca0b56UL, 0x0f5755d1UL, 0xe0e1e56eUL, 0x6184b5beUL,
+0x580a249fUL, 0x94f74bc0UL, 0xe327888eUL, 0x9f7b5561UL, 0xc3dc0280UL, 0x05687715UL, 0x646c6bd7UL, 0x44904db3UL,
+0x66b4f0a3UL, 0xc0f1648aUL, 0x697ed5afUL, 0x49e92ff6UL, 0x309e374fUL, 0x2cb6356aUL, 0x85808573UL, 0x4991f840UL,
+0x76f0ae02UL, 0x083be84dUL, 0x28421c9aUL, 0x44489406UL, 0x736e4cb8UL, 0xc1092910UL, 0x8bc95fc6UL, 0x7d869cf4UL,
+0x134f616fUL, 0x2e77118dUL, 0xb31b2be1UL, 0xaa90b472UL, 0x3ca5d717UL, 0x7d161bbaUL, 0x9cad9010UL, 0xaf462ba2UL,
+0x9fe459d2UL, 0x45d34559UL, 0xd9f2da13UL, 0xdbc65487UL, 0xf3e4f94eUL, 0x176d486fUL, 0x097c13eaUL, 0x631da5c7UL,
+0x445f7382UL, 0x175683f4UL, 0xcdc66a97UL, 0x70be0288UL, 0xb3cdcf72UL, 0x6e5dd2f3UL, 0x20936079UL, 0x459b80a5UL,
+0xbe60e2dbUL, 0xa9c23101UL, 0xeba5315cUL, 0x224e42f2UL, 0x1c5c1572UL, 0xf6721b2cUL, 0x1ad2fff3UL, 0x8c25404eUL,
+0x324ed72fUL, 0x4067b7fdUL, 0x0523138eUL, 0x5ca3bc78UL, 0xdc0fd66eUL, 0x75922283UL, 0x784d6b17UL, 0x58ebb16eUL,
+0x44094f85UL, 0x3f481d87UL, 0xfcfeae7bUL, 0x77b5ff76UL, 0x8c2302bfUL, 0xaaf47556UL, 0x5f46b02aUL, 0x2b092801UL,
+0x3d38f5f7UL, 0x0ca81f36UL, 0x52af4a8aUL, 0x66d5e7c0UL, 0xdf3b0874UL, 0x95055110UL, 0x1b5ad7a8UL, 0xf61ed5adUL,
+0x6cf6e479UL, 0x20758184UL, 0xd0cefa65UL, 0x88f7be58UL, 0x4a046826UL, 0x0ff6f8f3UL, 0xa09c7f70UL, 0x5346aba0UL,
+0x5ce96c28UL, 0xe176eda3UL, 0x6bac307fUL, 0x376829d2UL, 0x85360fa9UL, 0x17e3fe2aUL, 0x24b79767UL, 0xf5a96b20UL,
+0xd6cd2595UL, 0x68ff1ebfUL, 0x7555442cUL, 0xf19f06beUL, 0xf9e0659aUL, 0xeeb9491dUL, 0x34010718UL, 0xbb30cab8UL,
+0xe822fe15UL, 0x88570983UL, 0x750e6249UL, 0xda627e55UL, 0x5e76ffa8UL, 0xb1534546UL, 0x6d47de08UL, 0xefe9e7d4UL};
+
+
+const uint32_t s6[] PROGMEM = {
+0xf6fa8f9dUL, 0x2cac6ce1UL, 0x4ca34867UL, 0xe2337f7cUL, 0x95db08e7UL, 0x016843b4UL, 0xeced5cbcUL, 0x325553acUL,
+0xbf9f0960UL, 0xdfa1e2edUL, 0x83f0579dUL, 0x63ed86b9UL, 0x1ab6a6b8UL, 0xde5ebe39UL, 0xf38ff732UL, 0x8989b138UL,
+0x33f14961UL, 0xc01937bdUL, 0xf506c6daUL, 0xe4625e7eUL, 0xa308ea99UL, 0x4e23e33cUL, 0x79cbd7ccUL, 0x48a14367UL,
+0xa3149619UL, 0xfec94bd5UL, 0xa114174aUL, 0xeaa01866UL, 0xa084db2dUL, 0x09a8486fUL, 0xa888614aUL, 0x2900af98UL,
+0x01665991UL, 0xe1992863UL, 0xc8f30c60UL, 0x2e78ef3cUL, 0xd0d51932UL, 0xcf0fec14UL, 0xf7ca07d2UL, 0xd0a82072UL,
+0xfd41197eUL, 0x9305a6b0UL, 0xe86be3daUL, 0x74bed3cdUL, 0x372da53cUL, 0x4c7f4448UL, 0xdab5d440UL, 0x6dba0ec3UL,
+0x083919a7UL, 0x9fbaeed9UL, 0x49dbcfb0UL, 0x4e670c53UL, 0x5c3d9c01UL, 0x64bdb941UL, 0x2c0e636aUL, 0xba7dd9cdUL,
+0xea6f7388UL, 0xe70bc762UL, 0x35f29adbUL, 0x5c4cdd8dUL, 0xf0d48d8cUL, 0xb88153e2UL, 0x08a19866UL, 0x1ae2eac8UL,
+0x284caf89UL, 0xaa928223UL, 0x9334be53UL, 0x3b3a21bfUL, 0x16434be3UL, 0x9aea3906UL, 0xefe8c36eUL, 0xf890cdd9UL,
+0x80226daeUL, 0xc340a4a3UL, 0xdf7e9c09UL, 0xa694a807UL, 0x5b7c5eccUL, 0x221db3a6UL, 0x9a69a02fUL, 0x68818a54UL,
+0xceb2296fUL, 0x53c0843aUL, 0xfe893655UL, 0x25bfe68aUL, 0xb4628abcUL, 0xcf222ebfUL, 0x25ac6f48UL, 0xa9a99387UL,
+0x53bddb65UL, 0xe76ffbe7UL, 0xe967fd78UL, 0x0ba93563UL, 0x8e342bc1UL, 0xe8a11be9UL, 0x4980740dUL, 0xc8087dfcUL,
+0x8de4bf99UL, 0xa11101a0UL, 0x7fd37975UL, 0xda5a26c0UL, 0xe81f994fUL, 0x9528cd89UL, 0xfd339fedUL, 0xb87834bfUL,
+0x5f04456dUL, 0x22258698UL, 0xc9c4c83bUL, 0x2dc156beUL, 0x4f628daaUL, 0x57f55ec5UL, 0xe2220abeUL, 0xd2916ebfUL,
+0x4ec75b95UL, 0x24f2c3c0UL, 0x42d15d99UL, 0xcd0d7fa0UL, 0x7b6e27ffUL, 0xa8dc8af0UL, 0x7345c106UL, 0xf41e232fUL,
+0x35162386UL, 0xe6ea8926UL, 0x3333b094UL, 0x157ec6f2UL, 0x372b74afUL, 0x692573e4UL, 0xe9a9d848UL, 0xf3160289UL,
+0x3a62ef1dUL, 0xa787e238UL, 0xf3a5f676UL, 0x74364853UL, 0x20951063UL, 0x4576698dUL, 0xb6fad407UL, 0x592af950UL,
+0x36f73523UL, 0x4cfb6e87UL, 0x7da4cec0UL, 0x6c152daaUL, 0xcb0396a8UL, 0xc50dfe5dUL, 0xfcd707abUL, 0x0921c42fUL,
+0x89dff0bbUL, 0x5fe2be78UL, 0x448f4f33UL, 0x754613c9UL, 0x2b05d08dUL, 0x48b9d585UL, 0xdc049441UL, 0xc8098f9bUL,
+0x7dede786UL, 0xc39a3373UL, 0x42410005UL, 0x6a091751UL, 0x0ef3c8a6UL, 0x890072d6UL, 0x28207682UL, 0xa9a9f7beUL,
+0xbf32679dUL, 0xd45b5b75UL, 0xb353fd00UL, 0xcbb0e358UL, 0x830f220aUL, 0x1f8fb214UL, 0xd372cf08UL, 0xcc3c4a13UL,
+0x8cf63166UL, 0x061c87beUL, 0x88c98f88UL, 0x6062e397UL, 0x47cf8e7aUL, 0xb6c85283UL, 0x3cc2acfbUL, 0x3fc06976UL,
+0x4e8f0252UL, 0x64d8314dUL, 0xda3870e3UL, 0x1e665459UL, 0xc10908f0UL, 0x513021a5UL, 0x6c5b68b7UL, 0x822f8aa0UL,
+0x3007cd3eUL, 0x74719eefUL, 0xdc872681UL, 0x073340d4UL, 0x7e432fd9UL, 0x0c5ec241UL, 0x8809286cUL, 0xf592d891UL,
+0x08a930f6UL, 0x957ef305UL, 0xb7fbffbdUL, 0xc266e96fUL, 0x6fe4ac98UL, 0xb173ecc0UL, 0xbc60b42aUL, 0x953498daUL,
+0xfba1ae12UL, 0x2d4bd736UL, 0x0f25faabUL, 0xa4f3fcebUL, 0xe2969123UL, 0x257f0c3dUL, 0x9348af49UL, 0x361400bcUL,
+0xe8816f4aUL, 0x3814f200UL, 0xa3f94043UL, 0x9c7a54c2UL, 0xbc704f57UL, 0xda41e7f9UL, 0xc25ad33aUL, 0x54f4a084UL,
+0xb17f5505UL, 0x59357cbeUL, 0xedbd15c8UL, 0x7f97c5abUL, 0xba5ac7b5UL, 0xb6f6deafUL, 0x3a479c3aUL, 0x5302da25UL,
+0x653d7e6aUL, 0x54268d49UL, 0x51a477eaUL, 0x5017d55bUL, 0xd7d25d88UL, 0x44136c76UL, 0x0404a8c8UL, 0xb8e5a121UL,
+0xb81a928aUL, 0x60ed5869UL, 0x97c55b96UL, 0xeaec991bUL, 0x29935913UL, 0x01fdb7f1UL, 0x088e8dfaUL, 0x9ab6f6f5UL,
+0x3b4cbf9fUL, 0x4a5de3abUL, 0xe6051d35UL, 0xa0e1d855UL, 0xd36b4cf1UL, 0xf544edebUL, 0xb0e93524UL, 0xbebb8fbdUL,
+0xa2d762cfUL, 0x49c92f54UL, 0x38b5f331UL, 0x7128a454UL, 0x48392905UL, 0xa65b1db8UL, 0x851c97bdUL, 0xd675cf2fUL};
+
+
+const uint32_t s7[] PROGMEM = {
+0x85e04019UL, 0x332bf567UL, 0x662dbfffUL, 0xcfc65693UL, 0x2a8d7f6fUL, 0xab9bc912UL, 0xde6008a1UL, 0x2028da1fUL,
+0x0227bce7UL, 0x4d642916UL, 0x18fac300UL, 0x50f18b82UL, 0x2cb2cb11UL, 0xb232e75cUL, 0x4b3695f2UL, 0xb28707deUL,
+0xa05fbcf6UL, 0xcd4181e9UL, 0xe150210cUL, 0xe24ef1bdUL, 0xb168c381UL, 0xfde4e789UL, 0x5c79b0d8UL, 0x1e8bfd43UL,
+0x4d495001UL, 0x38be4341UL, 0x913cee1dUL, 0x92a79c3fUL, 0x089766beUL, 0xbaeeadf4UL, 0x1286becfUL, 0xb6eacb19UL,
+0x2660c200UL, 0x7565bde4UL, 0x64241f7aUL, 0x8248dca9UL, 0xc3b3ad66UL, 0x28136086UL, 0x0bd8dfa8UL, 0x356d1cf2UL,
+0x107789beUL, 0xb3b2e9ceUL, 0x0502aa8fUL, 0x0bc0351eUL, 0x166bf52aUL, 0xeb12ff82UL, 0xe3486911UL, 0xd34d7516UL,
+0x4e7b3affUL, 0x5f43671bUL, 0x9cf6e037UL, 0x4981ac83UL, 0x334266ceUL, 0x8c9341b7UL, 0xd0d854c0UL, 0xcb3a6c88UL,
+0x47bc2829UL, 0x4725ba37UL, 0xa66ad22bUL, 0x7ad61f1eUL, 0x0c5cbafaUL, 0x4437f107UL, 0xb6e79962UL, 0x42d2d816UL,
+0x0a961288UL, 0xe1a5c06eUL, 0x13749e67UL, 0x72fc081aUL, 0xb1d139f7UL, 0xf9583745UL, 0xcf19df58UL, 0xbec3f756UL,
+0xc06eba30UL, 0x07211b24UL, 0x45c28829UL, 0xc95e317fUL, 0xbc8ec511UL, 0x38bc46e9UL, 0xc6e6fa14UL, 0xbae8584aUL,
+0xad4ebc46UL, 0x468f508bUL, 0x7829435fUL, 0xf124183bUL, 0x821dba9fUL, 0xaff60ff4UL, 0xea2c4e6dUL, 0x16e39264UL,
+0x92544a8bUL, 0x009b4fc3UL, 0xaba68cedUL, 0x9ac96f78UL, 0x06a5b79aUL, 0xb2856e6eUL, 0x1aec3ca9UL, 0xbe838688UL,
+0x0e0804e9UL, 0x55f1be56UL, 0xe7e5363bUL, 0xb3a1f25dUL, 0xf7debb85UL, 0x61fe033cUL, 0x16746233UL, 0x3c034c28UL,
+0xda6d0c74UL, 0x79aac56cUL, 0x3ce4e1adUL, 0x51f0c802UL, 0x98f8f35aUL, 0x1626a49fUL, 0xeed82b29UL, 0x1d382fe3UL,
+0x0c4fb99aUL, 0xbb325778UL, 0x3ec6d97bUL, 0x6e77a6a9UL, 0xcb658b5cUL, 0xd45230c7UL, 0x2bd1408bUL, 0x60c03eb7UL,
+0xb9068d78UL, 0xa33754f4UL, 0xf430c87dUL, 0xc8a71302UL, 0xb96d8c32UL, 0xebd4e7beUL, 0xbe8b9d2dUL, 0x7979fb06UL,
+0xe7225308UL, 0x8b75cf77UL, 0x11ef8da4UL, 0xe083c858UL, 0x8d6b786fUL, 0x5a6317a6UL, 0xfa5cf7a0UL, 0x5dda0033UL,
+0xf28ebfb0UL, 0xf5b9c310UL, 0xa0eac280UL, 0x08b9767aUL, 0xa3d9d2b0UL, 0x79d34217UL, 0x021a718dUL, 0x9ac6336aUL,
+0x2711fd60UL, 0x438050e3UL, 0x069908a8UL, 0x3d7fedc4UL, 0x826d2befUL, 0x4eeb8476UL, 0x488dcf25UL, 0x36c9d566UL,
+0x28e74e41UL, 0xc2610acaUL, 0x3d49a9cfUL, 0xbae3b9dfUL, 0xb65f8de6UL, 0x92aeaf64UL, 0x3ac7d5e6UL, 0x9ea80509UL,
+0xf22b017dUL, 0xa4173f70UL, 0xdd1e16c3UL, 0x15e0d7f9UL, 0x50b1b887UL, 0x2b9f4fd5UL, 0x625aba82UL, 0x6a017962UL,
+0x2ec01b9cUL, 0x15488aa9UL, 0xd716e740UL, 0x40055a2cUL, 0x93d29a22UL, 0xe32dbf9aUL, 0x058745b9UL, 0x3453dc1eUL,
+0xd699296eUL, 0x496cff6fUL, 0x1c9f4986UL, 0xdfe2ed07UL, 0xb87242d1UL, 0x19de7eaeUL, 0x053e561aUL, 0x15ad6f8cUL,
+0x66626c1cUL, 0x7154c24cUL, 0xea082b2aUL, 0x93eb2939UL, 0x17dcb0f0UL, 0x58d4f2aeUL, 0x9ea294fbUL, 0x52cf564cUL,
+0x9883fe66UL, 0x2ec40581UL, 0x763953c3UL, 0x01d6692eUL, 0xd3a0c108UL, 0xa1e7160eUL, 0xe4f2dfa6UL, 0x693ed285UL,
+0x74904698UL, 0x4c2b0eddUL, 0x4f757656UL, 0x5d393378UL, 0xa132234fUL, 0x3d321c5dUL, 0xc3f5e194UL, 0x4b269301UL,
+0xc79f022fUL, 0x3c997e7eUL, 0x5e4f9504UL, 0x3ffafbbdUL, 0x76f7ad0eUL, 0x296693f4UL, 0x3d1fce6fUL, 0xc61e45beUL,
+0xd3b5ab34UL, 0xf72bf9b7UL, 0x1b0434c0UL, 0x4e72b567UL, 0x5592a33dUL, 0xb5229301UL, 0xcfd2a87fUL, 0x60aeb767UL,
+0x1814386bUL, 0x30bcc33dUL, 0x38a0c07dUL, 0xfd1606f2UL, 0xc363519bUL, 0x589dd390UL, 0x5479f8e6UL, 0x1cb8d647UL,
+0x97fd61a9UL, 0xea7759f4UL, 0x2d57539dUL, 0x569a58cfUL, 0xe84e63adUL, 0x462e1b78UL, 0x6580f87eUL, 0xf3817914UL,
+0x91da55f4UL, 0x40a230f3UL, 0xd1988f35UL, 0xb6e318d2UL, 0x3ffa50bcUL, 0x3d40f021UL, 0xc3c0bdaeUL, 0x4958c24cUL,
+0x518f36b2UL, 0x84b1d370UL, 0x0fedce83UL, 0x878ddadaUL, 0xf2a279c7UL, 0x94e01be8UL, 0x90716f4bUL, 0x954b8aa3UL};
+
+
+const uint32_t s8[] PROGMEM = {
+0xe216300dUL, 0xbbddfffcUL, 0xa7ebdabdUL, 0x35648095UL, 0x7789f8b7UL, 0xe6c1121bUL, 0x0e241600UL, 0x052ce8b5UL,
+0x11a9cfb0UL, 0xe5952f11UL, 0xece7990aUL, 0x9386d174UL, 0x2a42931cUL, 0x76e38111UL, 0xb12def3aUL, 0x37ddddfcUL,
+0xde9adeb1UL, 0x0a0cc32cUL, 0xbe197029UL, 0x84a00940UL, 0xbb243a0fUL, 0xb4d137cfUL, 0xb44e79f0UL, 0x049eedfdUL,
+0x0b15a15dUL, 0x480d3168UL, 0x8bbbde5aUL, 0x669ded42UL, 0xc7ece831UL, 0x3f8f95e7UL, 0x72df191bUL, 0x7580330dUL,
+0x94074251UL, 0x5c7dcdfaUL, 0xabbe6d63UL, 0xaa402164UL, 0xb301d40aUL, 0x02e7d1caUL, 0x53571daeUL, 0x7a3182a2UL,
+0x12a8ddecUL, 0xfdaa335dUL, 0x176f43e8UL, 0x71fb46d4UL, 0x38129022UL, 0xce949ad4UL, 0xb84769adUL, 0x965bd862UL,
+0x82f3d055UL, 0x66fb9767UL, 0x15b80b4eUL, 0x1d5b47a0UL, 0x4cfde06fUL, 0xc28ec4b8UL, 0x57e8726eUL, 0x647a78fcUL,
+0x99865d44UL, 0x608bd593UL, 0x6c200e03UL, 0x39dc5ff6UL, 0x5d0b00a3UL, 0xae63aff2UL, 0x7e8bd632UL, 0x70108c0cUL,
+0xbbd35049UL, 0x2998df04UL, 0x980cf42aUL, 0x9b6df491UL, 0x9e7edd53UL, 0x06918548UL, 0x58cb7e07UL, 0x3b74ef2eUL,
+0x522fffb1UL, 0xd24708ccUL, 0x1c7e27cdUL, 0xa4eb215bUL, 0x3cf1d2e2UL, 0x19b47a38UL, 0x424f7618UL, 0x35856039UL,
+0x9d17dee7UL, 0x27eb35e6UL, 0xc9aff67bUL, 0x36baf5b8UL, 0x09c467cdUL, 0xc18910b1UL, 0xe11dbf7bUL, 0x06cd1af8UL,
+0x7170c608UL, 0x2d5e3354UL, 0xd4de495aUL, 0x64c6d006UL, 0xbcc0c62cUL, 0x3dd00db3UL, 0x708f8f34UL, 0x77d51b42UL,
+0x264f620fUL, 0x24b8d2bfUL, 0x15c1b79eUL, 0x46a52564UL, 0xf8d7e54eUL, 0x3e378160UL, 0x7895cda5UL, 0x859c15a5UL,
+0xe6459788UL, 0xc37bc75fUL, 0xdb07ba0cUL, 0x0676a3abUL, 0x7f229b1eUL, 0x31842e7bUL, 0x24259fd7UL, 0xf8bef472UL,
+0x835ffcb8UL, 0x6df4c1f2UL, 0x96f5b195UL, 0xfd0af0fcUL, 0xb0fe134cUL, 0xe2506d3dUL, 0x4f9b12eaUL, 0xf215f225UL,
+0xa223736fUL, 0x9fb4c428UL, 0x25d04979UL, 0x34c713f8UL, 0xc4618187UL, 0xea7a6e98UL, 0x7cd16efcUL, 0x1436876cUL,
+0xf1544107UL, 0xbedeee14UL, 0x56e9af27UL, 0xa04aa441UL, 0x3cf7c899UL, 0x92ecbae6UL, 0xdd67016dUL, 0x151682ebUL,
+0xa842eedfUL, 0xfdba60b4UL, 0xf1907b75UL, 0x20e3030fUL, 0x24d8c29eUL, 0xe139673bUL, 0xefa63fb8UL, 0x71873054UL,
+0xb6f2cf3bUL, 0x9f326442UL, 0xcb15a4ccUL, 0xb01a4504UL, 0xf1e47d8dUL, 0x844a1be5UL, 0xbae7dfdcUL, 0x42cbda70UL,
+0xcd7dae0aUL, 0x57e85b7aUL, 0xd53f5af6UL, 0x20cf4d8cUL, 0xcea4d428UL, 0x79d130a4UL, 0x3486ebfbUL, 0x33d3cddcUL,
+0x77853b53UL, 0x37effcb5UL, 0xc5068778UL, 0xe580b3e6UL, 0x4e68b8f4UL, 0xc5c8b37eUL, 0x0d809ea2UL, 0x398feb7cUL,
+0x132a4f94UL, 0x43b7950eUL, 0x2fee7d1cUL, 0x223613bdUL, 0xdd06caa2UL, 0x37df932bUL, 0xc4248289UL, 0xacf3ebc3UL,
+0x5715f6b7UL, 0xef3478ddUL, 0xf267616fUL, 0xc148cbe4UL, 0x9052815eUL, 0x5e410fabUL, 0xb48a2465UL, 0x2eda7fa4UL,
+0xe87b40e4UL, 0xe98ea084UL, 0x5889e9e1UL, 0xefd390fcUL, 0xdd07d35bUL, 0xdb485694UL, 0x38d7e5b2UL, 0x57720101UL,
+0x730edebcUL, 0x5b643113UL, 0x94917e4fUL, 0x503c2fbaUL, 0x646f1282UL, 0x7523d24aUL, 0xe0779695UL, 0xf9c17a8fUL,
+0x7a5b2121UL, 0xd187b896UL, 0x29263a4dUL, 0xba510cdfUL, 0x81f47c9fUL, 0xad1163edUL, 0xea7b5965UL, 0x1a00726eUL,
+0x11403092UL, 0x00da6d77UL, 0x4a0cdd61UL, 0xad1f4603UL, 0x605bdfb0UL, 0x9eedc364UL, 0x22ebe6a8UL, 0xcee7d28aUL,
+0xa0e736a0UL, 0x5564a6b9UL, 0x10853209UL, 0xc7eb8f37UL, 0x2de705caUL, 0x8951570fUL, 0xdf09822bUL, 0xbd691a6cUL,
+0xaa12e4f2UL, 0x87451c0fUL, 0xe0f6a27aUL, 0x3ada4819UL, 0x4cf1764fUL, 0x0d771c2bUL, 0x67cdb156UL, 0x350d8384UL,
+0x5938fa0fUL, 0x42399ef3UL, 0x36997b07UL, 0x0e84093dUL, 0x4aa93e61UL, 0x8360d87bUL, 0x1fa98b0cUL, 0x1149382cUL,
+0xe97625a5UL, 0x0614d1b7UL, 0x0e25244bUL, 0x0c768347UL, 0x589e8d82UL, 0x0d2059d1UL, 0xa466bb1eUL, 0xf8da0a82UL,
+0x04f19130UL, 0xba6e4ec0UL, 0x99265164UL, 0x1ee7230dUL, 0x50b2ad80UL, 0xeaee6801UL, 0x8db2a283UL, 0xea8bf59eUL};
+
+#else
+
+const uint32_t s5[] PROGMEM = {
+0x040cc97eUL, 0xb9746e2cUL, 0xdf660e9bUL, 0x117933a6UL, 0xff7f6ab8UL, 0xf558d31dUL, 0x449ddd44UL, 0x7f163117UL,
+0xfaf1fb08UL, 0xcc11f5e7UL, 0x001b05d2UL, 0x00ba5a73UL, 0xd822b72aUL, 0xcb816338UL, 0x3a24f6acUL, 0x7afdbe69UL,
+0x7fe7a2e6UL, 0xcd20c7f0UL, 0x164849c4UL, 0x80c1f5ccUL, 0x40168538UL, 0x48a8b015UL, 0xcb188be6UL, 0xffdeaa4cUL,
+0x010a485fUL, 0xaab21204UL, 0xfc149825UL, 0xe2efd041UL, 0x8db4404eUL, 0xfbb68e24UL, 0xfe1cba8dUL, 0x029ba941UL,
+0x040a551aUL, 0xcb658fbaUL, 0xe7f45172UL, 0x2517a595UL, 0xd7ec06c1UL, 0x0a98a597UL, 0xaab939c5UL, 0x6afe794dUL,
+0x63f7f3f2UL, 0x4080af68UL, 0x569e0cedUL, 0x8b95b411UL, 0x885aebe1UL, 0xb0e60987UL, 0x5671e0d7UL, 0xa7fe294eUL,
+0x2de56663UL, 0x00c0d102UL, 0x058eacc4UL, 0x71f57793UL, 0x2a37050cUL, 0xf2358557UL, 0x02be6122UL, 0xc9a042d6UL,
+0x80a213dfUL, 0xd25bb574UL, 0xc0992168UL, 0xece521d4UL, 0xe83cfb53UL, 0xb3edadc8UL, 0xc97fa828UL, 0x8199953dUL,
+0x00f91f5cUL, 0x99d338feUL, 0x0bff4e0cUL, 0xea072406UL, 0xb14f2faaUL, 0x7669b94fUL, 0x0595c790UL, 0x74a7a8b0UL,
+0xffa155efUL, 0xc2a29ce5UL, 0x272db6a6UL, 0x63426ae6UL, 0x1f0065dfUL, 0x6609c50eUL, 0xbc55dddfUL, 0x5506de29UL,
+0x9a731e91UL, 0x7589af17UL, 0x1c91c732UL, 0x6894f889UL, 0x80e9010dUL, 0xf4554752UL, 0xc93cb603UL, 0xb244c80cUL,
+0xaaf0f3bcUL, 0xe936ac87UL, 0x26743ae5UL, 0x2bd8b301UL, 0x49749e1aUL, 0x7e2dee64UL, 0xdab1dbcdUL, 0x1049c901UL,
+0x80bf68b8UL, 0xfdf3260dUL, 0xe7ed4293UL, 0x84c2a504UL, 0xb6376763UL, 0x16b6f550UL, 0xe36647f2UL, 0xc136ca8eUL,
+0xdb056e13UL, 0x9183f1feUL, 0x377a88fbUL, 0xd4f7e7d6UL, 0xc97dfbc7UL, 0xdffc6330UL, 0xde89f5b6UL, 0xda4129ecUL,
+0x9566e426UL, 0x196456b7UL, 0xc5ef54f6UL, 0xb7588dd0UL, 0x01549248UL, 0x7fcbbac1UL, 0x0f55ffe5UL, 0x493008b6UL,
+0xe8d0b55bUL, 0x5a2ed787UL, 0xe16e6aabUL, 0xce663a22UL, 0xcdf32bc6UL, 0xf985089eUL, 0x473ecb68UL, 0x0f016c08UL,
+0x20e81da2UL, 0xde698bd1UL, 0x7757f6f3UL, 0xf6c302faUL, 0xc3da7e40UL, 0x50d5b3cbUL, 0x4d089317UL, 0xba0ed7b0UL,
+0xd578b30aUL, 0x0cfb51d9UL, 0x56dad7deUL, 0xe4bb2441UL, 0x560bca94UL, 0xd155570fUL, 0x6ee5e1e0UL, 0xbeb58461UL,
+0x9f240a58UL, 0xc04bf794UL, 0x8e8827e3UL, 0x61557b9fUL, 0x8002dcc3UL, 0x15776805UL, 0xd76b6c64UL, 0xb34d9044UL,
+0xa3f0b466UL, 0x8a64f1c0UL, 0xafd57e69UL, 0xf62fe949UL, 0x4f379e30UL, 0x6a35b62cUL, 0x73858085UL, 0x40f89149UL,
+0x02aef076UL, 0x4de83b08UL, 0x9a1c4228UL, 0x06944844UL, 0xb84c6e73UL, 0x102909c1UL, 0xc65fc98bUL, 0xf49c867dUL,
+0x6f614f13UL, 0x8d11772eUL, 0xe12b1bb3UL, 0x72b490aaUL, 0x17d7a53cUL, 0xba1b167dUL, 0x1090ad9cUL, 0xa22b46afUL,
+0xd259e49fUL, 0x5945d345UL, 0x13daf2d9UL, 0x8754c6dbUL, 0x4ef9e4f3UL, 0x6f486d17UL, 0xea137c09UL, 0xc7a51d63UL,
+0x82735f44UL, 0xf4835617UL, 0x976ac6cdUL, 0x8802be70UL, 0x72cfcdb3UL, 0xf3d25d6eUL, 0x79609320UL, 0xa5809b45UL,
+0xdbe260beUL, 0x0131c2a9UL, 0x5c31a5ebUL, 0xf2424e22UL, 0x72155c1cUL, 0x2c1b72f6UL, 0xf3ffd21aUL, 0x4e40258cUL,
+0x2fd74e32UL, 0xfdb76740UL, 0x8e132305UL, 0x78bca35cUL, 0x6ed60fdcUL, 0x83229275UL, 0x176b4d78UL, 0x6eb1eb58UL,
+0x854f0944UL, 0x871d483fUL, 0x7baefefcUL, 0x76ffb577UL, 0xbf02238cUL, 0x5675f4aaUL, 0x2ab0465fUL, 0x0128092bUL,
+0xf7f5383dUL, 0x361fa80cUL, 0x8a4aaf52UL, 0xc0e7d566UL, 0x74083bdfUL, 0x10510595UL, 0xa8d75a1bUL, 0xadd51ef6UL,
+0x79e4f66cUL, 0x84817520UL, 0x65faced0UL, 0x58bef788UL, 0x2668044aUL, 0xf3f8f60fUL, 0x707f9ca0UL, 0xa0ab4653UL,
+0x286ce95cUL, 0xa3ed76e1UL, 0x7f30ac6bUL, 0xd2296837UL, 0xa90f3685UL, 0x2afee317UL, 0x6797b724UL, 0x206ba9f5UL,
+0x9525cdd6UL, 0xbf1eff68UL, 0x2c445575UL, 0xbe069ff1UL, 0x9a65e0f9UL, 0x1d49b9eeUL, 0x18070134UL, 0xb8ca30bbUL,
+0x15fe22e8UL, 0x83095788UL, 0x49620e75UL, 0x557e62daUL, 0xa8ff765eUL, 0x464553b1UL, 0x08de476dUL, 0xd4e7e9efUL};
+
+
+const uint32_t s6[] PROGMEM = {
+0x9d8ffaf6UL, 0xe16cac2cUL, 0x6748a34cUL, 0x7c7f33e2UL, 0xe708db95UL, 0xb4436801UL, 0xbc5cedecUL, 0xac535532UL,
+0x60099fbfUL, 0xede2a1dfUL, 0x9d57f083UL, 0xb986ed63UL, 0xb8a6b61aUL, 0x39be5edeUL, 0x32f78ff3UL, 0x38b18989UL,
+0x6149f133UL, 0xbd3719c0UL, 0xdac606f5UL, 0x7e5e62e4UL, 0x99ea08a3UL, 0x3ce3234eUL, 0xccd7cb79UL, 0x6743a148UL,
+0x199614a3UL, 0xd54bc9feUL, 0x4a1714a1UL, 0x6618a0eaUL, 0x2ddb84a0UL, 0x6f48a809UL, 0x4a6188a8UL, 0x98af0029UL,
+0x91596601UL, 0x632899e1UL, 0x600cf3c8UL, 0x3cef782eUL, 0x3219d5d0UL, 0x14ec0fcfUL, 0xd207caf7UL, 0x7220a8d0UL,
+0x7e1941fdUL, 0xb0a60593UL, 0xdae36be8UL, 0xcdd3be74UL, 0x3ca52d37UL, 0x48447f4cUL, 0x40d4b5daUL, 0xc30eba6dUL,
+0xa7193908UL, 0xd9eeba9fUL, 0xb0cfdb49UL, 0x530c674eUL, 0x019c3d5cUL, 0x41b9bd64UL, 0x6a630e2cUL, 0xcdd97dbaUL,
+0x88736feaUL, 0x62c70be7UL, 0xdb9af235UL, 0x8ddd4c5cUL, 0x8c8dd4f0UL, 0xe25381b8UL, 0x6698a108UL, 0xc8eae21aUL,
+0x89af4c28UL, 0x238292aaUL, 0x53be3493UL, 0xbf213a3bUL, 0xe34b4316UL, 0x0639ea9aUL, 0x6ec3e8efUL, 0xd9cd90f8UL,
+0xae6d2280UL, 0xa3a440c3UL, 0x099c7edfUL, 0x07a894a6UL, 0xcc5e7c5bUL, 0xa6b31d22UL, 0x2fa0699aUL, 0x548a8168UL,
+0x6f29b2ceUL, 0x3a84c053UL, 0x553689feUL, 0x8ae6bf25UL, 0xbc8a62b4UL, 0xbf2e22cfUL, 0x486fac25UL, 0x8793a9a9UL,
+0x65dbbd53UL, 0xe7fb6fe7UL, 0x78fd67e9UL, 0x6335a90bUL, 0xc12b348eUL, 0xe91ba1e8UL, 0x0d748049UL, 0xfc7d08c8UL,
+0x99bfe48dUL, 0xa00111a1UL, 0x7579d37fUL, 0xc0265adaUL, 0x4f991fe8UL, 0x89cd2895UL, 0xed9f33fdUL, 0xbf3478b8UL,
+0x6d45045fUL, 0x98862522UL, 0x3bc8c4c9UL, 0xbe56c12dUL, 0xaa8d624fUL, 0xc55ef557UL, 0xbe0a22e2UL, 0xbf6e91d2UL,
+0x955bc74eUL, 0xc0c3f224UL, 0x995dd142UL, 0xa07f0dcdUL, 0xff276e7bUL, 0xf08adca8UL, 0x06c14573UL, 0x2f231ef4UL,
+0x86231635UL, 0x2689eae6UL, 0x94b03333UL, 0xf2c67e15UL, 0xaf742b37UL, 0xe4732569UL, 0x48d8a9e9UL, 0x890216f3UL,
+0x1def623aUL, 0x38e287a7UL, 0x76f6a5f3UL, 0x53483674UL, 0x63109520UL, 0x8d697645UL, 0x07d4fab6UL, 0x50f92a59UL,
+0x2335f736UL, 0x876efb4cUL, 0xc0cea47dUL, 0xaa2d156cUL, 0xa89603cbUL, 0x5dfe0dc5UL, 0xab07d7fcUL, 0x2fc42109UL,
+0xbbf0df89UL, 0x78bee25fUL, 0x334f8f44UL, 0xc9134675UL, 0x8dd0052bUL, 0x85d5b948UL, 0x419404dcUL, 0x9b8f09c8UL,
+0x86e7ed7dUL, 0x73339ac3UL, 0x05004142UL, 0x5117096aUL, 0xa6c8f30eUL, 0xd6720089UL, 0x82762028UL, 0xbef7a9a9UL,
+0x9d6732bfUL, 0x755b5bd4UL, 0x00fd53b3UL, 0x58e3b0cbUL, 0x0a220f83UL, 0x14b28f1fUL, 0x08cf72d3UL, 0x134a3cccUL,
+0x6631f68cUL, 0xbe871c06UL, 0x888fc988UL, 0x97e36260UL, 0x7a8ecf47UL, 0x8352c8b6UL, 0xfbacc23cUL, 0x7669c03fUL,
+0x52028f4eUL, 0x4d31d864UL, 0xe37038daUL, 0x5954661eUL, 0xf00809c1UL, 0xa5213051UL, 0xb7685b6cUL, 0xa08a2f82UL,
+0x3ecd0730UL, 0xef9e7174UL, 0x812687dcUL, 0xd4403307UL, 0xd92f437eUL, 0x41c25e0cUL, 0x6c280988UL, 0x91d892f5UL,
+0xf630a908UL, 0x05f37e95UL, 0xbdfffbb7UL, 0x6fe966c2UL, 0x98ace46fUL, 0xc0ec73b1UL, 0x2ab460bcUL, 0xda983495UL,
+0x12aea1fbUL, 0x36d74b2dUL, 0xabfa250fUL, 0xebfcf3a4UL, 0x239196e2UL, 0x3d0c7f25UL, 0x49af4893UL, 0xbc001436UL,
+0x4a6f81e8UL, 0x00f21438UL, 0x4340f9a3UL, 0xc2547a9cUL, 0x574f70bcUL, 0xf9e741daUL, 0x3ad35ac2UL, 0x84a0f454UL,
+0x05557fb1UL, 0xbe7c3559UL, 0xc815bdedUL, 0xabc5977fUL, 0xb5c75abaUL, 0xafdef6b6UL, 0x3a9c473aUL, 0x25da0253UL,
+0x6a7e3d65UL, 0x498d2654UL, 0xea77a451UL, 0x5bd51750UL, 0x885dd2d7UL, 0x766c1344UL, 0xc8a80404UL, 0x21a1e5b8UL,
+0x8a921ab8UL, 0x6958ed60UL, 0x965bc597UL, 0x1b99eceaUL, 0x13599329UL, 0xf1b7fd01UL, 0xfa8d8e08UL, 0xf5f6b69aUL,
+0x9fbf4c3bUL, 0xabe35d4aUL, 0x351d05e6UL, 0x55d8e1a0UL, 0xf14c6bd3UL, 0xebed44f5UL, 0x2435e9b0UL, 0xbd8fbbbeUL,
+0xcf62d7a2UL, 0x542fc949UL, 0x31f3b538UL, 0x54a42871UL, 0x05293948UL, 0xb81d5ba6UL, 0xbd971c85UL, 0x2fcf75d6UL};
+
+
+const uint32_t s7[] PROGMEM = {
+0x1940e085UL, 0x67f52b33UL, 0xffbf2d66UL, 0x9356c6cfUL, 0x6f7f8d2aUL, 0x12c99babUL, 0xa10860deUL, 0x1fda2820UL,
+0xe7bc2702UL, 0x1629644dUL, 0x00c3fa18UL, 0x828bf150UL, 0x11cbb22cUL, 0x5ce732b2UL, 0xf295364bUL, 0xde0787b2UL,
+0xf6bc5fa0UL, 0xe98141cdUL, 0x0c2150e1UL, 0xbdf14ee2UL, 0x81c368b1UL, 0x89e7e4fdUL, 0xd8b0795cUL, 0x43fd8b1eUL,
+0x0150494dUL, 0x4143be38UL, 0x1dee3c91UL, 0x3f9ca792UL, 0xbe669708UL, 0xf4adeebaUL, 0xcfbe8612UL, 0x19cbeab6UL,
+0x00c26026UL, 0xe4bd6575UL, 0x7a1f2464UL, 0xa9dc4882UL, 0x66adb3c3UL, 0x86601328UL, 0xa8dfd80bUL, 0xf21c6d35UL,
+0xbe897710UL, 0xcee9b2b3UL, 0x8faa0205UL, 0x1e35c00bUL, 0x2af56b16UL, 0x82ff12ebUL, 0x116948e3UL, 0x16754dd3UL,
+0xff3a7b4eUL, 0x1b67435fUL, 0x37e0f69cUL, 0x83ac8149UL, 0xce664233UL, 0xb741938cUL, 0xc054d8d0UL, 0x886c3acbUL,
+0x2928bc47UL, 0x37ba2547UL, 0x2bd26aa6UL, 0x1e1fd67aUL, 0xfaba5c0cUL, 0x07f13744UL, 0x6299e7b6UL, 0x16d8d242UL,
+0x8812960aUL, 0x6ec0a5e1UL, 0x679e7413UL, 0x1a08fc72UL, 0xf739d1b1UL, 0x453758f9UL, 0x58df19cfUL, 0x56f7c3beUL,
+0x30ba6ec0UL, 0x241b2107UL, 0x2988c245UL, 0x7f315ec9UL, 0x11c58ebcUL, 0xe946bc38UL, 0x14fae6c6UL, 0x4a58e8baUL,
+0x46bc4eadUL, 0x8b508f46UL, 0x5f432978UL, 0x3b1824f1UL, 0x9fba1d82UL, 0xf40ff6afUL, 0x6d4e2ceaUL, 0x6492e316UL,
+0x8b4a5492UL, 0xc34f9b00UL, 0xed8ca6abUL, 0x786fc99aUL, 0x9ab7a506UL, 0x6e6e85b2UL, 0xa93cec1aUL, 0x888683beUL,
+0xe904080eUL, 0x56bef155UL, 0x3b36e5e7UL, 0x5df2a1b3UL, 0x85bbdef7UL, 0x3c03fe61UL, 0x33627416UL, 0x284c033cUL,
+0x740c6ddaUL, 0x6cc5aa79UL, 0xade1e43cUL, 0x02c8f051UL, 0x5af3f898UL, 0x9fa42616UL, 0x292bd8eeUL, 0xe32f381dUL,
+0x9ab94f0cUL, 0x785732bbUL, 0x7bd9c63eUL, 0xa9a6776eUL, 0x5c8b65cbUL, 0xc73052d4UL, 0x8b40d12bUL, 0xb73ec060UL,
+0x788d06b9UL, 0xf45437a3UL, 0x7dc830f4UL, 0x0213a7c8UL, 0x328c6db9UL, 0xbee7d4ebUL, 0x2d9d8bbeUL, 0x06fb7979UL,
+0x085322e7UL, 0x77cf758bUL, 0xa48def11UL, 0x58c883e0UL, 0x6f786b8dUL, 0xa617635aUL, 0xa0f75cfaUL, 0x3300da5dUL,
+0xb0bf8ef2UL, 0x10c3b9f5UL, 0x80c2eaa0UL, 0x7a76b908UL, 0xb0d2d9a3UL, 0x1742d379UL, 0x8d711a02UL, 0x6a33c69aUL,
+0x60fd1127UL, 0xe3508043UL, 0xa8089906UL, 0xc4ed7f3dUL, 0xef2b6d82UL, 0x7684eb4eUL, 0x25cf8d48UL, 0x66d5c936UL,
+0x414ee728UL, 0xca0a61c2UL, 0xcfa9493dUL, 0xdfb9e3baUL, 0xe68d5fb6UL, 0x64afae92UL, 0xe6d5c73aUL, 0x0905a89eUL,
+0x7d012bf2UL, 0x703f17a4UL, 0xc3161eddUL, 0xf9d7e015UL, 0x87b8b150UL, 0xd54f9f2bUL, 0x82ba5a62UL, 0x6279016aUL,
+0x9c1bc02eUL, 0xa98a4815UL, 0x40e716d7UL, 0x2c5a0540UL, 0x229ad293UL, 0x9abf2de3UL, 0xb9458705UL, 0x1edc5334UL,
+0x6e2999d6UL, 0x6fff6c49UL, 0x86499f1cUL, 0x07ede2dfUL, 0xd14272b8UL, 0xae7ede19UL, 0x1a563e05UL, 0x8c6fad15UL,
+0x1c6c6266UL, 0x4cc25471UL, 0x2a2b08eaUL, 0x3929eb93UL, 0xf0b0dc17UL, 0xaef2d458UL, 0xfb94a29eUL, 0x4c56cf52UL,
+0x66fe8398UL, 0x8105c42eUL, 0xc3533976UL, 0x2e69d601UL, 0x08c1a0d3UL, 0x0e16e7a1UL, 0xa6dff2e4UL, 0x85d23e69UL,
+0x98469074UL, 0xdd0e2b4cUL, 0x5676754fUL, 0x7833395dUL, 0x4f2332a1UL, 0x5d1c323dUL, 0x94e1f5c3UL, 0x0193264bUL,
+0x2f029fc7UL, 0x7e7e993cUL, 0x04954f5eUL, 0xbdfbfa3fUL, 0x0eadf776UL, 0xf4936629UL, 0x6fce1f3dUL, 0xbe451ec6UL,
+0x34abb5d3UL, 0xb7f92bf7UL, 0xc034041bUL, 0x67b5724eUL, 0x3da39255UL, 0x019322b5UL, 0x7fa8d2cfUL, 0x67b7ae60UL,
+0x6b381418UL, 0x3dc3bc30UL, 0x7dc0a038UL, 0xf20616fdUL, 0x9b5163c3UL, 0x90d39d58UL, 0xe6f87954UL, 0x47d6b81cUL,
+0xa961fd97UL, 0xf45977eaUL, 0x9d53572dUL, 0xcf589a56UL, 0xad634ee8UL, 0x781b2e46UL, 0x7ef88065UL, 0x147981f3UL,
+0xf455da91UL, 0xf330a240UL, 0x358f98d1UL, 0xd218e3b6UL, 0xbc50fa3fUL, 0x21f0403dUL, 0xaebdc0c3UL, 0x4cc25849UL,
+0xb2368f51UL, 0x70d3b184UL, 0x83ceed0fUL, 0xdada8d87UL, 0xc779a2f2UL, 0xe81be094UL, 0x4b6f7190UL, 0xa38a4b95UL};
+
+
+const uint32_t s8[] PROGMEM = {
+0x0d3016e2UL, 0xfcffddbbUL, 0xbddaeba7UL, 0x95806435UL, 0xb7f88977UL, 0x1b12c1e6UL, 0x0016240eUL, 0xb5e82c05UL,
+0xb0cfa911UL, 0x112f95e5UL, 0x0a99e7ecUL, 0x74d18693UL, 0x1c93422aUL, 0x1181e376UL, 0x3aef2db1UL, 0xfcdddd37UL,
+0xb1de9adeUL, 0x2cc30c0aUL, 0x297019beUL, 0x4009a084UL, 0x0f3a24bbUL, 0xcf37d1b4UL, 0xf0794eb4UL, 0xfded9e04UL,
+0x5da1150bUL, 0x68310d48UL, 0x5adebb8bUL, 0x42ed9d66UL, 0x31e8ecc7UL, 0xe7958f3fUL, 0x1b19df72UL, 0x0d338075UL,
+0x51420794UL, 0xfacd7d5cUL, 0x636dbeabUL, 0x642140aaUL, 0x0ad401b3UL, 0xcad1e702UL, 0xae1d5753UL, 0xa282317aUL,
+0xecdda812UL, 0x5d33aafdUL, 0xe8436f17UL, 0xd446fb71UL, 0x22901238UL, 0xd49a94ceUL, 0xad6947b8UL, 0x62d85b96UL,
+0x55d0f382UL, 0x6797fb66UL, 0x4e0bb815UL, 0xa0475b1dUL, 0x6fe0fd4cUL, 0xb8c48ec2UL, 0x6e72e857UL, 0xfc787a64UL,
+0x445d8699UL, 0x93d58b60UL, 0x030e206cUL, 0xf65fdc39UL, 0xa3000b5dUL, 0xf2af63aeUL, 0x32d68b7eUL, 0x0c8c1070UL,
+0x4950d3bbUL, 0x04df9829UL, 0x2af40c98UL, 0x91f46d9bUL, 0x53dd7e9eUL, 0x48859106UL, 0x077ecb58UL, 0x2eef743bUL,
+0xb1ff2f52UL, 0xcc0847d2UL, 0xcd277e1cUL, 0x5b21eba4UL, 0xe2d2f13cUL, 0x387ab419UL, 0x18764f42UL, 0x39608535UL,
+0xe7de179dUL, 0xe635eb27UL, 0x7bf6afc9UL, 0xb8f5ba36UL, 0xcd67c409UL, 0xb11089c1UL, 0x7bbf1de1UL, 0xf81acd06UL,
+0x08c67071UL, 0x54335e2dUL, 0x5a49ded4UL, 0x06d0c664UL, 0x2cc6c0bcUL, 0xb30dd03dUL, 0x348f8f70UL, 0x421bd577UL,
+0x0f624f26UL, 0xbfd2b824UL, 0x9eb7c115UL, 0x6425a546UL, 0x4ee5d7f8UL, 0x6081373eUL, 0xa5cd9578UL, 0xa5159c85UL,
+0x889745e6UL, 0x5fc77bc3UL, 0x0cba07dbUL, 0xaba37606UL, 0x1e9b227fUL, 0x7b2e8431UL, 0xd79f2524UL, 0x72f4bef8UL,
+0xb8fc5f83UL, 0xf2c1f46dUL, 0x95b1f596UL, 0xfcf00afdUL, 0x4c13feb0UL, 0x3d6d50e2UL, 0xea129b4fUL, 0x25f215f2UL,
+0x6f7323a2UL, 0x28c4b49fUL, 0x7949d025UL, 0xf813c734UL, 0x878161c4UL, 0x986e7aeaUL, 0xfc6ed17cUL, 0x6c873614UL,
+0x074154f1UL, 0x14eedebeUL, 0x27afe956UL, 0x41a44aa0UL, 0x99c8f73cUL, 0xe6baec92UL, 0x6d0167ddUL, 0xeb821615UL,
+0xdfee42a8UL, 0xb460bafdUL, 0x757b90f1UL, 0x0f03e320UL, 0x9ec2d824UL, 0x3b6739e1UL, 0xb83fa6efUL, 0x54308771UL,
+0x3bcff2b6UL, 0x4264329fUL, 0xcca415cbUL, 0x04451ab0UL, 0x8d7de4f1UL, 0xe51b4a84UL, 0xdcdfe7baUL, 0x70dacb42UL,
+0x0aae7dcdUL, 0x7a5be857UL, 0xf65a3fd5UL, 0x8c4dcf20UL, 0x28d4a4ceUL, 0xa430d179UL, 0xfbeb8634UL, 0xdccdd333UL,
+0x533b8577UL, 0xb5fcef37UL, 0x788706c5UL, 0xe6b380e5UL, 0xf4b8684eUL, 0x7eb3c8c5UL, 0xa29e800dUL, 0x7ceb8f39UL,
+0x944f2a13UL, 0x0e95b743UL, 0x1c7dee2fUL, 0xbd133622UL, 0xa2ca06ddUL, 0x2b93df37UL, 0x898224c4UL, 0xc3ebf3acUL,
+0xb7f61557UL, 0xdd7834efUL, 0x6f6167f2UL, 0xe4cb48c1UL, 0x5e815290UL, 0xab0f415eUL, 0x65248ab4UL, 0xa47fda2eUL,
+0xe4407be8UL, 0x84a08ee9UL, 0xe1e98958UL, 0xfc90d3efUL, 0x5bd307ddUL, 0x945648dbUL, 0xb2e5d738UL, 0x01017257UL,
+0xbcde0e73UL, 0x1331645bUL, 0x4f7e9194UL, 0xba2f3c50UL, 0x82126f64UL, 0x4ad22375UL, 0x959677e0UL, 0x8f7ac1f9UL,
+0x21215b7aUL, 0x96b887d1UL, 0x4d3a2629UL, 0xdf0c51baUL, 0x9f7cf481UL, 0xed6311adUL, 0x65597beaUL, 0x6e72001aUL,
+0x92304011UL, 0x776dda00UL, 0x61dd0c4aUL, 0x03461fadUL, 0xb0df5b60UL, 0x64c3ed9eUL, 0xa8e6eb22UL, 0x8ad2e7ceUL,
+0xa036e7a0UL, 0xb9a66455UL, 0x09328510UL, 0x378febc7UL, 0xca05e72dUL, 0x0f575189UL, 0x2b8209dfUL, 0x6c1a69bdUL,
+0xf2e412aaUL, 0x0f1c4587UL, 0x7aa2f6e0UL, 0x1948da3aUL, 0x4f76f14cUL, 0x2b1c770dUL, 0x56b1cd67UL, 0x84830d35UL,
+0x0ffa3859UL, 0xf39e3942UL, 0x077b9936UL, 0x3d09840eUL, 0x613ea94aUL, 0x7bd86083UL, 0x0c8ba91fUL, 0x2c384911UL,
+0xa52576e9UL, 0xb7d11406UL, 0x4b24250eUL, 0x4783760cUL, 0x828d9e58UL, 0xd159200dUL, 0x1ebb66a4UL, 0x820adaf8UL,
+0x3091f104UL, 0xc04e6ebaUL, 0x64512699UL, 0x0d23e71eUL, 0x80adb250UL, 0x0168eeeaUL, 0x83a2b28dUL, 0x9ef58beaUL};
+
+
+#endif 
+
+
+#endif
+
index 4a8b6bfe44eca238e06bf2b4f9e470a8a33b5880..12f91d4d3aa2acddc3cf6bca86cab802a87703e6 100644 (file)
 #ifndef CAST5_SBOX_H_
 #define CAST5_SBOX_H_
 
-#include <avr/pgmspace.h>
 #include <stdint.h>
 
-#ifndef BIG_ENDIAN
-
-uint32_t s1[] PROGMEM = {
-0x30fb40d4UL, 0x9fa0ff0bUL, 0x6beccd2fUL, 0x3f258c7aUL, 0x1e213f2fUL, 0x9c004dd3UL, 0x6003e540UL, 0xcf9fc949UL,
-0xbfd4af27UL, 0x88bbbdb5UL, 0xe2034090UL, 0x98d09675UL, 0x6e63a0e0UL, 0x15c361d2UL, 0xc2e7661dUL, 0x22d4ff8eUL,
-0x28683b6fUL, 0xc07fd059UL, 0xff2379c8UL, 0x775f50e2UL, 0x43c340d3UL, 0xdf2f8656UL, 0x887ca41aUL, 0xa2d2bd2dUL,
-0xa1c9e0d6UL, 0x346c4819UL, 0x61b76d87UL, 0x22540f2fUL, 0x2abe32e1UL, 0xaa54166bUL, 0x22568e3aUL, 0xa2d341d0UL,
-0x66db40c8UL, 0xa784392fUL, 0x004dff2fUL, 0x2db9d2deUL, 0x97943facUL, 0x4a97c1d8UL, 0x527644b7UL, 0xb5f437a7UL,
-0xb82cbaefUL, 0xd751d159UL, 0x6ff7f0edUL, 0x5a097a1fUL, 0x827b68d0UL, 0x90ecf52eUL, 0x22b0c054UL, 0xbc8e5935UL,
-0x4b6d2f7fUL, 0x50bb64a2UL, 0xd2664910UL, 0xbee5812dUL, 0xb7332290UL, 0xe93b159fUL, 0xb48ee411UL, 0x4bff345dUL,
-0xfd45c240UL, 0xad31973fUL, 0xc4f6d02eUL, 0x55fc8165UL, 0xd5b1caadUL, 0xa1ac2daeUL, 0xa2d4b76dUL, 0xc19b0c50UL,
-0x882240f2UL, 0x0c6e4f38UL, 0xa4e4bfd7UL, 0x4f5ba272UL, 0x564c1d2fUL, 0xc59c5319UL, 0xb949e354UL, 0xb04669feUL,
-0xb1b6ab8aUL, 0xc71358ddUL, 0x6385c545UL, 0x110f935dUL, 0x57538ad5UL, 0x6a390493UL, 0xe63d37e0UL, 0x2a54f6b3UL,
-0x3a787d5fUL, 0x6276a0b5UL, 0x19a6fcdfUL, 0x7a42206aUL, 0x29f9d4d5UL, 0xf61b1891UL, 0xbb72275eUL, 0xaa508167UL,
-0x38901091UL, 0xc6b505ebUL, 0x84c7cb8cUL, 0x2ad75a0fUL, 0x874a1427UL, 0xa2d1936bUL, 0x2ad286afUL, 0xaa56d291UL,
-0xd7894360UL, 0x425c750dUL, 0x93b39e26UL, 0x187184c9UL, 0x6c00b32dUL, 0x73e2bb14UL, 0xa0bebc3cUL, 0x54623779UL,
-0x64459eabUL, 0x3f328b82UL, 0x7718cf82UL, 0x59a2cea6UL, 0x04ee002eUL, 0x89fe78e6UL, 0x3fab0950UL, 0x325ff6c2UL,
-0x81383f05UL, 0x6963c5c8UL, 0x76cb5ad6UL, 0xd49974c9UL, 0xca180dcfUL, 0x380782d5UL, 0xc7fa5cf6UL, 0x8ac31511UL,
-0x35e79e13UL, 0x47da91d0UL, 0xf40f9086UL, 0xa7e2419eUL, 0x31366241UL, 0x051ef495UL, 0xaa573b04UL, 0x4a805d8dUL,
-0x548300d0UL, 0x00322a3cUL, 0xbf64cddfUL, 0xba57a68eUL, 0x75c6372bUL, 0x50afd341UL, 0xa7c13275UL, 0x915a0bf5UL,
-0x6b54bfabUL, 0x2b0b1426UL, 0xab4cc9d7UL, 0x449ccd82UL, 0xf7fbf265UL, 0xab85c5f3UL, 0x1b55db94UL, 0xaad4e324UL,
-0xcfa4bd3fUL, 0x2deaa3e2UL, 0x9e204d02UL, 0xc8bd25acUL, 0xeadf55b3UL, 0xd5bd9e98UL, 0xe31231b2UL, 0x2ad5ad6cUL,
-0x954329deUL, 0xadbe4528UL, 0xd8710f69UL, 0xaa51c90fUL, 0xaa786bf6UL, 0x22513f1eUL, 0xaa51a79bUL, 0x2ad344ccUL,
-0x7b5a41f0UL, 0xd37cfbadUL, 0x1b069505UL, 0x41ece491UL, 0xb4c332e6UL, 0x032268d4UL, 0xc9600accUL, 0xce387e6dUL,
-0xbf6bb16cUL, 0x6a70fb78UL, 0x0d03d9c9UL, 0xd4df39deUL, 0xe01063daUL, 0x4736f464UL, 0x5ad328d8UL, 0xb347cc96UL,
-0x75bb0fc3UL, 0x98511bfbUL, 0x4ffbcc35UL, 0xb58bcf6aUL, 0xe11f0abcUL, 0xbfc5fe4aUL, 0xa70aec10UL, 0xac39570aUL,
-0x3f04442fUL, 0x6188b153UL, 0xe0397a2eUL, 0x5727cb79UL, 0x9ceb418fUL, 0x1cacd68dUL, 0x2ad37c96UL, 0x0175cb9dUL,
-0xc69dff09UL, 0xc75b65f0UL, 0xd9db40d8UL, 0xec0e7779UL, 0x4744ead4UL, 0xb11c3274UL, 0xdd24cb9eUL, 0x7e1c54bdUL,
-0xf01144f9UL, 0xd2240eb1UL, 0x9675b3fdUL, 0xa3ac3755UL, 0xd47c27afUL, 0x51c85f4dUL, 0x56907596UL, 0xa5bb15e6UL,
-0x580304f0UL, 0xca042cf1UL, 0x011a37eaUL, 0x8dbfaadbUL, 0x35ba3e4aUL, 0x3526ffa0UL, 0xc37b4d09UL, 0xbc306ed9UL,
-0x98a52666UL, 0x5648f725UL, 0xff5e569dUL, 0x0ced63d0UL, 0x7c63b2cfUL, 0x700b45e1UL, 0xd5ea50f1UL, 0x85a92872UL,
-0xaf1fbda7UL, 0xd4234870UL, 0xa7870bf3UL, 0x2d3b4d79UL, 0x42e04198UL, 0x0cd0ede7UL, 0x26470db8UL, 0xf881814cUL,
-0x474d6ad7UL, 0x7c0c5e5cUL, 0xd1231959UL, 0x381b7298UL, 0xf5d2f4dbUL, 0xab838653UL, 0x6e2f1e23UL, 0x83719c9eUL,
-0xbd91e046UL, 0x9a56456eUL, 0xdc39200cUL, 0x20c8c571UL, 0x962bda1cUL, 0xe1e696ffUL, 0xb141ab08UL, 0x7cca89b9UL,
-0x1a69e783UL, 0x02cc4843UL, 0xa2f7c579UL, 0x429ef47dUL, 0x427b169cUL, 0x5ac9f049UL, 0xdd8f0f00UL, 0x5c8165bfUL};
-
-uint32_t s2[] PROGMEM = {
-0x1f201094UL, 0xef0ba75bUL, 0x69e3cf7eUL, 0x393f4380UL, 0xfe61cf7aUL, 0xeec5207aUL, 0x55889c94UL, 0x72fc0651UL,
-0xada7ef79UL, 0x4e1d7235UL, 0xd55a63ceUL, 0xde0436baUL, 0x99c430efUL, 0x5f0c0794UL, 0x18dcdb7dUL, 0xa1d6eff3UL,
-0xa0b52f7bUL, 0x59e83605UL, 0xee15b094UL, 0xe9ffd909UL, 0xdc440086UL, 0xef944459UL, 0xba83ccb3UL, 0xe0c3cdfbUL,
-0xd1da4181UL, 0x3b092ab1UL, 0xf997f1c1UL, 0xa5e6cf7bUL, 0x01420ddbUL, 0xe4e7ef5bUL, 0x25a1ff41UL, 0xe180f806UL,
-0x1fc41080UL, 0x179bee7aUL, 0xd37ac6a9UL, 0xfe5830a4UL, 0x98de8b7fUL, 0x77e83f4eUL, 0x79929269UL, 0x24fa9f7bUL,
-0xe113c85bUL, 0xacc40083UL, 0xd7503525UL, 0xf7ea615fUL, 0x62143154UL, 0x0d554b63UL, 0x5d681121UL, 0xc866c359UL,
-0x3d63cf73UL, 0xcee234c0UL, 0xd4d87e87UL, 0x5c672b21UL, 0x071f6181UL, 0x39f7627fUL, 0x361e3084UL, 0xe4eb573bUL,
-0x602f64a4UL, 0xd63acd9cUL, 0x1bbc4635UL, 0x9e81032dUL, 0x2701f50cUL, 0x99847ab4UL, 0xa0e3df79UL, 0xba6cf38cUL,
-0x10843094UL, 0x2537a95eUL, 0xf46f6ffeUL, 0xa1ff3b1fUL, 0x208cfb6aUL, 0x8f458c74UL, 0xd9e0a227UL, 0x4ec73a34UL,
-0xfc884f69UL, 0x3e4de8dfUL, 0xef0e0088UL, 0x3559648dUL, 0x8a45388cUL, 0x1d804366UL, 0x721d9bfdUL, 0xa58684bbUL,
-0xe8256333UL, 0x844e8212UL, 0x128d8098UL, 0xfed33fb4UL, 0xce280ae1UL, 0x27e19ba5UL, 0xd5a6c252UL, 0xe49754bdUL,
-0xc5d655ddUL, 0xeb667064UL, 0x77840b4dUL, 0xa1b6a801UL, 0x84db26a9UL, 0xe0b56714UL, 0x21f043b7UL, 0xe5d05860UL,
-0x54f03084UL, 0x066ff472UL, 0xa31aa153UL, 0xdadc4755UL, 0xb5625dbfUL, 0x68561be6UL, 0x83ca6b94UL, 0x2d6ed23bUL,
-0xeccf01dbUL, 0xa6d3d0baUL, 0xb6803d5cUL, 0xaf77a709UL, 0x33b4a34cUL, 0x397bc8d6UL, 0x5ee22b95UL, 0x5f0e5304UL,
-0x81ed6f61UL, 0x20e74364UL, 0xb45e1378UL, 0xde18639bUL, 0x881ca122UL, 0xb96726d1UL, 0x8049a7e8UL, 0x22b7da7bUL,
-0x5e552d25UL, 0x5272d237UL, 0x79d2951cUL, 0xc60d894cUL, 0x488cb402UL, 0x1ba4fe5bUL, 0xa4b09f6bUL, 0x1ca815cfUL,
-0xa20c3005UL, 0x8871df63UL, 0xb9de2fcbUL, 0x0cc6c9e9UL, 0x0beeff53UL, 0xe3214517UL, 0xb4542835UL, 0x9f63293cUL,
-0xee41e729UL, 0x6e1d2d7cUL, 0x50045286UL, 0x1e6685f3UL, 0xf33401c6UL, 0x30a22c95UL, 0x31a70850UL, 0x60930f13UL,
-0x73f98417UL, 0xa1269859UL, 0xec645c44UL, 0x52c877a9UL, 0xcdff33a6UL, 0xa02b1741UL, 0x7cbad9a2UL, 0x2180036fUL,
-0x50d99c08UL, 0xcb3f4861UL, 0xc26bd765UL, 0x64a3f6abUL, 0x80342676UL, 0x25a75e7bUL, 0xe4e6d1fcUL, 0x20c710e6UL,
-0xcdf0b680UL, 0x17844d3bUL, 0x31eef84dUL, 0x7e0824e4UL, 0x2ccb49ebUL, 0x846a3baeUL, 0x8ff77888UL, 0xee5d60f6UL,
-0x7af75673UL, 0x2fdd5cdbUL, 0xa11631c1UL, 0x30f66f43UL, 0xb3faec54UL, 0x157fd7faUL, 0xef8579ccUL, 0xd152de58UL,
-0xdb2ffd5eUL, 0x8f32ce19UL, 0x306af97aUL, 0x02f03ef8UL, 0x99319ad5UL, 0xc242fa0fUL, 0xa7e3ebb0UL, 0xc68e4906UL,
-0xb8da230cUL, 0x80823028UL, 0xdcdef3c8UL, 0xd35fb171UL, 0x088a1bc8UL, 0xbec0c560UL, 0x61a3c9e8UL, 0xbca8f54dUL,
-0xc72feffaUL, 0x22822e99UL, 0x82c570b4UL, 0xd8d94e89UL, 0x8b1c34bcUL, 0x301e16e6UL, 0x273be979UL, 0xb0ffeaa6UL,
-0x61d9b8c6UL, 0x00b24869UL, 0xb7ffce3fUL, 0x08dc283bUL, 0x43daf65aUL, 0xf7e19798UL, 0x7619b72fUL, 0x8f1c9ba4UL,
-0xdc8637a0UL, 0x16a7d3b1UL, 0x9fc393b7UL, 0xa7136eebUL, 0xc6bcc63eUL, 0x1a513742UL, 0xef6828bcUL, 0x520365d6UL,
-0x2d6a77abUL, 0x3527ed4bUL, 0x821fd216UL, 0x095c6e2eUL, 0xdb92f2fbUL, 0x5eea29cbUL, 0x145892f5UL, 0x91584f7fUL,
-0x5483697bUL, 0x2667a8ccUL, 0x85196048UL, 0x8c4baceaUL, 0x833860d4UL, 0x0d23e0f9UL, 0x6c387e8aUL, 0x0ae6d249UL,
-0xb284600cUL, 0xd835731dUL, 0xdcb1c647UL, 0xac4c56eaUL, 0x3ebd81b3UL, 0x230eabb0UL, 0x6438bc87UL, 0xf0b5b1faUL,
-0x8f5ea2b3UL, 0xfc184642UL, 0x0a036b7aUL, 0x4fb089bdUL, 0x649da589UL, 0xa345415eUL, 0x5c038323UL, 0x3e5d3bb9UL,
-0x43d79572UL, 0x7e6dd07cUL, 0x06dfdf1eUL, 0x6c6cc4efUL, 0x7160a539UL, 0x73bfbe70UL, 0x83877605UL, 0x4523ecf1UL};
-
-uint32_t s3[] PROGMEM = {
-0x8defc240UL, 0x25fa5d9fUL, 0xeb903dbfUL, 0xe810c907UL, 0x47607fffUL, 0x369fe44bUL, 0x8c1fc644UL, 0xaececa90UL,
-0xbeb1f9bfUL, 0xeefbcaeaUL, 0xe8cf1950UL, 0x51df07aeUL, 0x920e8806UL, 0xf0ad0548UL, 0xe13c8d83UL, 0x927010d5UL,
-0x11107d9fUL, 0x07647db9UL, 0xb2e3e4d4UL, 0x3d4f285eUL, 0xb9afa820UL, 0xfade82e0UL, 0xa067268bUL, 0x8272792eUL,
-0x553fb2c0UL, 0x489ae22bUL, 0xd4ef9794UL, 0x125e3fbcUL, 0x21fffceeUL, 0x825b1bfdUL, 0x9255c5edUL, 0x1257a240UL,
-0x4e1a8302UL, 0xbae07fffUL, 0x528246e7UL, 0x8e57140eUL, 0x3373f7bfUL, 0x8c9f8188UL, 0xa6fc4ee8UL, 0xc982b5a5UL,
-0xa8c01db7UL, 0x579fc264UL, 0x67094f31UL, 0xf2bd3f5fUL, 0x40fff7c1UL, 0x1fb78dfcUL, 0x8e6bd2c1UL, 0x437be59bUL,
-0x99b03dbfUL, 0xb5dbc64bUL, 0x638dc0e6UL, 0x55819d99UL, 0xa197c81cUL, 0x4a012d6eUL, 0xc5884a28UL, 0xccc36f71UL,
-0xb843c213UL, 0x6c0743f1UL, 0x8309893cUL, 0x0feddd5fUL, 0x2f7fe850UL, 0xd7c07f7eUL, 0x02507fbfUL, 0x5afb9a04UL,
-0xa747d2d0UL, 0x1651192eUL, 0xaf70bf3eUL, 0x58c31380UL, 0x5f98302eUL, 0x727cc3c4UL, 0x0a0fb402UL, 0x0f7fef82UL,
-0x8c96fdadUL, 0x5d2c2aaeUL, 0x8ee99a49UL, 0x50da88b8UL, 0x8427f4a0UL, 0x1eac5790UL, 0x796fb449UL, 0x8252dc15UL,
-0xefbd7d9bUL, 0xa672597dUL, 0xada840d8UL, 0x45f54504UL, 0xfa5d7403UL, 0xe83ec305UL, 0x4f91751aUL, 0x925669c2UL,
-0x23efe941UL, 0xa903f12eUL, 0x60270df2UL, 0x0276e4b6UL, 0x94fd6574UL, 0x927985b2UL, 0x8276dbcbUL, 0x02778176UL,
-0xf8af918dUL, 0x4e48f79eUL, 0x8f616ddfUL, 0xe29d840eUL, 0x842f7d83UL, 0x340ce5c8UL, 0x96bbb682UL, 0x93b4b148UL,
-0xef303cabUL, 0x984faf28UL, 0x779faf9bUL, 0x92dc560dUL, 0x224d1e20UL, 0x8437aa88UL, 0x7d29dc96UL, 0x2756d3dcUL,
-0x8b907ceeUL, 0xb51fd240UL, 0xe7c07ce3UL, 0xe566b4a1UL, 0xc3e9615eUL, 0x3cf8209dUL, 0x6094d1e3UL, 0xcd9ca341UL,
-0x5c76460eUL, 0x00ea983bUL, 0xd4d67881UL, 0xfd47572cUL, 0xf76cedd9UL, 0xbda8229cUL, 0x127dadaaUL, 0x438a074eUL,
-0x1f97c090UL, 0x081bdb8aUL, 0x93a07ebeUL, 0xb938ca15UL, 0x97b03cffUL, 0x3dc2c0f8UL, 0x8d1ab2ecUL, 0x64380e51UL,
-0x68cc7bfbUL, 0xd90f2788UL, 0x12490181UL, 0x5de5ffd4UL, 0xdd7ef86aUL, 0x76a2e214UL, 0xb9a40368UL, 0x925d958fUL,
-0x4b39fffaUL, 0xba39aee9UL, 0xa4ffd30bUL, 0xfaf7933bUL, 0x6d498623UL, 0x193cbcfaUL, 0x27627545UL, 0x825cf47aUL,
-0x61bd8ba0UL, 0xd11e42d1UL, 0xcead04f4UL, 0x127ea392UL, 0x10428db7UL, 0x8272a972UL, 0x9270c4a8UL, 0x127de50bUL,
-0x285ba1c8UL, 0x3c62f44fUL, 0x35c0eaa5UL, 0xe805d231UL, 0x428929fbUL, 0xb4fcdf82UL, 0x4fb66a53UL, 0x0e7dc15bUL,
-0x1f081fabUL, 0x108618aeUL, 0xfcfd086dUL, 0xf9ff2889UL, 0x694bcc11UL, 0x236a5caeUL, 0x12deca4dUL, 0x2c3f8cc5UL,
-0xd2d02dfeUL, 0xf8ef5896UL, 0xe4cf52daUL, 0x95155b67UL, 0x494a488cUL, 0xb9b6a80cUL, 0x5c8f82bcUL, 0x89d36b45UL,
-0x3a609437UL, 0xec00c9a9UL, 0x44715253UL, 0x0a874b49UL, 0xd773bc40UL, 0x7c34671cUL, 0x02717ef6UL, 0x4feb5536UL,
-0xa2d02fffUL, 0xd2bf60c4UL, 0xd43f03c0UL, 0x50b4ef6dUL, 0x07478cd1UL, 0x006e1888UL, 0xa2e53f55UL, 0xb9e6d4bcUL,
-0xa2048016UL, 0x97573833UL, 0xd7207d67UL, 0xde0f8f3dUL, 0x72f87b33UL, 0xabcc4f33UL, 0x7688c55dUL, 0x7b00a6b0UL,
-0x947b0001UL, 0x570075d2UL, 0xf9bb88f8UL, 0x8942019eUL, 0x4264a5ffUL, 0x856302e0UL, 0x72dbd92bUL, 0xee971b69UL,
-0x6ea22fdeUL, 0x5f08ae2bUL, 0xaf7a616dUL, 0xe5c98767UL, 0xcf1febd2UL, 0x61efc8c2UL, 0xf1ac2571UL, 0xcc8239c2UL,
-0x67214cb8UL, 0xb1e583d1UL, 0xb7dc3e62UL, 0x7f10bdceUL, 0xf90a5c38UL, 0x0ff0443dUL, 0x606e6dc6UL, 0x60543a49UL,
-0x5727c148UL, 0x2be98a1dUL, 0x8ab41738UL, 0x20e1be24UL, 0xaf96da0fUL, 0x68458425UL, 0x99833be5UL, 0x600d457dUL,
-0x282f9350UL, 0x8334b362UL, 0xd91d1120UL, 0x2b6d8da0UL, 0x642b1e31UL, 0x9c305a00UL, 0x52bce688UL, 0x1b03588aUL,
-0xf7baefd5UL, 0x4142ed9cUL, 0xa4315c11UL, 0x83323ec5UL, 0xdfef4636UL, 0xa133c501UL, 0xe9d3531cUL, 0xee353783UL};
-
-uint32_t s4[] PROGMEM = {
-0x9db30420UL, 0x1fb6e9deUL, 0xa7be7befUL, 0xd273a298UL, 0x4a4f7bdbUL, 0x64ad8c57UL, 0x85510443UL, 0xfa020ed1UL,
-0x7e287affUL, 0xe60fb663UL, 0x095f35a1UL, 0x79ebf120UL, 0xfd059d43UL, 0x6497b7b1UL, 0xf3641f63UL, 0x241e4adfUL,
-0x28147f5fUL, 0x4fa2b8cdUL, 0xc9430040UL, 0x0cc32220UL, 0xfdd30b30UL, 0xc0a5374fUL, 0x1d2d00d9UL, 0x24147b15UL,
-0xee4d111aUL, 0x0fca5167UL, 0x71ff904cUL, 0x2d195ffeUL, 0x1a05645fUL, 0x0c13fefeUL, 0x081b08caUL, 0x05170121UL,
-0x80530100UL, 0xe83e5efeUL, 0xac9af4f8UL, 0x7fe72701UL, 0xd2b8ee5fUL, 0x06df4261UL, 0xbb9e9b8aUL, 0x7293ea25UL,
-0xce84ffdfUL, 0xf5718801UL, 0x3dd64b04UL, 0xa26f263bUL, 0x7ed48400UL, 0x547eebe6UL, 0x446d4ca0UL, 0x6cf3d6f5UL,
-0x2649abdfUL, 0xaea0c7f5UL, 0x36338cc1UL, 0x503f7e93UL, 0xd3772061UL, 0x11b638e1UL, 0x72500e03UL, 0xf80eb2bbUL,
-0xabe0502eUL, 0xec8d77deUL, 0x57971e81UL, 0xe14f6746UL, 0xc9335400UL, 0x6920318fUL, 0x081dbb99UL, 0xffc304a5UL,
-0x4d351805UL, 0x7f3d5ce3UL, 0xa6c866c6UL, 0x5d5bcca9UL, 0xdaec6feaUL, 0x9f926f91UL, 0x9f46222fUL, 0x3991467dUL,
-0xa5bf6d8eUL, 0x1143c44fUL, 0x43958302UL, 0xd0214eebUL, 0x022083b8UL, 0x3fb6180cUL, 0x18f8931eUL, 0x281658e6UL,
-0x26486e3eUL, 0x8bd78a70UL, 0x7477e4c1UL, 0xb506e07cUL, 0xf32d0a25UL, 0x79098b02UL, 0xe4eabb81UL, 0x28123b23UL,
-0x69dead38UL, 0x1574ca16UL, 0xdf871b62UL, 0x211c40b7UL, 0xa51a9ef9UL, 0x0014377bUL, 0x041e8ac8UL, 0x09114003UL,
-0xbd59e4d2UL, 0xe3d156d5UL, 0x4fe876d5UL, 0x2f91a340UL, 0x557be8deUL, 0x00eae4a7UL, 0x0ce5c2ecUL, 0x4db4bba6UL,
-0xe756bdffUL, 0xdd3369acUL, 0xec17b035UL, 0x06572327UL, 0x99afc8b0UL, 0x56c8c391UL, 0x6b65811cUL, 0x5e146119UL,
-0x6e85cb75UL, 0xbe07c002UL, 0xc2325577UL, 0x893ff4ecUL, 0x5bbfc92dUL, 0xd0ec3b25UL, 0xb7801ab7UL, 0x8d6d3b24UL,
-0x20c763efUL, 0xc366a5fcUL, 0x9c382880UL, 0x0ace3205UL, 0xaac9548aUL, 0xeca1d7c7UL, 0x041afa32UL, 0x1d16625aUL,
-0x6701902cUL, 0x9b757a54UL, 0x31d477f7UL, 0x9126b031UL, 0x36cc6fdbUL, 0xc70b8b46UL, 0xd9e66a48UL, 0x56e55a79UL,
-0x026a4cebUL, 0x52437effUL, 0x2f8f76b4UL, 0x0df980a5UL, 0x8674cde3UL, 0xedda04ebUL, 0x17a9be04UL, 0x2c18f4dfUL,
-0xb7747f9dUL, 0xab2af7b4UL, 0xefc34d20UL, 0x2e096b7cUL, 0x1741a254UL, 0xe5b6a035UL, 0x213d42f6UL, 0x2c1c7c26UL,
-0x61c2f50fUL, 0x6552daf9UL, 0xd2c231f8UL, 0x25130f69UL, 0xd8167fa2UL, 0x0418f2c8UL, 0x001a96a6UL, 0x0d1526abUL,
-0x63315c21UL, 0x5e0a72ecUL, 0x49bafefdUL, 0x187908d9UL, 0x8d0dbd86UL, 0x311170a7UL, 0x3e9b640cUL, 0xcc3e10d7UL,
-0xd5cad3b6UL, 0x0caec388UL, 0xf73001e1UL, 0x6c728affUL, 0x71eae2a1UL, 0x1f9af36eUL, 0xcfcbd12fUL, 0xc1de8417UL,
-0xac07be6bUL, 0xcb44a1d8UL, 0x8b9b0f56UL, 0x013988c3UL, 0xb1c52fcaUL, 0xb4be31cdUL, 0xd8782806UL, 0x12a3a4e2UL,
-0x6f7de532UL, 0x58fd7eb6UL, 0xd01ee900UL, 0x24adffc2UL, 0xf4990fc5UL, 0x9711aac5UL, 0x001d7b95UL, 0x82e5e7d2UL,
-0x109873f6UL, 0x00613096UL, 0xc32d9521UL, 0xada121ffUL, 0x29908415UL, 0x7fbb977fUL, 0xaf9eb3dbUL, 0x29c9ed2aUL,
-0x5ce2a465UL, 0xa730f32cUL, 0xd0aa3fe8UL, 0x8a5cc091UL, 0xd49e2ce7UL, 0x0ce454a9UL, 0xd60acd86UL, 0x015f1919UL,
-0x77079103UL, 0xdea03af6UL, 0x78a8565eUL, 0xdee356dfUL, 0x21f05cbeUL, 0x8b75e387UL, 0xb3c50651UL, 0xb8a5c3efUL,
-0xd8eeb6d2UL, 0xe523be77UL, 0xc2154529UL, 0x2f69efdfUL, 0xafe67afbUL, 0xf470c4b2UL, 0xf3e0eb5bUL, 0xd6cc9876UL,
-0x39e4460cUL, 0x1fda8538UL, 0x1987832fUL, 0xca007367UL, 0xa99144f8UL, 0x296b299eUL, 0x492fc295UL, 0x9266beabUL,
-0xb5676e69UL, 0x9bd3dddaUL, 0xdf7e052fUL, 0xdb25701cUL, 0x1b5e51eeUL, 0xf65324e6UL, 0x6afce36cUL, 0x0316cc04UL,
-0x8644213eUL, 0xb7dc59d0UL, 0x7965291fUL, 0xccd6fd43UL, 0x41823979UL, 0x932bcdf6UL, 0xb657c34dUL, 0x4edfd282UL,
-0x7ae5290cUL, 0x3cb9536bUL, 0x851e20feUL, 0x9833557eUL, 0x13ecf0b0UL, 0xd3ffb372UL, 0x3f85c5c1UL, 0x0aef7ed2UL};
-
-#else
-
-uint32_t s1[] PROGMEM = {
-0xd440fb30UL, 0x0bffa09fUL, 0x2fcdec6bUL, 0x7a8c253fUL, 0x2f3f211eUL, 0xd34d009cUL, 0x40e50360UL, 0x49c99fcfUL,
-0x27afd4bfUL, 0xb5bdbb88UL, 0x904003e2UL, 0x7596d098UL, 0xe0a0636eUL, 0xd261c315UL, 0x1d66e7c2UL, 0x8effd422UL,
-0x6f3b6828UL, 0x59d07fc0UL, 0xc87923ffUL, 0xe2505f77UL, 0xd340c343UL, 0x56862fdfUL, 0x1aa47c88UL, 0x2dbdd2a2UL,
-0xd6e0c9a1UL, 0x19486c34UL, 0x876db761UL, 0x2f0f5422UL, 0xe132be2aUL, 0x6b1654aaUL, 0x3a8e5622UL, 0xd041d3a2UL,
-0xc840db66UL, 0x2f3984a7UL, 0x2fff4d00UL, 0xded2b92dUL, 0xac3f9497UL, 0xd8c1974aUL, 0xb7447652UL, 0xa737f4b5UL,
-0xefba2cb8UL, 0x59d151d7UL, 0xedf0f76fUL, 0x1f7a095aUL, 0xd0687b82UL, 0x2ef5ec90UL, 0x54c0b022UL, 0x35598ebcUL,
-0x7f2f6d4bUL, 0xa264bb50UL, 0x104966d2UL, 0x2d81e5beUL, 0x902233b7UL, 0x9f153be9UL, 0x11e48eb4UL, 0x5d34ff4bUL,
-0x40c245fdUL, 0x3f9731adUL, 0x2ed0f6c4UL, 0x6581fc55UL, 0xadcab1d5UL, 0xae2daca1UL, 0x6db7d4a2UL, 0x500c9bc1UL,
-0xf2402288UL, 0x384f6e0cUL, 0xd7bfe4a4UL, 0x72a25b4fUL, 0x2f1d4c56UL, 0x19539cc5UL, 0x54e349b9UL, 0xfe6946b0UL,
-0x8aabb6b1UL, 0xdd5813c7UL, 0x45c58563UL, 0x5d930f11UL, 0xd58a5357UL, 0x9304396aUL, 0xe0373de6UL, 0xb3f6542aUL,
-0x5f7d783aUL, 0xb5a07662UL, 0xdffca619UL, 0x6a20427aUL, 0xd5d4f929UL, 0x91181bf6UL, 0x5e2772bbUL, 0x678150aaUL,
-0x91109038UL, 0xeb05b5c6UL, 0x8ccbc784UL, 0x0f5ad72aUL, 0x27144a87UL, 0x6b93d1a2UL, 0xaf86d22aUL, 0x91d256aaUL,
-0x604389d7UL, 0x0d755c42UL, 0x269eb393UL, 0xc9847118UL, 0x2db3006cUL, 0x14bbe273UL, 0x3cbcbea0UL, 0x79376254UL,
-0xab9e4564UL, 0x828b323fUL, 0x82cf1877UL, 0xa6cea259UL, 0x2e00ee04UL, 0xe678fe89UL, 0x5009ab3fUL, 0xc2f65f32UL,
-0x053f3881UL, 0xc8c56369UL, 0xd65acb76UL, 0xc97499d4UL, 0xcf0d18caUL, 0xd5820738UL, 0xf65cfac7UL, 0x1115c38aUL,
-0x139ee735UL, 0xd091da47UL, 0x86900ff4UL, 0x9e41e2a7UL, 0x41623631UL, 0x95f41e05UL, 0x043b57aaUL, 0x8d5d804aUL,
-0xd0008354UL, 0x3c2a3200UL, 0xdfcd64bfUL, 0x8ea657baUL, 0x2b37c675UL, 0x41d3af50UL, 0x7532c1a7UL, 0xf50b5a91UL,
-0xabbf546bUL, 0x26140b2bUL, 0xd7c94cabUL, 0x82cd9c44UL, 0x65f2fbf7UL, 0xf3c585abUL, 0x94db551bUL, 0x24e3d4aaUL,
-0x3fbda4cfUL, 0xe2a3ea2dUL, 0x024d209eUL, 0xac25bdc8UL, 0xb355dfeaUL, 0x989ebdd5UL, 0xb23112e3UL, 0x6cadd52aUL,
-0xde294395UL, 0x2845beadUL, 0x690f71d8UL, 0x0fc951aaUL, 0xf66b78aaUL, 0x1e3f5122UL, 0x9ba751aaUL, 0xcc44d32aUL,
-0xf0415a7bUL, 0xadfb7cd3UL, 0x0595061bUL, 0x91e4ec41UL, 0xe632c3b4UL, 0xd4682203UL, 0xcc0a60c9UL, 0x6d7e38ceUL,
-0x6cb16bbfUL, 0x78fb706aUL, 0xc9d9030dUL, 0xde39dfd4UL, 0xda6310e0UL, 0x64f43647UL, 0xd828d35aUL, 0x96cc47b3UL,
-0xc30fbb75UL, 0xfb1b5198UL, 0x35ccfb4fUL, 0x6acf8bb5UL, 0xbc0a1fe1UL, 0x4afec5bfUL, 0x10ec0aa7UL, 0x0a5739acUL,
-0x2f44043fUL, 0x53b18861UL, 0x2e7a39e0UL, 0x79cb2757UL, 0x8f41eb9cUL, 0x8dd6ac1cUL, 0x967cd32aUL, 0x9dcb7501UL,
-0x09ff9dc6UL, 0xf0655bc7UL, 0xd840dbd9UL, 0x79770eecUL, 0xd4ea4447UL, 0x74321cb1UL, 0x9ecb24ddUL, 0xbd541c7eUL,
-0xf94411f0UL, 0xb10e24d2UL, 0xfdb37596UL, 0x5537aca3UL, 0xaf277cd4UL, 0x4d5fc851UL, 0x96759056UL, 0xe615bba5UL,
-0xf0040358UL, 0xf12c04caUL, 0xea371a01UL, 0xdbaabf8dUL, 0x4a3eba35UL, 0xa0ff2635UL, 0x094d7bc3UL, 0xd96e30bcUL,
-0x6626a598UL, 0x25f74856UL, 0x9d565effUL, 0xd063ed0cUL, 0xcfb2637cUL, 0xe1450b70UL, 0xf150ead5UL, 0x7228a985UL,
-0xa7bd1fafUL, 0x704823d4UL, 0xf30b87a7UL, 0x794d3b2dUL, 0x9841e042UL, 0xe7edd00cUL, 0xb80d4726UL, 0x4c8181f8UL,
-0xd76a4d47UL, 0x5c5e0c7cUL, 0x591923d1UL, 0x98721b38UL, 0xdbf4d2f5UL, 0x538683abUL, 0x231e2f6eUL, 0x9e9c7183UL,
-0x46e091bdUL, 0x6e45569aUL, 0x0c2039dcUL, 0x71c5c820UL, 0x1cda2b96UL, 0xff96e6e1UL, 0x08ab41b1UL, 0xb989ca7cUL,
-0x83e7691aUL, 0x4348cc02UL, 0x79c5f7a2UL, 0x7df49e42UL, 0x9c167b42UL, 0x49f0c95aUL, 0x000f8fddUL, 0xbf65815cUL};
-
-uint32_t s2[] PROGMEM = {
-0x9410201fUL, 0x5ba70befUL, 0x7ecfe369UL, 0x80433f39UL, 0x7acf61feUL, 0x7a20c5eeUL, 0x949c8855UL, 0x5106fc72UL,
-0x79efa7adUL, 0x35721d4eUL, 0xce635ad5UL, 0xba3604deUL, 0xef30c499UL, 0x94070c5fUL, 0x7ddbdc18UL, 0xf3efd6a1UL,
-0x7b2fb5a0UL, 0x0536e859UL, 0x94b015eeUL, 0x09d9ffe9UL, 0x860044dcUL, 0x594494efUL, 0xb3cc83baUL, 0xfbcdc3e0UL,
-0x8141dad1UL, 0xb12a093bUL, 0xc1f197f9UL, 0x7bcfe6a5UL, 0xdb0d4201UL, 0x5befe7e4UL, 0x41ffa125UL, 0x06f880e1UL,
-0x8010c41fUL, 0x7aee9b17UL, 0xa9c67ad3UL, 0xa43058feUL, 0x7f8bde98UL, 0x4e3fe877UL, 0x69929279UL, 0x7b9ffa24UL,
-0x5bc813e1UL, 0x8300c4acUL, 0x253550d7UL, 0x5f61eaf7UL, 0x54311462UL, 0x634b550dUL, 0x2111685dUL, 0x59c366c8UL,
-0x73cf633dUL, 0xc034e2ceUL, 0x877ed8d4UL, 0x212b675cUL, 0x81611f07UL, 0x7f62f739UL, 0x84301e36UL, 0x3b57ebe4UL,
-0xa4642f60UL, 0x9ccd3ad6UL, 0x3546bc1bUL, 0x2d03819eUL, 0x0cf50127UL, 0xb47a8499UL, 0x79dfe3a0UL, 0x8cf36cbaUL,
-0x94308410UL, 0x5ea93725UL, 0xfe6f6ff4UL, 0x1f3bffa1UL, 0x6afb8c20UL, 0x748c458fUL, 0x27a2e0d9UL, 0x343ac74eUL,
-0x694f88fcUL, 0xdfe84d3eUL, 0x88000eefUL, 0x8d645935UL, 0x8c38458aUL, 0x6643801dUL, 0xfd9b1d72UL, 0xbb8486a5UL,
-0x336325e8UL, 0x12824e84UL, 0x98808d12UL, 0xb43fd3feUL, 0xe10a28ceUL, 0xa59be127UL, 0x52c2a6d5UL, 0xbd5497e4UL,
-0xdd55d6c5UL, 0x647066ebUL, 0x4d0b8477UL, 0x01a8b6a1UL, 0xa926db84UL, 0x1467b5e0UL, 0xb743f021UL, 0x6058d0e5UL,
-0x8430f054UL, 0x72f46f06UL, 0x53a11aa3UL, 0x5547dcdaUL, 0xbf5d62b5UL, 0xe61b5668UL, 0x946bca83UL, 0x3bd26e2dUL,
-0xdb01cfecUL, 0xbad0d3a6UL, 0x5c3d80b6UL, 0x09a777afUL, 0x4ca3b433UL, 0xd6c87b39UL, 0x952be25eUL, 0x04530e5fUL,
-0x616fed81UL, 0x6443e720UL, 0x78135eb4UL, 0x9b6318deUL, 0x22a11c88UL, 0xd12667b9UL, 0xe8a74980UL, 0x7bdab722UL,
-0x252d555eUL, 0x37d27252UL, 0x1c95d279UL, 0x4c890dc6UL, 0x02b48c48UL, 0x5bfea41bUL, 0x6b9fb0a4UL, 0xcf15a81cUL,
-0x05300ca2UL, 0x63df7188UL, 0xcb2fdeb9UL, 0xe9c9c60cUL, 0x53ffee0bUL, 0x174521e3UL, 0x352854b4UL, 0x3c29639fUL,
-0x29e741eeUL, 0x7c2d1d6eUL, 0x86520450UL, 0xf385661eUL, 0xc60134f3UL, 0x952ca230UL, 0x5008a731UL, 0x130f9360UL,
-0x1784f973UL, 0x599826a1UL, 0x445c64ecUL, 0xa977c852UL, 0xa633ffcdUL, 0x41172ba0UL, 0xa2d9ba7cUL, 0x6f038021UL,
-0x089cd950UL, 0x61483fcbUL, 0x65d76bc2UL, 0xabf6a364UL, 0x76263480UL, 0x7b5ea725UL, 0xfcd1e6e4UL, 0xe610c720UL,
-0x80b6f0cdUL, 0x3b4d8417UL, 0x4df8ee31UL, 0xe424087eUL, 0xeb49cb2cUL, 0xae3b6a84UL, 0x8878f78fUL, 0xf6605deeUL,
-0x7356f77aUL, 0xdb5cdd2fUL, 0xc13116a1UL, 0x436ff630UL, 0x54ecfab3UL, 0xfad77f15UL, 0xcc7985efUL, 0x58de52d1UL,
-0x5efd2fdbUL, 0x19ce328fUL, 0x7af96a30UL, 0xf83ef002UL, 0xd59a3199UL, 0x0ffa42c2UL, 0xb0ebe3a7UL, 0x06498ec6UL,
-0x0c23dab8UL, 0x28308280UL, 0xc8f3dedcUL, 0x71b15fd3UL, 0xc81b8a08UL, 0x60c5c0beUL, 0xe8c9a361UL, 0x4df5a8bcUL,
-0xfaef2fc7UL, 0x992e8222UL, 0xb470c582UL, 0x894ed9d8UL, 0xbc341c8bUL, 0xe6161e30UL, 0x79e93b27UL, 0xa6eaffb0UL,
-0xc6b8d961UL, 0x6948b200UL, 0x3fceffb7UL, 0x3b28dc08UL, 0x5af6da43UL, 0x9897e1f7UL, 0x2fb71976UL, 0xa49b1c8fUL,
-0xa03786dcUL, 0xb1d3a716UL, 0xb793c39fUL, 0xeb6e13a7UL, 0x3ec6bcc6UL, 0x4237511aUL, 0xbc2868efUL, 0xd6650352UL,
-0xab776a2dUL, 0x4bed2735UL, 0x16d21f82UL, 0x2e6e5c09UL, 0xfbf292dbUL, 0xcb29ea5eUL, 0xf5925814UL, 0x7f4f5891UL,
-0x7b698354UL, 0xcca86726UL, 0x48601985UL, 0xeaac4b8cUL, 0xd4603883UL, 0xf9e0230dUL, 0x8a7e386cUL, 0x49d2e60aUL,
-0x0c6084b2UL, 0x1d7335d8UL, 0x47c6b1dcUL, 0xea564cacUL, 0xb381bd3eUL, 0xb0ab0e23UL, 0x87bc3864UL, 0xfab1b5f0UL,
-0xb3a25e8fUL, 0x424618fcUL, 0x7a6b030aUL, 0xbd89b04fUL, 0x89a59d64UL, 0x5e4145a3UL, 0x2383035cUL, 0xb93b5d3eUL,
-0x7295d743UL, 0x7cd06d7eUL, 0x1edfdf06UL, 0xefc46c6cUL, 0x39a56071UL, 0x70bebf73UL, 0x05768783UL, 0xf1ec2345UL};
-
-uint32_t s3[] PROGMEM = {
-0x40c2ef8dUL, 0x9f5dfa25UL, 0xbf3d90ebUL, 0x07c910e8UL, 0xff7f6047UL, 0x4be49f36UL, 0x44c61f8cUL, 0x90caceaeUL,
-0xbff9b1beUL, 0xeacafbeeUL, 0x5019cfe8UL, 0xae07df51UL, 0x06880e92UL, 0x4805adf0UL, 0x838d3ce1UL, 0xd5107092UL,
-0x9f7d1011UL, 0xb97d6407UL, 0xd4e4e3b2UL, 0x5e284f3dUL, 0x20a8afb9UL, 0xe082defaUL, 0x8b2667a0UL, 0x2e797282UL,
-0xc0b23f55UL, 0x2be29a48UL, 0x9497efd4UL, 0xbc3f5e12UL, 0xeefcff21UL, 0xfd1b5b82UL, 0xedc55592UL, 0x40a25712UL,
-0x02831a4eUL, 0xff7fe0baUL, 0xe7468252UL, 0x0e14578eUL, 0xbff77333UL, 0x88819f8cUL, 0xe84efca6UL, 0xa5b582c9UL,
-0xb71dc0a8UL, 0x64c29f57UL, 0x314f0967UL, 0x5f3fbdf2UL, 0xc1f7ff40UL, 0xfc8db71fUL, 0xc1d26b8eUL, 0x9be57b43UL,
-0xbf3db099UL, 0x4bc6dbb5UL, 0xe6c08d63UL, 0x999d8155UL, 0x1cc897a1UL, 0x6e2d014aUL, 0x284a88c5UL, 0x716fc3ccUL,
-0x13c243b8UL, 0xf143076cUL, 0x3c890983UL, 0x5fdded0fUL, 0x50e87f2fUL, 0x7e7fc0d7UL, 0xbf7f5002UL, 0x049afb5aUL,
-0xd0d247a7UL, 0x2e195116UL, 0x3ebf70afUL, 0x8013c358UL, 0x2e30985fUL, 0xc4c37c72UL, 0x02b40f0aUL, 0x82ef7f0fUL,
-0xadfd968cUL, 0xae2a2c5dUL, 0x499ae98eUL, 0xb888da50UL, 0xa0f42784UL, 0x9057ac1eUL, 0x49b46f79UL, 0x15dc5282UL,
-0x9b7dbdefUL, 0x7d5972a6UL, 0xd840a8adUL, 0x0445f545UL, 0x03745dfaUL, 0x05c33ee8UL, 0x1a75914fUL, 0xc2695692UL,
-0x41e9ef23UL, 0x2ef103a9UL, 0xf20d2760UL, 0xb6e47602UL, 0x7465fd94UL, 0xb2857992UL, 0xcbdb7682UL, 0x76817702UL,
-0x8d91aff8UL, 0x9ef7484eUL, 0xdf6d618fUL, 0x0e849de2UL, 0x837d2f84UL, 0xc8e50c34UL, 0x82b6bb96UL, 0x48b1b493UL,
-0xab3c30efUL, 0x28af4f98UL, 0x9baf9f77UL, 0x0d56dc92UL, 0x201e4d22UL, 0x88aa3784UL, 0x96dc297dUL, 0xdcd35627UL,
-0xee7c908bUL, 0x40d21fb5UL, 0xe37cc0e7UL, 0xa1b466e5UL, 0x5e61e9c3UL, 0x9d20f83cUL, 0xe3d19460UL, 0x41a39ccdUL,
-0x0e46765cUL, 0x3b98ea00UL, 0x8178d6d4UL, 0x2c5747fdUL, 0xd9ed6cf7UL, 0x9c22a8bdUL, 0xaaad7d12UL, 0x4e078a43UL,
-0x90c0971fUL, 0x8adb1b08UL, 0xbe7ea093UL, 0x15ca38b9UL, 0xff3cb097UL, 0xf8c0c23dUL, 0xecb21a8dUL, 0x510e3864UL,
-0xfb7bcc68UL, 0x88270fd9UL, 0x81014912UL, 0xd4ffe55dUL, 0x6af87eddUL, 0x14e2a276UL, 0x6803a4b9UL, 0x8f955d92UL,
-0xfaff394bUL, 0xe9ae39baUL, 0x0bd3ffa4UL, 0x3b93f7faUL, 0x2386496dUL, 0xfabc3c19UL, 0x45756227UL, 0x7af45c82UL,
-0xa08bbd61UL, 0xd1421ed1UL, 0xf404adceUL, 0x92a37e12UL, 0xb78d4210UL, 0x72a97282UL, 0xa8c47092UL, 0x0be57d12UL,
-0xc8a15b28UL, 0x4ff4623cUL, 0xa5eac035UL, 0x31d205e8UL, 0xfb298942UL, 0x82dffcb4UL, 0x536ab64fUL, 0x5bc17d0eUL,
-0xab1f081fUL, 0xae188610UL, 0x6d08fdfcUL, 0x8928fff9UL, 0x11cc4b69UL, 0xae5c6a23UL, 0x4dcade12UL, 0xc58c3f2cUL,
-0xfe2dd0d2UL, 0x9658eff8UL, 0xda52cfe4UL, 0x675b1595UL, 0x8c484a49UL, 0x0ca8b6b9UL, 0xbc828f5cUL, 0x456bd389UL,
-0x3794603aUL, 0xa9c900ecUL, 0x53527144UL, 0x494b870aUL, 0x40bc73d7UL, 0x1c67347cUL, 0xf67e7102UL, 0x3655eb4fUL,
-0xff2fd0a2UL, 0xc460bfd2UL, 0xc0033fd4UL, 0x6defb450UL, 0xd18c4707UL, 0x88186e00UL, 0x553fe5a2UL, 0xbcd4e6b9UL,
-0x168004a2UL, 0x33385797UL, 0x677d20d7UL, 0x3d8f0fdeUL, 0x337bf872UL, 0x334fccabUL, 0x5dc58876UL, 0xb0a6007bUL,
-0x01007b94UL, 0xd2750057UL, 0xf888bbf9UL, 0x9e014289UL, 0xffa56442UL, 0xe0026385UL, 0x2bd9db72UL, 0x691b97eeUL,
-0xde2fa26eUL, 0x2bae085fUL, 0x6d617aafUL, 0x6787c9e5UL, 0xd2eb1fcfUL, 0xc2c8ef61UL, 0x7125acf1UL, 0xc23982ccUL,
-0xb84c2167UL, 0xd183e5b1UL, 0x623edcb7UL, 0xcebd107fUL, 0x385c0af9UL, 0x3d44f00fUL, 0xc66d6e60UL, 0x493a5460UL,
-0x48c12757UL, 0x1d8ae92bUL, 0x3817b48aUL, 0x24bee120UL, 0x0fda96afUL, 0x25844568UL, 0xe53b8399UL, 0x7d450d60UL,
-0x50932f28UL, 0x62b33483UL, 0x20111dd9UL, 0xa08d6d2bUL, 0x311e2b64UL, 0x005a309cUL, 0x88e6bc52UL, 0x8a58031bUL,
-0xd5efbaf7UL, 0x9ced4241UL, 0x115c31a4UL, 0xc53e3283UL, 0x3646efdfUL, 0x01c533a1UL, 0x1c53d3e9UL, 0x833735eeUL};
-
-uint32_t s4[] PROGMEM = {
-0x2004b39dUL, 0xdee9b61fUL, 0xef7bbea7UL, 0x98a273d2UL, 0xdb7b4f4aUL, 0x578cad64UL, 0x43045185UL, 0xd10e02faUL,
-0xff7a287eUL, 0x63b60fe6UL, 0xa1355f09UL, 0x20f1eb79UL, 0x439d05fdUL, 0xb1b79764UL, 0x631f64f3UL, 0xdf4a1e24UL,
-0x5f7f1428UL, 0xcdb8a24fUL, 0x400043c9UL, 0x2022c30cUL, 0x300bd3fdUL, 0x4f37a5c0UL, 0xd9002d1dUL, 0x157b1424UL,
-0x1a114deeUL, 0x6751ca0fUL, 0x4c90ff71UL, 0xfe5f192dUL, 0x5f64051aUL, 0xfefe130cUL, 0xca081b08UL, 0x21011705UL,
-0x00015380UL, 0xfe5e3ee8UL, 0xf8f49aacUL, 0x0127e77fUL, 0x5feeb8d2UL, 0x6142df06UL, 0x8a9b9ebbUL, 0x25ea9372UL,
-0xdfff84ceUL, 0x018871f5UL, 0x044bd63dUL, 0x3b266fa2UL, 0x0084d47eUL, 0xe6eb7e54UL, 0xa04c6d44UL, 0xf5d6f36cUL,
-0xdfab4926UL, 0xf5c7a0aeUL, 0xc18c3336UL, 0x937e3f50UL, 0x612077d3UL, 0xe138b611UL, 0x030e5072UL, 0xbbb20ef8UL,
-0x2e50e0abUL, 0xde778decUL, 0x811e9757UL, 0x46674fe1UL, 0x005433c9UL, 0x8f312069UL, 0x99bb1d08UL, 0xa504c3ffUL,
-0x0518354dUL, 0xe35c3d7fUL, 0xc666c8a6UL, 0xa9cc5b5dUL, 0xea6fecdaUL, 0x916f929fUL, 0x2f22469fUL, 0x7d469139UL,
-0x8e6dbfa5UL, 0x4fc44311UL, 0x02839543UL, 0xeb4e21d0UL, 0xb8832002UL, 0x0c18b63fUL, 0x1e93f818UL, 0xe6581628UL,
-0x3e6e4826UL, 0x708ad78bUL, 0xc1e47774UL, 0x7ce006b5UL, 0x250a2df3UL, 0x028b0979UL, 0x81bbeae4UL, 0x233b1228UL,
-0x38adde69UL, 0x16ca7415UL, 0x621b87dfUL, 0xb7401c21UL, 0xf99e1aa5UL, 0x7b371400UL, 0xc88a1e04UL, 0x03401109UL,
-0xd2e459bdUL, 0xd556d1e3UL, 0xd576e84fUL, 0x40a3912fUL, 0xdee87b55UL, 0xa7e4ea00UL, 0xecc2e50cUL, 0xa6bbb44dUL,
-0xffbd56e7UL, 0xac6933ddUL, 0x35b017ecUL, 0x27235706UL, 0xb0c8af99UL, 0x91c3c856UL, 0x1c81656bUL, 0x1961145eUL,
-0x75cb856eUL, 0x02c007beUL, 0x775532c2UL, 0xecf43f89UL, 0x2dc9bf5bUL, 0x253becd0UL, 0xb71a80b7UL, 0x243b6d8dUL,
-0xef63c720UL, 0xfca566c3UL, 0x8028389cUL, 0x0532ce0aUL, 0x8a54c9aaUL, 0xc7d7a1ecUL, 0x32fa1a04UL, 0x5a62161dUL,
-0x2c900167UL, 0x547a759bUL, 0xf777d431UL, 0x31b02691UL, 0xdb6fcc36UL, 0x468b0bc7UL, 0x486ae6d9UL, 0x795ae556UL,
-0xeb4c6a02UL, 0xff7e4352UL, 0xb4768f2fUL, 0xa580f90dUL, 0xe3cd7486UL, 0xeb04daedUL, 0x04bea917UL, 0xdff4182cUL,
-0x9d7f74b7UL, 0xb4f72aabUL, 0x204dc3efUL, 0x7c6b092eUL, 0x54a24117UL, 0x35a0b6e5UL, 0xf6423d21UL, 0x267c1c2cUL,
-0x0ff5c261UL, 0xf9da5265UL, 0xf831c2d2UL, 0x690f1325UL, 0xa27f16d8UL, 0xc8f21804UL, 0xa6961a00UL, 0xab26150dUL,
-0x215c3163UL, 0xec720a5eUL, 0xfdfeba49UL, 0xd9087918UL, 0x86bd0d8dUL, 0xa7701131UL, 0x0c649b3eUL, 0xd7103eccUL,
-0xb6d3cad5UL, 0x88c3ae0cUL, 0xe10130f7UL, 0xff8a726cUL, 0xa1e2ea71UL, 0x6ef39a1fUL, 0x2fd1cbcfUL, 0x1784dec1UL,
-0x6bbe07acUL, 0xd8a144cbUL, 0x560f9b8bUL, 0xc3883901UL, 0xca2fc5b1UL, 0xcd31beb4UL, 0x062878d8UL, 0xe2a4a312UL,
-0x32e57d6fUL, 0xb67efd58UL, 0x00e91ed0UL, 0xc2ffad24UL, 0xc50f99f4UL, 0xc5aa1197UL, 0x957b1d00UL, 0xd2e7e582UL,
-0xf6739810UL, 0x96306100UL, 0x21952dc3UL, 0xff21a1adUL, 0x15849029UL, 0x7f97bb7fUL, 0xdbb39eafUL, 0x2aedc929UL,
-0x65a4e25cUL, 0x2cf330a7UL, 0xe83faad0UL, 0x91c05c8aUL, 0xe72c9ed4UL, 0xa954e40cUL, 0x86cd0ad6UL, 0x19195f01UL,
-0x03910777UL, 0xf63aa0deUL, 0x5e56a878UL, 0xdf56e3deUL, 0xbe5cf021UL, 0x87e3758bUL, 0x5106c5b3UL, 0xefc3a5b8UL,
-0xd2b6eed8UL, 0x77be23e5UL, 0x294515c2UL, 0xdfef692fUL, 0xfb7ae6afUL, 0xb2c470f4UL, 0x5bebe0f3UL, 0x7698ccd6UL,
-0x0c46e439UL, 0x3885da1fUL, 0x2f838719UL, 0x677300caUL, 0xf84491a9UL, 0x9e296b29UL, 0x95c22f49UL, 0xabbe6692UL,
-0x696e67b5UL, 0xdaddd39bUL, 0x2f057edfUL, 0x1c7025dbUL, 0xee515e1bUL, 0xe62453f6UL, 0x6ce3fc6aUL, 0x04cc1603UL,
-0x3e214486UL, 0xd059dcb7UL, 0x1f296579UL, 0x43fdd6ccUL, 0x79398241UL, 0xf6cd2b93UL, 0x4dc357b6UL, 0x82d2df4eUL,
-0x0c29e57aUL, 0x6b53b93cUL, 0xfe201e85UL, 0x7e553398UL, 0xb0f0ec13UL, 0x72b3ffd3UL, 0xc1c5853fUL, 0xd27eef0aUL};
-
-#endif
-
-/*********************************************************************************************************/
-
-#ifdef BIG_ENDIAN
-
-uint32_t s5[] PROGMEM = {
-0x7ec90c04UL, 0x2c6e74b9UL, 0x9b0e66dfUL, 0xa6337911UL, 0xb86a7fffUL, 0x1dd358f5UL, 0x44dd9d44UL, 0x1731167fUL,
-0x08fbf1faUL, 0xe7f511ccUL, 0xd2051b00UL, 0x735aba00UL, 0x2ab722d8UL, 0x386381cbUL, 0xacf6243aUL, 0x69befd7aUL,
-0xe6a2e77fUL, 0xf0c720cdUL, 0xc4494816UL, 0xccf5c180UL, 0x38851640UL, 0x15b0a848UL, 0xe68b18cbUL, 0x4caadeffUL,
-0x5f480a01UL, 0x0412b2aaUL, 0x259814fcUL, 0x41d0efe2UL, 0x4e40b48dUL, 0x248eb6fbUL, 0x8dba1cfeUL, 0x41a99b02UL,
-0x1a550a04UL, 0xba8f65cbUL, 0x7251f4e7UL, 0x95a51725UL, 0xc106ecd7UL, 0x97a5980aUL, 0xc539b9aaUL, 0x4d79fe6aUL,
-0xf2f3f763UL, 0x68af8040UL, 0xed0c9e56UL, 0x11b4958bUL, 0xe1eb5a88UL, 0x8709e6b0UL, 0xd7e07156UL, 0x4e29fea7UL,
-0x6366e52dUL, 0x02d1c000UL, 0xc4ac8e05UL, 0x9377f571UL, 0x0c05372aUL, 0x578535f2UL, 0x2261be02UL, 0xd642a0c9UL,
-0xdf13a280UL, 0x74b55bd2UL, 0x682199c0UL, 0xd421e5ecUL, 0x53fb3ce8UL, 0xc8adedb3UL, 0x28a87fc9UL, 0x3d959981UL,
-0x5c1ff900UL, 0xfe38d399UL, 0x0c4eff0bUL, 0x062407eaUL, 0xaa2f4fb1UL, 0x4fb96976UL, 0x90c79505UL, 0xb0a8a774UL,
-0xef55a1ffUL, 0xe59ca2c2UL, 0xa6b62d27UL, 0xe66a4263UL, 0xdf65001fUL, 0x0ec50966UL, 0xdfdd55bcUL, 0x29de0655UL,
-0x911e739aUL, 0x17af8975UL, 0x32c7911cUL, 0x89f89468UL, 0x0d01e980UL, 0x524755f4UL, 0x03b63cc9UL, 0x0cc844b2UL,
-0xbcf3f0aaUL, 0x87ac36e9UL, 0xe53a7426UL, 0x01b3d82bUL, 0x1a9e7449UL, 0x64ee2d7eUL, 0xcddbb1daUL, 0x01c94910UL,
-0xb868bf80UL, 0x0d26f3fdUL, 0x9342ede7UL, 0x04a5c284UL, 0x636737b6UL, 0x50f5b616UL, 0xf24766e3UL, 0x8eca36c1UL,
-0x136e05dbUL, 0xfef18391UL, 0xfb887a37UL, 0xd6e7f7d4UL, 0xc7fb7dc9UL, 0x3063fcdfUL, 0xb6f589deUL, 0xec2941daUL,
-0x26e46695UL, 0xb7566419UL, 0xf654efc5UL, 0xd08d58b7UL, 0x48925401UL, 0xc1bacb7fUL, 0xe5ff550fUL, 0xb6083049UL,
-0x5bb5d0e8UL, 0x87d72e5aUL, 0xab6a6ee1UL, 0x223a66ceUL, 0xc62bf3cdUL, 0x9e0885f9UL, 0x68cb3e47UL, 0x086c010fUL,
-0xa21de820UL, 0xd18b69deUL, 0xf3f65777UL, 0xfa02c3f6UL, 0x407edac3UL, 0xcbb3d550UL, 0x1793084dUL, 0xb0d70ebaUL,
-0x0ab378d5UL, 0xd951fb0cUL, 0xded7da56UL, 0x4124bbe4UL, 0x94ca0b56UL, 0x0f5755d1UL, 0xe0e1e56eUL, 0x6184b5beUL,
-0x580a249fUL, 0x94f74bc0UL, 0xe327888eUL, 0x9f7b5561UL, 0xc3dc0280UL, 0x05687715UL, 0x646c6bd7UL, 0x44904db3UL,
-0x66b4f0a3UL, 0xc0f1648aUL, 0x697ed5afUL, 0x49e92ff6UL, 0x309e374fUL, 0x2cb6356aUL, 0x85808573UL, 0x4991f840UL,
-0x76f0ae02UL, 0x083be84dUL, 0x28421c9aUL, 0x44489406UL, 0x736e4cb8UL, 0xc1092910UL, 0x8bc95fc6UL, 0x7d869cf4UL,
-0x134f616fUL, 0x2e77118dUL, 0xb31b2be1UL, 0xaa90b472UL, 0x3ca5d717UL, 0x7d161bbaUL, 0x9cad9010UL, 0xaf462ba2UL,
-0x9fe459d2UL, 0x45d34559UL, 0xd9f2da13UL, 0xdbc65487UL, 0xf3e4f94eUL, 0x176d486fUL, 0x097c13eaUL, 0x631da5c7UL,
-0x445f7382UL, 0x175683f4UL, 0xcdc66a97UL, 0x70be0288UL, 0xb3cdcf72UL, 0x6e5dd2f3UL, 0x20936079UL, 0x459b80a5UL,
-0xbe60e2dbUL, 0xa9c23101UL, 0xeba5315cUL, 0x224e42f2UL, 0x1c5c1572UL, 0xf6721b2cUL, 0x1ad2fff3UL, 0x8c25404eUL,
-0x324ed72fUL, 0x4067b7fdUL, 0x0523138eUL, 0x5ca3bc78UL, 0xdc0fd66eUL, 0x75922283UL, 0x784d6b17UL, 0x58ebb16eUL,
-0x44094f85UL, 0x3f481d87UL, 0xfcfeae7bUL, 0x77b5ff76UL, 0x8c2302bfUL, 0xaaf47556UL, 0x5f46b02aUL, 0x2b092801UL,
-0x3d38f5f7UL, 0x0ca81f36UL, 0x52af4a8aUL, 0x66d5e7c0UL, 0xdf3b0874UL, 0x95055110UL, 0x1b5ad7a8UL, 0xf61ed5adUL,
-0x6cf6e479UL, 0x20758184UL, 0xd0cefa65UL, 0x88f7be58UL, 0x4a046826UL, 0x0ff6f8f3UL, 0xa09c7f70UL, 0x5346aba0UL,
-0x5ce96c28UL, 0xe176eda3UL, 0x6bac307fUL, 0x376829d2UL, 0x85360fa9UL, 0x17e3fe2aUL, 0x24b79767UL, 0xf5a96b20UL,
-0xd6cd2595UL, 0x68ff1ebfUL, 0x7555442cUL, 0xf19f06beUL, 0xf9e0659aUL, 0xeeb9491dUL, 0x34010718UL, 0xbb30cab8UL,
-0xe822fe15UL, 0x88570983UL, 0x750e6249UL, 0xda627e55UL, 0x5e76ffa8UL, 0xb1534546UL, 0x6d47de08UL, 0xefe9e7d4UL};
-
-
-uint32_t s6[] PROGMEM = {
-0xf6fa8f9dUL, 0x2cac6ce1UL, 0x4ca34867UL, 0xe2337f7cUL, 0x95db08e7UL, 0x016843b4UL, 0xeced5cbcUL, 0x325553acUL,
-0xbf9f0960UL, 0xdfa1e2edUL, 0x83f0579dUL, 0x63ed86b9UL, 0x1ab6a6b8UL, 0xde5ebe39UL, 0xf38ff732UL, 0x8989b138UL,
-0x33f14961UL, 0xc01937bdUL, 0xf506c6daUL, 0xe4625e7eUL, 0xa308ea99UL, 0x4e23e33cUL, 0x79cbd7ccUL, 0x48a14367UL,
-0xa3149619UL, 0xfec94bd5UL, 0xa114174aUL, 0xeaa01866UL, 0xa084db2dUL, 0x09a8486fUL, 0xa888614aUL, 0x2900af98UL,
-0x01665991UL, 0xe1992863UL, 0xc8f30c60UL, 0x2e78ef3cUL, 0xd0d51932UL, 0xcf0fec14UL, 0xf7ca07d2UL, 0xd0a82072UL,
-0xfd41197eUL, 0x9305a6b0UL, 0xe86be3daUL, 0x74bed3cdUL, 0x372da53cUL, 0x4c7f4448UL, 0xdab5d440UL, 0x6dba0ec3UL,
-0x083919a7UL, 0x9fbaeed9UL, 0x49dbcfb0UL, 0x4e670c53UL, 0x5c3d9c01UL, 0x64bdb941UL, 0x2c0e636aUL, 0xba7dd9cdUL,
-0xea6f7388UL, 0xe70bc762UL, 0x35f29adbUL, 0x5c4cdd8dUL, 0xf0d48d8cUL, 0xb88153e2UL, 0x08a19866UL, 0x1ae2eac8UL,
-0x284caf89UL, 0xaa928223UL, 0x9334be53UL, 0x3b3a21bfUL, 0x16434be3UL, 0x9aea3906UL, 0xefe8c36eUL, 0xf890cdd9UL,
-0x80226daeUL, 0xc340a4a3UL, 0xdf7e9c09UL, 0xa694a807UL, 0x5b7c5eccUL, 0x221db3a6UL, 0x9a69a02fUL, 0x68818a54UL,
-0xceb2296fUL, 0x53c0843aUL, 0xfe893655UL, 0x25bfe68aUL, 0xb4628abcUL, 0xcf222ebfUL, 0x25ac6f48UL, 0xa9a99387UL,
-0x53bddb65UL, 0xe76ffbe7UL, 0xe967fd78UL, 0x0ba93563UL, 0x8e342bc1UL, 0xe8a11be9UL, 0x4980740dUL, 0xc8087dfcUL,
-0x8de4bf99UL, 0xa11101a0UL, 0x7fd37975UL, 0xda5a26c0UL, 0xe81f994fUL, 0x9528cd89UL, 0xfd339fedUL, 0xb87834bfUL,
-0x5f04456dUL, 0x22258698UL, 0xc9c4c83bUL, 0x2dc156beUL, 0x4f628daaUL, 0x57f55ec5UL, 0xe2220abeUL, 0xd2916ebfUL,
-0x4ec75b95UL, 0x24f2c3c0UL, 0x42d15d99UL, 0xcd0d7fa0UL, 0x7b6e27ffUL, 0xa8dc8af0UL, 0x7345c106UL, 0xf41e232fUL,
-0x35162386UL, 0xe6ea8926UL, 0x3333b094UL, 0x157ec6f2UL, 0x372b74afUL, 0x692573e4UL, 0xe9a9d848UL, 0xf3160289UL,
-0x3a62ef1dUL, 0xa787e238UL, 0xf3a5f676UL, 0x74364853UL, 0x20951063UL, 0x4576698dUL, 0xb6fad407UL, 0x592af950UL,
-0x36f73523UL, 0x4cfb6e87UL, 0x7da4cec0UL, 0x6c152daaUL, 0xcb0396a8UL, 0xc50dfe5dUL, 0xfcd707abUL, 0x0921c42fUL,
-0x89dff0bbUL, 0x5fe2be78UL, 0x448f4f33UL, 0x754613c9UL, 0x2b05d08dUL, 0x48b9d585UL, 0xdc049441UL, 0xc8098f9bUL,
-0x7dede786UL, 0xc39a3373UL, 0x42410005UL, 0x6a091751UL, 0x0ef3c8a6UL, 0x890072d6UL, 0x28207682UL, 0xa9a9f7beUL,
-0xbf32679dUL, 0xd45b5b75UL, 0xb353fd00UL, 0xcbb0e358UL, 0x830f220aUL, 0x1f8fb214UL, 0xd372cf08UL, 0xcc3c4a13UL,
-0x8cf63166UL, 0x061c87beUL, 0x88c98f88UL, 0x6062e397UL, 0x47cf8e7aUL, 0xb6c85283UL, 0x3cc2acfbUL, 0x3fc06976UL,
-0x4e8f0252UL, 0x64d8314dUL, 0xda3870e3UL, 0x1e665459UL, 0xc10908f0UL, 0x513021a5UL, 0x6c5b68b7UL, 0x822f8aa0UL,
-0x3007cd3eUL, 0x74719eefUL, 0xdc872681UL, 0x073340d4UL, 0x7e432fd9UL, 0x0c5ec241UL, 0x8809286cUL, 0xf592d891UL,
-0x08a930f6UL, 0x957ef305UL, 0xb7fbffbdUL, 0xc266e96fUL, 0x6fe4ac98UL, 0xb173ecc0UL, 0xbc60b42aUL, 0x953498daUL,
-0xfba1ae12UL, 0x2d4bd736UL, 0x0f25faabUL, 0xa4f3fcebUL, 0xe2969123UL, 0x257f0c3dUL, 0x9348af49UL, 0x361400bcUL,
-0xe8816f4aUL, 0x3814f200UL, 0xa3f94043UL, 0x9c7a54c2UL, 0xbc704f57UL, 0xda41e7f9UL, 0xc25ad33aUL, 0x54f4a084UL,
-0xb17f5505UL, 0x59357cbeUL, 0xedbd15c8UL, 0x7f97c5abUL, 0xba5ac7b5UL, 0xb6f6deafUL, 0x3a479c3aUL, 0x5302da25UL,
-0x653d7e6aUL, 0x54268d49UL, 0x51a477eaUL, 0x5017d55bUL, 0xd7d25d88UL, 0x44136c76UL, 0x0404a8c8UL, 0xb8e5a121UL,
-0xb81a928aUL, 0x60ed5869UL, 0x97c55b96UL, 0xeaec991bUL, 0x29935913UL, 0x01fdb7f1UL, 0x088e8dfaUL, 0x9ab6f6f5UL,
-0x3b4cbf9fUL, 0x4a5de3abUL, 0xe6051d35UL, 0xa0e1d855UL, 0xd36b4cf1UL, 0xf544edebUL, 0xb0e93524UL, 0xbebb8fbdUL,
-0xa2d762cfUL, 0x49c92f54UL, 0x38b5f331UL, 0x7128a454UL, 0x48392905UL, 0xa65b1db8UL, 0x851c97bdUL, 0xd675cf2fUL};
-
-
-uint32_t s7[] PROGMEM = {
-0x85e04019UL, 0x332bf567UL, 0x662dbfffUL, 0xcfc65693UL, 0x2a8d7f6fUL, 0xab9bc912UL, 0xde6008a1UL, 0x2028da1fUL,
-0x0227bce7UL, 0x4d642916UL, 0x18fac300UL, 0x50f18b82UL, 0x2cb2cb11UL, 0xb232e75cUL, 0x4b3695f2UL, 0xb28707deUL,
-0xa05fbcf6UL, 0xcd4181e9UL, 0xe150210cUL, 0xe24ef1bdUL, 0xb168c381UL, 0xfde4e789UL, 0x5c79b0d8UL, 0x1e8bfd43UL,
-0x4d495001UL, 0x38be4341UL, 0x913cee1dUL, 0x92a79c3fUL, 0x089766beUL, 0xbaeeadf4UL, 0x1286becfUL, 0xb6eacb19UL,
-0x2660c200UL, 0x7565bde4UL, 0x64241f7aUL, 0x8248dca9UL, 0xc3b3ad66UL, 0x28136086UL, 0x0bd8dfa8UL, 0x356d1cf2UL,
-0x107789beUL, 0xb3b2e9ceUL, 0x0502aa8fUL, 0x0bc0351eUL, 0x166bf52aUL, 0xeb12ff82UL, 0xe3486911UL, 0xd34d7516UL,
-0x4e7b3affUL, 0x5f43671bUL, 0x9cf6e037UL, 0x4981ac83UL, 0x334266ceUL, 0x8c9341b7UL, 0xd0d854c0UL, 0xcb3a6c88UL,
-0x47bc2829UL, 0x4725ba37UL, 0xa66ad22bUL, 0x7ad61f1eUL, 0x0c5cbafaUL, 0x4437f107UL, 0xb6e79962UL, 0x42d2d816UL,
-0x0a961288UL, 0xe1a5c06eUL, 0x13749e67UL, 0x72fc081aUL, 0xb1d139f7UL, 0xf9583745UL, 0xcf19df58UL, 0xbec3f756UL,
-0xc06eba30UL, 0x07211b24UL, 0x45c28829UL, 0xc95e317fUL, 0xbc8ec511UL, 0x38bc46e9UL, 0xc6e6fa14UL, 0xbae8584aUL,
-0xad4ebc46UL, 0x468f508bUL, 0x7829435fUL, 0xf124183bUL, 0x821dba9fUL, 0xaff60ff4UL, 0xea2c4e6dUL, 0x16e39264UL,
-0x92544a8bUL, 0x009b4fc3UL, 0xaba68cedUL, 0x9ac96f78UL, 0x06a5b79aUL, 0xb2856e6eUL, 0x1aec3ca9UL, 0xbe838688UL,
-0x0e0804e9UL, 0x55f1be56UL, 0xe7e5363bUL, 0xb3a1f25dUL, 0xf7debb85UL, 0x61fe033cUL, 0x16746233UL, 0x3c034c28UL,
-0xda6d0c74UL, 0x79aac56cUL, 0x3ce4e1adUL, 0x51f0c802UL, 0x98f8f35aUL, 0x1626a49fUL, 0xeed82b29UL, 0x1d382fe3UL,
-0x0c4fb99aUL, 0xbb325778UL, 0x3ec6d97bUL, 0x6e77a6a9UL, 0xcb658b5cUL, 0xd45230c7UL, 0x2bd1408bUL, 0x60c03eb7UL,
-0xb9068d78UL, 0xa33754f4UL, 0xf430c87dUL, 0xc8a71302UL, 0xb96d8c32UL, 0xebd4e7beUL, 0xbe8b9d2dUL, 0x7979fb06UL,
-0xe7225308UL, 0x8b75cf77UL, 0x11ef8da4UL, 0xe083c858UL, 0x8d6b786fUL, 0x5a6317a6UL, 0xfa5cf7a0UL, 0x5dda0033UL,
-0xf28ebfb0UL, 0xf5b9c310UL, 0xa0eac280UL, 0x08b9767aUL, 0xa3d9d2b0UL, 0x79d34217UL, 0x021a718dUL, 0x9ac6336aUL,
-0x2711fd60UL, 0x438050e3UL, 0x069908a8UL, 0x3d7fedc4UL, 0x826d2befUL, 0x4eeb8476UL, 0x488dcf25UL, 0x36c9d566UL,
-0x28e74e41UL, 0xc2610acaUL, 0x3d49a9cfUL, 0xbae3b9dfUL, 0xb65f8de6UL, 0x92aeaf64UL, 0x3ac7d5e6UL, 0x9ea80509UL,
-0xf22b017dUL, 0xa4173f70UL, 0xdd1e16c3UL, 0x15e0d7f9UL, 0x50b1b887UL, 0x2b9f4fd5UL, 0x625aba82UL, 0x6a017962UL,
-0x2ec01b9cUL, 0x15488aa9UL, 0xd716e740UL, 0x40055a2cUL, 0x93d29a22UL, 0xe32dbf9aUL, 0x058745b9UL, 0x3453dc1eUL,
-0xd699296eUL, 0x496cff6fUL, 0x1c9f4986UL, 0xdfe2ed07UL, 0xb87242d1UL, 0x19de7eaeUL, 0x053e561aUL, 0x15ad6f8cUL,
-0x66626c1cUL, 0x7154c24cUL, 0xea082b2aUL, 0x93eb2939UL, 0x17dcb0f0UL, 0x58d4f2aeUL, 0x9ea294fbUL, 0x52cf564cUL,
-0x9883fe66UL, 0x2ec40581UL, 0x763953c3UL, 0x01d6692eUL, 0xd3a0c108UL, 0xa1e7160eUL, 0xe4f2dfa6UL, 0x693ed285UL,
-0x74904698UL, 0x4c2b0eddUL, 0x4f757656UL, 0x5d393378UL, 0xa132234fUL, 0x3d321c5dUL, 0xc3f5e194UL, 0x4b269301UL,
-0xc79f022fUL, 0x3c997e7eUL, 0x5e4f9504UL, 0x3ffafbbdUL, 0x76f7ad0eUL, 0x296693f4UL, 0x3d1fce6fUL, 0xc61e45beUL,
-0xd3b5ab34UL, 0xf72bf9b7UL, 0x1b0434c0UL, 0x4e72b567UL, 0x5592a33dUL, 0xb5229301UL, 0xcfd2a87fUL, 0x60aeb767UL,
-0x1814386bUL, 0x30bcc33dUL, 0x38a0c07dUL, 0xfd1606f2UL, 0xc363519bUL, 0x589dd390UL, 0x5479f8e6UL, 0x1cb8d647UL,
-0x97fd61a9UL, 0xea7759f4UL, 0x2d57539dUL, 0x569a58cfUL, 0xe84e63adUL, 0x462e1b78UL, 0x6580f87eUL, 0xf3817914UL,
-0x91da55f4UL, 0x40a230f3UL, 0xd1988f35UL, 0xb6e318d2UL, 0x3ffa50bcUL, 0x3d40f021UL, 0xc3c0bdaeUL, 0x4958c24cUL,
-0x518f36b2UL, 0x84b1d370UL, 0x0fedce83UL, 0x878ddadaUL, 0xf2a279c7UL, 0x94e01be8UL, 0x90716f4bUL, 0x954b8aa3UL};
-
-
-uint32_t s8[] PROGMEM = {
-0xe216300dUL, 0xbbddfffcUL, 0xa7ebdabdUL, 0x35648095UL, 0x7789f8b7UL, 0xe6c1121bUL, 0x0e241600UL, 0x052ce8b5UL,
-0x11a9cfb0UL, 0xe5952f11UL, 0xece7990aUL, 0x9386d174UL, 0x2a42931cUL, 0x76e38111UL, 0xb12def3aUL, 0x37ddddfcUL,
-0xde9adeb1UL, 0x0a0cc32cUL, 0xbe197029UL, 0x84a00940UL, 0xbb243a0fUL, 0xb4d137cfUL, 0xb44e79f0UL, 0x049eedfdUL,
-0x0b15a15dUL, 0x480d3168UL, 0x8bbbde5aUL, 0x669ded42UL, 0xc7ece831UL, 0x3f8f95e7UL, 0x72df191bUL, 0x7580330dUL,
-0x94074251UL, 0x5c7dcdfaUL, 0xabbe6d63UL, 0xaa402164UL, 0xb301d40aUL, 0x02e7d1caUL, 0x53571daeUL, 0x7a3182a2UL,
-0x12a8ddecUL, 0xfdaa335dUL, 0x176f43e8UL, 0x71fb46d4UL, 0x38129022UL, 0xce949ad4UL, 0xb84769adUL, 0x965bd862UL,
-0x82f3d055UL, 0x66fb9767UL, 0x15b80b4eUL, 0x1d5b47a0UL, 0x4cfde06fUL, 0xc28ec4b8UL, 0x57e8726eUL, 0x647a78fcUL,
-0x99865d44UL, 0x608bd593UL, 0x6c200e03UL, 0x39dc5ff6UL, 0x5d0b00a3UL, 0xae63aff2UL, 0x7e8bd632UL, 0x70108c0cUL,
-0xbbd35049UL, 0x2998df04UL, 0x980cf42aUL, 0x9b6df491UL, 0x9e7edd53UL, 0x06918548UL, 0x58cb7e07UL, 0x3b74ef2eUL,
-0x522fffb1UL, 0xd24708ccUL, 0x1c7e27cdUL, 0xa4eb215bUL, 0x3cf1d2e2UL, 0x19b47a38UL, 0x424f7618UL, 0x35856039UL,
-0x9d17dee7UL, 0x27eb35e6UL, 0xc9aff67bUL, 0x36baf5b8UL, 0x09c467cdUL, 0xc18910b1UL, 0xe11dbf7bUL, 0x06cd1af8UL,
-0x7170c608UL, 0x2d5e3354UL, 0xd4de495aUL, 0x64c6d006UL, 0xbcc0c62cUL, 0x3dd00db3UL, 0x708f8f34UL, 0x77d51b42UL,
-0x264f620fUL, 0x24b8d2bfUL, 0x15c1b79eUL, 0x46a52564UL, 0xf8d7e54eUL, 0x3e378160UL, 0x7895cda5UL, 0x859c15a5UL,
-0xe6459788UL, 0xc37bc75fUL, 0xdb07ba0cUL, 0x0676a3abUL, 0x7f229b1eUL, 0x31842e7bUL, 0x24259fd7UL, 0xf8bef472UL,
-0x835ffcb8UL, 0x6df4c1f2UL, 0x96f5b195UL, 0xfd0af0fcUL, 0xb0fe134cUL, 0xe2506d3dUL, 0x4f9b12eaUL, 0xf215f225UL,
-0xa223736fUL, 0x9fb4c428UL, 0x25d04979UL, 0x34c713f8UL, 0xc4618187UL, 0xea7a6e98UL, 0x7cd16efcUL, 0x1436876cUL,
-0xf1544107UL, 0xbedeee14UL, 0x56e9af27UL, 0xa04aa441UL, 0x3cf7c899UL, 0x92ecbae6UL, 0xdd67016dUL, 0x151682ebUL,
-0xa842eedfUL, 0xfdba60b4UL, 0xf1907b75UL, 0x20e3030fUL, 0x24d8c29eUL, 0xe139673bUL, 0xefa63fb8UL, 0x71873054UL,
-0xb6f2cf3bUL, 0x9f326442UL, 0xcb15a4ccUL, 0xb01a4504UL, 0xf1e47d8dUL, 0x844a1be5UL, 0xbae7dfdcUL, 0x42cbda70UL,
-0xcd7dae0aUL, 0x57e85b7aUL, 0xd53f5af6UL, 0x20cf4d8cUL, 0xcea4d428UL, 0x79d130a4UL, 0x3486ebfbUL, 0x33d3cddcUL,
-0x77853b53UL, 0x37effcb5UL, 0xc5068778UL, 0xe580b3e6UL, 0x4e68b8f4UL, 0xc5c8b37eUL, 0x0d809ea2UL, 0x398feb7cUL,
-0x132a4f94UL, 0x43b7950eUL, 0x2fee7d1cUL, 0x223613bdUL, 0xdd06caa2UL, 0x37df932bUL, 0xc4248289UL, 0xacf3ebc3UL,
-0x5715f6b7UL, 0xef3478ddUL, 0xf267616fUL, 0xc148cbe4UL, 0x9052815eUL, 0x5e410fabUL, 0xb48a2465UL, 0x2eda7fa4UL,
-0xe87b40e4UL, 0xe98ea084UL, 0x5889e9e1UL, 0xefd390fcUL, 0xdd07d35bUL, 0xdb485694UL, 0x38d7e5b2UL, 0x57720101UL,
-0x730edebcUL, 0x5b643113UL, 0x94917e4fUL, 0x503c2fbaUL, 0x646f1282UL, 0x7523d24aUL, 0xe0779695UL, 0xf9c17a8fUL,
-0x7a5b2121UL, 0xd187b896UL, 0x29263a4dUL, 0xba510cdfUL, 0x81f47c9fUL, 0xad1163edUL, 0xea7b5965UL, 0x1a00726eUL,
-0x11403092UL, 0x00da6d77UL, 0x4a0cdd61UL, 0xad1f4603UL, 0x605bdfb0UL, 0x9eedc364UL, 0x22ebe6a8UL, 0xcee7d28aUL,
-0xa0e736a0UL, 0x5564a6b9UL, 0x10853209UL, 0xc7eb8f37UL, 0x2de705caUL, 0x8951570fUL, 0xdf09822bUL, 0xbd691a6cUL,
-0xaa12e4f2UL, 0x87451c0fUL, 0xe0f6a27aUL, 0x3ada4819UL, 0x4cf1764fUL, 0x0d771c2bUL, 0x67cdb156UL, 0x350d8384UL,
-0x5938fa0fUL, 0x42399ef3UL, 0x36997b07UL, 0x0e84093dUL, 0x4aa93e61UL, 0x8360d87bUL, 0x1fa98b0cUL, 0x1149382cUL,
-0xe97625a5UL, 0x0614d1b7UL, 0x0e25244bUL, 0x0c768347UL, 0x589e8d82UL, 0x0d2059d1UL, 0xa466bb1eUL, 0xf8da0a82UL,
-0x04f19130UL, 0xba6e4ec0UL, 0x99265164UL, 0x1ee7230dUL, 0x50b2ad80UL, 0xeaee6801UL, 0x8db2a283UL, 0xea8bf59eUL};
-
-#else
-
-uint32_t s5[] PROGMEM = {
-0x040cc97eUL, 0xb9746e2cUL, 0xdf660e9bUL, 0x117933a6UL, 0xff7f6ab8UL, 0xf558d31dUL, 0x449ddd44UL, 0x7f163117UL,
-0xfaf1fb08UL, 0xcc11f5e7UL, 0x001b05d2UL, 0x00ba5a73UL, 0xd822b72aUL, 0xcb816338UL, 0x3a24f6acUL, 0x7afdbe69UL,
-0x7fe7a2e6UL, 0xcd20c7f0UL, 0x164849c4UL, 0x80c1f5ccUL, 0x40168538UL, 0x48a8b015UL, 0xcb188be6UL, 0xffdeaa4cUL,
-0x010a485fUL, 0xaab21204UL, 0xfc149825UL, 0xe2efd041UL, 0x8db4404eUL, 0xfbb68e24UL, 0xfe1cba8dUL, 0x029ba941UL,
-0x040a551aUL, 0xcb658fbaUL, 0xe7f45172UL, 0x2517a595UL, 0xd7ec06c1UL, 0x0a98a597UL, 0xaab939c5UL, 0x6afe794dUL,
-0x63f7f3f2UL, 0x4080af68UL, 0x569e0cedUL, 0x8b95b411UL, 0x885aebe1UL, 0xb0e60987UL, 0x5671e0d7UL, 0xa7fe294eUL,
-0x2de56663UL, 0x00c0d102UL, 0x058eacc4UL, 0x71f57793UL, 0x2a37050cUL, 0xf2358557UL, 0x02be6122UL, 0xc9a042d6UL,
-0x80a213dfUL, 0xd25bb574UL, 0xc0992168UL, 0xece521d4UL, 0xe83cfb53UL, 0xb3edadc8UL, 0xc97fa828UL, 0x8199953dUL,
-0x00f91f5cUL, 0x99d338feUL, 0x0bff4e0cUL, 0xea072406UL, 0xb14f2faaUL, 0x7669b94fUL, 0x0595c790UL, 0x74a7a8b0UL,
-0xffa155efUL, 0xc2a29ce5UL, 0x272db6a6UL, 0x63426ae6UL, 0x1f0065dfUL, 0x6609c50eUL, 0xbc55dddfUL, 0x5506de29UL,
-0x9a731e91UL, 0x7589af17UL, 0x1c91c732UL, 0x6894f889UL, 0x80e9010dUL, 0xf4554752UL, 0xc93cb603UL, 0xb244c80cUL,
-0xaaf0f3bcUL, 0xe936ac87UL, 0x26743ae5UL, 0x2bd8b301UL, 0x49749e1aUL, 0x7e2dee64UL, 0xdab1dbcdUL, 0x1049c901UL,
-0x80bf68b8UL, 0xfdf3260dUL, 0xe7ed4293UL, 0x84c2a504UL, 0xb6376763UL, 0x16b6f550UL, 0xe36647f2UL, 0xc136ca8eUL,
-0xdb056e13UL, 0x9183f1feUL, 0x377a88fbUL, 0xd4f7e7d6UL, 0xc97dfbc7UL, 0xdffc6330UL, 0xde89f5b6UL, 0xda4129ecUL,
-0x9566e426UL, 0x196456b7UL, 0xc5ef54f6UL, 0xb7588dd0UL, 0x01549248UL, 0x7fcbbac1UL, 0x0f55ffe5UL, 0x493008b6UL,
-0xe8d0b55bUL, 0x5a2ed787UL, 0xe16e6aabUL, 0xce663a22UL, 0xcdf32bc6UL, 0xf985089eUL, 0x473ecb68UL, 0x0f016c08UL,
-0x20e81da2UL, 0xde698bd1UL, 0x7757f6f3UL, 0xf6c302faUL, 0xc3da7e40UL, 0x50d5b3cbUL, 0x4d089317UL, 0xba0ed7b0UL,
-0xd578b30aUL, 0x0cfb51d9UL, 0x56dad7deUL, 0xe4bb2441UL, 0x560bca94UL, 0xd155570fUL, 0x6ee5e1e0UL, 0xbeb58461UL,
-0x9f240a58UL, 0xc04bf794UL, 0x8e8827e3UL, 0x61557b9fUL, 0x8002dcc3UL, 0x15776805UL, 0xd76b6c64UL, 0xb34d9044UL,
-0xa3f0b466UL, 0x8a64f1c0UL, 0xafd57e69UL, 0xf62fe949UL, 0x4f379e30UL, 0x6a35b62cUL, 0x73858085UL, 0x40f89149UL,
-0x02aef076UL, 0x4de83b08UL, 0x9a1c4228UL, 0x06944844UL, 0xb84c6e73UL, 0x102909c1UL, 0xc65fc98bUL, 0xf49c867dUL,
-0x6f614f13UL, 0x8d11772eUL, 0xe12b1bb3UL, 0x72b490aaUL, 0x17d7a53cUL, 0xba1b167dUL, 0x1090ad9cUL, 0xa22b46afUL,
-0xd259e49fUL, 0x5945d345UL, 0x13daf2d9UL, 0x8754c6dbUL, 0x4ef9e4f3UL, 0x6f486d17UL, 0xea137c09UL, 0xc7a51d63UL,
-0x82735f44UL, 0xf4835617UL, 0x976ac6cdUL, 0x8802be70UL, 0x72cfcdb3UL, 0xf3d25d6eUL, 0x79609320UL, 0xa5809b45UL,
-0xdbe260beUL, 0x0131c2a9UL, 0x5c31a5ebUL, 0xf2424e22UL, 0x72155c1cUL, 0x2c1b72f6UL, 0xf3ffd21aUL, 0x4e40258cUL,
-0x2fd74e32UL, 0xfdb76740UL, 0x8e132305UL, 0x78bca35cUL, 0x6ed60fdcUL, 0x83229275UL, 0x176b4d78UL, 0x6eb1eb58UL,
-0x854f0944UL, 0x871d483fUL, 0x7baefefcUL, 0x76ffb577UL, 0xbf02238cUL, 0x5675f4aaUL, 0x2ab0465fUL, 0x0128092bUL,
-0xf7f5383dUL, 0x361fa80cUL, 0x8a4aaf52UL, 0xc0e7d566UL, 0x74083bdfUL, 0x10510595UL, 0xa8d75a1bUL, 0xadd51ef6UL,
-0x79e4f66cUL, 0x84817520UL, 0x65faced0UL, 0x58bef788UL, 0x2668044aUL, 0xf3f8f60fUL, 0x707f9ca0UL, 0xa0ab4653UL,
-0x286ce95cUL, 0xa3ed76e1UL, 0x7f30ac6bUL, 0xd2296837UL, 0xa90f3685UL, 0x2afee317UL, 0x6797b724UL, 0x206ba9f5UL,
-0x9525cdd6UL, 0xbf1eff68UL, 0x2c445575UL, 0xbe069ff1UL, 0x9a65e0f9UL, 0x1d49b9eeUL, 0x18070134UL, 0xb8ca30bbUL,
-0x15fe22e8UL, 0x83095788UL, 0x49620e75UL, 0x557e62daUL, 0xa8ff765eUL, 0x464553b1UL, 0x08de476dUL, 0xd4e7e9efUL};
-
-
-uint32_t s6[] PROGMEM = {
-0x9d8ffaf6UL, 0xe16cac2cUL, 0x6748a34cUL, 0x7c7f33e2UL, 0xe708db95UL, 0xb4436801UL, 0xbc5cedecUL, 0xac535532UL,
-0x60099fbfUL, 0xede2a1dfUL, 0x9d57f083UL, 0xb986ed63UL, 0xb8a6b61aUL, 0x39be5edeUL, 0x32f78ff3UL, 0x38b18989UL,
-0x6149f133UL, 0xbd3719c0UL, 0xdac606f5UL, 0x7e5e62e4UL, 0x99ea08a3UL, 0x3ce3234eUL, 0xccd7cb79UL, 0x6743a148UL,
-0x199614a3UL, 0xd54bc9feUL, 0x4a1714a1UL, 0x6618a0eaUL, 0x2ddb84a0UL, 0x6f48a809UL, 0x4a6188a8UL, 0x98af0029UL,
-0x91596601UL, 0x632899e1UL, 0x600cf3c8UL, 0x3cef782eUL, 0x3219d5d0UL, 0x14ec0fcfUL, 0xd207caf7UL, 0x7220a8d0UL,
-0x7e1941fdUL, 0xb0a60593UL, 0xdae36be8UL, 0xcdd3be74UL, 0x3ca52d37UL, 0x48447f4cUL, 0x40d4b5daUL, 0xc30eba6dUL,
-0xa7193908UL, 0xd9eeba9fUL, 0xb0cfdb49UL, 0x530c674eUL, 0x019c3d5cUL, 0x41b9bd64UL, 0x6a630e2cUL, 0xcdd97dbaUL,
-0x88736feaUL, 0x62c70be7UL, 0xdb9af235UL, 0x8ddd4c5cUL, 0x8c8dd4f0UL, 0xe25381b8UL, 0x6698a108UL, 0xc8eae21aUL,
-0x89af4c28UL, 0x238292aaUL, 0x53be3493UL, 0xbf213a3bUL, 0xe34b4316UL, 0x0639ea9aUL, 0x6ec3e8efUL, 0xd9cd90f8UL,
-0xae6d2280UL, 0xa3a440c3UL, 0x099c7edfUL, 0x07a894a6UL, 0xcc5e7c5bUL, 0xa6b31d22UL, 0x2fa0699aUL, 0x548a8168UL,
-0x6f29b2ceUL, 0x3a84c053UL, 0x553689feUL, 0x8ae6bf25UL, 0xbc8a62b4UL, 0xbf2e22cfUL, 0x486fac25UL, 0x8793a9a9UL,
-0x65dbbd53UL, 0xe7fb6fe7UL, 0x78fd67e9UL, 0x6335a90bUL, 0xc12b348eUL, 0xe91ba1e8UL, 0x0d748049UL, 0xfc7d08c8UL,
-0x99bfe48dUL, 0xa00111a1UL, 0x7579d37fUL, 0xc0265adaUL, 0x4f991fe8UL, 0x89cd2895UL, 0xed9f33fdUL, 0xbf3478b8UL,
-0x6d45045fUL, 0x98862522UL, 0x3bc8c4c9UL, 0xbe56c12dUL, 0xaa8d624fUL, 0xc55ef557UL, 0xbe0a22e2UL, 0xbf6e91d2UL,
-0x955bc74eUL, 0xc0c3f224UL, 0x995dd142UL, 0xa07f0dcdUL, 0xff276e7bUL, 0xf08adca8UL, 0x06c14573UL, 0x2f231ef4UL,
-0x86231635UL, 0x2689eae6UL, 0x94b03333UL, 0xf2c67e15UL, 0xaf742b37UL, 0xe4732569UL, 0x48d8a9e9UL, 0x890216f3UL,
-0x1def623aUL, 0x38e287a7UL, 0x76f6a5f3UL, 0x53483674UL, 0x63109520UL, 0x8d697645UL, 0x07d4fab6UL, 0x50f92a59UL,
-0x2335f736UL, 0x876efb4cUL, 0xc0cea47dUL, 0xaa2d156cUL, 0xa89603cbUL, 0x5dfe0dc5UL, 0xab07d7fcUL, 0x2fc42109UL,
-0xbbf0df89UL, 0x78bee25fUL, 0x334f8f44UL, 0xc9134675UL, 0x8dd0052bUL, 0x85d5b948UL, 0x419404dcUL, 0x9b8f09c8UL,
-0x86e7ed7dUL, 0x73339ac3UL, 0x05004142UL, 0x5117096aUL, 0xa6c8f30eUL, 0xd6720089UL, 0x82762028UL, 0xbef7a9a9UL,
-0x9d6732bfUL, 0x755b5bd4UL, 0x00fd53b3UL, 0x58e3b0cbUL, 0x0a220f83UL, 0x14b28f1fUL, 0x08cf72d3UL, 0x134a3cccUL,
-0x6631f68cUL, 0xbe871c06UL, 0x888fc988UL, 0x97e36260UL, 0x7a8ecf47UL, 0x8352c8b6UL, 0xfbacc23cUL, 0x7669c03fUL,
-0x52028f4eUL, 0x4d31d864UL, 0xe37038daUL, 0x5954661eUL, 0xf00809c1UL, 0xa5213051UL, 0xb7685b6cUL, 0xa08a2f82UL,
-0x3ecd0730UL, 0xef9e7174UL, 0x812687dcUL, 0xd4403307UL, 0xd92f437eUL, 0x41c25e0cUL, 0x6c280988UL, 0x91d892f5UL,
-0xf630a908UL, 0x05f37e95UL, 0xbdfffbb7UL, 0x6fe966c2UL, 0x98ace46fUL, 0xc0ec73b1UL, 0x2ab460bcUL, 0xda983495UL,
-0x12aea1fbUL, 0x36d74b2dUL, 0xabfa250fUL, 0xebfcf3a4UL, 0x239196e2UL, 0x3d0c7f25UL, 0x49af4893UL, 0xbc001436UL,
-0x4a6f81e8UL, 0x00f21438UL, 0x4340f9a3UL, 0xc2547a9cUL, 0x574f70bcUL, 0xf9e741daUL, 0x3ad35ac2UL, 0x84a0f454UL,
-0x05557fb1UL, 0xbe7c3559UL, 0xc815bdedUL, 0xabc5977fUL, 0xb5c75abaUL, 0xafdef6b6UL, 0x3a9c473aUL, 0x25da0253UL,
-0x6a7e3d65UL, 0x498d2654UL, 0xea77a451UL, 0x5bd51750UL, 0x885dd2d7UL, 0x766c1344UL, 0xc8a80404UL, 0x21a1e5b8UL,
-0x8a921ab8UL, 0x6958ed60UL, 0x965bc597UL, 0x1b99eceaUL, 0x13599329UL, 0xf1b7fd01UL, 0xfa8d8e08UL, 0xf5f6b69aUL,
-0x9fbf4c3bUL, 0xabe35d4aUL, 0x351d05e6UL, 0x55d8e1a0UL, 0xf14c6bd3UL, 0xebed44f5UL, 0x2435e9b0UL, 0xbd8fbbbeUL,
-0xcf62d7a2UL, 0x542fc949UL, 0x31f3b538UL, 0x54a42871UL, 0x05293948UL, 0xb81d5ba6UL, 0xbd971c85UL, 0x2fcf75d6UL};
-
-
-uint32_t s7[] PROGMEM = {
-0x1940e085UL, 0x67f52b33UL, 0xffbf2d66UL, 0x9356c6cfUL, 0x6f7f8d2aUL, 0x12c99babUL, 0xa10860deUL, 0x1fda2820UL,
-0xe7bc2702UL, 0x1629644dUL, 0x00c3fa18UL, 0x828bf150UL, 0x11cbb22cUL, 0x5ce732b2UL, 0xf295364bUL, 0xde0787b2UL,
-0xf6bc5fa0UL, 0xe98141cdUL, 0x0c2150e1UL, 0xbdf14ee2UL, 0x81c368b1UL, 0x89e7e4fdUL, 0xd8b0795cUL, 0x43fd8b1eUL,
-0x0150494dUL, 0x4143be38UL, 0x1dee3c91UL, 0x3f9ca792UL, 0xbe669708UL, 0xf4adeebaUL, 0xcfbe8612UL, 0x19cbeab6UL,
-0x00c26026UL, 0xe4bd6575UL, 0x7a1f2464UL, 0xa9dc4882UL, 0x66adb3c3UL, 0x86601328UL, 0xa8dfd80bUL, 0xf21c6d35UL,
-0xbe897710UL, 0xcee9b2b3UL, 0x8faa0205UL, 0x1e35c00bUL, 0x2af56b16UL, 0x82ff12ebUL, 0x116948e3UL, 0x16754dd3UL,
-0xff3a7b4eUL, 0x1b67435fUL, 0x37e0f69cUL, 0x83ac8149UL, 0xce664233UL, 0xb741938cUL, 0xc054d8d0UL, 0x886c3acbUL,
-0x2928bc47UL, 0x37ba2547UL, 0x2bd26aa6UL, 0x1e1fd67aUL, 0xfaba5c0cUL, 0x07f13744UL, 0x6299e7b6UL, 0x16d8d242UL,
-0x8812960aUL, 0x6ec0a5e1UL, 0x679e7413UL, 0x1a08fc72UL, 0xf739d1b1UL, 0x453758f9UL, 0x58df19cfUL, 0x56f7c3beUL,
-0x30ba6ec0UL, 0x241b2107UL, 0x2988c245UL, 0x7f315ec9UL, 0x11c58ebcUL, 0xe946bc38UL, 0x14fae6c6UL, 0x4a58e8baUL,
-0x46bc4eadUL, 0x8b508f46UL, 0x5f432978UL, 0x3b1824f1UL, 0x9fba1d82UL, 0xf40ff6afUL, 0x6d4e2ceaUL, 0x6492e316UL,
-0x8b4a5492UL, 0xc34f9b00UL, 0xed8ca6abUL, 0x786fc99aUL, 0x9ab7a506UL, 0x6e6e85b2UL, 0xa93cec1aUL, 0x888683beUL,
-0xe904080eUL, 0x56bef155UL, 0x3b36e5e7UL, 0x5df2a1b3UL, 0x85bbdef7UL, 0x3c03fe61UL, 0x33627416UL, 0x284c033cUL,
-0x740c6ddaUL, 0x6cc5aa79UL, 0xade1e43cUL, 0x02c8f051UL, 0x5af3f898UL, 0x9fa42616UL, 0x292bd8eeUL, 0xe32f381dUL,
-0x9ab94f0cUL, 0x785732bbUL, 0x7bd9c63eUL, 0xa9a6776eUL, 0x5c8b65cbUL, 0xc73052d4UL, 0x8b40d12bUL, 0xb73ec060UL,
-0x788d06b9UL, 0xf45437a3UL, 0x7dc830f4UL, 0x0213a7c8UL, 0x328c6db9UL, 0xbee7d4ebUL, 0x2d9d8bbeUL, 0x06fb7979UL,
-0x085322e7UL, 0x77cf758bUL, 0xa48def11UL, 0x58c883e0UL, 0x6f786b8dUL, 0xa617635aUL, 0xa0f75cfaUL, 0x3300da5dUL,
-0xb0bf8ef2UL, 0x10c3b9f5UL, 0x80c2eaa0UL, 0x7a76b908UL, 0xb0d2d9a3UL, 0x1742d379UL, 0x8d711a02UL, 0x6a33c69aUL,
-0x60fd1127UL, 0xe3508043UL, 0xa8089906UL, 0xc4ed7f3dUL, 0xef2b6d82UL, 0x7684eb4eUL, 0x25cf8d48UL, 0x66d5c936UL,
-0x414ee728UL, 0xca0a61c2UL, 0xcfa9493dUL, 0xdfb9e3baUL, 0xe68d5fb6UL, 0x64afae92UL, 0xe6d5c73aUL, 0x0905a89eUL,
-0x7d012bf2UL, 0x703f17a4UL, 0xc3161eddUL, 0xf9d7e015UL, 0x87b8b150UL, 0xd54f9f2bUL, 0x82ba5a62UL, 0x6279016aUL,
-0x9c1bc02eUL, 0xa98a4815UL, 0x40e716d7UL, 0x2c5a0540UL, 0x229ad293UL, 0x9abf2de3UL, 0xb9458705UL, 0x1edc5334UL,
-0x6e2999d6UL, 0x6fff6c49UL, 0x86499f1cUL, 0x07ede2dfUL, 0xd14272b8UL, 0xae7ede19UL, 0x1a563e05UL, 0x8c6fad15UL,
-0x1c6c6266UL, 0x4cc25471UL, 0x2a2b08eaUL, 0x3929eb93UL, 0xf0b0dc17UL, 0xaef2d458UL, 0xfb94a29eUL, 0x4c56cf52UL,
-0x66fe8398UL, 0x8105c42eUL, 0xc3533976UL, 0x2e69d601UL, 0x08c1a0d3UL, 0x0e16e7a1UL, 0xa6dff2e4UL, 0x85d23e69UL,
-0x98469074UL, 0xdd0e2b4cUL, 0x5676754fUL, 0x7833395dUL, 0x4f2332a1UL, 0x5d1c323dUL, 0x94e1f5c3UL, 0x0193264bUL,
-0x2f029fc7UL, 0x7e7e993cUL, 0x04954f5eUL, 0xbdfbfa3fUL, 0x0eadf776UL, 0xf4936629UL, 0x6fce1f3dUL, 0xbe451ec6UL,
-0x34abb5d3UL, 0xb7f92bf7UL, 0xc034041bUL, 0x67b5724eUL, 0x3da39255UL, 0x019322b5UL, 0x7fa8d2cfUL, 0x67b7ae60UL,
-0x6b381418UL, 0x3dc3bc30UL, 0x7dc0a038UL, 0xf20616fdUL, 0x9b5163c3UL, 0x90d39d58UL, 0xe6f87954UL, 0x47d6b81cUL,
-0xa961fd97UL, 0xf45977eaUL, 0x9d53572dUL, 0xcf589a56UL, 0xad634ee8UL, 0x781b2e46UL, 0x7ef88065UL, 0x147981f3UL,
-0xf455da91UL, 0xf330a240UL, 0x358f98d1UL, 0xd218e3b6UL, 0xbc50fa3fUL, 0x21f0403dUL, 0xaebdc0c3UL, 0x4cc25849UL,
-0xb2368f51UL, 0x70d3b184UL, 0x83ceed0fUL, 0xdada8d87UL, 0xc779a2f2UL, 0xe81be094UL, 0x4b6f7190UL, 0xa38a4b95UL};
-
-
-uint32_t s8[] PROGMEM = {
-0x0d3016e2UL, 0xfcffddbbUL, 0xbddaeba7UL, 0x95806435UL, 0xb7f88977UL, 0x1b12c1e6UL, 0x0016240eUL, 0xb5e82c05UL,
-0xb0cfa911UL, 0x112f95e5UL, 0x0a99e7ecUL, 0x74d18693UL, 0x1c93422aUL, 0x1181e376UL, 0x3aef2db1UL, 0xfcdddd37UL,
-0xb1de9adeUL, 0x2cc30c0aUL, 0x297019beUL, 0x4009a084UL, 0x0f3a24bbUL, 0xcf37d1b4UL, 0xf0794eb4UL, 0xfded9e04UL,
-0x5da1150bUL, 0x68310d48UL, 0x5adebb8bUL, 0x42ed9d66UL, 0x31e8ecc7UL, 0xe7958f3fUL, 0x1b19df72UL, 0x0d338075UL,
-0x51420794UL, 0xfacd7d5cUL, 0x636dbeabUL, 0x642140aaUL, 0x0ad401b3UL, 0xcad1e702UL, 0xae1d5753UL, 0xa282317aUL,
-0xecdda812UL, 0x5d33aafdUL, 0xe8436f17UL, 0xd446fb71UL, 0x22901238UL, 0xd49a94ceUL, 0xad6947b8UL, 0x62d85b96UL,
-0x55d0f382UL, 0x6797fb66UL, 0x4e0bb815UL, 0xa0475b1dUL, 0x6fe0fd4cUL, 0xb8c48ec2UL, 0x6e72e857UL, 0xfc787a64UL,
-0x445d8699UL, 0x93d58b60UL, 0x030e206cUL, 0xf65fdc39UL, 0xa3000b5dUL, 0xf2af63aeUL, 0x32d68b7eUL, 0x0c8c1070UL,
-0x4950d3bbUL, 0x04df9829UL, 0x2af40c98UL, 0x91f46d9bUL, 0x53dd7e9eUL, 0x48859106UL, 0x077ecb58UL, 0x2eef743bUL,
-0xb1ff2f52UL, 0xcc0847d2UL, 0xcd277e1cUL, 0x5b21eba4UL, 0xe2d2f13cUL, 0x387ab419UL, 0x18764f42UL, 0x39608535UL,
-0xe7de179dUL, 0xe635eb27UL, 0x7bf6afc9UL, 0xb8f5ba36UL, 0xcd67c409UL, 0xb11089c1UL, 0x7bbf1de1UL, 0xf81acd06UL,
-0x08c67071UL, 0x54335e2dUL, 0x5a49ded4UL, 0x06d0c664UL, 0x2cc6c0bcUL, 0xb30dd03dUL, 0x348f8f70UL, 0x421bd577UL,
-0x0f624f26UL, 0xbfd2b824UL, 0x9eb7c115UL, 0x6425a546UL, 0x4ee5d7f8UL, 0x6081373eUL, 0xa5cd9578UL, 0xa5159c85UL,
-0x889745e6UL, 0x5fc77bc3UL, 0x0cba07dbUL, 0xaba37606UL, 0x1e9b227fUL, 0x7b2e8431UL, 0xd79f2524UL, 0x72f4bef8UL,
-0xb8fc5f83UL, 0xf2c1f46dUL, 0x95b1f596UL, 0xfcf00afdUL, 0x4c13feb0UL, 0x3d6d50e2UL, 0xea129b4fUL, 0x25f215f2UL,
-0x6f7323a2UL, 0x28c4b49fUL, 0x7949d025UL, 0xf813c734UL, 0x878161c4UL, 0x986e7aeaUL, 0xfc6ed17cUL, 0x6c873614UL,
-0x074154f1UL, 0x14eedebeUL, 0x27afe956UL, 0x41a44aa0UL, 0x99c8f73cUL, 0xe6baec92UL, 0x6d0167ddUL, 0xeb821615UL,
-0xdfee42a8UL, 0xb460bafdUL, 0x757b90f1UL, 0x0f03e320UL, 0x9ec2d824UL, 0x3b6739e1UL, 0xb83fa6efUL, 0x54308771UL,
-0x3bcff2b6UL, 0x4264329fUL, 0xcca415cbUL, 0x04451ab0UL, 0x8d7de4f1UL, 0xe51b4a84UL, 0xdcdfe7baUL, 0x70dacb42UL,
-0x0aae7dcdUL, 0x7a5be857UL, 0xf65a3fd5UL, 0x8c4dcf20UL, 0x28d4a4ceUL, 0xa430d179UL, 0xfbeb8634UL, 0xdccdd333UL,
-0x533b8577UL, 0xb5fcef37UL, 0x788706c5UL, 0xe6b380e5UL, 0xf4b8684eUL, 0x7eb3c8c5UL, 0xa29e800dUL, 0x7ceb8f39UL,
-0x944f2a13UL, 0x0e95b743UL, 0x1c7dee2fUL, 0xbd133622UL, 0xa2ca06ddUL, 0x2b93df37UL, 0x898224c4UL, 0xc3ebf3acUL,
-0xb7f61557UL, 0xdd7834efUL, 0x6f6167f2UL, 0xe4cb48c1UL, 0x5e815290UL, 0xab0f415eUL, 0x65248ab4UL, 0xa47fda2eUL,
-0xe4407be8UL, 0x84a08ee9UL, 0xe1e98958UL, 0xfc90d3efUL, 0x5bd307ddUL, 0x945648dbUL, 0xb2e5d738UL, 0x01017257UL,
-0xbcde0e73UL, 0x1331645bUL, 0x4f7e9194UL, 0xba2f3c50UL, 0x82126f64UL, 0x4ad22375UL, 0x959677e0UL, 0x8f7ac1f9UL,
-0x21215b7aUL, 0x96b887d1UL, 0x4d3a2629UL, 0xdf0c51baUL, 0x9f7cf481UL, 0xed6311adUL, 0x65597beaUL, 0x6e72001aUL,
-0x92304011UL, 0x776dda00UL, 0x61dd0c4aUL, 0x03461fadUL, 0xb0df5b60UL, 0x64c3ed9eUL, 0xa8e6eb22UL, 0x8ad2e7ceUL,
-0xa036e7a0UL, 0xb9a66455UL, 0x09328510UL, 0x378febc7UL, 0xca05e72dUL, 0x0f575189UL, 0x2b8209dfUL, 0x6c1a69bdUL,
-0xf2e412aaUL, 0x0f1c4587UL, 0x7aa2f6e0UL, 0x1948da3aUL, 0x4f76f14cUL, 0x2b1c770dUL, 0x56b1cd67UL, 0x84830d35UL,
-0x0ffa3859UL, 0xf39e3942UL, 0x077b9936UL, 0x3d09840eUL, 0x613ea94aUL, 0x7bd86083UL, 0x0c8ba91fUL, 0x2c384911UL,
-0xa52576e9UL, 0xb7d11406UL, 0x4b24250eUL, 0x4783760cUL, 0x828d9e58UL, 0xd159200dUL, 0x1ebb66a4UL, 0x820adaf8UL,
-0x3091f104UL, 0xc04e6ebaUL, 0x64512699UL, 0x0d23e71eUL, 0x80adb250UL, 0x0168eeeaUL, 0x83a2b28dUL, 0x9ef58beaUL};
-
-
-#endif 
-
+extern const uint32_t s1[];
+extern const uint32_t s2[];
+extern const uint32_t s3[];
+extern const uint32_t s4[];
+extern const uint32_t s5[];
+extern const uint32_t s6[];
+extern const uint32_t s7[];
+extern const uint32_t s8[];
 
 #endif
 
diff --git a/cast6/cast6-sbox.c b/cast6/cast6-sbox.c
new file mode 100644 (file)
index 0000000..b899c02
--- /dev/null
@@ -0,0 +1,308 @@
+/* cast6-sbox.c */
+/*
+    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:       cast6-sbox.c
+ * Author:     Daniel Otte
+ * Date:       26.07.2006
+ * License: GPL
+ * Description: sboxes for CAST6 (aka CAST-256) cipher algorithm as described in RFC 2612.
+ * 
+ */
+#include <avr/pgmspace.h>
+#include <stdint.h>
+
+#ifndef BIG_ENDIAN
+
+const uint32_t s1[] PROGMEM = {
+0x30fb40d4UL, 0x9fa0ff0bUL, 0x6beccd2fUL, 0x3f258c7aUL, 0x1e213f2fUL, 0x9c004dd3UL, 0x6003e540UL, 0xcf9fc949UL,
+0xbfd4af27UL, 0x88bbbdb5UL, 0xe2034090UL, 0x98d09675UL, 0x6e63a0e0UL, 0x15c361d2UL, 0xc2e7661dUL, 0x22d4ff8eUL,
+0x28683b6fUL, 0xc07fd059UL, 0xff2379c8UL, 0x775f50e2UL, 0x43c340d3UL, 0xdf2f8656UL, 0x887ca41aUL, 0xa2d2bd2dUL,
+0xa1c9e0d6UL, 0x346c4819UL, 0x61b76d87UL, 0x22540f2fUL, 0x2abe32e1UL, 0xaa54166bUL, 0x22568e3aUL, 0xa2d341d0UL,
+0x66db40c8UL, 0xa784392fUL, 0x004dff2fUL, 0x2db9d2deUL, 0x97943facUL, 0x4a97c1d8UL, 0x527644b7UL, 0xb5f437a7UL,
+0xb82cbaefUL, 0xd751d159UL, 0x6ff7f0edUL, 0x5a097a1fUL, 0x827b68d0UL, 0x90ecf52eUL, 0x22b0c054UL, 0xbc8e5935UL,
+0x4b6d2f7fUL, 0x50bb64a2UL, 0xd2664910UL, 0xbee5812dUL, 0xb7332290UL, 0xe93b159fUL, 0xb48ee411UL, 0x4bff345dUL,
+0xfd45c240UL, 0xad31973fUL, 0xc4f6d02eUL, 0x55fc8165UL, 0xd5b1caadUL, 0xa1ac2daeUL, 0xa2d4b76dUL, 0xc19b0c50UL,
+0x882240f2UL, 0x0c6e4f38UL, 0xa4e4bfd7UL, 0x4f5ba272UL, 0x564c1d2fUL, 0xc59c5319UL, 0xb949e354UL, 0xb04669feUL,
+0xb1b6ab8aUL, 0xc71358ddUL, 0x6385c545UL, 0x110f935dUL, 0x57538ad5UL, 0x6a390493UL, 0xe63d37e0UL, 0x2a54f6b3UL,
+0x3a787d5fUL, 0x6276a0b5UL, 0x19a6fcdfUL, 0x7a42206aUL, 0x29f9d4d5UL, 0xf61b1891UL, 0xbb72275eUL, 0xaa508167UL,
+0x38901091UL, 0xc6b505ebUL, 0x84c7cb8cUL, 0x2ad75a0fUL, 0x874a1427UL, 0xa2d1936bUL, 0x2ad286afUL, 0xaa56d291UL,
+0xd7894360UL, 0x425c750dUL, 0x93b39e26UL, 0x187184c9UL, 0x6c00b32dUL, 0x73e2bb14UL, 0xa0bebc3cUL, 0x54623779UL,
+0x64459eabUL, 0x3f328b82UL, 0x7718cf82UL, 0x59a2cea6UL, 0x04ee002eUL, 0x89fe78e6UL, 0x3fab0950UL, 0x325ff6c2UL,
+0x81383f05UL, 0x6963c5c8UL, 0x76cb5ad6UL, 0xd49974c9UL, 0xca180dcfUL, 0x380782d5UL, 0xc7fa5cf6UL, 0x8ac31511UL,
+0x35e79e13UL, 0x47da91d0UL, 0xf40f9086UL, 0xa7e2419eUL, 0x31366241UL, 0x051ef495UL, 0xaa573b04UL, 0x4a805d8dUL,
+0x548300d0UL, 0x00322a3cUL, 0xbf64cddfUL, 0xba57a68eUL, 0x75c6372bUL, 0x50afd341UL, 0xa7c13275UL, 0x915a0bf5UL,
+0x6b54bfabUL, 0x2b0b1426UL, 0xab4cc9d7UL, 0x449ccd82UL, 0xf7fbf265UL, 0xab85c5f3UL, 0x1b55db94UL, 0xaad4e324UL,
+0xcfa4bd3fUL, 0x2deaa3e2UL, 0x9e204d02UL, 0xc8bd25acUL, 0xeadf55b3UL, 0xd5bd9e98UL, 0xe31231b2UL, 0x2ad5ad6cUL,
+0x954329deUL, 0xadbe4528UL, 0xd8710f69UL, 0xaa51c90fUL, 0xaa786bf6UL, 0x22513f1eUL, 0xaa51a79bUL, 0x2ad344ccUL,
+0x7b5a41f0UL, 0xd37cfbadUL, 0x1b069505UL, 0x41ece491UL, 0xb4c332e6UL, 0x032268d4UL, 0xc9600accUL, 0xce387e6dUL,
+0xbf6bb16cUL, 0x6a70fb78UL, 0x0d03d9c9UL, 0xd4df39deUL, 0xe01063daUL, 0x4736f464UL, 0x5ad328d8UL, 0xb347cc96UL,
+0x75bb0fc3UL, 0x98511bfbUL, 0x4ffbcc35UL, 0xb58bcf6aUL, 0xe11f0abcUL, 0xbfc5fe4aUL, 0xa70aec10UL, 0xac39570aUL,
+0x3f04442fUL, 0x6188b153UL, 0xe0397a2eUL, 0x5727cb79UL, 0x9ceb418fUL, 0x1cacd68dUL, 0x2ad37c96UL, 0x0175cb9dUL,
+0xc69dff09UL, 0xc75b65f0UL, 0xd9db40d8UL, 0xec0e7779UL, 0x4744ead4UL, 0xb11c3274UL, 0xdd24cb9eUL, 0x7e1c54bdUL,
+0xf01144f9UL, 0xd2240eb1UL, 0x9675b3fdUL, 0xa3ac3755UL, 0xd47c27afUL, 0x51c85f4dUL, 0x56907596UL, 0xa5bb15e6UL,
+0x580304f0UL, 0xca042cf1UL, 0x011a37eaUL, 0x8dbfaadbUL, 0x35ba3e4aUL, 0x3526ffa0UL, 0xc37b4d09UL, 0xbc306ed9UL,
+0x98a52666UL, 0x5648f725UL, 0xff5e569dUL, 0x0ced63d0UL, 0x7c63b2cfUL, 0x700b45e1UL, 0xd5ea50f1UL, 0x85a92872UL,
+0xaf1fbda7UL, 0xd4234870UL, 0xa7870bf3UL, 0x2d3b4d79UL, 0x42e04198UL, 0x0cd0ede7UL, 0x26470db8UL, 0xf881814cUL,
+0x474d6ad7UL, 0x7c0c5e5cUL, 0xd1231959UL, 0x381b7298UL, 0xf5d2f4dbUL, 0xab838653UL, 0x6e2f1e23UL, 0x83719c9eUL,
+0xbd91e046UL, 0x9a56456eUL, 0xdc39200cUL, 0x20c8c571UL, 0x962bda1cUL, 0xe1e696ffUL, 0xb141ab08UL, 0x7cca89b9UL,
+0x1a69e783UL, 0x02cc4843UL, 0xa2f7c579UL, 0x429ef47dUL, 0x427b169cUL, 0x5ac9f049UL, 0xdd8f0f00UL, 0x5c8165bfUL};
+
+const uint32_t s2[] PROGMEM = {
+0x1f201094UL, 0xef0ba75bUL, 0x69e3cf7eUL, 0x393f4380UL, 0xfe61cf7aUL, 0xeec5207aUL, 0x55889c94UL, 0x72fc0651UL,
+0xada7ef79UL, 0x4e1d7235UL, 0xd55a63ceUL, 0xde0436baUL, 0x99c430efUL, 0x5f0c0794UL, 0x18dcdb7dUL, 0xa1d6eff3UL,
+0xa0b52f7bUL, 0x59e83605UL, 0xee15b094UL, 0xe9ffd909UL, 0xdc440086UL, 0xef944459UL, 0xba83ccb3UL, 0xe0c3cdfbUL,
+0xd1da4181UL, 0x3b092ab1UL, 0xf997f1c1UL, 0xa5e6cf7bUL, 0x01420ddbUL, 0xe4e7ef5bUL, 0x25a1ff41UL, 0xe180f806UL,
+0x1fc41080UL, 0x179bee7aUL, 0xd37ac6a9UL, 0xfe5830a4UL, 0x98de8b7fUL, 0x77e83f4eUL, 0x79929269UL, 0x24fa9f7bUL,
+0xe113c85bUL, 0xacc40083UL, 0xd7503525UL, 0xf7ea615fUL, 0x62143154UL, 0x0d554b63UL, 0x5d681121UL, 0xc866c359UL,
+0x3d63cf73UL, 0xcee234c0UL, 0xd4d87e87UL, 0x5c672b21UL, 0x071f6181UL, 0x39f7627fUL, 0x361e3084UL, 0xe4eb573bUL,
+0x602f64a4UL, 0xd63acd9cUL, 0x1bbc4635UL, 0x9e81032dUL, 0x2701f50cUL, 0x99847ab4UL, 0xa0e3df79UL, 0xba6cf38cUL,
+0x10843094UL, 0x2537a95eUL, 0xf46f6ffeUL, 0xa1ff3b1fUL, 0x208cfb6aUL, 0x8f458c74UL, 0xd9e0a227UL, 0x4ec73a34UL,
+0xfc884f69UL, 0x3e4de8dfUL, 0xef0e0088UL, 0x3559648dUL, 0x8a45388cUL, 0x1d804366UL, 0x721d9bfdUL, 0xa58684bbUL,
+0xe8256333UL, 0x844e8212UL, 0x128d8098UL, 0xfed33fb4UL, 0xce280ae1UL, 0x27e19ba5UL, 0xd5a6c252UL, 0xe49754bdUL,
+0xc5d655ddUL, 0xeb667064UL, 0x77840b4dUL, 0xa1b6a801UL, 0x84db26a9UL, 0xe0b56714UL, 0x21f043b7UL, 0xe5d05860UL,
+0x54f03084UL, 0x066ff472UL, 0xa31aa153UL, 0xdadc4755UL, 0xb5625dbfUL, 0x68561be6UL, 0x83ca6b94UL, 0x2d6ed23bUL,
+0xeccf01dbUL, 0xa6d3d0baUL, 0xb6803d5cUL, 0xaf77a709UL, 0x33b4a34cUL, 0x397bc8d6UL, 0x5ee22b95UL, 0x5f0e5304UL,
+0x81ed6f61UL, 0x20e74364UL, 0xb45e1378UL, 0xde18639bUL, 0x881ca122UL, 0xb96726d1UL, 0x8049a7e8UL, 0x22b7da7bUL,
+0x5e552d25UL, 0x5272d237UL, 0x79d2951cUL, 0xc60d894cUL, 0x488cb402UL, 0x1ba4fe5bUL, 0xa4b09f6bUL, 0x1ca815cfUL,
+0xa20c3005UL, 0x8871df63UL, 0xb9de2fcbUL, 0x0cc6c9e9UL, 0x0beeff53UL, 0xe3214517UL, 0xb4542835UL, 0x9f63293cUL,
+0xee41e729UL, 0x6e1d2d7cUL, 0x50045286UL, 0x1e6685f3UL, 0xf33401c6UL, 0x30a22c95UL, 0x31a70850UL, 0x60930f13UL,
+0x73f98417UL, 0xa1269859UL, 0xec645c44UL, 0x52c877a9UL, 0xcdff33a6UL, 0xa02b1741UL, 0x7cbad9a2UL, 0x2180036fUL,
+0x50d99c08UL, 0xcb3f4861UL, 0xc26bd765UL, 0x64a3f6abUL, 0x80342676UL, 0x25a75e7bUL, 0xe4e6d1fcUL, 0x20c710e6UL,
+0xcdf0b680UL, 0x17844d3bUL, 0x31eef84dUL, 0x7e0824e4UL, 0x2ccb49ebUL, 0x846a3baeUL, 0x8ff77888UL, 0xee5d60f6UL,
+0x7af75673UL, 0x2fdd5cdbUL, 0xa11631c1UL, 0x30f66f43UL, 0xb3faec54UL, 0x157fd7faUL, 0xef8579ccUL, 0xd152de58UL,
+0xdb2ffd5eUL, 0x8f32ce19UL, 0x306af97aUL, 0x02f03ef8UL, 0x99319ad5UL, 0xc242fa0fUL, 0xa7e3ebb0UL, 0xc68e4906UL,
+0xb8da230cUL, 0x80823028UL, 0xdcdef3c8UL, 0xd35fb171UL, 0x088a1bc8UL, 0xbec0c560UL, 0x61a3c9e8UL, 0xbca8f54dUL,
+0xc72feffaUL, 0x22822e99UL, 0x82c570b4UL, 0xd8d94e89UL, 0x8b1c34bcUL, 0x301e16e6UL, 0x273be979UL, 0xb0ffeaa6UL,
+0x61d9b8c6UL, 0x00b24869UL, 0xb7ffce3fUL, 0x08dc283bUL, 0x43daf65aUL, 0xf7e19798UL, 0x7619b72fUL, 0x8f1c9ba4UL,
+0xdc8637a0UL, 0x16a7d3b1UL, 0x9fc393b7UL, 0xa7136eebUL, 0xc6bcc63eUL, 0x1a513742UL, 0xef6828bcUL, 0x520365d6UL,
+0x2d6a77abUL, 0x3527ed4bUL, 0x821fd216UL, 0x095c6e2eUL, 0xdb92f2fbUL, 0x5eea29cbUL, 0x145892f5UL, 0x91584f7fUL,
+0x5483697bUL, 0x2667a8ccUL, 0x85196048UL, 0x8c4baceaUL, 0x833860d4UL, 0x0d23e0f9UL, 0x6c387e8aUL, 0x0ae6d249UL,
+0xb284600cUL, 0xd835731dUL, 0xdcb1c647UL, 0xac4c56eaUL, 0x3ebd81b3UL, 0x230eabb0UL, 0x6438bc87UL, 0xf0b5b1faUL,
+0x8f5ea2b3UL, 0xfc184642UL, 0x0a036b7aUL, 0x4fb089bdUL, 0x649da589UL, 0xa345415eUL, 0x5c038323UL, 0x3e5d3bb9UL,
+0x43d79572UL, 0x7e6dd07cUL, 0x06dfdf1eUL, 0x6c6cc4efUL, 0x7160a539UL, 0x73bfbe70UL, 0x83877605UL, 0x4523ecf1UL};
+
+const uint32_t s3[] PROGMEM = {
+0x8defc240UL, 0x25fa5d9fUL, 0xeb903dbfUL, 0xe810c907UL, 0x47607fffUL, 0x369fe44bUL, 0x8c1fc644UL, 0xaececa90UL,
+0xbeb1f9bfUL, 0xeefbcaeaUL, 0xe8cf1950UL, 0x51df07aeUL, 0x920e8806UL, 0xf0ad0548UL, 0xe13c8d83UL, 0x927010d5UL,
+0x11107d9fUL, 0x07647db9UL, 0xb2e3e4d4UL, 0x3d4f285eUL, 0xb9afa820UL, 0xfade82e0UL, 0xa067268bUL, 0x8272792eUL,
+0x553fb2c0UL, 0x489ae22bUL, 0xd4ef9794UL, 0x125e3fbcUL, 0x21fffceeUL, 0x825b1bfdUL, 0x9255c5edUL, 0x1257a240UL,
+0x4e1a8302UL, 0xbae07fffUL, 0x528246e7UL, 0x8e57140eUL, 0x3373f7bfUL, 0x8c9f8188UL, 0xa6fc4ee8UL, 0xc982b5a5UL,
+0xa8c01db7UL, 0x579fc264UL, 0x67094f31UL, 0xf2bd3f5fUL, 0x40fff7c1UL, 0x1fb78dfcUL, 0x8e6bd2c1UL, 0x437be59bUL,
+0x99b03dbfUL, 0xb5dbc64bUL, 0x638dc0e6UL, 0x55819d99UL, 0xa197c81cUL, 0x4a012d6eUL, 0xc5884a28UL, 0xccc36f71UL,
+0xb843c213UL, 0x6c0743f1UL, 0x8309893cUL, 0x0feddd5fUL, 0x2f7fe850UL, 0xd7c07f7eUL, 0x02507fbfUL, 0x5afb9a04UL,
+0xa747d2d0UL, 0x1651192eUL, 0xaf70bf3eUL, 0x58c31380UL, 0x5f98302eUL, 0x727cc3c4UL, 0x0a0fb402UL, 0x0f7fef82UL,
+0x8c96fdadUL, 0x5d2c2aaeUL, 0x8ee99a49UL, 0x50da88b8UL, 0x8427f4a0UL, 0x1eac5790UL, 0x796fb449UL, 0x8252dc15UL,
+0xefbd7d9bUL, 0xa672597dUL, 0xada840d8UL, 0x45f54504UL, 0xfa5d7403UL, 0xe83ec305UL, 0x4f91751aUL, 0x925669c2UL,
+0x23efe941UL, 0xa903f12eUL, 0x60270df2UL, 0x0276e4b6UL, 0x94fd6574UL, 0x927985b2UL, 0x8276dbcbUL, 0x02778176UL,
+0xf8af918dUL, 0x4e48f79eUL, 0x8f616ddfUL, 0xe29d840eUL, 0x842f7d83UL, 0x340ce5c8UL, 0x96bbb682UL, 0x93b4b148UL,
+0xef303cabUL, 0x984faf28UL, 0x779faf9bUL, 0x92dc560dUL, 0x224d1e20UL, 0x8437aa88UL, 0x7d29dc96UL, 0x2756d3dcUL,
+0x8b907ceeUL, 0xb51fd240UL, 0xe7c07ce3UL, 0xe566b4a1UL, 0xc3e9615eUL, 0x3cf8209dUL, 0x6094d1e3UL, 0xcd9ca341UL,
+0x5c76460eUL, 0x00ea983bUL, 0xd4d67881UL, 0xfd47572cUL, 0xf76cedd9UL, 0xbda8229cUL, 0x127dadaaUL, 0x438a074eUL,
+0x1f97c090UL, 0x081bdb8aUL, 0x93a07ebeUL, 0xb938ca15UL, 0x97b03cffUL, 0x3dc2c0f8UL, 0x8d1ab2ecUL, 0x64380e51UL,
+0x68cc7bfbUL, 0xd90f2788UL, 0x12490181UL, 0x5de5ffd4UL, 0xdd7ef86aUL, 0x76a2e214UL, 0xb9a40368UL, 0x925d958fUL,
+0x4b39fffaUL, 0xba39aee9UL, 0xa4ffd30bUL, 0xfaf7933bUL, 0x6d498623UL, 0x193cbcfaUL, 0x27627545UL, 0x825cf47aUL,
+0x61bd8ba0UL, 0xd11e42d1UL, 0xcead04f4UL, 0x127ea392UL, 0x10428db7UL, 0x8272a972UL, 0x9270c4a8UL, 0x127de50bUL,
+0x285ba1c8UL, 0x3c62f44fUL, 0x35c0eaa5UL, 0xe805d231UL, 0x428929fbUL, 0xb4fcdf82UL, 0x4fb66a53UL, 0x0e7dc15bUL,
+0x1f081fabUL, 0x108618aeUL, 0xfcfd086dUL, 0xf9ff2889UL, 0x694bcc11UL, 0x236a5caeUL, 0x12deca4dUL, 0x2c3f8cc5UL,
+0xd2d02dfeUL, 0xf8ef5896UL, 0xe4cf52daUL, 0x95155b67UL, 0x494a488cUL, 0xb9b6a80cUL, 0x5c8f82bcUL, 0x89d36b45UL,
+0x3a609437UL, 0xec00c9a9UL, 0x44715253UL, 0x0a874b49UL, 0xd773bc40UL, 0x7c34671cUL, 0x02717ef6UL, 0x4feb5536UL,
+0xa2d02fffUL, 0xd2bf60c4UL, 0xd43f03c0UL, 0x50b4ef6dUL, 0x07478cd1UL, 0x006e1888UL, 0xa2e53f55UL, 0xb9e6d4bcUL,
+0xa2048016UL, 0x97573833UL, 0xd7207d67UL, 0xde0f8f3dUL, 0x72f87b33UL, 0xabcc4f33UL, 0x7688c55dUL, 0x7b00a6b0UL,
+0x947b0001UL, 0x570075d2UL, 0xf9bb88f8UL, 0x8942019eUL, 0x4264a5ffUL, 0x856302e0UL, 0x72dbd92bUL, 0xee971b69UL,
+0x6ea22fdeUL, 0x5f08ae2bUL, 0xaf7a616dUL, 0xe5c98767UL, 0xcf1febd2UL, 0x61efc8c2UL, 0xf1ac2571UL, 0xcc8239c2UL,
+0x67214cb8UL, 0xb1e583d1UL, 0xb7dc3e62UL, 0x7f10bdceUL, 0xf90a5c38UL, 0x0ff0443dUL, 0x606e6dc6UL, 0x60543a49UL,
+0x5727c148UL, 0x2be98a1dUL, 0x8ab41738UL, 0x20e1be24UL, 0xaf96da0fUL, 0x68458425UL, 0x99833be5UL, 0x600d457dUL,
+0x282f9350UL, 0x8334b362UL, 0xd91d1120UL, 0x2b6d8da0UL, 0x642b1e31UL, 0x9c305a00UL, 0x52bce688UL, 0x1b03588aUL,
+0xf7baefd5UL, 0x4142ed9cUL, 0xa4315c11UL, 0x83323ec5UL, 0xdfef4636UL, 0xa133c501UL, 0xe9d3531cUL, 0xee353783UL};
+
+const uint32_t s4[] PROGMEM = {
+0x9db30420UL, 0x1fb6e9deUL, 0xa7be7befUL, 0xd273a298UL, 0x4a4f7bdbUL, 0x64ad8c57UL, 0x85510443UL, 0xfa020ed1UL,
+0x7e287affUL, 0xe60fb663UL, 0x095f35a1UL, 0x79ebf120UL, 0xfd059d43UL, 0x6497b7b1UL, 0xf3641f63UL, 0x241e4adfUL,
+0x28147f5fUL, 0x4fa2b8cdUL, 0xc9430040UL, 0x0cc32220UL, 0xfdd30b30UL, 0xc0a5374fUL, 0x1d2d00d9UL, 0x24147b15UL,
+0xee4d111aUL, 0x0fca5167UL, 0x71ff904cUL, 0x2d195ffeUL, 0x1a05645fUL, 0x0c13fefeUL, 0x081b08caUL, 0x05170121UL,
+0x80530100UL, 0xe83e5efeUL, 0xac9af4f8UL, 0x7fe72701UL, 0xd2b8ee5fUL, 0x06df4261UL, 0xbb9e9b8aUL, 0x7293ea25UL,
+0xce84ffdfUL, 0xf5718801UL, 0x3dd64b04UL, 0xa26f263bUL, 0x7ed48400UL, 0x547eebe6UL, 0x446d4ca0UL, 0x6cf3d6f5UL,
+0x2649abdfUL, 0xaea0c7f5UL, 0x36338cc1UL, 0x503f7e93UL, 0xd3772061UL, 0x11b638e1UL, 0x72500e03UL, 0xf80eb2bbUL,
+0xabe0502eUL, 0xec8d77deUL, 0x57971e81UL, 0xe14f6746UL, 0xc9335400UL, 0x6920318fUL, 0x081dbb99UL, 0xffc304a5UL,
+0x4d351805UL, 0x7f3d5ce3UL, 0xa6c866c6UL, 0x5d5bcca9UL, 0xdaec6feaUL, 0x9f926f91UL, 0x9f46222fUL, 0x3991467dUL,
+0xa5bf6d8eUL, 0x1143c44fUL, 0x43958302UL, 0xd0214eebUL, 0x022083b8UL, 0x3fb6180cUL, 0x18f8931eUL, 0x281658e6UL,
+0x26486e3eUL, 0x8bd78a70UL, 0x7477e4c1UL, 0xb506e07cUL, 0xf32d0a25UL, 0x79098b02UL, 0xe4eabb81UL, 0x28123b23UL,
+0x69dead38UL, 0x1574ca16UL, 0xdf871b62UL, 0x211c40b7UL, 0xa51a9ef9UL, 0x0014377bUL, 0x041e8ac8UL, 0x09114003UL,
+0xbd59e4d2UL, 0xe3d156d5UL, 0x4fe876d5UL, 0x2f91a340UL, 0x557be8deUL, 0x00eae4a7UL, 0x0ce5c2ecUL, 0x4db4bba6UL,
+0xe756bdffUL, 0xdd3369acUL, 0xec17b035UL, 0x06572327UL, 0x99afc8b0UL, 0x56c8c391UL, 0x6b65811cUL, 0x5e146119UL,
+0x6e85cb75UL, 0xbe07c002UL, 0xc2325577UL, 0x893ff4ecUL, 0x5bbfc92dUL, 0xd0ec3b25UL, 0xb7801ab7UL, 0x8d6d3b24UL,
+0x20c763efUL, 0xc366a5fcUL, 0x9c382880UL, 0x0ace3205UL, 0xaac9548aUL, 0xeca1d7c7UL, 0x041afa32UL, 0x1d16625aUL,
+0x6701902cUL, 0x9b757a54UL, 0x31d477f7UL, 0x9126b031UL, 0x36cc6fdbUL, 0xc70b8b46UL, 0xd9e66a48UL, 0x56e55a79UL,
+0x026a4cebUL, 0x52437effUL, 0x2f8f76b4UL, 0x0df980a5UL, 0x8674cde3UL, 0xedda04ebUL, 0x17a9be04UL, 0x2c18f4dfUL,
+0xb7747f9dUL, 0xab2af7b4UL, 0xefc34d20UL, 0x2e096b7cUL, 0x1741a254UL, 0xe5b6a035UL, 0x213d42f6UL, 0x2c1c7c26UL,
+0x61c2f50fUL, 0x6552daf9UL, 0xd2c231f8UL, 0x25130f69UL, 0xd8167fa2UL, 0x0418f2c8UL, 0x001a96a6UL, 0x0d1526abUL,
+0x63315c21UL, 0x5e0a72ecUL, 0x49bafefdUL, 0x187908d9UL, 0x8d0dbd86UL, 0x311170a7UL, 0x3e9b640cUL, 0xcc3e10d7UL,
+0xd5cad3b6UL, 0x0caec388UL, 0xf73001e1UL, 0x6c728affUL, 0x71eae2a1UL, 0x1f9af36eUL, 0xcfcbd12fUL, 0xc1de8417UL,
+0xac07be6bUL, 0xcb44a1d8UL, 0x8b9b0f56UL, 0x013988c3UL, 0xb1c52fcaUL, 0xb4be31cdUL, 0xd8782806UL, 0x12a3a4e2UL,
+0x6f7de532UL, 0x58fd7eb6UL, 0xd01ee900UL, 0x24adffc2UL, 0xf4990fc5UL, 0x9711aac5UL, 0x001d7b95UL, 0x82e5e7d2UL,
+0x109873f6UL, 0x00613096UL, 0xc32d9521UL, 0xada121ffUL, 0x29908415UL, 0x7fbb977fUL, 0xaf9eb3dbUL, 0x29c9ed2aUL,
+0x5ce2a465UL, 0xa730f32cUL, 0xd0aa3fe8UL, 0x8a5cc091UL, 0xd49e2ce7UL, 0x0ce454a9UL, 0xd60acd86UL, 0x015f1919UL,
+0x77079103UL, 0xdea03af6UL, 0x78a8565eUL, 0xdee356dfUL, 0x21f05cbeUL, 0x8b75e387UL, 0xb3c50651UL, 0xb8a5c3efUL,
+0xd8eeb6d2UL, 0xe523be77UL, 0xc2154529UL, 0x2f69efdfUL, 0xafe67afbUL, 0xf470c4b2UL, 0xf3e0eb5bUL, 0xd6cc9876UL,
+0x39e4460cUL, 0x1fda8538UL, 0x1987832fUL, 0xca007367UL, 0xa99144f8UL, 0x296b299eUL, 0x492fc295UL, 0x9266beabUL,
+0xb5676e69UL, 0x9bd3dddaUL, 0xdf7e052fUL, 0xdb25701cUL, 0x1b5e51eeUL, 0xf65324e6UL, 0x6afce36cUL, 0x0316cc04UL,
+0x8644213eUL, 0xb7dc59d0UL, 0x7965291fUL, 0xccd6fd43UL, 0x41823979UL, 0x932bcdf6UL, 0xb657c34dUL, 0x4edfd282UL,
+0x7ae5290cUL, 0x3cb9536bUL, 0x851e20feUL, 0x9833557eUL, 0x13ecf0b0UL, 0xd3ffb372UL, 0x3f85c5c1UL, 0x0aef7ed2UL};
+
+#else
+
+const uint32_t s1[] PROGMEM = {
+0xd440fb30UL, 0x0bffa09fUL, 0x2fcdec6bUL, 0x7a8c253fUL, 0x2f3f211eUL, 0xd34d009cUL, 0x40e50360UL, 0x49c99fcfUL,
+0x27afd4bfUL, 0xb5bdbb88UL, 0x904003e2UL, 0x7596d098UL, 0xe0a0636eUL, 0xd261c315UL, 0x1d66e7c2UL, 0x8effd422UL,
+0x6f3b6828UL, 0x59d07fc0UL, 0xc87923ffUL, 0xe2505f77UL, 0xd340c343UL, 0x56862fdfUL, 0x1aa47c88UL, 0x2dbdd2a2UL,
+0xd6e0c9a1UL, 0x19486c34UL, 0x876db761UL, 0x2f0f5422UL, 0xe132be2aUL, 0x6b1654aaUL, 0x3a8e5622UL, 0xd041d3a2UL,
+0xc840db66UL, 0x2f3984a7UL, 0x2fff4d00UL, 0xded2b92dUL, 0xac3f9497UL, 0xd8c1974aUL, 0xb7447652UL, 0xa737f4b5UL,
+0xefba2cb8UL, 0x59d151d7UL, 0xedf0f76fUL, 0x1f7a095aUL, 0xd0687b82UL, 0x2ef5ec90UL, 0x54c0b022UL, 0x35598ebcUL,
+0x7f2f6d4bUL, 0xa264bb50UL, 0x104966d2UL, 0x2d81e5beUL, 0x902233b7UL, 0x9f153be9UL, 0x11e48eb4UL, 0x5d34ff4bUL,
+0x40c245fdUL, 0x3f9731adUL, 0x2ed0f6c4UL, 0x6581fc55UL, 0xadcab1d5UL, 0xae2daca1UL, 0x6db7d4a2UL, 0x500c9bc1UL,
+0xf2402288UL, 0x384f6e0cUL, 0xd7bfe4a4UL, 0x72a25b4fUL, 0x2f1d4c56UL, 0x19539cc5UL, 0x54e349b9UL, 0xfe6946b0UL,
+0x8aabb6b1UL, 0xdd5813c7UL, 0x45c58563UL, 0x5d930f11UL, 0xd58a5357UL, 0x9304396aUL, 0xe0373de6UL, 0xb3f6542aUL,
+0x5f7d783aUL, 0xb5a07662UL, 0xdffca619UL, 0x6a20427aUL, 0xd5d4f929UL, 0x91181bf6UL, 0x5e2772bbUL, 0x678150aaUL,
+0x91109038UL, 0xeb05b5c6UL, 0x8ccbc784UL, 0x0f5ad72aUL, 0x27144a87UL, 0x6b93d1a2UL, 0xaf86d22aUL, 0x91d256aaUL,
+0x604389d7UL, 0x0d755c42UL, 0x269eb393UL, 0xc9847118UL, 0x2db3006cUL, 0x14bbe273UL, 0x3cbcbea0UL, 0x79376254UL,
+0xab9e4564UL, 0x828b323fUL, 0x82cf1877UL, 0xa6cea259UL, 0x2e00ee04UL, 0xe678fe89UL, 0x5009ab3fUL, 0xc2f65f32UL,
+0x053f3881UL, 0xc8c56369UL, 0xd65acb76UL, 0xc97499d4UL, 0xcf0d18caUL, 0xd5820738UL, 0xf65cfac7UL, 0x1115c38aUL,
+0x139ee735UL, 0xd091da47UL, 0x86900ff4UL, 0x9e41e2a7UL, 0x41623631UL, 0x95f41e05UL, 0x043b57aaUL, 0x8d5d804aUL,
+0xd0008354UL, 0x3c2a3200UL, 0xdfcd64bfUL, 0x8ea657baUL, 0x2b37c675UL, 0x41d3af50UL, 0x7532c1a7UL, 0xf50b5a91UL,
+0xabbf546bUL, 0x26140b2bUL, 0xd7c94cabUL, 0x82cd9c44UL, 0x65f2fbf7UL, 0xf3c585abUL, 0x94db551bUL, 0x24e3d4aaUL,
+0x3fbda4cfUL, 0xe2a3ea2dUL, 0x024d209eUL, 0xac25bdc8UL, 0xb355dfeaUL, 0x989ebdd5UL, 0xb23112e3UL, 0x6cadd52aUL,
+0xde294395UL, 0x2845beadUL, 0x690f71d8UL, 0x0fc951aaUL, 0xf66b78aaUL, 0x1e3f5122UL, 0x9ba751aaUL, 0xcc44d32aUL,
+0xf0415a7bUL, 0xadfb7cd3UL, 0x0595061bUL, 0x91e4ec41UL, 0xe632c3b4UL, 0xd4682203UL, 0xcc0a60c9UL, 0x6d7e38ceUL,
+0x6cb16bbfUL, 0x78fb706aUL, 0xc9d9030dUL, 0xde39dfd4UL, 0xda6310e0UL, 0x64f43647UL, 0xd828d35aUL, 0x96cc47b3UL,
+0xc30fbb75UL, 0xfb1b5198UL, 0x35ccfb4fUL, 0x6acf8bb5UL, 0xbc0a1fe1UL, 0x4afec5bfUL, 0x10ec0aa7UL, 0x0a5739acUL,
+0x2f44043fUL, 0x53b18861UL, 0x2e7a39e0UL, 0x79cb2757UL, 0x8f41eb9cUL, 0x8dd6ac1cUL, 0x967cd32aUL, 0x9dcb7501UL,
+0x09ff9dc6UL, 0xf0655bc7UL, 0xd840dbd9UL, 0x79770eecUL, 0xd4ea4447UL, 0x74321cb1UL, 0x9ecb24ddUL, 0xbd541c7eUL,
+0xf94411f0UL, 0xb10e24d2UL, 0xfdb37596UL, 0x5537aca3UL, 0xaf277cd4UL, 0x4d5fc851UL, 0x96759056UL, 0xe615bba5UL,
+0xf0040358UL, 0xf12c04caUL, 0xea371a01UL, 0xdbaabf8dUL, 0x4a3eba35UL, 0xa0ff2635UL, 0x094d7bc3UL, 0xd96e30bcUL,
+0x6626a598UL, 0x25f74856UL, 0x9d565effUL, 0xd063ed0cUL, 0xcfb2637cUL, 0xe1450b70UL, 0xf150ead5UL, 0x7228a985UL,
+0xa7bd1fafUL, 0x704823d4UL, 0xf30b87a7UL, 0x794d3b2dUL, 0x9841e042UL, 0xe7edd00cUL, 0xb80d4726UL, 0x4c8181f8UL,
+0xd76a4d47UL, 0x5c5e0c7cUL, 0x591923d1UL, 0x98721b38UL, 0xdbf4d2f5UL, 0x538683abUL, 0x231e2f6eUL, 0x9e9c7183UL,
+0x46e091bdUL, 0x6e45569aUL, 0x0c2039dcUL, 0x71c5c820UL, 0x1cda2b96UL, 0xff96e6e1UL, 0x08ab41b1UL, 0xb989ca7cUL,
+0x83e7691aUL, 0x4348cc02UL, 0x79c5f7a2UL, 0x7df49e42UL, 0x9c167b42UL, 0x49f0c95aUL, 0x000f8fddUL, 0xbf65815cUL};
+
+const uint32_t s2[] PROGMEM = {
+0x9410201fUL, 0x5ba70befUL, 0x7ecfe369UL, 0x80433f39UL, 0x7acf61feUL, 0x7a20c5eeUL, 0x949c8855UL, 0x5106fc72UL,
+0x79efa7adUL, 0x35721d4eUL, 0xce635ad5UL, 0xba3604deUL, 0xef30c499UL, 0x94070c5fUL, 0x7ddbdc18UL, 0xf3efd6a1UL,
+0x7b2fb5a0UL, 0x0536e859UL, 0x94b015eeUL, 0x09d9ffe9UL, 0x860044dcUL, 0x594494efUL, 0xb3cc83baUL, 0xfbcdc3e0UL,
+0x8141dad1UL, 0xb12a093bUL, 0xc1f197f9UL, 0x7bcfe6a5UL, 0xdb0d4201UL, 0x5befe7e4UL, 0x41ffa125UL, 0x06f880e1UL,
+0x8010c41fUL, 0x7aee9b17UL, 0xa9c67ad3UL, 0xa43058feUL, 0x7f8bde98UL, 0x4e3fe877UL, 0x69929279UL, 0x7b9ffa24UL,
+0x5bc813e1UL, 0x8300c4acUL, 0x253550d7UL, 0x5f61eaf7UL, 0x54311462UL, 0x634b550dUL, 0x2111685dUL, 0x59c366c8UL,
+0x73cf633dUL, 0xc034e2ceUL, 0x877ed8d4UL, 0x212b675cUL, 0x81611f07UL, 0x7f62f739UL, 0x84301e36UL, 0x3b57ebe4UL,
+0xa4642f60UL, 0x9ccd3ad6UL, 0x3546bc1bUL, 0x2d03819eUL, 0x0cf50127UL, 0xb47a8499UL, 0x79dfe3a0UL, 0x8cf36cbaUL,
+0x94308410UL, 0x5ea93725UL, 0xfe6f6ff4UL, 0x1f3bffa1UL, 0x6afb8c20UL, 0x748c458fUL, 0x27a2e0d9UL, 0x343ac74eUL,
+0x694f88fcUL, 0xdfe84d3eUL, 0x88000eefUL, 0x8d645935UL, 0x8c38458aUL, 0x6643801dUL, 0xfd9b1d72UL, 0xbb8486a5UL,
+0x336325e8UL, 0x12824e84UL, 0x98808d12UL, 0xb43fd3feUL, 0xe10a28ceUL, 0xa59be127UL, 0x52c2a6d5UL, 0xbd5497e4UL,
+0xdd55d6c5UL, 0x647066ebUL, 0x4d0b8477UL, 0x01a8b6a1UL, 0xa926db84UL, 0x1467b5e0UL, 0xb743f021UL, 0x6058d0e5UL,
+0x8430f054UL, 0x72f46f06UL, 0x53a11aa3UL, 0x5547dcdaUL, 0xbf5d62b5UL, 0xe61b5668UL, 0x946bca83UL, 0x3bd26e2dUL,
+0xdb01cfecUL, 0xbad0d3a6UL, 0x5c3d80b6UL, 0x09a777afUL, 0x4ca3b433UL, 0xd6c87b39UL, 0x952be25eUL, 0x04530e5fUL,
+0x616fed81UL, 0x6443e720UL, 0x78135eb4UL, 0x9b6318deUL, 0x22a11c88UL, 0xd12667b9UL, 0xe8a74980UL, 0x7bdab722UL,
+0x252d555eUL, 0x37d27252UL, 0x1c95d279UL, 0x4c890dc6UL, 0x02b48c48UL, 0x5bfea41bUL, 0x6b9fb0a4UL, 0xcf15a81cUL,
+0x05300ca2UL, 0x63df7188UL, 0xcb2fdeb9UL, 0xe9c9c60cUL, 0x53ffee0bUL, 0x174521e3UL, 0x352854b4UL, 0x3c29639fUL,
+0x29e741eeUL, 0x7c2d1d6eUL, 0x86520450UL, 0xf385661eUL, 0xc60134f3UL, 0x952ca230UL, 0x5008a731UL, 0x130f9360UL,
+0x1784f973UL, 0x599826a1UL, 0x445c64ecUL, 0xa977c852UL, 0xa633ffcdUL, 0x41172ba0UL, 0xa2d9ba7cUL, 0x6f038021UL,
+0x089cd950UL, 0x61483fcbUL, 0x65d76bc2UL, 0xabf6a364UL, 0x76263480UL, 0x7b5ea725UL, 0xfcd1e6e4UL, 0xe610c720UL,
+0x80b6f0cdUL, 0x3b4d8417UL, 0x4df8ee31UL, 0xe424087eUL, 0xeb49cb2cUL, 0xae3b6a84UL, 0x8878f78fUL, 0xf6605deeUL,
+0x7356f77aUL, 0xdb5cdd2fUL, 0xc13116a1UL, 0x436ff630UL, 0x54ecfab3UL, 0xfad77f15UL, 0xcc7985efUL, 0x58de52d1UL,
+0x5efd2fdbUL, 0x19ce328fUL, 0x7af96a30UL, 0xf83ef002UL, 0xd59a3199UL, 0x0ffa42c2UL, 0xb0ebe3a7UL, 0x06498ec6UL,
+0x0c23dab8UL, 0x28308280UL, 0xc8f3dedcUL, 0x71b15fd3UL, 0xc81b8a08UL, 0x60c5c0beUL, 0xe8c9a361UL, 0x4df5a8bcUL,
+0xfaef2fc7UL, 0x992e8222UL, 0xb470c582UL, 0x894ed9d8UL, 0xbc341c8bUL, 0xe6161e30UL, 0x79e93b27UL, 0xa6eaffb0UL,
+0xc6b8d961UL, 0x6948b200UL, 0x3fceffb7UL, 0x3b28dc08UL, 0x5af6da43UL, 0x9897e1f7UL, 0x2fb71976UL, 0xa49b1c8fUL,
+0xa03786dcUL, 0xb1d3a716UL, 0xb793c39fUL, 0xeb6e13a7UL, 0x3ec6bcc6UL, 0x4237511aUL, 0xbc2868efUL, 0xd6650352UL,
+0xab776a2dUL, 0x4bed2735UL, 0x16d21f82UL, 0x2e6e5c09UL, 0xfbf292dbUL, 0xcb29ea5eUL, 0xf5925814UL, 0x7f4f5891UL,
+0x7b698354UL, 0xcca86726UL, 0x48601985UL, 0xeaac4b8cUL, 0xd4603883UL, 0xf9e0230dUL, 0x8a7e386cUL, 0x49d2e60aUL,
+0x0c6084b2UL, 0x1d7335d8UL, 0x47c6b1dcUL, 0xea564cacUL, 0xb381bd3eUL, 0xb0ab0e23UL, 0x87bc3864UL, 0xfab1b5f0UL,
+0xb3a25e8fUL, 0x424618fcUL, 0x7a6b030aUL, 0xbd89b04fUL, 0x89a59d64UL, 0x5e4145a3UL, 0x2383035cUL, 0xb93b5d3eUL,
+0x7295d743UL, 0x7cd06d7eUL, 0x1edfdf06UL, 0xefc46c6cUL, 0x39a56071UL, 0x70bebf73UL, 0x05768783UL, 0xf1ec2345UL};
+
+const uint32_t s3[] PROGMEM = {
+0x40c2ef8dUL, 0x9f5dfa25UL, 0xbf3d90ebUL, 0x07c910e8UL, 0xff7f6047UL, 0x4be49f36UL, 0x44c61f8cUL, 0x90caceaeUL,
+0xbff9b1beUL, 0xeacafbeeUL, 0x5019cfe8UL, 0xae07df51UL, 0x06880e92UL, 0x4805adf0UL, 0x838d3ce1UL, 0xd5107092UL,
+0x9f7d1011UL, 0xb97d6407UL, 0xd4e4e3b2UL, 0x5e284f3dUL, 0x20a8afb9UL, 0xe082defaUL, 0x8b2667a0UL, 0x2e797282UL,
+0xc0b23f55UL, 0x2be29a48UL, 0x9497efd4UL, 0xbc3f5e12UL, 0xeefcff21UL, 0xfd1b5b82UL, 0xedc55592UL, 0x40a25712UL,
+0x02831a4eUL, 0xff7fe0baUL, 0xe7468252UL, 0x0e14578eUL, 0xbff77333UL, 0x88819f8cUL, 0xe84efca6UL, 0xa5b582c9UL,
+0xb71dc0a8UL, 0x64c29f57UL, 0x314f0967UL, 0x5f3fbdf2UL, 0xc1f7ff40UL, 0xfc8db71fUL, 0xc1d26b8eUL, 0x9be57b43UL,
+0xbf3db099UL, 0x4bc6dbb5UL, 0xe6c08d63UL, 0x999d8155UL, 0x1cc897a1UL, 0x6e2d014aUL, 0x284a88c5UL, 0x716fc3ccUL,
+0x13c243b8UL, 0xf143076cUL, 0x3c890983UL, 0x5fdded0fUL, 0x50e87f2fUL, 0x7e7fc0d7UL, 0xbf7f5002UL, 0x049afb5aUL,
+0xd0d247a7UL, 0x2e195116UL, 0x3ebf70afUL, 0x8013c358UL, 0x2e30985fUL, 0xc4c37c72UL, 0x02b40f0aUL, 0x82ef7f0fUL,
+0xadfd968cUL, 0xae2a2c5dUL, 0x499ae98eUL, 0xb888da50UL, 0xa0f42784UL, 0x9057ac1eUL, 0x49b46f79UL, 0x15dc5282UL,
+0x9b7dbdefUL, 0x7d5972a6UL, 0xd840a8adUL, 0x0445f545UL, 0x03745dfaUL, 0x05c33ee8UL, 0x1a75914fUL, 0xc2695692UL,
+0x41e9ef23UL, 0x2ef103a9UL, 0xf20d2760UL, 0xb6e47602UL, 0x7465fd94UL, 0xb2857992UL, 0xcbdb7682UL, 0x76817702UL,
+0x8d91aff8UL, 0x9ef7484eUL, 0xdf6d618fUL, 0x0e849de2UL, 0x837d2f84UL, 0xc8e50c34UL, 0x82b6bb96UL, 0x48b1b493UL,
+0xab3c30efUL, 0x28af4f98UL, 0x9baf9f77UL, 0x0d56dc92UL, 0x201e4d22UL, 0x88aa3784UL, 0x96dc297dUL, 0xdcd35627UL,
+0xee7c908bUL, 0x40d21fb5UL, 0xe37cc0e7UL, 0xa1b466e5UL, 0x5e61e9c3UL, 0x9d20f83cUL, 0xe3d19460UL, 0x41a39ccdUL,
+0x0e46765cUL, 0x3b98ea00UL, 0x8178d6d4UL, 0x2c5747fdUL, 0xd9ed6cf7UL, 0x9c22a8bdUL, 0xaaad7d12UL, 0x4e078a43UL,
+0x90c0971fUL, 0x8adb1b08UL, 0xbe7ea093UL, 0x15ca38b9UL, 0xff3cb097UL, 0xf8c0c23dUL, 0xecb21a8dUL, 0x510e3864UL,
+0xfb7bcc68UL, 0x88270fd9UL, 0x81014912UL, 0xd4ffe55dUL, 0x6af87eddUL, 0x14e2a276UL, 0x6803a4b9UL, 0x8f955d92UL,
+0xfaff394bUL, 0xe9ae39baUL, 0x0bd3ffa4UL, 0x3b93f7faUL, 0x2386496dUL, 0xfabc3c19UL, 0x45756227UL, 0x7af45c82UL,
+0xa08bbd61UL, 0xd1421ed1UL, 0xf404adceUL, 0x92a37e12UL, 0xb78d4210UL, 0x72a97282UL, 0xa8c47092UL, 0x0be57d12UL,
+0xc8a15b28UL, 0x4ff4623cUL, 0xa5eac035UL, 0x31d205e8UL, 0xfb298942UL, 0x82dffcb4UL, 0x536ab64fUL, 0x5bc17d0eUL,
+0xab1f081fUL, 0xae188610UL, 0x6d08fdfcUL, 0x8928fff9UL, 0x11cc4b69UL, 0xae5c6a23UL, 0x4dcade12UL, 0xc58c3f2cUL,
+0xfe2dd0d2UL, 0x9658eff8UL, 0xda52cfe4UL, 0x675b1595UL, 0x8c484a49UL, 0x0ca8b6b9UL, 0xbc828f5cUL, 0x456bd389UL,
+0x3794603aUL, 0xa9c900ecUL, 0x53527144UL, 0x494b870aUL, 0x40bc73d7UL, 0x1c67347cUL, 0xf67e7102UL, 0x3655eb4fUL,
+0xff2fd0a2UL, 0xc460bfd2UL, 0xc0033fd4UL, 0x6defb450UL, 0xd18c4707UL, 0x88186e00UL, 0x553fe5a2UL, 0xbcd4e6b9UL,
+0x168004a2UL, 0x33385797UL, 0x677d20d7UL, 0x3d8f0fdeUL, 0x337bf872UL, 0x334fccabUL, 0x5dc58876UL, 0xb0a6007bUL,
+0x01007b94UL, 0xd2750057UL, 0xf888bbf9UL, 0x9e014289UL, 0xffa56442UL, 0xe0026385UL, 0x2bd9db72UL, 0x691b97eeUL,
+0xde2fa26eUL, 0x2bae085fUL, 0x6d617aafUL, 0x6787c9e5UL, 0xd2eb1fcfUL, 0xc2c8ef61UL, 0x7125acf1UL, 0xc23982ccUL,
+0xb84c2167UL, 0xd183e5b1UL, 0x623edcb7UL, 0xcebd107fUL, 0x385c0af9UL, 0x3d44f00fUL, 0xc66d6e60UL, 0x493a5460UL,
+0x48c12757UL, 0x1d8ae92bUL, 0x3817b48aUL, 0x24bee120UL, 0x0fda96afUL, 0x25844568UL, 0xe53b8399UL, 0x7d450d60UL,
+0x50932f28UL, 0x62b33483UL, 0x20111dd9UL, 0xa08d6d2bUL, 0x311e2b64UL, 0x005a309cUL, 0x88e6bc52UL, 0x8a58031bUL,
+0xd5efbaf7UL, 0x9ced4241UL, 0x115c31a4UL, 0xc53e3283UL, 0x3646efdfUL, 0x01c533a1UL, 0x1c53d3e9UL, 0x833735eeUL};
+
+const uint32_t s4[] PROGMEM = {
+0x2004b39dUL, 0xdee9b61fUL, 0xef7bbea7UL, 0x98a273d2UL, 0xdb7b4f4aUL, 0x578cad64UL, 0x43045185UL, 0xd10e02faUL,
+0xff7a287eUL, 0x63b60fe6UL, 0xa1355f09UL, 0x20f1eb79UL, 0x439d05fdUL, 0xb1b79764UL, 0x631f64f3UL, 0xdf4a1e24UL,
+0x5f7f1428UL, 0xcdb8a24fUL, 0x400043c9UL, 0x2022c30cUL, 0x300bd3fdUL, 0x4f37a5c0UL, 0xd9002d1dUL, 0x157b1424UL,
+0x1a114deeUL, 0x6751ca0fUL, 0x4c90ff71UL, 0xfe5f192dUL, 0x5f64051aUL, 0xfefe130cUL, 0xca081b08UL, 0x21011705UL,
+0x00015380UL, 0xfe5e3ee8UL, 0xf8f49aacUL, 0x0127e77fUL, 0x5feeb8d2UL, 0x6142df06UL, 0x8a9b9ebbUL, 0x25ea9372UL,
+0xdfff84ceUL, 0x018871f5UL, 0x044bd63dUL, 0x3b266fa2UL, 0x0084d47eUL, 0xe6eb7e54UL, 0xa04c6d44UL, 0xf5d6f36cUL,
+0xdfab4926UL, 0xf5c7a0aeUL, 0xc18c3336UL, 0x937e3f50UL, 0x612077d3UL, 0xe138b611UL, 0x030e5072UL, 0xbbb20ef8UL,
+0x2e50e0abUL, 0xde778decUL, 0x811e9757UL, 0x46674fe1UL, 0x005433c9UL, 0x8f312069UL, 0x99bb1d08UL, 0xa504c3ffUL,
+0x0518354dUL, 0xe35c3d7fUL, 0xc666c8a6UL, 0xa9cc5b5dUL, 0xea6fecdaUL, 0x916f929fUL, 0x2f22469fUL, 0x7d469139UL,
+0x8e6dbfa5UL, 0x4fc44311UL, 0x02839543UL, 0xeb4e21d0UL, 0xb8832002UL, 0x0c18b63fUL, 0x1e93f818UL, 0xe6581628UL,
+0x3e6e4826UL, 0x708ad78bUL, 0xc1e47774UL, 0x7ce006b5UL, 0x250a2df3UL, 0x028b0979UL, 0x81bbeae4UL, 0x233b1228UL,
+0x38adde69UL, 0x16ca7415UL, 0x621b87dfUL, 0xb7401c21UL, 0xf99e1aa5UL, 0x7b371400UL, 0xc88a1e04UL, 0x03401109UL,
+0xd2e459bdUL, 0xd556d1e3UL, 0xd576e84fUL, 0x40a3912fUL, 0xdee87b55UL, 0xa7e4ea00UL, 0xecc2e50cUL, 0xa6bbb44dUL,
+0xffbd56e7UL, 0xac6933ddUL, 0x35b017ecUL, 0x27235706UL, 0xb0c8af99UL, 0x91c3c856UL, 0x1c81656bUL, 0x1961145eUL,
+0x75cb856eUL, 0x02c007beUL, 0x775532c2UL, 0xecf43f89UL, 0x2dc9bf5bUL, 0x253becd0UL, 0xb71a80b7UL, 0x243b6d8dUL,
+0xef63c720UL, 0xfca566c3UL, 0x8028389cUL, 0x0532ce0aUL, 0x8a54c9aaUL, 0xc7d7a1ecUL, 0x32fa1a04UL, 0x5a62161dUL,
+0x2c900167UL, 0x547a759bUL, 0xf777d431UL, 0x31b02691UL, 0xdb6fcc36UL, 0x468b0bc7UL, 0x486ae6d9UL, 0x795ae556UL,
+0xeb4c6a02UL, 0xff7e4352UL, 0xb4768f2fUL, 0xa580f90dUL, 0xe3cd7486UL, 0xeb04daedUL, 0x04bea917UL, 0xdff4182cUL,
+0x9d7f74b7UL, 0xb4f72aabUL, 0x204dc3efUL, 0x7c6b092eUL, 0x54a24117UL, 0x35a0b6e5UL, 0xf6423d21UL, 0x267c1c2cUL,
+0x0ff5c261UL, 0xf9da5265UL, 0xf831c2d2UL, 0x690f1325UL, 0xa27f16d8UL, 0xc8f21804UL, 0xa6961a00UL, 0xab26150dUL,
+0x215c3163UL, 0xec720a5eUL, 0xfdfeba49UL, 0xd9087918UL, 0x86bd0d8dUL, 0xa7701131UL, 0x0c649b3eUL, 0xd7103eccUL,
+0xb6d3cad5UL, 0x88c3ae0cUL, 0xe10130f7UL, 0xff8a726cUL, 0xa1e2ea71UL, 0x6ef39a1fUL, 0x2fd1cbcfUL, 0x1784dec1UL,
+0x6bbe07acUL, 0xd8a144cbUL, 0x560f9b8bUL, 0xc3883901UL, 0xca2fc5b1UL, 0xcd31beb4UL, 0x062878d8UL, 0xe2a4a312UL,
+0x32e57d6fUL, 0xb67efd58UL, 0x00e91ed0UL, 0xc2ffad24UL, 0xc50f99f4UL, 0xc5aa1197UL, 0x957b1d00UL, 0xd2e7e582UL,
+0xf6739810UL, 0x96306100UL, 0x21952dc3UL, 0xff21a1adUL, 0x15849029UL, 0x7f97bb7fUL, 0xdbb39eafUL, 0x2aedc929UL,
+0x65a4e25cUL, 0x2cf330a7UL, 0xe83faad0UL, 0x91c05c8aUL, 0xe72c9ed4UL, 0xa954e40cUL, 0x86cd0ad6UL, 0x19195f01UL,
+0x03910777UL, 0xf63aa0deUL, 0x5e56a878UL, 0xdf56e3deUL, 0xbe5cf021UL, 0x87e3758bUL, 0x5106c5b3UL, 0xefc3a5b8UL,
+0xd2b6eed8UL, 0x77be23e5UL, 0x294515c2UL, 0xdfef692fUL, 0xfb7ae6afUL, 0xb2c470f4UL, 0x5bebe0f3UL, 0x7698ccd6UL,
+0x0c46e439UL, 0x3885da1fUL, 0x2f838719UL, 0x677300caUL, 0xf84491a9UL, 0x9e296b29UL, 0x95c22f49UL, 0xabbe6692UL,
+0x696e67b5UL, 0xdaddd39bUL, 0x2f057edfUL, 0x1c7025dbUL, 0xee515e1bUL, 0xe62453f6UL, 0x6ce3fc6aUL, 0x04cc1603UL,
+0x3e214486UL, 0xd059dcb7UL, 0x1f296579UL, 0x43fdd6ccUL, 0x79398241UL, 0xf6cd2b93UL, 0x4dc357b6UL, 0x82d2df4eUL,
+0x0c29e57aUL, 0x6b53b93cUL, 0xfe201e85UL, 0x7e553398UL, 0xb0f0ec13UL, 0x72b3ffd3UL, 0xc1c5853fUL, 0xd27eef0aUL};
+
+#endif
+
diff --git a/cast6/cast6-sbox.h b/cast6/cast6-sbox.h
new file mode 100644 (file)
index 0000000..b9e7adf
--- /dev/null
@@ -0,0 +1,40 @@
+/* cast6-sbox.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:       cast6-sbox.h
+ * Author:     Daniel Otte
+ * Date:       26.07.2006
+ * License: GPL
+ * Description: sboxes for CAST6 (aka CAST-256) cipher algorithm as described in RFC 2612.
+ * 
+ */
+#ifndef CAST6_SBOX_H_
+#define CAST6_SBOX_H_
+
+#include <avr/pgmspace.h>
+#include <stdint.h>
+
+extern const uint32_t s1[] ;
+extern const uint32_t s2[] ;
+extern const uint32_t s3[] ;
+extern const uint32_t s4[] ;
+
+#endif
+
index c4922fc9465b2fc1f9c890ee8d03ddc31f0cf8a9..5fc7684cd01424d0a7067652b736a6ed36d72d19 100644 (file)
@@ -11,7 +11,7 @@
 #include <string.h>
 #include <avr/pgmspace.h>
 #include "cast6.h"
-#include "cast6_sboxes.h"
+#include "cast6-sbox.h"
 
 #define CHANGE_ENDIAN32(x) (((x)<<24 | (x)>>24 | ((x)&0xff00)<<8 | ((x)&0xff0000)>>8)&0xffffffff)
 
@@ -255,10 +255,10 @@ void cast6_init(const void* key, uint16_t keysize_b, cast6_ctx_t* ctx){
                        ctx->km[j][1]=F;
                        ctx->km[j][2]=D;
                        ctx->km[j][3]=B;
-                       set_kr((uint8_t)A,j*4+0,ctx);
-                       set_kr((uint8_t)C,j*4+1,ctx);
-                       set_kr((uint8_t)E,j*4+2,ctx);
-                       set_kr((uint8_t)G,j*4+3,ctx);
+                       set_kr(buffer[0*4],j*4+0,ctx);
+                       set_kr(buffer[2*4],j*4+1,ctx);
+                       set_kr(buffer[4*4],j*4+2,ctx);
+                       set_kr(buffer[6*4],j*4+3,ctx);
                }
        }
 }
index 4794b4b50e2b1595d4d7263e1187208229109924..18cd76a54bf7a10cb0943959f70eb2bd9e3d87dd 100644 (file)
@@ -20,7 +20,7 @@
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
-uint8_t cscipher_sbox[] PROGMEM = {
+const uint8_t cscipher_sbox[] PROGMEM = {
        0x29, 0x0d, 0x61, 0x40, 0x9c, 0xeb, 0x9e, 0x8f, 0x1f, 0x85, 0x5f, 0x58, 0x5b, 0x01, 0x39, 0x86,
        0x97, 0x2e, 0xd7, 0xd6, 0x35, 0xae, 0x17, 0x16, 0x21, 0xb6, 0x69, 0x4e, 0xa5, 0x72, 0x87, 0x08,
        0x3c, 0x18, 0xe6, 0xe7, 0xfa, 0xad, 0xb8, 0x89, 0xb7, 0x00, 0xf7, 0x6f, 0x73, 0x84, 0x11, 0x63,
index 220bcc9247fca9b62f2849b3fa4d79ed9977b722..640bcf271bb373408f08d61436d82bf276dc8c67 100644 (file)
@@ -57,11 +57,11 @@ uint8_t p(uint8_t a){
 #define P(a) pgm_read_byte(cscipher_sbox+(a))
 #endif
 
-static uint8_t round_const[] PROGMEM = {
+static const uint8_t round_const[] PROGMEM = {
        0xb7, 0xe1, 0x51, 0x62, 0x8a, 0xed, 0x2a, 0x6a,
        0xbf, 0x71, 0x58, 0x80, 0x9c, 0xf4, 0xf3, 0xc7 };
 
-static uint8_t ks_const[] PROGMEM = {
+static const uint8_t ks_const[] PROGMEM = {
        0x29,0x0d,0x61,0x40,0x9c,0xeb,0x9e,0x8f,
        0x1f,0x85,0x5f,0x58,0x5b,0x01,0x39,0x86,
        0x97,0x2e,0xd7,0xd6,0x35,0xae,0x17,0x16,
index 0b993c07a48d6db5e2f2ceb949648a7ba94659c4..2b30b01d911bcd26b9d5cbac4f9d9f65213fccf6 100644 (file)
--- a/des/des.c
+++ b/des/des.c
@@ -1,7 +1,7 @@
 /* des.c */
 /*
-    This file is part of the AVR-Crypto-Lib.
-    Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
+    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
  * \license     GPLv3 or later
  * 
  */
-#include "config.h"
-#include "debug.h"
-#include "cli.h"
 #include <stdint.h>
 #include <string.h>
-#include <util/delay.h>
 #include <avr/pgmspace.h>
 
-prog_uint8_t sbox[256]  = {
+const uint8_t sbox[256] PROGMEM = {
   /* S-box 1 */
   0xE4, 0xD1, 0x2F, 0xB8, 0x3A, 0x6C, 0x59, 0x07,
   0x0F, 0x74, 0xE2, 0xD1, 0xA6, 0xCB, 0x95, 0x38,
@@ -76,7 +72,7 @@ prog_uint8_t sbox[256]  = {
   0x21, 0xE7, 0x4A, 0x8D, 0xFC, 0x90, 0x35, 0x6B
 };
 
-prog_uint8_t e_permtab[] ={ 
+const uint8_t e_permtab[] PROGMEM = {
         4,  6,                                         /* 4 bytes in 6 bytes out*/
        32,  1,  2,  3,  4,  5,
         4,  5,  6,  7,  8,  9,
@@ -88,7 +84,7 @@ prog_uint8_t e_permtab[] ={
        28, 29, 30, 31, 32,  1
 };
 
-prog_uint8_t p_permtab[] ={ 
+const uint8_t p_permtab[] PROGMEM = {
         4,  4,                                         /* 32 bit -> 32 bit */
        16,  7, 20, 21,
        29, 12, 28, 17,
@@ -100,7 +96,7 @@ prog_uint8_t p_permtab[] ={
        22, 11,  4, 25
 };
 
-prog_uint8_t ip_permtab[] ={ 
+const uint8_t ip_permtab[] PROGMEM = {
         8,  8,                                         /* 64 bit -> 64 bit */
        58, 50, 42, 34, 26, 18, 10, 2,
        60, 52, 44, 36, 28, 20, 12, 4,
@@ -112,7 +108,7 @@ prog_uint8_t ip_permtab[] ={
        63, 55, 47, 39, 31, 23, 15, 7
 };
 
-prog_uint8_t inv_ip_permtab[] ={ 
+const uint8_t inv_ip_permtab[] PROGMEM = {
         8, 8,                                          /* 64 bit -> 64 bit */
        40, 8, 48, 16, 56, 24, 64, 32,
        39, 7, 47, 15, 55, 23, 63, 31,
@@ -124,7 +120,7 @@ prog_uint8_t inv_ip_permtab[] ={
        33, 1, 41,  9, 49, 17, 57, 25
 };
 
-prog_uint8_t pc1_permtab[] ={ 
+const uint8_t pc1_permtab[] PROGMEM = {
         8,  7,                                         /* 64 bit -> 56 bit*/
        57, 49, 41, 33, 25, 17,  9,
         1, 58, 50, 42, 34, 26, 18,
@@ -136,7 +132,7 @@ prog_uint8_t pc1_permtab[] ={
        21, 13,  5, 28, 20, 12,  4
 };
 
-prog_uint8_t pc2_permtab[] ={ 
+const uint8_t pc2_permtab[] PROGMEM = {
         7,      6,                                     /* 56 bit -> 48 bit */
        14, 17, 11, 24,  1,  5,
         3, 28, 15,  6, 21, 10,
@@ -148,7 +144,7 @@ prog_uint8_t pc2_permtab[] ={
        46, 42, 50, 36, 29, 32
 };
 
-prog_uint8_t splitin6bitword_permtab[] = {
+const uint8_t splitin6bitword_permtab[] PROGMEM = {
         8,  8,                                         /* 64 bit -> 64 bit */
        64, 64,  1,  6,  2,  3,  4,  5, 
        64, 64,  7, 12,  8,  9, 10, 11, 
@@ -160,7 +156,7 @@ prog_uint8_t splitin6bitword_permtab[] = {
        64, 64, 43, 48, 44, 45, 46, 47 
 };
 
-prog_uint8_t shiftkey_permtab[] = {
+const uint8_t shiftkey_permtab[] PROGMEM = {
         7,  7,                                         /* 56 bit -> 56 bit */
         2,  3,  4,  5,  6,  7,  8,  9,
        10, 11, 12, 13, 14, 15, 16, 17,
@@ -172,7 +168,7 @@ prog_uint8_t shiftkey_permtab[] = {
        54, 55, 56, 29
 };
 
-prog_uint8_t shiftkeyinv_permtab[] = {
+const uint8_t shiftkeyinv_permtab[] PROGMEM = {
         7,  7,
        28,  1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14, 15,
@@ -207,17 +203,16 @@ prog_uint8_t shiftkeyinv_permtab[] = {
 #define ROTTABLE_INV  0x3F7E
 /******************************************************************************/
 
-void permute(prog_uint8_t *ptable, const uint8_t *in, uint8_t *out){
-       uint8_t ib, ob; /* in-bytes and out-bytes */
+void permute(const uint8_t *ptable, const uint8_t *in, uint8_t *out){
+       uint8_t ob; /* in-bytes and out-bytes */
        uint8_t byte, bit; /* counter for bit and byte */
-       ib = pgm_read_byte(&(ptable[0]));
-       ob = pgm_read_byte(&(ptable[1]));
+       ob = pgm_read_byte(&ptable[1]);
        ptable = &(ptable[2]);
        for(byte=0; byte<ob; ++byte){
                uint8_t x,t=0;
                for(bit=0; bit<8; ++bit){
-                       x=pgm_read_byte(&(ptable[byte*8+bit])) -1 ;
-                               t<<=1;
+                       x = pgm_read_byte(ptable++) -1 ;
+                               t <<= 1;
                        if((in[x/8]) & (0x80>>(x%8)) ){
                                t|=0x01;
                        }
@@ -240,7 +235,7 @@ static inline
 void shiftkey(uint8_t *key){
        uint8_t k[7];
        memcpy(k, key, 7);
-       permute((prog_uint8_t*)shiftkey_permtab, k, key);       
+       permute((uint8_t*)shiftkey_permtab, k, key);    
 }
 
 /******************************************************************************/
@@ -248,7 +243,7 @@ static inline
 void shiftkey_inv(uint8_t *key){
        uint8_t k[7];
        memcpy(k, key, 7);
-       permute((prog_uint8_t*)shiftkeyinv_permtab, k, key);
+       permute((uint8_t*)shiftkeyinv_permtab, k, key);
        
 }
 
@@ -257,16 +252,16 @@ static inline
 uint64_t splitin6bitwords(uint64_t a){
        uint64_t ret=0;
        a &= 0x0000ffffffffffffLL;
-       permute((prog_uint8_t*)splitin6bitword_permtab, (uint8_t*)&a, (uint8_t*)&ret);  
+       permute((uint8_t*)splitin6bitword_permtab, (uint8_t*)&a, (uint8_t*)&ret);       
        return ret;
 }
 
 /******************************************************************************/
 
 static inline
-uint8_t substitute(uint8_t a, prog_uint8_t * sbp){
+uint8_t substitute(uint8_t a, uint8_t * sbp){
        uint8_t x;      
-       x = pgm_read_byte(&(sbp[a>>1]));
+       x = pgm_read_byte(&sbp[a>>1]);
        x = (a&1)?x&0x0F:x>>4;
        return x;
        
@@ -278,24 +273,24 @@ uint32_t des_f(uint32_t r, uint8_t* kr){
        uint8_t i;
        uint32_t t=0,ret;
        uint64_t data;
-       prog_uint8_t *sbp; /* sboxpointer */ 
-       permute((prog_uint8_t*)e_permtab, (uint8_t*)&r, (uint8_t*)&data);
+       uint8_t *sbp; /* sboxpointer */ 
+       permute((uint8_t*)e_permtab, (uint8_t*)&r, (uint8_t*)&data);
        for(i=0; i<7; ++i)
                ((uint8_t*)&data)[i] ^= kr[i];
        
        /* Sbox substitution */
        data = splitin6bitwords(data);
-       sbp=(prog_uint8_t*)sbox;
+       sbp=(uint8_t*)sbox;
        for(i=0; i<8; ++i){
                uint8_t x;
                x = substitute(((uint8_t*)&data)[i], sbp);
-               t<<=4;
+               t <<= 4;
                t |= x;
                sbp += 32;
        }
        changeendian32(&t);
                
-       permute((prog_uint8_t*)p_permtab,(uint8_t*)&t, (uint8_t*)&ret);
+       permute((uint8_t*)p_permtab,(uint8_t*)&t, (uint8_t*)&ret);
 
        return ret;
 }
@@ -303,25 +298,29 @@ uint32_t des_f(uint32_t r, uint8_t* kr){
 /******************************************************************************/
 
 void des_enc(void* out, const void* in, const void* key){
-#define R *((uint32_t*)&(data[4]))
-#define L *((uint32_t*)&(data[0]))
+#define R (data.v32[1])
+#define L (data.v32[0])
 
-       uint8_t data[8],kr[6],k[7];
+       uint8_t kr[6],k[7];
        uint8_t i;
+       union {
+               uint8_t v8[8];
+               uint32_t v32[2];
+       } data;
        
-       permute((prog_uint8_t*)ip_permtab, (uint8_t*)in, data);
-       permute((prog_uint8_t*)pc1_permtab, (uint8_t*)key, k);
+       permute((uint8_t*)ip_permtab, (uint8_t*)in, data.v8);
+       permute((uint8_t*)pc1_permtab, (const uint8_t*)key, k);
        for(i=0; i<8; ++i){
                shiftkey(k);
                if(ROTTABLE&((1<<((i<<1)+0))) )
                        shiftkey(k);
-               permute((prog_uint8_t*)pc2_permtab, k, kr);
+               permute((uint8_t*)pc2_permtab, k, kr);
                L ^= des_f(R, kr);
                
                shiftkey(k);
                if(ROTTABLE&((1<<((i<<1)+1))) )
                        shiftkey(k);
-               permute((prog_uint8_t*)pc2_permtab, k, kr);
+               permute((uint8_t*)pc2_permtab, k, kr);
                R ^= des_f(L, kr);
 
        }
@@ -329,31 +328,30 @@ void des_enc(void* out, const void* in, const void* key){
        R ^= L;
        L ^= R;
        R ^= L;
-       
-       permute((prog_uint8_t*)inv_ip_permtab, data, (uint8_t*)out);
+       permute((uint8_t*)inv_ip_permtab, data.v8, (uint8_t*)out);
 }
 
 /******************************************************************************/
 
 void des_dec(void* out, const void* in, const uint8_t* key){
-#define R *((uint32_t*)&(data[4]))
-#define L *((uint32_t*)&(data[0]))
-
-       uint8_t data[8],kr[6],k[7];
+       uint8_t kr[6],k[7];
+       union {
+               uint8_t v8[8];
+               uint32_t v32[2];
+       } data;
        int8_t i;
-       
-       permute((prog_uint8_t*)ip_permtab, (uint8_t*)in, data);
-       permute((prog_uint8_t*)pc1_permtab, (uint8_t*)key, k);
+       permute((uint8_t*)ip_permtab, (uint8_t*)in, data.v8);
+       permute((uint8_t*)pc1_permtab, (const uint8_t*)key, k);
        for(i=7; i>=0; --i){
                
-               permute((prog_uint8_t*)pc2_permtab, k, kr);
+               permute((uint8_t*)pc2_permtab, k, kr);
                L ^= des_f(R, kr);
                shiftkey_inv(k);
                if(ROTTABLE&((1<<((i<<1)+1))) ){
                        shiftkey_inv(k);
                }
 
-               permute((prog_uint8_t*)pc2_permtab, k, kr);
+               permute((uint8_t*)pc2_permtab, k, kr);
                R ^= des_f(L, kr);
                shiftkey_inv(k);
                if(ROTTABLE&((1<<((i<<1)+0))) ){
@@ -365,8 +363,7 @@ void des_dec(void* out, const void* in, const uint8_t* key){
        R ^= L;
        L ^= R;
        R ^= L;
-       
-       permute((prog_uint8_t*)inv_ip_permtab, data, (uint8_t*)out);
+       permute((uint8_t*)inv_ip_permtab, data.v8, (uint8_t*)out);
 }
 
 /******************************************************************************/
index fe31e53d71272788cdce9713af1e993ebe0bc0a7..4a7955f6b9ecf45ccdfa334ce6f351b9e09d6c66 100644 (file)
@@ -37,7 +37,7 @@
 #define ALL_LEN_B (PRIV_LEN_B+PUB_LEN_B+P_LEN_B+Q_LEN_B+G_LEN_B)
 
 
-static uint8_t dsa_key_blob[] PROGMEM = {
+static const uint8_t dsa_key_blob[] PROGMEM = {
 
 //     priv:
        0xac, 0xe6, 0xef, 0x99, 0x08, 0xe8, 0x5f, 0xc8,
@@ -87,7 +87,7 @@ static uint8_t dsa_key_blob[] PROGMEM = {
 #define G_LEN_B (16*8)
 #define ALL_LEN_B (PRIV_LEN_B+PUB_LEN_B+P_LEN_B+Q_LEN_B+G_LEN_B)
 
-static uint8_t dsa_key_blob[] PROGMEM = {
+static const uint8_t dsa_key_blob[] PROGMEM = {
        // priv:
        0x03, 0xad, 0x17, 0x81, 0x0f, 0x70, 0x7f, 0x89,
        0xa2, 0x0a, 0x70, 0x1c, 0x3b, 0x24, 0xff, 0xd2,
@@ -159,7 +159,7 @@ static uint8_t dsa_key_blob[] PROGMEM = {
 #define G_LEN_B (32*8)
 #define ALL_LEN_B (PRIV_LEN_B+PUB_LEN_B+P_LEN_B+Q_LEN_B+G_LEN_B)
 
-static uint8_t dsa_key_blob[] PROGMEM = {
+static const uint8_t dsa_key_blob[] PROGMEM = {
 /* priv: */
        0x1d, 0xe4, 0x81, 0x02, 0x52, 0x6b, 0x2b, 0x0e,
        0x98, 0x08, 0xc8, 0xb9, 0x81, 0x40, 0xd1, 0x1e,
index 2380865f08fa62be0450f9144eb1561af6064990..2db1dc4d5819b09c325ba34ff201d241293861fe 100644 (file)
@@ -69,8 +69,8 @@ CTR = 24
  * param state:  r24:r25
  * param ks:     r22:r23
  */
-.global aes_encrypt_round
-aes_encrypt_round:
+.global aes_enc_round
+aes_enc_round:
        push_range 2, 17
        push r28
        push r29
index 98ee47c771d51439f5a8dcdf577ac50c71657df0..6fbbbd8efe92918a2ac5dafe63939a11e597cef8 100644 (file)
@@ -21,6 +21,7 @@
 #include "echo.h"
 #include "gf256mul.h"
 #include "memxor.h"
+#include "aes_enc_round.h"
 #include <stdint.h>
 #include <string.h>
 
@@ -35,7 +36,6 @@
 #include "cli.h"
 #endif
 
-void aes_encrypt_round(void* state, void* key);
 
 #define INDEX(c,r) ((c)*16*4+(r)*16)
 
@@ -93,12 +93,15 @@ static void dump_state(void* s){
 
 static void echo_compress(uint8_t* s, uint8_t iterations, uint64_t* c, void* salt){
        uint8_t i, j;
-       uint8_t k[16];
+       union {
+               uint8_t v8[16];
+               uint64_t v64[2];
+       } k;
 #if DEBUG
        uint8_t round=0;
 #endif
-       memcpy(k, c, 8);
-       memset(k+8, 0, 8);
+       memcpy(k.v8, c, 8);
+       memset(k.v8+8, 0, 8);
        do{
                /* BIG.SubWords */
 #if DEBUG
@@ -110,9 +113,9 @@ static void echo_compress(uint8_t* s, uint8_t iterations, uint64_t* c, void* sal
        }
 #endif
                for(i=0; i<16; ++i){
-                       aes_encrypt_round(s+16*i, k);
-                       aes_encrypt_round(s+16*i, salt);
-                       *((uint64_t*)(k)) += 1;
+                       aes_enc_round((aes_cipher_state_t*)(s+16*i), (aes_roundkey_t*)k.v8);
+                       aes_enc_round((aes_cipher_state_t*)(s+16*i), (aes_roundkey_t*)salt);
+                       k.v64[0] += 1;
                }
 #if DEBUG
                if(round<DEBUG_DEPTH){
index 81117ed99524e7c000580fb0d5eef964a002abe8..ff6b97de41b46b689c211635d0d9613d557bca36 100644 (file)
 #define _B(i) (((ctx->nfsr[9-((i)/8)])>>(7-((i)%8)))&1)
 
 
-uint8_t h_lut[4] PROGMEM = {0x4C, 0xB6, 0xD3, 0x26};
+const uint8_t h_lut[4] PROGMEM = {0x4C, 0xB6, 0xD3, 0x26};
 
 #ifdef GRAIN_BADOPTIMISATION
-uint8_t g_lut[128] PROGMEM = {
+const uint8_t g_lut[128] PROGMEM = {
         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, 
index 0812683357c2f33fb57307b701e4e5b0629a0c7a..f7f5eea14ccf622147fa356e4655871d507bb20c 100644 (file)
@@ -54,7 +54,7 @@
  #define dump_m(m)
 #endif
 
-static uint8_t matrix[] PROGMEM = {
+static const uint8_t matrix[] PROGMEM = {
  2, 2, 3, 4, 5, 3, 5, 7,
  7, 2, 2, 3, 4, 5, 3, 5,
  5, 7, 2, 2, 3, 4, 5, 3,
index 87156cfab4d2e2d773c7df3c145750edd266ba4a..243bc995be63736f6eaeb05631accfefbe8e438c 100644 (file)
@@ -54,7 +54,7 @@
  #define dump_m(m)
 #endif
 
-static uint8_t matrix[] PROGMEM = {
+static const uint8_t matrix[] PROGMEM = {
  2, 2, 3, 4, 5, 3, 5, 7,
  7, 2, 2, 3, 4, 5, 3, 5,
  5, 7, 2, 2, 3, 4, 5, 3,
index 7188d0ec92102873b330aaa40c2ba01572fad926..be21078e0ca775cb364ef1bd0e10aa8fea23eb6d 100644 (file)
@@ -48,7 +48,7 @@ void hfal_nessie(const hfdesc_t* hd){
        nessie_hash_run();
 }
 
-void hfal_nessie_multiple(const hfdesc_t** hd_list){
+void hfal_nessie_multiple(const hfdesc_t* const* hd_list){
        const hfdesc_t* hd;
        for(;;){
                hd = (void*)pgm_read_word(hd_list);
index e9be131a8790c5efcd3386cb99e2db9f1030b62e..c06db33c7bca15d1ad2eff2e2329193c31e25c46 100644 (file)
@@ -31,6 +31,6 @@
 #include "hashfunction_descriptor.h"
 
 void hfal_nessie(const hfdesc_t* hd);
-void hfal_nessie_multiple(const hfdesc_t** hd_list);
+void hfal_nessie_multiple(const hfdesc_t* const* hd_list);
 
 #endif /* HFAL_NESSIE_H_ */
index 5371f80d9f255594524fee8023a3eb37e3b9a9ad..a0fd1fd30bc8607120900b8d8c51c7b30fac8a42 100644 (file)
@@ -203,7 +203,7 @@ void hfal_stacksize(const hfdesc_t* hd){
        }
 }
 
-void hfal_performance_multiple(const hfdesc_t** hd_list){
+void hfal_performance_multiple(const hfdesc_t* const* hd_list){
        const hfdesc_t* hd;
        for(;;){
                hd = (void*)pgm_read_word(hd_list);
index 65b0473e8c7b7144f7783c80d6a6797ae25cb9bc..b8de940b45852471680d87e4a252266935d072cb 100644 (file)
@@ -31,5 +31,5 @@
 #include "hashfunction_descriptor.h"
 
 void hfal_performance(const hfdesc_t* hd);
-void hfal_performance_multiple(const hfdesc_t** hd_list);
+void hfal_performance_multiple(const hfdesc_t* const* hd_list);
 #endif /* HFAL_PERFORMANCE_H_ */
index 8b3f940c5be60f7b5c85d7ad02fb7902f038b825..9d60a4a82551fbee4f0f4549bb37ba64329786ea 100644 (file)
 require 'rubygems'
 require 'serialport'
 
+$debug = false
+
 def read_line(error_msg=true)
-  s = $sp.gets()
-  if s==nil
-    puts("ERROR: read timeout!\n") if error_msg
-       return nil
-  end  
-  s.gsub(/\006/, '');  
+  begin
+    i = $extended_wait
+    begin
+      s = $sp.gets()
+      i -= 1
+    end while !s && i > 0
+    if s==nil
+      puts("ERROR: read timeout!\n") if error_msg
+      return nil
+    end
+  putc('.') if s.include?(6.chr)       
+  puts(s.inspect) if $debug
+  end while s == 6.chr
+  s.gsub(/\006/, '')
 end
 
 def readTestVector(param)
@@ -112,8 +122,8 @@ param=(ARGV.size>=7)?ARGV[6]:"";
 puts("\nPort: "+ARGV[0]+ "@"+ARGV[1]+" "+ARGV[2]+"N"+ARGV[3]+"\n");
 $linewidth = 16
 $sp = SerialPort.new(ARGV[0], ARGV[1].to_i, ARGV[2].to_i, ARGV[3].to_i, SerialPort::NONE);
-$sp.read_timeout=1000; # 1 secound
-$extended_wait=100;
+$sp.read_timeout=1000; # 1 second
+$extended_wait=10;
 $sp.write(command);
 
 if(readTestVector(param)==false)
index 33eb4a383447dcb67cf10f6d0d6e663abef45dad..d2ed46ad43c6d68fd258d487b0cd15bd494fdc03 100644 (file)
 def skip_header(file)
   begin
     l = file.gets().strip
+    l = '' if !l
   end until /[*]{10,}.*/.match(l)
   begin
     l = file.gets().strip
+    l = '' if !l
   end until /[*]{10,}.*/.match(l)
   begin
     l = file.gets().strip
+    l = '' if !l
   end until /[=]{5,}.*/.match(l)
   begin
     l = file.gets().strip
+    l = '' if !l
   end until /[=]{5,}.*/.match(l)
 end
 
index ab901927b4f5a4ec2bb4eec7d92f4506d05e8303..3c06e2f966f8bd0ab4f42786c11845b75668c551 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/ruby
 # shavs_test.rb
 =begin
-    This file is part of the AVR-Crypto-Lib.
+    This file is part of the ARM-Crypto-Lib.
     Copyright (C) 2008, 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
@@ -24,7 +24,7 @@ require 'rubygems'
 require 'serialport'
 require 'getopt/std'
 
-$buffer_size = 0
+$buffer_size = 0 # set automatically in init_system
 $conffile_check = Hash.new
 $conffile_check.default = 0
 
@@ -48,7 +48,7 @@ def readconfigfile(fname, conf)
          conf[m[1]] = Hash.new
          next
        end
-       next if not /=/.match(line)
+       next if ! /=/.match(line)
        m=/[\s]*([^\s]*)[\s]*=[\s]*([^\s]*)/.match(line)
        if m[1]=="include"
          Dir.glob(m[2]){ |fn| conf = readconfigfile(fn, conf) }
@@ -104,6 +104,7 @@ def init_system(algo_select)
     line=$sp.gets()
   end while not m=/buffer_size[\s]*=[\s]*0x([0-9A-Fa-f]*)/.match(line)
   $buffer_size = m[1].to_i(16)
+  printf("buffer_size = %d\n", $buffer_size)
 end
 
 ################################################################################
@@ -113,8 +114,9 @@ end
 def get_md
   begin
     line = $sp.gets()
+        puts("DBG got: " + line.inspect) if $debug
        line = "" if line==nil
-       puts("DBG got: "+line) if $debug
+   #   puts("DBG got: "+line) if $debug
   end while not /[\s]*MD[\s]*=.*/.match(line)
   return line
 end
@@ -122,21 +124,48 @@ end
 ################################################################################
 # send_md                                                                      #
 ################################################################################
-
+=begin
 def send_md(md_string)
   $sp.print("Msg = ")
   for i in 0..md_string.length-1
     $sp.print(md_string[i].chr)
-#      print("DBG s: "+ md_string[i].chr) if $debug
-#   sleep(0.001)
-       if((i%($buffer_size*2)==0)&&(i!=0))
-         begin
-               line=$sp.gets()
-         end while not /\./.match(line)
-       end
+         if((i%($buffer_size*2)==0)&&(i!=0))
+           begin
+                   line=$sp.gets()
+           end while not /\./.match(line)
+         end
+  end
+end
+=end
+def send_md(md_string)
+#  puts 'DBG: send_md; md_string.length = '+md_string.length.to_s+'; buffer_size = '+$buffer_size.to_s
+  bs = $buffer_size*2
+  $sp.print("Msg = ")
+  $sp.print(md_string[0])
+  md_string = md_string[1..-1]
+  for i in 0..((md_string.length)/bs)
+#    puts 'DBG bulk send'
+    if(md_string.length-i*bs<=bs)
+ #     puts "DBG: i="+i.to_s()
+      t = md_string[(i*bs)..-1]
+      printf("sending final %d chars: %s\n", t.length, t[-10..-1]) if $debug
+      $sp.print(t) 
+      return
+    end
+    t = md_string[(i*bs)..((i+1)*bs-1)]
+    printf("sending %d chars: %s\n", t.length, t[-10..-1]) if $debug
+    $sp.print(t)
+    sleep(0.1)
+    print("going to wait ... : ") if $debug
+    begin
+     line=$sp.gets()
+     puts(line.inspect) if $debug
+     line='' if !line
+    end while ! /\./.match(line) 
   end
 end
 
+
 ################################################################################
 # run_test                                                                     #
 ################################################################################
@@ -169,14 +198,16 @@ def run_test(filename, skip=0)
        $sp.print(lb.strip)
        $sp.print("\r")
     begin
-         lb=file.gets()
+           lb=file.gets()
     end while not (file.eof or (m=/[\s]*Msg[\s]*=[\s]*([0-9a-fA-F]*)/.match(lb)))
     return if file.eof
     puts("DBG sending: "+lb) if $debug
        send_md(m[1])
+    puts("DBG sending [done] getting...") if $debug
        avr_md = get_md()
+    puts("DBG getting [done]") if $debug
     begin
-         lb=file.gets()
+           lb=file.gets()
     end while not /[\s]*MD[\s]*=.*/.match(lb)
        a = (/[\s]*MD[\s]*=[\s]*([0-9a-fA-F]*).*/.match(lb))[1];
        b = (/[\s]*MD[\s]*=[\s]*([0-9a-fA-F]*).*/.match(avr_md))[1];
@@ -204,8 +235,19 @@ end
 ################################################################################
 # MAIN                                                                         #
 ################################################################################
-
-opts = Getopt::Std.getopts("s:f:i:j:hdca")
+#
+# Options:
+#  -s {algo_letter} run only specified algos
+#  -f <file>        also read config from <file>
+#  -i <n>           skip until test nr. <n>
+#  -j <n>           start with testfile <n>
+#  -o               use just one testfile
+#  -h ???
+#  -d               enable debug mode
+#  -c ???
+#  -a ???
+
+opts = Getopt::Std.getopts("s:f:i:j:hdcao")
 
 conf = Hash.new
 conf = readconfigfile("/etc/testport.conf", conf)
@@ -265,16 +307,16 @@ algo_tasks.each do |algoa|
     puts("No test-set defined for #{algo} \r\n")
     next
   else
-       i=0
-       i = opts["j"] if opts["j"]
-       logfile=File.open(conf["PORT"]["testlogbase"]+algo+".txt", "a")
-       while conf[algo]["file_#{i}"] != nil
-         puts("Testing #{algo} with #{conf[algo]["file_#{i}"]}")
-         reset_system()
-         init_system(algoa[1])
-         skip=0
-         skip=opts["i"].to_i if opts["i"]
-         nerrors=run_test(conf[algo]["file_#{i}"], skip)
+    i=0
+    i = opts["j"].to_i if opts["j"]
+    logfile=File.open(conf["PORT"]["testlogbase"]+algo+".txt", "a")
+    while conf[algo]["file_#{i}"] != nil
+      puts("Testing #{algo} with #{conf[algo]["file_#{i}"]}")
+      reset_system()
+      init_system(algoa[1])
+      skip=0
+      skip=opts["i"].to_i if opts["i"]
+      nerrors=run_test(conf[algo]["file_#{i}"], skip)
       if nerrors == 0
         puts("\n[ok]")
         logfile.puts("[ok] "+conf[algo]["file_#{i}"]+ " ("+Time.now.to_s()+")")
@@ -282,7 +324,8 @@ algo_tasks.each do |algoa|
         puts("\n[errors: "+ nerrors.to_s() +"]")
         logfile.puts("[error] "+nerrors.to_s+" "+conf[algo]["file_#{i}"]+ " ("+Time.now.to_s()+")")
       end
-      i += 1
+      i = i+1
+      break if opts["o"]
     end
     logfile.close()
   end
index 907d48afdccc251ac3c0168e3748a3ec3002ab28..5e5fe4f20b969709a8c1732ab684df51615b0d9b 100644 (file)
 #include "cli.h"
 #endif
 
-static uint8_t sbox0[] PROGMEM =
+const static uint8_t sbox0[] PROGMEM =
        {  9,  0,  4, 11, 13, 12,  3, 15,  1, 10,  2,  6,  7,  5,  8, 14 };
-static uint8_t sbox1[] PROGMEM =
+const static uint8_t sbox1[] PROGMEM =
        {  3, 12,  6, 13,  5,  7,  1,  9, 15,  2,  0,  4, 11, 10, 14,  8 };
 
-static uint8_t round_const_0[] PROGMEM = {
+const static uint8_t round_const_0[] PROGMEM = {
   0x6a, 0x09, 0xe6, 0x67, 0xf3, 0xbc, 0xc9, 0x08,
   0xb2, 0xfb, 0x13, 0x66, 0xea, 0x95, 0x7d, 0x3e,
   0x3a, 0xde, 0xc1, 0x75, 0x12, 0x77, 0x50, 0x99,
@@ -52,7 +52,7 @@ uint8_t jh_l(uint8_t v, uint8_t w){
 static
 void jh_round(uint8_t* a, const uint8_t* rc){
        uint8_t b[128];
-       uint8_t i,r,x,y;
+       uint8_t i,r=0,x,y;
        for(i=0; i<128; ++i){
                if(i%4==0){
                        r = rc[i/4];
index 94c029ce98cce9b28acc1fb3c66263251971d417..55fbefff33011f86c20ab8aa796c654837fd88c2 100644 (file)
@@ -34,7 +34,7 @@
 static
 void jh_round(uint8_t* a, uint8_t roundno){
        uint8_t b[128];
-       uint8_t i,r,u,v,x,y;
+       uint8_t i,r=0,u,v,x,y;
        uint8_t *pr;
        pr = jh_round_const + 32*roundno;
        for(i=0; i<128; ++i){
@@ -63,6 +63,7 @@ void jh_round(uint8_t* a, uint8_t roundno){
        }
 }
 
+/*
 static
 uint8_t jh_l_inv(uint8_t a){
        uint8_t v,w;
@@ -72,6 +73,7 @@ uint8_t jh_l_inv(uint8_t a){
        w ^= ((v<<1)^(v>>3)^((v>>2)&2))&0xf;
        return w|(v<<4);
 }
+*/
 
 static inline
 void group(uint8_t *a){
index 33c83a4590458fe83765f482205cd5fa8fad4a5e..14de7ebaf46087d2804c4cc9a7aa27bb56a4d084 100644 (file)
@@ -20,7 +20,7 @@
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
-uint8_t jh_permutation_table[] PROGMEM = {
+const uint8_t jh_permutation_table[] PROGMEM = {
        0x00, 0x03, 0x04, 0x07, 0x08, 0x0B, 0x0C, 0x0F, 0x10, 0x13, 0x14, 0x17, 0x18, 0x1B, 0x1C, 0x1F,
        0x20, 0x23, 0x24, 0x27, 0x28, 0x2B, 0x2C, 0x2F, 0x30, 0x33, 0x34, 0x37, 0x38, 0x3B, 0x3C, 0x3F,
        0x40, 0x43, 0x44, 0x47, 0x48, 0x4B, 0x4C, 0x4F, 0x50, 0x53, 0x54, 0x57, 0x58, 0x5B, 0x5C, 0x5F,
@@ -39,7 +39,7 @@ uint8_t jh_permutation_table[] PROGMEM = {
        0xE2, 0xE1, 0xE6, 0xE5, 0xEA, 0xE9, 0xEE, 0xED, 0xF2, 0xF1, 0xF6, 0xF5, 0xFA, 0xF9, 0xFE, 0xFD
 };
 
-uint8_t jh_lutbox[] PROGMEM = {
+const uint8_t jh_lutbox[] PROGMEM = {
        0xA8, 0xB1, 0x35, 0xEA, 0x2C, 0x0D, 0xD2, 0x6E, 0x90, 0xCB, 0xF3, 0x77, 0x56, 0x14, 0x89, 0x4F,
        0x19, 0x00, 0x84, 0x5B, 0x9D, 0xBC, 0x63, 0xDF, 0x21, 0x7A, 0x42, 0xC6, 0xE7, 0xA5, 0x38, 0xFE,
        0x61, 0x78, 0xFC, 0x23, 0xE5, 0xC4, 0x1B, 0xA7, 0x59, 0x02, 0x3A, 0xBE, 0x9F, 0xDD, 0x40, 0x86,
@@ -112,7 +112,7 @@ uint8_t jh_lutbox[] PROGMEM = {
        0x80, 0x5F, 0x25, 0x7E, 0x46, 0x04, 0xC2, 0xFA, 0x3C, 0xA1, 0xE3, 0x67, 0xB8, 0x99, 0x1D, 0xDB
 };
 
-uint8_t jh_round_const[] PROGMEM = {
+const uint8_t jh_round_const[] PROGMEM = {
   /* C_00: */
        0x6a, 0x09, 0xe6, 0x67, 0xf3, 0xbc, 0xc9, 0x08,
        0xb2, 0xfb, 0x13, 0x66, 0xea, 0x95, 0x7d, 0x3e,
index e7d5279207d434c1b7d170338814f4ffdd099fa0..2c1d9368c0f5f3bc6e8b235853775758902acf68 100644 (file)
@@ -62,7 +62,7 @@ void keccak_dump_ctx(keccak_ctx_t* ctx){
 #endif
 
 /*
-static uint64_t rc[] PROGMEM = {
+const uint64_t rc[] PROGMEM = {
        0x0000000000000001LL, 0x0000000000008082LL,
        0x800000000000808ALL, 0x8000000080008000LL,
        0x000000000000808BLL, 0x0000000080000001LL,
@@ -78,7 +78,7 @@ static uint64_t rc[] PROGMEM = {
 };
 */
 
-static uint8_t rc_comp[] PROGMEM = {
+const static uint8_t rc_comp[] PROGMEM = {
                0x01, 0x92, 0xda, 0x70,
                0x9b, 0x21, 0xf1, 0x59,
                0x8a, 0x88, 0x39, 0x2a,
@@ -87,7 +87,7 @@ static uint8_t rc_comp[] PROGMEM = {
                0xf1, 0xd0, 0x21, 0x78,
 };
 
-static uint8_t r[5][5] PROGMEM = {
+const static uint8_t r[5][5] PROGMEM = {
                { ROT_CODE( 0), ROT_CODE(36), ROT_CODE( 3), ROT_CODE(41), ROT_CODE(18) },
                { ROT_CODE( 1), ROT_CODE(44), ROT_CODE(10), ROT_CODE(45), ROT_CODE( 2) },
                { ROT_CODE(62), ROT_CODE( 6), ROT_CODE(43), ROT_CODE(15), ROT_CODE(61) },
index d78ed031c925921b6574eaa0eca6065e76f5c147..253100ff63f4e82b35e749d99ddc383f12271ed5 100644 (file)
@@ -128,7 +128,7 @@ uint16_t get_keysizes(PGM_VOID_P ks_desc, uint16_t** list){
                        }
                }
                i=0;
-               while(min<max){
+               while(min<=max){
                        ((uint16_t*)*list)[i++] = min;
                        min += distance;
                }
@@ -151,7 +151,7 @@ uint16_t get_keysizes(PGM_VOID_P ks_desc, uint16_t** list){
                        }
                }
                i=0;
-               while(min<max){
+               while(min<=max){
                        ((uint16_t*)*list)[i++] = min;
                        min += distance;
                }
index a1343ce6eda39b56ad6b63c66c9d6131e7abe43d..045de137229f5e02b1c6ed7d0be938d762c9da56 100644 (file)
@@ -68,7 +68,7 @@ Q:
 9x Ex 5x 6x Ax 2x 3x Cx Fx 0x 4x Dx 7x Bx 1x 8x
 */
 
-static uint8_t pq_lut[16] PROGMEM = {
+static const uint8_t pq_lut[16] PROGMEM = {
        0x39, 0xFE, 0xE5, 0x06, 0x5A, 0x42, 0xB3, 0xCC,
        0xDF, 0xA0, 0x94, 0x6D, 0x77, 0x8B, 0x21, 0x18
 };
@@ -115,7 +115,7 @@ static void gamma(uint8_t* a){
  * 07x 0Bx 08x 06x 05x 04x 03x 01x
  */
 
-static uint8_t h[8][4] PROGMEM = {
+static const uint8_t h[8][4] PROGMEM = {
        { 0x13, 0x45, 0x68, 0xB7 },
        { 0x31, 0x54, 0x86, 0x7B },
        { 0x45, 0x13, 0xB7, 0x68 },
diff --git a/md5/md5_sbox.c b/md5/md5_sbox.c
new file mode 100644 (file)
index 0000000..31d64a8
--- /dev/null
@@ -0,0 +1,36 @@
+/* md5_sbox.c */
+/*
+    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/>.
+*/
+#include <stdint.h>
+#include <avr/pgmspace.h>
+
+const uint32_t md5_T[] PROGMEM = {
+       0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 
+       0x4787c62a, 0xa8304613, 0xfd469501, 0x698098d8, 0x8b44f7af, 
+       0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 
+       0x49b40821, 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 
+       0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, 0x21e1cde6, 
+       0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 
+       0x676f02d9, 0x8d2a4c8a, 0xfffa3942, 0x8771f681, 0x6d9d6122, 
+       0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, 
+       0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, 0xd9d4d039, 
+       0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 
+       0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 
+       0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 
+       0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 };
+
index 597b3db412adae35e9895dce99665a314b3e9e9b..685ced234b49d3c0afc97ab5f7370c148c24ec11 100644 (file)
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
-uint32_t md5_T[] PROGMEM = {
-       0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 
-       0x4787c62a, 0xa8304613, 0xfd469501, 0x698098d8, 0x8b44f7af, 
-       0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 
-       0x49b40821, 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 
-       0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, 0x21e1cde6, 
-       0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 
-       0x676f02d9, 0x8d2a4c8a, 0xfffa3942, 0x8771f681, 0x6d9d6122, 
-       0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, 
-       0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, 0xd9d4d039, 
-       0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 
-       0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 
-       0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 
-       0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 };
+extern const uint32_t md5_T[];
 
 #endif /*MD5_SBOX_H_*/
index d33571e209bd19069c4d1722f1811812442e6807..acf3cf8863adead327dc8ca7c7d8e15d0e8d1cef 100644 (file)
@@ -36,7 +36,7 @@ RTAPS = { 0,4,5,  8,10,11,14  ,16,20,  25,30,  32,35,36,38,
          0100.1010 1110.11
 */
 
-uint8_t rtaps[] PROGMEM = {
+const uint8_t rtaps[] PROGMEM = {
        0x31, 0x4D, 0x11, 0x42,
        0x59, 0x4C, 0xEC, 0xF3,
        0x26, 0x96, 0x67, 0x9C,
@@ -92,7 +92,7 @@ void clock_r(uint8_t* r, uint8_t ibit, uint8_t cbit){
  * 31 D9 AF 37
  * BE 06 BE 0F
  */ 
-uint8_t comp0[] PROGMEM = {
+const uint8_t comp0[] PROGMEM = {
        0x5E, 0xF2, 0xD6, 0x5D,
        0x55, 0x09, 0x26, 0x79,
        0x62, 0x70, 0x00, 0x79, 
@@ -115,7 +115,7 @@ uint8_t comp0[] PROGMEM = {
  * 6A B7 E8 FF
 */
 /*
-uint8_t comp1[] PROGMEM = {
+const uint8_t comp1[] PROGMEM = {
        0x60, 0x3E, 0x32, 0xFA, 0x30, 0x79, 0x6C, 0xFD, 0xC1, 0x87, 
        0x01, 0xF8, 0x8A, 0xC6, 0xC1, 0xCC, 0x6A, 0xB7, 0xE8, 0xFF
 };
@@ -134,7 +134,7 @@ uint8_t comp1[] PROGMEM = {
  * AD DA 2F FE
 */
 /*
-uint8_t comp1[] PROGMEM = {
+const uint8_t comp1[] PROGMEM = {
        0x0C, 0xF8, 0x98, 0xBE, 0x19, 0x3C, 0x6D, 0x7F, 0x07, 0xC3,
        0x00, 0x3E, 0xA2, 0xC7, 0x06, 0x66, 0xAD, 0xDA, 0x2F, 0xFE
 };
@@ -153,7 +153,7 @@ uint8_t comp1[] PROGMEM = {
  * B5 5B F4 7F
 */
 
-uint8_t comp1[] PROGMEM = {
+const uint8_t comp1[] PROGMEM = {
        0x30, 0x1F, 0x19, 0x7D,
        0x98, 0x3C, 0xB6, 0xFE, 
        0xE0, 0xC3, 0x00, 0x7C, 
@@ -174,7 +174,7 @@ uint8_t comp1[] PROGMEM = {
  * 91 4B 54 D4
  * C1 0B 63 83
  */ 
-uint8_t fb0[] PROGMEM = {      
+const uint8_t fb0[] PROGMEM = {        
        0xAF, 0x1F, 0x3C, 0xC4, 
        0x22, 0xA3, 0x2F, 0x0E, 
        0x81, 0x4D, 0xE5, 0x66, 
@@ -195,7 +195,7 @@ uint8_t fb0[] PROGMEM = {
  * E7 7E 4B 6C
  * EF 80 A7 11
  */ 
-uint8_t fb1[] PROGMEM = {
+const uint8_t fb1[] PROGMEM = {
        0xAB, 0x77, 0xF4, 0x9B, 
        0x90, 0x8C, 0x79, 0x70, 
        0xB6, 0x18, 0x9A, 0x6F, 
index 8c0c03092aec1ea20532dd331d8a33a06a440a63..6055e986a0ed3f76b13635a6dd9338f958b061e7 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_OBJ      := A5_1.o
 $(ALGO_NAME)_DIR      := a51/
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-a5_1-test.o $(CLI_STD) $(SCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-a5_1-test.o $(CLI_STD) $(SCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 8372906cb6bb070f3f43438257a185a393ec5aac..4e83a0cc14edd3cb226613acf9c245bdecae3533 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := aes/
 $(ALGO_NAME)_INCDIR   := memxor/ gf256mul/ bcal/
 $(ALGO_NAME)_OBJ      := aes_enc-asm.o aes_dec-asm.o aes_sbox-asm.o aes_invsbox-asm.o  \
                          aes_keyschedule-asm.o 
-$(ALGO_NAME)_TEST_BIN := main-aes-test.o $(CLI_STD) $(BCAL_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-aes-test.o $(CLI_STD) $(BCAL_STD)  \
                          bcal_aes128.o bcal_aes192.o bcal_aes256.o bcal-cbc.o \
                          dump-asm.o dump-decl.o bcal-cfb_byte.o       \
                          bcal-cfb_bit.o bcal-ofb.o bcal-ctr.o bcal-cmac.o cmacvs.o         \
index 32e109c30fbbee74f47acb7b1a4cb0793689c11b..6a767ad7d33b90c92708394f592a0dbeff7fcfbc 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := aes/
 $(ALGO_NAME)_INCDIR   := gf256mul/ bcal/
 $(ALGO_NAME)_OBJ      := aes_enc.o aes_dec.o aes_sbox.o aes_invsbox.o  \
                          aes_keyschedule.o gf256mul.o aes128_enc.o aes128_dec.o
-$(ALGO_NAME)_TEST_BIN := main-aes128-test.o $(CLI_STD) $(BCAL_STD) \
+$(ALGO_NAME)_TESTBIN  := main-aes128-test.o $(CLI_STD) $(BCAL_STD) \
                          bcal_aes128.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index b4f8eb4055ee7878ba8c0b77d87d1f634a7f56b8..dc93caf56a401425a86099936097ff572cb677d7 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := aes/
 $(ALGO_NAME)_INCDIR   := gf256mul/ bcal/
 $(ALGO_NAME)_OBJ      := aes_enc.o aes_dec.o aes_sbox.o aes_invsbox.o \
                          aes_keyschedule.o gf256mul.o aes192_enc.o aes192_dec.o
-$(ALGO_NAME)_TEST_BIN := main-aes192-test.o $(CLI_STD) $(BCAL_STD) \
+$(ALGO_NAME)_TESTBIN  := main-aes192-test.o $(CLI_STD) $(BCAL_STD) \
                          bcal_aes192.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 608fdbc2385c8f00475a39cf994e922343b2efb3..09292b6b2a350793fc8c50119691f3228e12a3d7 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := aes/
 $(ALGO_NAME)_INCDIR   := gf256mul/ bcal/
 $(ALGO_NAME)_OBJ      := aes_enc.o aes_dec.o aes_sbox.o aes_invsbox.o \
                          aes_keyschedule.o gf256mul.o aes256_enc.o aes256_dec.o
-$(ALGO_NAME)_TEST_BIN := main-aes256-test.o $(CLI_STD) $(BCAL_STD) \
+$(ALGO_NAME)_TESTBIN  := main-aes256-test.o $(CLI_STD) $(BCAL_STD) \
                          bcal_aes256.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 798fc40576ad68ccd0a087449eff26ab0f797a38..a4ba1600b84d8683124f676bf227b6036d96f9c9 100644 (file)
@@ -9,7 +9,7 @@ $(ALGO_NAME)_DIR      := aes/
 $(ALGO_NAME)_INCDIR   := memxor/ gf256mul/ bcal/
 $(ALGO_NAME)_OBJ      := aes_enc-asm.o aes_dec-asm_faster.o aes_sbox-asm.o aes_invsbox-asm.o  \
                          aes_keyschedule-asm.o
-$(ALGO_NAME)_TEST_BIN := main-aes-test.o $(CLI_STD) $(BCAL_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-aes-test.o $(CLI_STD) $(BCAL_STD)  \
                          bcal_aes128.o bcal_aes192.o bcal_aes256.o bcal-cbc.o \
                          dump-asm.o dump-decl.o bcal-cfb_byte.o       \
                          bcal-cfb_bit.o bcal-ofb.o bcal-ctr.o bcal-cmac.o cmacvs.o \
index d8a0c1d552c8c252db96c5337233455519a64860..e1c3aebc9625a50f43ac37c40c21b2beaf62ae40 100644 (file)
@@ -11,7 +11,7 @@ $(ALGO_NAME)_OBJ      := aes_enc.o aes_dec.o aes_sbox.o aes_invsbox.o \
                          aes_keyschedule.o gf256mul.o \
                          aes128_enc.o aes128_dec.o aes192_enc.o aes192_dec.o \
                          aes256_enc.o aes256_dec.o
-$(ALGO_NAME)_TEST_BIN := main-aes-test.o $(CLI_STD) $(BCAL_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-aes-test.o $(CLI_STD) $(BCAL_STD)  \
                          bcal_aes128.o bcal_aes192.o bcal_aes256.o  bcal-cbc.o \
                          dump-asm.o dump-decl.o bcal-cfb_byte.o       \
                          bcal-cfb_bit.o bcal-ofb.o bcal-ctr.o bcal-cmac.o cmacvs.o         \
index 67beed3bcd8576c25aa639a8d2dca0840030dee2..128f65964df5fdfdaecf78f90c267538afa3142e 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := arcfour/
 $(ALGO_NAME)_OBJ      := arcfour-asm.o
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-arcfour-test.o $(CLI_STD) $(SCAL_STD) scal_arcfour.o
+$(ALGO_NAME)_TESTBIN  := main-arcfour-test.o $(CLI_STD) $(SCAL_STD) scal_arcfour.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index aa6d0eb79dee2a3c0b8a4e4a21761c8623810ba6..2b8b7da367492789beb677b3de58b8f9f125ba04 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := arcfour/
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
 $(ALGO_NAME)_OBJ      := arcfour.o
-$(ALGO_NAME)_TEST_BIN := main-arcfour-test.o $(CLI_STD) $(SCAL_STD) scal_arcfour.o
+$(ALGO_NAME)_TESTBIN  := main-arcfour-test.o $(CLI_STD) $(SCAL_STD) scal_arcfour.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index ee7261d99ca95d57228f9bef1a4600d86c2dd96f..90f415e73408abcd97e930f0710f8f33db605155 100644 (file)
@@ -7,7 +7,7 @@ ENCODINGS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := base64/
 $(ALGO_NAME)_INCDIR   := memxor/ noekeon/
 $(ALGO_NAME)_OBJ      := base64_enc.o base64_dec.o
-$(ALGO_NAME)_TEST_BIN := main-base64-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-base64-test.o $(CLI_STD)  \
                          performance_test.o noekeon_asm.o noekeon_prng.o memxor.o
                         
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 076e77d271aae4965868bd6259b51a4d4196a3f5..57e1a1cce41b5ef7dad13ac24733bfe285022a7b 100644 (file)
@@ -7,7 +7,7 @@ AUX += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := bigint/
 $(ALGO_NAME)_INCDIR   := memxor/ noekeon/
 $(ALGO_NAME)_OBJ      := bigint-stub.o bigint_io.o bigint_asm.o 
-$(ALGO_NAME)_TEST_BIN := main-bigint-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-bigint-test.o $(CLI_STD)  \
                          performance_test.o noekeon_asm.o noekeon_prng.o memxor.o
                         
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index f6feec64cbf11f86082935d5e87ac0ec359730f6..ce132496143438ee92ea1bc56bc34c9d323555ab 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := blake/
 $(ALGO_NAME)_INCDIR   := memxor/ hfal/
 $(ALGO_NAME)_OBJ      := blake_small.o blake_large.o blake_common.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-blake-test.o hfal_blake_small.o hfal_blake_large.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-blake-test.o hfal_blake_small.o hfal_blake_large.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 621ff44af18418a9aa9672457a6ed0612fce8f02..515bccd31de3d1c3e0f099bb55c7d837cbc6ed80 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := bmw/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := bmw_small-asm.o bmw_large.o 
-$(ALGO_NAME)_TEST_BIN := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 839859b83fe3578c5e52242c5c38d42d3b0aaf91..5f3be57c605a42d1939e06979801c8280d8e1827 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := bmw/
 $(ALGO_NAME)_INCDIR   := memxor/ hfal/
 $(ALGO_NAME)_OBJ      := bmw_small.o bmw_large.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 358771a87275fcce4c7f4ba981c0144755b529e6..224f9eb17674627658f96b60d1a5eaed2612047c 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := bmw/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := bmw_small-tinyasm.o bmw_large.o 
-$(ALGO_NAME)_TEST_BIN := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 5d67b0f78ff09086c8e39c5c04a8bcaac998822e..f4dd75d03d3ea91a41b5bb8f69af955d3860f14d 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := bmw/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := bmw_256-tinyasm.o bmw_224-tinyasm.o bmw_large.o 
-$(ALGO_NAME)_TEST_BIN := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-bmw-test.o hfal_bmw_small.o hfal_bmw_large.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 3dc953de032500389efd5b04c2cbc9becbd26588..35c39aa1fcc91027d89cf658974f33f5b80f8ec5 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := camellia/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := camellia128-stub.o camellia-asm.o
-$(ALGO_NAME)_TEST_BIN := main-camellia-test.o $(CLI_STD) $(BCAL_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-camellia-test.o $(CLI_STD) $(BCAL_STD)  \
                         bcal_camellia128.o   
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 5195cb8ed889597d949ba6cae3dc7ca7fefb4868..2c82fe2f0a076443b32ceb871f7c2fd38295f3bf 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := camellia/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := camellia_C.o
-$(ALGO_NAME)_TEST_BIN := main-camellia-test.o $(CLI_STD) $(BCAL_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-camellia-test.o $(CLI_STD) $(BCAL_STD)  \
                         bcal_camellia128.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 1ee7a56fc65d7b3e31c7365cc40a626dfbb6d9ed..60a406959e5a62db5b39fc980b65615d34518ebc 100644 (file)
@@ -6,8 +6,8 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := cast5/
 $(ALGO_NAME)_INCDIR   := bcal/
-$(ALGO_NAME)_OBJ      := cast5.o
-$(ALGO_NAME)_TEST_BIN := main-cast5-test.o bcal_cast5.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_OBJ      := cast5.o cast5-sbox.o
+$(ALGO_NAME)_TESTBIN  := main-cast5-test.o bcal_cast5.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index e262c1d3f3bf60adce2bd2182605dc8b66772321..b792a51544e5ee209f3f78e8c6bc9bd717c0a6da 100644 (file)
@@ -6,8 +6,8 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := cast6/
 $(ALGO_NAME)_INCDIR   := bcal/
-$(ALGO_NAME)_OBJ      := cast6.o
-$(ALGO_NAME)_TEST_BIN := main-cast6-test.o bcal_cast6.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_OBJ      := cast6.o cast6-sbox.o
+$(ALGO_NAME)_TESTBIN  := main-cast6-test.o bcal_cast6.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index d2d1fcf3c1dc13d102636fea203ef830ddcbf79c..b2e25d744d8dcb3265043af21fdce208d270f365 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := cscipher/
 $(ALGO_NAME)_INCDIR   := bcal/ memxor/
 $(ALGO_NAME)_OBJ      := cscipher_small.o cscipher_sbox.o memxor.o memxor_p.o
-$(ALGO_NAME)_TEST_BIN := main-cscipher-test.o bcal_cscipher.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-cscipher-test.o bcal_cscipher.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 $(ALGO_NAME)_DEF := SBOX_PROG=0
index eecaf9a8a4361f307259b788b5b840703067b857..54520a4ace17fbe39d449d58b68240d3bb1f62de 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := cscipher/
 $(ALGO_NAME)_INCDIR   := bcal/ memxor/
 $(ALGO_NAME)_OBJ      := cscipher_tiny_asm.o  memxor.o memxor_p.o
-$(ALGO_NAME)_TEST_BIN := main-cscipher-test.o bcal_cscipher.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-cscipher-test.o bcal_cscipher.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 $(ALGO_NAME)_DEF := SBOX_PROG=1
index 67d88d684d2a1751bece8eeae57283866fc752fa..5965badedb0dbfad845ead26b091b2c3e0154ee3 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := cscipher/
 $(ALGO_NAME)_INCDIR   := bcal/ memxor/
 $(ALGO_NAME)_OBJ      := cscipher_small.o memxor.o memxor_p.o
-$(ALGO_NAME)_TEST_BIN := main-cscipher-test.o bcal_cscipher.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-cscipher-test.o bcal_cscipher.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 $(ALGO_NAME)_DEF := SBOX_PROG=1
index a4059b03bb33e92c570beea52dce8ace06733cbd..becd8e42f957ca1be7f7d3ffc3fef4a579c544b0 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := cubehash/
 $(ALGO_NAME)_INCDIR   := memxor/ hfal/
 $(ALGO_NAME)_OBJ      := cubehash.o cubehash_rotates.o memxor.o xchg.o
-$(ALGO_NAME)_TEST_BIN := main-cubehash-test.o hfal_cubehash.o  $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-cubehash-test.o hfal_cubehash.o  $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 09edad8a25fa2627c092b8ce4102a66b5e88c02a..7269c64252081bb425135d240c652095968f5c91 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := des/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := des.o
-$(ALGO_NAME)_TEST_BIN := main-des-test.o bcal_des.o bcal_tdes.o bcal_tdes2.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-des-test.o bcal_des.o bcal_tdes.o bcal_tdes2.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index e4565107102419d0dbd19ae4aa2e1a7f4c2d105b..65470c239a90da397f1ddc5862e8cf631f1f760a 100644 (file)
@@ -7,7 +7,7 @@ SIGNATURE += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := dsa/
 $(ALGO_NAME)_INCDIR   := memxor/ bigint/ sha1/ noekeon/ base64/ hfal/
 $(ALGO_NAME)_OBJ      := bigint.o bigint_io.o sha1-asm.o dsa_sign.o dsa_verify.o dsa_key_blob.o base64_enc.o
-$(ALGO_NAME)_TEST_BIN := main-dsa-test.o $(CLI_STD) hfal_sha1.o $(HFAL_STD) \
+$(ALGO_NAME)_TESTBIN  := main-dsa-test.o $(CLI_STD) hfal_sha1.o $(HFAL_STD) \
                          noekeon_asm.o noekeon_prng.o memxor.o 
                         
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index b55103019068398d27058bcdaf4def0b53446432..570657983bf8dee9954a22030a020a064d561ffc 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := echo/
 $(ALGO_NAME)_INCDIR   := aes/ memxor/ gf256mul/ hfal/
 $(ALGO_NAME)_OBJ      := echo.o memxor.o aes_enc_round-asm.o aes_sbox-asm.o gf256mul.o
-$(ALGO_NAME)_TEST_BIN := main-echo-test.o hfal_echo.o  $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-echo-test.o hfal_echo.o  $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 6af24f6ee61fcfd217e9f40ac1ff9b72f0ee1ebd..a75413f3da673d80cae0fa2e66bf3c6053946d52 100644 (file)
@@ -7,7 +7,7 @@ PRNGS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := entropium/
 $(ALGO_NAME)_INCDIR   := sha256/
 $(ALGO_NAME)_OBJ      := entropium.o sha256-asm.o
-$(ALGO_NAME)_TEST_BIN := main-entropium-test.o $(CLI_STD) performance_test.o
+$(ALGO_NAME)_TESTBIN  := main-entropium-test.o $(CLI_STD) performance_test.o
                          
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 22ff6190a7355446fe8e4a8a3baa0dccaf31d203..14f0969345c317ea7b4298cdbce4aebed71d8d6b 100644 (file)
@@ -7,7 +7,7 @@ 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)_TESTBIN  := 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
index 85e8dc540a785c911ec2f36ec51a5f51b55b8202..625cd89a5393998c089433a7e69a42eab867a3d4 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := groestl/
 $(ALGO_NAME)_INCDIR   := aes/ memxor/ gf256mul/ hfal/
 $(ALGO_NAME)_OBJ      := groestl_small.o groestl_large.o memxor.o aes_sbox.o gf256mul.o
-$(ALGO_NAME)_TEST_BIN := hfal_groestl_large.o hfal_groestl_small.o main-groestl-test.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := hfal_groestl_large.o hfal_groestl_small.o main-groestl-test.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 87718dd7c674ff055b9bcdc0a70a55b75f0c7c1e..94ab015020b038b9e3948706f736a04abbbf991a 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := hmac-md5/
 $(ALGO_NAME)_INCDIR   := md5/ mfal/
 $(ALGO_NAME)_OBJ      := hmac-md5.o md5-asm.o
-$(ALGO_NAME)_TEST_BIN := main-hmac-md5-test.o $(CLI_STD) \
+$(ALGO_NAME)_TESTBIN  := main-hmac-md5-test.o $(CLI_STD) \
                          nessie_mac_test.o nessie_common.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index f482a2c2d04021012f1e26aedeecf8fe9a41ec2c..f6f0a604fad5b4c718144e33ee91e87fc49272bc 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := hmac-sha1/
 $(ALGO_NAME)_INCDIR   := sha1/
 $(ALGO_NAME)_OBJ      := hmac-sha1.o sha1-asm.o
-$(ALGO_NAME)_TEST_BIN := main-hmac-sha1-test.o $(CLI_STD) \
+$(ALGO_NAME)_TESTBIN  := main-hmac-sha1-test.o $(CLI_STD) \
                          nessie_mac_test.o nessie_common.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 661c406ff9254c26baa0cf17d833285fbafbb8c4..5f4ce957148a76f8e7c3066367158fb366020cdb 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := hmac-sha256/
 $(ALGO_NAME)_INCDIR   := sha256/
 $(ALGO_NAME)_OBJ      := hmac-sha256.o sha256-asm.o
-$(ALGO_NAME)_TEST_BIN := main-hmac-sha256-test.o $(CLI_STD) \
+$(ALGO_NAME)_TESTBIN  := main-hmac-sha256-test.o $(CLI_STD) \
                          nessie_mac_test.o nessie_common.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 51d0c7418a3f268e0d7637da47e2d935554bcbba..53d0f440544d3f9aa0735e8076db126d037ef253 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := jh/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/
 $(ALGO_NAME)_OBJ      := jh_simple_small_core.o jh_simple_aux.o  memxor.o 
-$(ALGO_NAME)_TEST_BIN := hfal_jh.o main-jh-test.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := hfal_jh.o main-jh-test.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 8dcd96f7315ba87c2dd58d2558775410a5b9f91f..0a17588e1db5c07c3046e73df255e682c9f1c971 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile for Grøstl
+# Makefile for JH (speed optimized variant)
 ALGO_NAME := JH_SIMPLE_SPEED_C
 
 # comment out the following line for removement of Grøstl from the build process
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := jh/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/
 $(ALGO_NAME)_OBJ      := jh_simple_speed_core.o jh_simple_aux.o jh_tables.o memxor.o 
-$(ALGO_NAME)_TEST_BIN := hfal_jh.o main-jh-test.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := hfal_jh.o main-jh-test.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index f97c29384c6a6d670c85fc2f9c1188c249d8af7e..5e610ffaff9ca3571790bbbb0be510c690bd041e 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := keccak/
 $(ALGO_NAME)_INCDIR   := memxor/ hfal/
 $(ALGO_NAME)_OBJ      := keccak.o memxor.o rotate64.o
-$(ALGO_NAME)_TEST_BIN := main-keccak-test.o hfal_keccak.o  $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-keccak-test.o hfal_keccak.o  $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index ee679396c35c473333001762ba64d48b63771f35..739ddd885a3c863b3cb5a3d86f8038ac6ef0b512 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := khazad/
 $(ALGO_NAME)_INCDIR   := bcal/ memxor/ gf256mul/
 $(ALGO_NAME)_OBJ      := khazad.o memxor.o gf256mul.o
-$(ALGO_NAME)_TEST_BIN := main-khazad-test.o bcal_khazad.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-khazad-test.o bcal_khazad.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 $(ALGO_NAME)_DEF := SBOX_PROG=0
index 56c29aa8f51a440295015cec699cdb3911946ce1..f775dfc284400720ba8e46223823dbd000c645f0 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := md5/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := md5-asm.o
-$(ALGO_NAME)_TEST_BIN := main-md5-test.o hfal_md5.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-md5-test.o hfal_md5.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 60087ca56d237c54ec4dce46d45bb38091ed6ae4..da9d39cb84a19c4e36da156fb79ac5f9b051e6ea 100644 (file)
@@ -6,8 +6,8 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := md5/
 $(ALGO_NAME)_INCDIR   := hfal/
-$(ALGO_NAME)_OBJ      := md5.o
-$(ALGO_NAME)_TEST_BIN := main-md5-test.o hfal_md5.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_OBJ      := md5.o md5_sbox.o
+$(ALGO_NAME)_TESTBIN  := main-md5-test.o hfal_md5.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 49a709c6d42081fe894e8bdd9a95e4b7119d8881..c1f33c5a0af6508f4c03b9a15dde96becdab8f71 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := mickey128/
 $(ALGO_NAME)_OBJ      := mickey128.o
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-mickey128-test.o $(CLI_STD) $(SCAL_STD) scal_mickey128.o 
+$(ALGO_NAME)_TESTBIN  := main-mickey128-test.o $(CLI_STD) $(SCAL_STD) scal_mickey128.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := NESSIE_ESTREAM=1
index 7970f11d6730d9cc991e838eed57c70ae20de8eb..bd88bc32847e7f345565b0622c8eac2375f7879d 100644 (file)
@@ -6,7 +6,7 @@ SIGNATURE += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := mqq-sign/
 $(ALGO_NAME)_OBJ      := mqq160-sign-asm.o mqq160-sign_P-asm.o mqq160-sign_testkey.o 
-$(ALGO_NAME)_TEST_BIN := main-mqq160-sign-test.o performance_test.o stack_measuring.o $(CLI_STD)
+$(ALGO_NAME)_TESTBIN  := main-mqq160-sign-test.o performance_test.o stack_measuring.o $(CLI_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test 
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index e18758944898dd466d0dd25760bdae50b73e181f..0e506f3b25e3a82034780ecc5e7111053cd8cd12 100644 (file)
@@ -7,7 +7,7 @@ SIGNATURE += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := mqq-sign/
 $(ALGO_NAME)_INCDIR   := memxor/ 
 $(ALGO_NAME)_OBJ      := mqq160-sign.o mqq160-sign_P.o mqq160-sign_testkey.o memxor.o memxor_p.o
-$(ALGO_NAME)_TEST_BIN := main-mqq160-sign-test.o performance_test.o stack_measuring.o $(CLI_STD)
+$(ALGO_NAME)_TESTBIN  := main-mqq160-sign-test.o performance_test.o stack_measuring.o $(CLI_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test 
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 22f84d1b91202ce656c1c12b86d59d6283e3575f..29237a5cf015a13b58839d28f1f44629ec7dbac5 100644 (file)
@@ -5,9 +5,9 @@ ALGO_NAME := MUGI_C
 STREAM_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := mugi/
-$(ALGO_NAME)_INCDIR   := aes/ gf256mul/
-$(ALGO_NAME)_OBJ      := mugi.o gf256mul.o aes_sbox.o
-$(ALGO_NAME)_TEST_BIN := main-mugi-test.o $(CLI_STD)  \
+$(ALGO_NAME)_INCDIR   := memxor/ aes/ gf256mul/
+$(ALGO_NAME)_OBJ      := mugi.o gf256mul.o aes_sbox.o memxor.o
+$(ALGO_NAME)_TESTBIN  := main-mugi-test.o $(CLI_STD)  \
                          nessie_stream_test.o nessie_common.o  \
                          performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
index 36e376c065a041c90352807334c2108b1a81ce32..08d11ed0765bed5b741db5b1413fc71c7b10d663 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := noekeon/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := noekeon_asm.o
-$(ALGO_NAME)_TEST_BIN := main-noekeon-test.o bcal_noekeon.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-noekeon-test.o bcal_noekeon.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index c88853def815cd6d3e7de8d4949cff38164bb5f6..4ccca39ecb933fbed318b95a126bcd8c726d0e91 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := noekeon/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := noekeon.o
-$(ALGO_NAME)_TEST_BIN := main-noekeon-test.o bcal_noekeon.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-noekeon-test.o bcal_noekeon.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 5365b91ef8087fa388311d8dfcb3007ad6105e7a..980dbf78acf9e56183de9809daf56d077da3e101 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := noekeon/
 $(ALGO_NAME)_INCDIR   := memxor/ mfal/
 $(ALGO_NAME)_OBJ      := noekeon_asm.o omac_noekeon.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-omac-noekeon-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-omac-noekeon-test.o $(CLI_STD)  \
                          nessie_mac_test.o nessie_common.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index d1960cf04515e8dca46b74bddd58791f0482fd15..8a432db87f8bb456cf5f0a129078a03c1eef1635 100644 (file)
@@ -7,7 +7,7 @@ MACS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := noekeon/
 $(ALGO_NAME)_INCDIR   := memxor/ mfal/
 $(ALGO_NAME)_OBJ      := noekeon_asm.o omac_noekeon_C.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-omac-noekeon-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-omac-noekeon-test.o $(CLI_STD)  \
                          nessie_mac_test.o nessie_common.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 7c623452b6ea30b46196911c498f9ad64a69e303..d7ee96e059d9eedc8b3b04b75dc0bb323cfcdc6d 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := present/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := present.o
-$(ALGO_NAME)_TEST_BIN := main-present-test.o bcal_present.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-present-test.o bcal_present.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index a43b0f4dc344c484e14793997b6606ac648893a6..3af45909ed34f1f0c57889fe10668735c5ae1cd4 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := rabbit/
 $(ALGO_NAME)_OBJ      := rabbit_c.o
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-rabbit-test.o $(CLI_STD) $(SCAL_STD) scal_rabbit.o
+$(ALGO_NAME)_TESTBIN  := main-rabbit-test.o $(CLI_STD) $(SCAL_STD) scal_rabbit.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := ESTREAM=0
index 5070e41869a48831e6153125af0db7399a3b0ef5..7f33241c21243b73df4cd2abe8e7c3fc6310358f 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := rabbit/
 $(ALGO_NAME)_OBJ      := rabbit_c.o
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-rabbit-test.o $(CLI_STD) $(SCAL_STD) scal_rabbit.o
+$(ALGO_NAME)_TESTBIN  := main-rabbit-test.o $(CLI_STD) $(SCAL_STD) scal_rabbit.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := ESTREAM=1
index 0e986ef421a6489121b35f8509f679b9c37e7822..57d664ced931335cb97f02e95edf642509cb19e2 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := rc5/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := rc5.o
-$(ALGO_NAME)_TEST_BIN := main-rc5-test.o bcal_rc5.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-rc5-test.o bcal_rc5.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index df56ef07acd801fbce42106c8eddbff4959b7ced..3d53c3783cc5764180fea5ff264c828084daf29f 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := rc6/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := rc6.o
-$(ALGO_NAME)_TEST_BIN := main-rc6-test.o bcal_rc6.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-rc6-test.o bcal_rc6.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 2bfc57b3ae2e9fc08236083e0df75e545b82174d..af44ae5a39f6945c52d7c37be4cef1c8ee7fadd5 100644 (file)
@@ -7,7 +7,7 @@ PK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := rsa/
 $(ALGO_NAME)_INCDIR   := bigint/ noekeon/ memxor/ hfal/
 $(ALGO_NAME)_OBJ      := bigint.o bigint_io.o rsa.o rsa_key_blob.o
-$(ALGO_NAME)_TEST_BIN := main-rsa-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-rsa-test.o $(CLI_STD)  \
                          noekeon_asm.o noekeon_prng.o memxor.o 
                         
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 32b4fac27e59fe730be3b8174d27cbf7aed1dda2..d271aa821fc17cde08c987fa525469ab2eab2f26 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := salsa20/
 $(ALGO_NAME)_OBJ      := salsa20.o
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-salsa20-test.o $(CLI_STD) $(SCAL_STD) scal_salsa20.o
+$(ALGO_NAME)_TESTBIN  := main-salsa20-test.o $(CLI_STD) $(SCAL_STD) scal_salsa20.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index f3c3034bfb3dde6c8fe4fd8be58d096f5d6863ee..62767b29e4353d2cb6356f4a1a6aa7d17bef6c07 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := seed/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := seed-asm.o
-$(ALGO_NAME)_TEST_BIN := main-seed-test.o bcal_seed.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-seed-test.o bcal_seed.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index c83900a2003045cb0914f55590422a44fbfb9fff..ed929bfacd97eba26607c1b30635de035a352bcf 100644 (file)
@@ -6,8 +6,8 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := seed/
 $(ALGO_NAME)_INCDIR   := bcal/
-$(ALGO_NAME)_OBJ      := seed_C.o
-$(ALGO_NAME)_TEST_BIN := main-seed-test.o bcal_seed.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_OBJ      := seed_C.o seed_sbox.o
+$(ALGO_NAME)_TESTBIN  := main-seed-test.o bcal_seed.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index d49cdb6731c411e39ce7ea12b91c98dc096627a6..56f2eebbabd0614e9a00b9ea0d2c0fa1b6aeda58 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := serpent/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := serpent-asm.o serpent-sboxes-bitslice-asm.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index b4ffa80760a686847d169a36345afe41c6d9eeec..e1cba8d91da1ca5709533c04c20c637c05d4c635 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := serpent/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := serpent-sboxes-bitslice-asm.o serpent-asm.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 5c4b984e9f7b19576470e2a928961e457cef2b15..e90af971998192352897ac0004f015bde57e4f69 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := serpent/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := serpent-asm.o serpent-sboxes-fast.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index e29c4c9b555155c88e794551a5169bac4e98230b..aee6a7217dce6f3473c482682b462364c5e42732 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := serpent/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := serpent-asm.o serpent-sboxes-small.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 378eccaf8f876c2593b85743dfe12c097fffe176..9f6e39f085f1c26728b3cddec2b1c94a96830b7a 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := serpent/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := serpent.o serpent-sboxes_c.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-serpent-test.o bcal_serpent.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 5dda518aed8c360828c46332dacef3e6d840c55a..0d8e4a644924cc69ed9c8a30b3a828a78b5ecdd6 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := sha1/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := sha1-asm.o
-$(ALGO_NAME)_TEST_BIN := main-sha1-test.o hfal_sha1.o $(CLI_STD) $(HFAL_STD) dump-decl.o dump-asm.o 
+$(ALGO_NAME)_TESTBIN  := main-sha1-test.o hfal_sha1.o $(CLI_STD) $(HFAL_STD) dump-decl.o dump-asm.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 8caf85ff72d2576239658d8942fa698cebf4424e..a8537eacbe8aa71fc469a2f0cf51cb62ade643e8 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := sha1/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := sha1.o
-$(ALGO_NAME)_TEST_BIN := main-sha1-test.o hfal_sha1.o dump-asm.o dump-decl.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-sha1-test.o hfal_sha1.o dump-asm.o dump-decl.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 50761746f03fad331159c69de11e991744c61f6c..b97e9dd261113c9b5ae4cb671615207d2e81b62a 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := sha256/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := sha256-asm.o
-$(ALGO_NAME)_TEST_BIN := main-sha256-test.o dump-asm.o dump-decl.o hfal_sha256.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-sha256-test.o dump-asm.o dump-decl.o hfal_sha256.o $(CLI_STD) $(HFAL_STD)
                        
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index fdb92a36fafb502a85dbf3262a18581d14ba3641..59b6665a9299cb49a4946032fad1c347cbce896a 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := sha256/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := sha256.o
-$(ALGO_NAME)_TEST_BIN := main-sha256-test.o $(CLI_STD) $(HFAL_STD) hfal_sha256.o dump-asm.o dump-decl.o
+$(ALGO_NAME)_TESTBIN  := main-sha256-test.o $(CLI_STD) $(HFAL_STD) hfal_sha256.o dump-asm.o dump-decl.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index ea0f7dcd1696f1daeda094a5cccef4f27023690c..35fbdd52b9eaf0627dccfdf5b7d2ad206f8d7ce7 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := shabal/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := shabal-asm.o shabal192-asm.o shabal224-asm.o \
                          shabal256-asm.o shabal384-asm.o shabal512-asm.o
-$(ALGO_NAME)_TEST_BIN := main-shabal-test.o hfal_shabal.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-shabal-test.o hfal_shabal.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 6b0ff0ad748e4866add18f8112e4f65d10bcb90b..a9a5f9b866d30d2206d9a95d59023ececa916126 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := shabal/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := shabal.o shabal192.o shabal224.o shabal256.o shabal384.o shabal512.o
-$(ALGO_NAME)_TEST_BIN := main-shabal-test.o hfal_shabal.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-shabal-test.o hfal_shabal.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 0b50d44fd9b915f9663bf62c7cfe1a92a1316fa6..ae35a047f00293f406be07a46d56a2905dc1bd8d 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS_DONTUSE += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := shabea/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := shabea.o sha256-asm.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-shabea-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-shabea-test.o $(CLI_STD)  \
                          nessie_bc_test.o nessie_common.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index 8f968c92c6dd6461611a279554fceae182e9bb8d..5d33b20a1e0fe3c68e321fcc3594d21c0ceab94c 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := shacal1/
 $(ALGO_NAME)_INCDIR   := sha1/ bcal/
 $(ALGO_NAME)_OBJ      := shacal1_enc.o sha1-asm.o
-$(ALGO_NAME)_TEST_BIN := main-shacal1_enc-test.o $(CLI_STD)  \
+$(ALGO_NAME)_TESTBIN  := main-shacal1_enc-test.o $(CLI_STD)  \
                          nessie_bc_test.o nessie_common.o performance_test.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index bbcedd198bc9d3a173d841bf316d468e1ca32322..8d400faf4d634f8f81b008bf590fd8ebbf90a72c 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := shacal2/
 $(ALGO_NAME)_INCDIR   := sha256/ bcal/
 $(ALGO_NAME)_OBJ      := shacal2_enc.o sha256-asm.o
-$(ALGO_NAME)_TEST_BIN := main-shacal2_enc-test.o $(CLI_STD) \
+$(ALGO_NAME)_TESTBIN  := main-shacal2_enc-test.o $(CLI_STD) \
                          nessie_bc_test.o nessie_common.o performance_test.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index a481bd0bc349f3da9146aae0ec7363672bd0839a..ba5b911b6b9b7332a77c956a8ab51d38969bf647 100644 (file)
@@ -10,7 +10,7 @@ $(ALGO_NAME)_OBJ      := threefish_mix.o \
                          threefish256_enc_asm.o  ubi256_asm.o  skein256_asm.o \
                          threefish512_enc_asm.o  ubi512_asm.o  skein512_asm.o \
                         threefish1024_enc_asm.o ubi1024_asm.o skein1024_asm.o
-$(ALGO_NAME)_TEST_BIN := main-skein-test.o hfal_skein256.o hfal_skein512.o hfal_skein1024.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-skein-test.o hfal_skein256.o hfal_skein512.o hfal_skein1024.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 4dc892fe02caad1eafea6b8e7c59767e3bc8fe4d..289ebe2ddb1bee325a73969081e015a3f8f7aefe 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := skein/
 $(ALGO_NAME)_INCDIR   := memxor/ hfal/
 $(ALGO_NAME)_OBJ      := threefish256_enc.o threefish512_enc.o threefish1024_enc.o threefish_mix_c.o\
                          ubi256.o ubi512.o ubi1024.o memxor.o skein256.o skein512.o skein1024.o
-$(ALGO_NAME)_TEST_BIN := main-skein-test.o hfal_skein256.o hfal_skein512.o hfal_skein1024.o $(CLI_STD) $(HFAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-skein-test.o hfal_skein256.o hfal_skein512.o hfal_skein1024.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 9be9aba631e8fd7cd43383d81edf8739bfae1905..354302b1c0aaad314482490d0d9b1e2f2519b9ca 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := skipjack/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := skipjack.o
-$(ALGO_NAME)_TEST_BIN := main-skipjack-test.o bcal_skipjack.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-skipjack-test.o bcal_skipjack.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
diff --git a/mkfiles/skipjack_nessie.mk b/mkfiles/skipjack_nessie.mk
new file mode 100644 (file)
index 0000000..d9123ff
--- /dev/null
@@ -0,0 +1,14 @@
+# Makefile for SKIPJACK
+ALGO_NAME := SKIPJACK_NESSIE
+
+# comment out the following line for removement of skipjack from the build process
+BLOCK_CIPHERS += $(ALGO_NAME)
+
+$(ALGO_NAME)_DIR      := skipjack/
+$(ALGO_NAME)_INCDIR   := bcal/
+$(ALGO_NAME)_OBJ      := skipjack.o
+$(ALGO_NAME)_TESTBIN  := main-skipjack-test.o bcal_skipjack.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_DEF      := NESSIE_COMPAT=1
+$(ALGO_NAME)_NESSIE_TEST      := "nessie"
+$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
+
index 54fc5afb5789bc0c2988efcefe74d35b8380bb6b..abb9953358bbf2b9eb79bdec8d6a5855838dbe4b 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := des/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := des.o
-$(ALGO_NAME)_TEST_BIN := main-tdes-test.o bcal_tdes.o bcal_tdes2.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-tdes-test.o bcal_tdes.o bcal_tdes2.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 9364b6ddf8985600e27947b6f5ce4faa5635b0da..c522e0d6e8aa9594007eac7a98666a84ca62751c 100644 (file)
@@ -9,7 +9,7 @@ $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := threefish256_enc_asm.o threefish512_enc_asm.o threefish1024_enc_asm.o\
                          threefish_mix.o threefish_invmix.o \
                         threefish256_dec_asm.o threefish512_dec_asm.o threefish1024_dec_asm.o
-$(ALGO_NAME)_TEST_BIN := main-threefish-test.o bcal_threefish256.o bcal_threefish512.o bcal_threefish1024.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-threefish-test.o bcal_threefish256.o bcal_threefish512.o bcal_threefish1024.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index 97145e5c35d86197a0a023010400d95220ab5615..ba5edac9f189d0c45fbfc3e2283ecbedccafaf59 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := skein/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := threefish256_enc.o threefish512_enc.o threefish1024_enc.o threefish_mix_c.o \
                          threefish_invmix_c.o threefish256_dec.o threefish512_dec.o threefish1024_dec.o
-$(ALGO_NAME)_TEST_BIN := main-threefish-test.o bcal_threefish256.o bcal_threefish512.o bcal_threefish1024.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-threefish-test.o bcal_threefish256.o bcal_threefish512.o bcal_threefish1024.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index c8b32b2f809322a84f0bf60bddf7413343f422d8..46a6377ff84847b94a6d51727e379de062fb92a9 100644 (file)
@@ -9,7 +9,7 @@ $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := threefish256_enc_small.o threefish512_enc.o threefish1024_enc.o\
                          threefish_mix.o threefish_mix_4c.o threefish_invmix_c.o \
                         threefish256_dec.o threefish512_dec.o threefish1024_dec.o
-$(ALGO_NAME)_TEST_BIN := main-threefish-test.o bcal_threefish256.o bcal_threefish512.o bcal_threefish1024.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-threefish-test.o bcal_threefish256.o bcal_threefish512.o bcal_threefish1024.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
 
index e6ac3538735fe1babdb21b89246c180068f7ae64..ca9297dc21a1c5afab12cb231e7dd9792f89870e 100644 (file)
@@ -7,7 +7,7 @@ STREAM_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := trivium/
 $(ALGO_NAME)_OBJ      := trivium.o
 $(ALGO_NAME)_INCDIR   := memxor/ scal/
-$(ALGO_NAME)_TEST_BIN := main-trivium-test.o $(CLI_STD) $(SCAL_STD) scal_trivium.o 
+$(ALGO_NAME)_TESTBIN  := main-trivium-test.o $(CLI_STD) $(SCAL_STD) scal_trivium.o 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF       := NESSIE_ESTREAM=1
index ad1acd90ab7315188488721c205f2307f161810b..4742e8c7bc2fdc9bb880c7772caa0a3c5e6d57a5 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := twister/
 $(ALGO_NAME)_INCDIR   := hfal/
 $(ALGO_NAME)_OBJ      := twister-small-asm.o twister-large-asm.o twister-asm.o \
                          twister224.o twister256.o twister384.o twister512.o
-$(ALGO_NAME)_TEST_BIN := main-twister-test.o hfal_twister224.o hfal_twister256.o \
+$(ALGO_NAME)_TESTBIN  := main-twister-test.o hfal_twister224.o hfal_twister256.o \
                          hfal_twister384.o hfal_twister512.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index b9aa097ebbeef0210edb90fc8db81d576de536df..e700b57f12f92854d6c439a5ea1c7d7bb5434541 100644 (file)
@@ -6,8 +6,8 @@ HASHES += $(ALGO_NAME)
 
 $(ALGO_NAME)_DIR      := twister/
 $(ALGO_NAME)_INCDIR   := memxor/ gf256mul/ hfal/
-$(ALGO_NAME)_OBJ      := twister.o twister-small.o twister-large.o memxor.o gf256mul.o
-$(ALGO_NAME)_TEST_BIN := main-twister-test.o hfal_twister224.o hfal_twister256.o \
+$(ALGO_NAME)_OBJ      := twister.o twister-small.o twister-large.o twister_tables.o memxor.o gf256mul.o
+$(ALGO_NAME)_TESTBIN  := main-twister-test.o hfal_twister224.o hfal_twister256.o \
                          hfal_twister384.o hfal_twister512.o $(CLI_STD) $(HFAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
index d427d89efdd50c5a9489844981a113fa29c6448f..dd68d2e6ad98b8ba139e73663a0957827d7b4523 100644 (file)
@@ -9,7 +9,7 @@ $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := threefish_mix.o threefish256_enc_asm.o ubi256_asm.o \
                          threefish512_enc_asm.o ubi512_asm.o threefish1024_enc_asm.o \
                          ubi1024_asm.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-ubi-test.o $(CLI_STD) \
+$(ALGO_NAME)_TESTBIN  := main-ubi-test.o $(CLI_STD) \
                          nessie_common.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 85c5c7d8d2c7249bae10014a9571898356d3b87b..ae884319d6f66c528784b4027c50ffa51e0f3308 100644 (file)
@@ -8,7 +8,7 @@ $(ALGO_NAME)_DIR      := skein/
 $(ALGO_NAME)_INCDIR   := memxor/ bcal/
 $(ALGO_NAME)_OBJ      := threefish256_enc.o threefish512_enc.o threefish1024_enc.o threefish_mix_c.o\
                          ubi256.o ubi512.o ubi1024.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-ubi-test.o $(CLI_STD) \
+$(ALGO_NAME)_TESTBIN  := main-ubi-test.o $(CLI_STD) \
                          nessie_common.o performance_test.o
 $(ALGO_NAME)_NESSIE_TEST      := test nessie
 $(ALGO_NAME)_PERFORMANCE_TEST := performance
index 934ae4f1ed498525ee3c253f2e845d6cd3e56e1d..ff1c343d83c576cdc21d7c2738da0d4e11e0a4d9 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := whirlpool/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/ gf256mul/
 $(ALGO_NAME)_OBJ      := whirlpool.o gf256mul.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-whirlpool-0-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool_0.o dump-asm.o dump-decl.o
+$(ALGO_NAME)_TESTBIN  := main-whirlpool-0-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool_0.o dump-asm.o dump-decl.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := SBOX_PROG=0 WHIRLPOOL_0=1
index 1cd7ee7f4c16fb255c946350bac111e786cb324c..e4325c785c928fb816ed7af0e9141b48d4d97a2b 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := whirlpool/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/ gf256mul/
 $(ALGO_NAME)_OBJ      := whirlpool.o gf256mul.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-whirlpool-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool.o dump-asm.o dump-decl.o
+$(ALGO_NAME)_TESTBIN  := main-whirlpool-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool.o dump-asm.o dump-decl.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := SBOX_PROG=0
index 8b3a5ba8c0d17130ad9801157f3b56485a562d7e..f9d3557a5c466d4215421463203d70b48d50b112 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := whirlpool/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/ gf256mul/
 $(ALGO_NAME)_OBJ      := whirlpool.o gf256mul.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-whirlpool-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool.o dump-asm.o dump-decl.o
+$(ALGO_NAME)_TESTBIN  := main-whirlpool-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool.o dump-asm.o dump-decl.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := SBOX_PROG=1
index c45391b146e81ece0b771ee2f5ad0c917bd819a8..cec14c43041cb4f0014cec3b30750486740040df 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := whirlpool/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/ gf256mul/
 $(ALGO_NAME)_OBJ      := whirlpool.o gf256mul.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-whirlpool-t-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool_t.o dump-asm.o dump-decl.o
+$(ALGO_NAME)_TESTBIN  := main-whirlpool-t-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool_t.o dump-asm.o dump-decl.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := SBOX_PROG=0 WHIRLPOOL_T=1
index 665ff90644074ff715d9bc6ef3be1e873ae59895..3717b1bcc483f80dd1a02b864262490cb794e816 100644 (file)
@@ -7,7 +7,7 @@ HASHES += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := whirlpool/
 $(ALGO_NAME)_INCDIR   := hfal/ memxor/ gf256mul/
 $(ALGO_NAME)_OBJ      := whirlpool.o gf256mul.o memxor.o
-$(ALGO_NAME)_TEST_BIN := main-whirlpool-t-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool_t.o dump-asm.o dump-decl.o
+$(ALGO_NAME)_TESTBIN  := main-whirlpool-t-test.o $(CLI_STD) $(HFAL_STD) hfal_whirlpool_t.o dump-asm.o dump-decl.o
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 $(ALGO_NAME)_DEF := SBOX_PROG=1 WHIRLPOOL_T=1
index ae244c328ee88941b6131d0d70e2110124a5a189..b0b6bbbd5cf6405b08fa5a100b820c1ec25064bf 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := xtea/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := xtea-asm.o
-$(ALGO_NAME)_TEST_BIN := main-xtea-test.o bcal_xtea.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_TESTBIN  := main-xtea-test.o bcal_xtea.o $(CLI_STD) $(BCAL_STD) 
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
index 3a3a27d8a93e70fe4b1568d9cc6c90536f102bc0..12f622393b833c0058947727bb65e862b7d60a1d 100644 (file)
@@ -7,7 +7,7 @@ BLOCK_CIPHERS += $(ALGO_NAME)
 $(ALGO_NAME)_DIR      := xtea/
 $(ALGO_NAME)_INCDIR   := bcal/
 $(ALGO_NAME)_OBJ      := xtea.o
-$(ALGO_NAME)_TEST_BIN := main-xtea-test.o bcal_xtea.o $(CLI_STD) $(BCAL_STD)
+$(ALGO_NAME)_TESTBIN  := main-xtea-test.o bcal_xtea.o $(CLI_STD) $(BCAL_STD)
 $(ALGO_NAME)_NESSIE_TEST      := "nessie"
 $(ALGO_NAME)_PERFORMANCE_TEST := "performance"
 
diff --git a/mkfiles/xtea_new.mk b/mkfiles/xtea_new.mk
new file mode 100644 (file)
index 0000000..5a4f6e3
--- /dev/null
@@ -0,0 +1,13 @@
+# Makefile for XTEA
+ALGO_NAME := XTEA_ASM
+
+# comment out the following line for removement of XTEA from the build process
+BLOCK_CIPHERS += $(ALGO_NAME)
+
+$(ALGO_NAME)_DIR      := xtea/
+$(ALGO_NAME)_INCDIR   := bcal/
+$(ALGO_NAME)_OBJ      := xtea-asm.o
+$(ALGO_NAME)_TESTBIN  := main-xtea-test.o bcal_xtea.o $(CLI_STD) $(BCAL_STD) 
+$(ALGO_NAME)_NESSIE_TEST      := "nessie"
+$(ALGO_NAME)_PERFORMANCE_TEST := "performance"
+
index 2843f7b77f34c5f0827ac7466fc6be26636aeec7..99c4db8e46c2fba5cee76ae5aa6e8dc08af58707 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "cli.h"
 
-static uint8_t mod20_table[32] PROGMEM = {
+static const uint8_t mod20_table[32] PROGMEM = {
                 4,  5,  6,  7,  8,  9, 10, 11,
                12, 13, 14, 15, 16, 17, 18, 19,
                 0,  1,  2,  3,  4,  5,  6,  7,
@@ -46,7 +46,7 @@ in the MQQ160-SIGN C Library.
 static void mqq_inv_affine_transformation(const uint8_t* input_bytes, uint8_t* result, const mqq160_sign_key_t* key){
        /* The matrix SInv is given as two permutations of 160 elements. */
        uint8_t j, byteindex, bitindex, bitindex_d, byteindex_d, rp1, rp5;
-       uint8_t *rp1_ptr, *rp5_ptr;
+       const uint8_t *rp1_ptr, *rp5_ptr;
        uint8_t h1[20];
 
 
@@ -100,7 +100,7 @@ static uint8_t mqq_q(uint8_t i, uint8_t b1, uint8_t b2, const mqq160_sign_key_t*
        uint8_t result, column, row, k;
        int8_t j;
        uint16_t temp;
-       uint8_t *tmp_ptr=key->a;
+       const uint8_t *tmp_ptr=key->a;
        if(i&1){
                memcpy(e, key->cc1, 9);
                while(b1){
index bf6c5f7ab10ee7777d0a0b2c2890a7893d263a10..6a1d43b5a79a9acdec935f46a524891d8f748487 100644 (file)
 #define MQQ160SIGN_H_
 
 typedef struct{
-       uint8_t *a;
-       uint8_t *cc1;
-       uint8_t *cc2;
-       uint8_t *rp1;
-       uint8_t *rp5;
+       const uint8_t *a;
+       const uint8_t *cc1;
+       const uint8_t *cc2;
+       const uint8_t *rp1;
+       const uint8_t *rp5;
 } mqq160_sign_key_t;
 
 void mqq160_sign(void* dest, const void* hash, const mqq160_sign_key_t* key);
index 67f372295c8131ad8bfc642964263e3faeacb055..90f11d29655d49547cb6be83de897689520dfacd 100644 (file)
@@ -34,7 +34,7 @@
 #include "memxor.h"
 #include "mqq160-sign.h"
 
-static uint8_t mod20_table[32] PROGMEM = {
+static const uint8_t mod20_table[32] PROGMEM = {
                 4,  5,  6,  7,  8,  9, 10, 11,
                12, 13, 14, 15, 16, 17, 18, 19,
                 0,  1,  2,  3,  4,  5,  6,  7,
@@ -57,7 +57,7 @@ in the MQQ160-SIGN C Library.
 static void mqq_inv_affine_transformation(uint8_t* input_bytes, uint8_t* result, const mqq160_sign_key_t* key){
        /* The matrix SInv is given as two permutations of 160 elements. */
        uint8_t j, byteindex, bitindex, bitindex_d, byteindex_d, rp1, rp5;
-       uint8_t *r1_ptr, *r5_ptr;
+       const uint8_t *r1_ptr, *r5_ptr;
        uint8_t h1[20];
 
        /* Initialize H1 and H2 = 0 */
@@ -109,7 +109,7 @@ static uint8_t mqq_q(uint8_t i, uint8_t b1, uint8_t b2, const mqq160_sign_key_t*
        uint8_t result, column, row, k;
        int8_t j;
        uint16_t temp;
-       uint8_t *tmp_ptr=key->a;
+       const uint8_t *tmp_ptr=key->a;
        if(i&1){
                memcpy_P(e, key->cc1, 9);
                while(b1){
index 8fef41ad6e285ac36a117cddee26e607b0ebe36a..f7fc011ab28f035d5e09ab09c162e869c8a9d733 100644 (file)
@@ -30,7 +30,7 @@ RP1[] and RP5[] of 160 uint8_ts.
 */
 
 
-static uint8_t a[9*9-1] PROGMEM =
+const uint8_t a[9*9-1] PROGMEM =
  { 171, 171, 165,  56, 121, 136,  79, 108,   2,
    255, 255, 165, 108,  45, 220,  79, 108,  88,
     54, 108, 103,  21,  74, 119, 141, 204, 221,
@@ -42,12 +42,12 @@ static uint8_t a[9*9-1] PROGMEM =
    225,  61,   8, 232, 235,  49,  22, 146 };
 
 
-static uint8_t cc1[9] PROGMEM = {  2,  88, 221, 173, 140,  48, 171,  45, 252 };
-static uint8_t cc2[9] PROGMEM = {225,  61,   8, 232, 235,  49,  22, 146, 252 };
+const uint8_t cc1[9] PROGMEM = {  2,  88, 221, 173, 140,  48, 171,  45, 252 };
+const uint8_t cc2[9] PROGMEM = {225,  61,   8, 232, 235,  49,  22, 146, 252 };
 
 /* The matrix SInv is stored in ROM as two onedimensional
 arrays RP1[] and RP5[] of 160 uint8_ts */
-static uint8_t rp1[160] PROGMEM = {
+const uint8_t rp1[160] PROGMEM = {
        111, 137,  49, 134,   9, 116,  11,  52,  43,  55,
         74, 130, 119, 144,  31,   7,  72,  79, 105,  59,
         57, 120,  50,  94, 141, 135, 149,  44, 109, 100,
@@ -65,7 +65,7 @@ static uint8_t rp1[160] PROGMEM = {
         86, 140,  71, 136,  69,  99,  58,   6,  92,  90,
          8, 103, 128,  38,  46, 146,  89, 151,  51,  53 };
 
-static uint8_t rp5[160] PROGMEM = {
+const uint8_t rp5[160] PROGMEM = {
         90, 113, 130, 115, 132,  27,  46,  72,  33,  50,
         35, 136,  42, 148, 146, 143, 116, 158,  98,  41,
         39,   5,  54,  86, 106,  56,  30, 138,  80,  44,
@@ -83,7 +83,7 @@ static uint8_t rp5[160] PROGMEM = {
         22,  15, 151,  32,  84,  37,  77,  88,  16,  29,
          3, 128, 118,  18, 156,  19,  52,  45,  53,  63 };
 
-mqq160_sign_key_t testkey_P PROGMEM = {a, cc1, cc2, rp1, rp5 };
+const mqq160_sign_key_t testkey_P PROGMEM = {a, cc1, cc2, rp1, rp5 };
 
 void mqq_load_pgm_key(void* buffer, mqq160_sign_key_t* key, const mqq160_sign_key_t* key_P){
        uint8_t *buf_ptr;
index cd601d9d249bddc859a6ce3097cbc1c239ee9f62..e10e5b5b71db750851195c9e09bd8eabeab1928b 100644 (file)
@@ -35,7 +35,7 @@ quadratic quasigroup of order 2^8 given as 81 uint8_ts
 and one nonsingular matrix SInv given as two arrays
 RP1[] and RP5[] of 160 uint8_ts.
 */
-extern mqq160_sign_key_t testkey_P;
+extern const mqq160_sign_key_t testkey_P;
 
 void mqq_load_pgm_key(void* buffer, mqq160_sign_key_t* key, const mqq160_sign_key_t* key_P);
 
index 0be9f9af57ab5a0d63cc645c8615041cf2fe3456..c90b1a1ea11ed4f522b2d50e3a8c02a47c73cdbb 100644 (file)
@@ -65,16 +65,19 @@ void dump_mugi_ctx(mugi_ctx_t* ctx){
 #define GF256MUL_2(a) (gf256mul(2, (a), 0x1b))
 
 uint64_t changeendian64(uint64_t a){
-       uint8_t r[8];
-       r[0] = ((uint8_t*)&a)[7];
-       r[1] = ((uint8_t*)&a)[6];
-       r[2] = ((uint8_t*)&a)[5];
-       r[3] = ((uint8_t*)&a)[4];
-       r[4] = ((uint8_t*)&a)[3];
-       r[5] = ((uint8_t*)&a)[2];
-       r[6] = ((uint8_t*)&a)[1];
-       r[7] = ((uint8_t*)&a)[0];
-       return *((uint64_t*)r);
+       union {
+               uint8_t v8[8];
+               uint64_t v64;
+       } r;
+       r.v8[0] = ((uint8_t*)&a)[7];
+       r.v8[1] = ((uint8_t*)&a)[6];
+       r.v8[2] = ((uint8_t*)&a)[5];
+       r.v8[3] = ((uint8_t*)&a)[4];
+       r.v8[4] = ((uint8_t*)&a)[3];
+       r.v8[5] = ((uint8_t*)&a)[2];
+       r.v8[6] = ((uint8_t*)&a)[1];
+       r.v8[7] = ((uint8_t*)&a)[0];
+       return r.v64;
 }
 
 static
index f48d1e6a9b282b4da6a038a356495087d57ff6da..8c4d6be2191980939cce0bad552842e3c216b87b 100644 (file)
@@ -98,7 +98,7 @@ void noekeon_round(uint32_t* key, uint32_t* state, uint8_t const1, uint8_t const
        pi2(state);
 }
 
-uint8_t rc_tab[]
+const uint8_t rc_tab[]
 #ifdef __AVR__
  PROGMEM 
 #endif
index 03792c5a8fb232918799653630d0f8f05fef067a..376c3e3a5aacdc58d1d83203904c29587f7c98ad 100644 (file)
@@ -72,26 +72,38 @@ static void p_inv(uint8_t* o, uint8_t* i){
 }
 
 void present_init(const uint8_t* key, uint8_t keysize_b, present_ctx_t* ctx){
-       uint8_t buffer[10], tmp[2];
+       uint8_t tmp[2];
+       union __attribute__((packed)) {
+               uint8_t  v8[10];
+               uint16_t v16[5];
+               uint64_t v64;
+               struct __attribute__((packed)) {
+                       uint8_t padding;
+                       union {
+                               uint64_t v64;
+                               uint16_t v16[4];
+                       } y;
+               } x;    
+       } b;
        uint8_t i;
-       memcpy(buffer, key, 10);
-       memcpy(&(ctx->k[0]), buffer+2, 8);
+       memcpy(b.v8, key, 10);
+       memcpy(&(ctx->k[0]), b.v8+2, 8);
        for(i=1; i<32; ++i){
                /* rotate buffer 19 right */
-               memcpy(tmp, buffer, 2);
-               memmove(buffer, buffer+2, 8);
-               memcpy(buffer+8, tmp, 2);
+               memcpy(tmp, b.v8, 2);
+               memmove(b.v8, b.v8+2, 8);
+               memcpy(b.v8+8, tmp, 2);
                 /* three shifts to do*/
-               tmp[1]=buffer[0];
-               *((uint64_t*)buffer)>>=3;
-               *((uint16_t*)(buffer+8))>>=3;
-               buffer[9] |= tmp[1]<<5;
-               buffer[7] |= tmp[0]<<5;
+               tmp[1]=b.v8[0];
+               b.v64 >>= 3;
+               b.v16[4] >>= 3;
+               b.v8[9] |= tmp[1]<<5;
+               b.v8[7] |= tmp[0]<<5;
                /* rotating done now substitution */
-               buffer[9] = (sbox(buffer[9])&0xF0) | ((buffer[9])&0x0F);
+               b.v8[9] = (sbox(b.v8[9])&0xF0) | ((b.v8[9])&0x0F);
                /* xor with round counter */
-               *((uint16_t*)(buffer+1)) ^= (uint16_t)i<<7;
-               memcpy(&(ctx->k[i]), buffer+2, 8);
+               b.x.y.v16[0] ^= (uint16_t)i<<7;
+               memcpy(&(ctx->k[i]), b.v8+2, 8);
        }
 }
 
index c5f8a43321e09dbe3de85ed6807dcb0ce58d4f9d..9b234d45c71ab479100b4b7fc33256f48aa5b95e 100644 (file)
@@ -142,24 +142,28 @@ static
 void ivsetup(rabbit_ctx_t* ctx, const void* iv){
        uint8_t i;
        uint32_t t;
-       uint8_t t_iv[8];
+       union __attribute__((packed)){
+               uint8_t v8[8];
+               uint16_t v16[4];
+               uint32_t v32[2];
+       }t_iv;
        i=0;
 #if ESTREAM
-       memcpy(t_iv, iv, 8);
+       memcpy(t_iv.v8, iv, 8);
 #else
        do{
-               t_iv[i] = ((uint8_t*)iv)[7-i];
-               t_iv[7-i] = ((uint8_t*)iv)[i];
+               t_iv.v8[i] = ((uint8_t*)iv)[7-i];
+               t_iv.v8[7-i] = ((uint8_t*)iv)[i];
        }while(++i<4);
 #endif
-       ctx->c[0] ^= *((uint32_t*)t_iv);
-       ctx->c[4] ^= *((uint32_t*)t_iv);
-       ctx->c[2] ^= ((uint32_t*)t_iv)[1];
-       ctx->c[6] ^= ((uint32_t*)t_iv)[1];
-       t = (( (uint32_t)((uint16_t*)t_iv)[3])<<16) | (((uint16_t*)t_iv)[1]);
+       ctx->c[0] ^= t_iv.v32[0];
+       ctx->c[4] ^= t_iv.v32[0];
+       ctx->c[2] ^= t_iv.v32[1];
+       ctx->c[6] ^= t_iv.v32[1];
+       t = ( ((uint32_t)(t_iv.v16[3]))<<16) | (t_iv.v16[1]);
        ctx->c[1] ^= t;
        ctx->c[5] ^= t;
-       t = (( (uint32_t)((uint16_t*)t_iv)[2])<<16) | (((uint16_t*)t_iv)[0]);
+       t = ( ((uint32_t)(t_iv.v16[2]))<<16) | (t_iv.v16[0]);
        ctx->c[3] ^= t;
        ctx->c[7] ^= t;
        i=4;
index dfe51b206cd9b5849e41c861478fb201d72b7491..4cb341fed065a981452a48a95c6c337a700908ee 100644 (file)
@@ -32,7 +32,7 @@
 #define D_LEN_B (32*8)
 #define ALL_LEN_B (N_LEN_B+E_LEN_B+D_LEN_B)
 
-static uint8_t rsa_key_blob[] PROGMEM = {
+const uint8_t rsa_key_blob[] PROGMEM = {
                /* n */
                0xDA, 0xBC, 0x4A, 0x42, 0x02, 0x6F, 0x7F, 0xC2,
                0xEB, 0x5A, 0x73, 0x2A, 0x84, 0x25, 0xB5, 0x56,
@@ -111,7 +111,7 @@ static uint8_t rsa_key_blob[] PROGMEM = {
 #define D_LEN_B (16*8)
 #define ALL_LEN_B (N_LEN_B+E_LEN_B+D_LEN_B)
 
-static uint8_t rsa_key_blob[] PROGMEM = {
+const uint8_t rsa_key_blob[] PROGMEM = {
                /* n */
                0xC8, 0xE2, 0x5C, 0xE3, 0x38, 0xE2, 0x05, 0x03,
                0xBA, 0xFD, 0x33, 0x9A, 0xC4, 0x71, 0x5A, 0xD9,
index ca529a76e682f3f96623ebdea2c034b6627e50c0..4e994db0659591f9da3c9eb303990372c0f4f393 100644 (file)
@@ -69,8 +69,8 @@ void salsa20_hash(uint32_t* a){
        }
 }
 
-uint8_t sigma[] PROGMEM = {'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'};
-uint8_t theta[] PROGMEM = {'e','x','p','a','n','d',' ','1','6','-','b','y','t','e',' ','k'};
+const uint8_t sigma[] PROGMEM = {'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'};
+const uint8_t theta[] PROGMEM = {'e','x','p','a','n','d',' ','1','6','-','b','y','t','e',' ','k'};
 
 void salsa_k32(uint32_t* dest, const uint32_t* k, const uint32_t* n){
        memcpy_P(dest+ 0, sigma+ 0, 4);
index 441a88c99623132fc073f22c315fca6543cfcdd2..4e750d3cc57d22bb6cb62a07fcb98884db9ef8a1 100644 (file)
@@ -127,10 +127,8 @@ uint8_t scal_cipher_gen_byte(scgen_ctx_t* ctx){
 
 void scal_cipher_gen_block(void* block, scgen_ctx_t* ctx){
        uint8_t flags;
-       uint16_t blocksize_b;
        void_fpt gen_fpt;
        flags = pgm_read_byte(&(ctx->desc_ptr->flags));
-       blocksize_b = pgm_read_word(&(ctx->desc_ptr->gensize_b));
        gen_fpt = (void_fpt)pgm_read_word(&(ctx->desc_ptr->gen));
        if((flags&SC_GEN_TYPE)==SC_GEN_TYPE_1){
                *((uint8_t*)block) = ((sc_gen1_fpt)gen_fpt)(ctx->ctx);
index 99379130ba68905f55caadc186ef044c09563563..033a863d546a690ad854f4067d2e6b5311d4521c 100644 (file)
 #include <stdint.h>
 #include <avr/pgmspace.h>
 
-uint8_t seed_sbox1[256] PROGMEM ={
-       169,  133,  214,  211,   84,   29,  172,   37, 
-        93,   67,   24,   30,   81,  252,  202,   99, 
-        40,   68,   32,  157,  224,  226,  200,   23, 
-       165,  143,    3,  123,  187,   19,  210,  238, 
-       112,  140,   63,  168,   50,  221,  246,  116, 
-       236,  149,   11,   87,   92,   91,  189,    1, 
-        36,   28,  115,  152,   16,  204,  242,  217, 
-        44,   231, 114,  131,  155,  209,  134,  201, 
-        96,   80,  163,  235,   13,  182,  158,   79, 
-       183,   90,  198,  120,  166,   18,  175,  213, 
-        97,  195,  180,   65,   82,  125,  141,    8, 
-        31,  153,    0,   25,    4,   83,  247,  225, 
-       253,  118,   47,   39,  176,  139,   14,  171, 
-       162,  110,  147,   77,  105,  124,    9,   10, 
-       191,  239,  243,  197,  135,   20,  254,  100, 
-       222,   46,   75,   26,    6,   33,  107,  102, 
-         2,  245,  146,  138,   12,  179,  126,  208, 
-       122,   71,  150,  229,   38,  128,  173,  223, 
-       161,   48,   55,  174,   54,   21,   34,   56, 
-       244,  167,   69,   76,  129,  233,  132,  151, 
-        53,  203,  206,   60,  113,   17,  199,  137, 
-       117,  251,  218,  248,  148,   89,  130,  196, 
-       255,   73,   57,  103,  192,  207,  215,  184, 
-        15,  142,   66,   35,  145,  108,  219,  164, 
-        52,  241,   72,  194,  111,   61,   45,   64, 
-       190,   62,  188,  193,  170,  186,   78,   85, 
-        59,  220,  104,  127,  156,  216,   74,   86, 
-       119,  160,  237,   70,  181,   43,  101,  250, 
-       227,  185,  177,  159,   94,  249,  230,  178, 
-        49,  234,  109,   95,  228,  240,  205,  136, 
-        22,   58,   88,  212,   98,   41,    7,   51, 
-       232,   27,    5,  121,  144,  106,   42,  154
-};
+extern const uint8_t seed_sbox1[256];
 
-uint8_t seed_sbox2[256] PROGMEM ={
-        56,  232,   45,  166,  207,  222,  179,  184, 
-       175,   96,   85,  199,   68,  111,  107,   91, 
-       195,   98,   51,  181,   41,  160,  226,  167, 
-       211,  145,   17,    6,   28,  188,   54,   75, 
-       239,  136,  108,  168,   23,  196,   22,  244, 
-       194,   69,  225,  214,   63,   61,  142,  152, 
-        40,   78,  246,   62,  165,  249,   13,  223, 
-       216,   43,  102,  122,   39,   47,  241,  114, 
-        66,  212,   65,  192,  115,  103,  172,  139, 
-       247,  173,  128,   31,  202,   44,  170,   52, 
-       210,   11,  238,  233,   93,  148,   24,  248, 
-        87,  174,    8,  197,   19,  205,  134,  185, 
-       255,  125,  193,   49,  245,  138,  106,  177, 
-       209,   32,  215,    2,   34,    4,  104,  113, 
-         7,  219,  157,  153,   97,  190,  230,   89, 
-       221,   81,  144,  220,  154,  163,  171,  208, 
-       129,   15,   71,   26,  227,  236,  141,  191, 
-       150,  123,   92,  162,  161,   99,   35,   77, 
-       200,  158,  156,   58,   12,   46,  186,  110, 
-       159,   90,  242,  146,  243,   73,  120,  204, 
-        21,  251,  112,  117,  127,   53,   16,    3, 
-       100,  109,  198,  116,  213,  180,  234,    9, 
-       118,   25,  254,   64,   18,  224,  189,    5, 
-       250,    1,  240,   42,   94,  169,   86,   67, 
-       133,   20,  137,  155,  176,  229,   72,  121, 
-       151,  252,   30,  130,   33,  140,   27,   95, 
-       119,   84,  178,   29,   37,   79,    0,   70, 
-       237,   88,   82,  235,  126,  218,  201,  253, 
-        48,  149,  101,   60,  182,  228,  187,  124, 
-        14,   80,   57,   38,   50,  132,  105,  147, 
-        55,  231,   36,  164,  203,   83,   10,  135, 
-       217,   76,  131,  143,  206,   59,   74,  183 
-};
+extern const uint8_t seed_sbox2[256];
 
 /* key constants */
-uint32_t seed_kc[16] PROGMEM ={
-       0xb979379e, 
-       0x73f36e3c,
-       0xe6e6dd78, 
-       0xcccdbbf1, 
-       0x999b77e3, 
-       0x3337efc6, 
-       0x676ede8d, 
-       0xcfdcbc1b, 
-       0x9eb97937,
-       0x3c73f36e,     
-       0x78e6e6dd,
-       0xf1cccdbb,
-       0xe3999b77,
-       0xc63337ef,
-       0x8d676ede,
-       0x1bcfdcbc
-};
+extern const uint32_t seed_kc[16];
 
 #endif /*SEED_SBOX_H_*/
index 3a59969cee744497ff7074679db388d496faaaab..bdbe175319cd49d53bc1a543eb251597bbdb72ce 100644 (file)
@@ -28,7 +28,7 @@
 #include <avr/pgmspace.h>
 #include "serpent-sboxes.h"
 
-uint8_t sbox[] PROGMEM = {
+const uint8_t sbox[] PROGMEM = {
  0x38, 0xF1, 0xA6, 0x5B, 0xED, 0x42, 0x70, 0x9C,
  0xFC, 0x27, 0x90, 0x5A, 0x1B, 0xE8, 0x6D, 0x34, 
  0x86, 0x79, 0x3C, 0xAF, 0xD1, 0xE4, 0x0B, 0x52,
index 5540dc80889f940c15431a61f2ba039d8fd5cf50..73a9b401e02021869b757b4daf2de8d382c7d1c5 100644 (file)
@@ -30,7 +30,7 @@
 #include <avr/pgmspace.h>
 #include <string.h>
 
-uint32_t shabal192_iv[] PROGMEM = {
+const uint32_t shabal192_iv[] PROGMEM = {
        /* A */
        0xFD749ED4, 0xB798E530, 0x33904B6F, 0x46BDA85E,
        0x076934B4, 0x454B4058, 0x77F74527, 0xFB4CF465,
index db01d3c2f55b3491fd1ac5fc91fe4ec3d27928c4..cba98407a3cd9255142052d24042a457b936a3bb 100644 (file)
@@ -30,7 +30,7 @@
 #include <avr/pgmspace.h>
 #include <string.h>
 
-uint32_t shabal224_iv[] PROGMEM = {
+const uint32_t shabal224_iv[] PROGMEM = {
        /* A */
        0xA5201467, 0xA9B8D94A, 0xD4CED997, 0x68379D7B, 
        0xA7FC73BA, 0xF1A2546B, 0x606782BF, 0xE0BCFD0F,
index 6f5ca191119f4ed9d97dd57cc8af7c1ecc86a37e..7d0ced67a776faf540fef6f6d8e6143cdc284dc2 100644 (file)
@@ -30,7 +30,7 @@
 #include <avr/pgmspace.h>
 #include <string.h>
 
-uint32_t shabal256_iv[] PROGMEM = {
+const uint32_t shabal256_iv[] PROGMEM = {
        /* A */ 
        0x52F84552, 0xE54B7999, 0x2D8EE3EC, 0xB9645191, 
        0xE0078B86, 0xBB7C44C9, 0xD2B5C1CA, 0xB0D2EB8C,
index 11ab06ed49e3d06259aa645e2cbbbd408dc7bd36..464ab97e3361a1abea2cd188c194e0503150c1b2 100644 (file)
@@ -30,7 +30,7 @@
 #include <avr/pgmspace.h>
 #include <string.h>
 
-uint32_t shabal384_iv[] PROGMEM = {
+const uint32_t shabal384_iv[] PROGMEM = {
        /* A */ 
        0xC8FCA331, 0xE55C504E, 0x003EBF26, 0xBB6B8D83, 
        0x7B0448C1, 0x41B82789, 0x0A7C9601, 0x8D659CFF,
index caad571e3c0f4adc07fd7f5cf74103a0702d90b6..2b94b4ec186f8bfe9a3a32291cfdada7c7f34293 100644 (file)
@@ -30,7 +30,7 @@
 #include <avr/pgmspace.h>
 #include <string.h>
 
-uint32_t shabal512_iv[] PROGMEM = {
+const uint32_t shabal512_iv[] PROGMEM = {
        /* A */ 
        0x20728DFD, 0x46C0BD53, 0xE782B699, 0x55304632, 
        0x71B4EF90, 0x0EA9E82C, 0xDBB930F1, 0xFAD06B8B,
index 14718810c9515405087d45ac0c0e89f5cf773697..3ad83cd23e4bbe5d9a17399636cd7cfaa997ad0a 100644 (file)
@@ -1,6 +1,6 @@
 /* ubi.h */
 /*
-    This file is part of the AVR-Crypto-Lib.
+    This file is part of the ARM-Crypto-Lib.
     Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
 
     This program is free software: you can redistribute it and/or modify
 
 
 typedef struct{
-       uint8_t tweak[16];
+       union {
+               uint8_t v8[16];
+               uint16_t v16[8];
+               uint32_t v32[4];
+               uint64_t v64[2];
+       } tweak;
        uint8_t g[32];
 }ubi256_ctx_t;
 
 typedef struct{
-       uint8_t tweak[16];
+       union {
+               uint8_t v8[16];
+               uint16_t v16[8];
+               uint32_t v32[4];
+               uint64_t v64[2];
+       } tweak;
        uint8_t g[64];
 }ubi512_ctx_t;
 
 typedef struct{
-       uint8_t tweak[16];
+       union {
+               uint8_t v8[16];
+               uint16_t v16[8];
+               uint32_t v32[4];
+               uint64_t v64[2];
+       } tweak;
        uint8_t g[128];
 }ubi1024_ctx_t;
 
index ae17cb32da35b862300faec237f8d2fb1b9c62fb..dafffbb29afd675dd677350566c4bbd73e7a02cb 100644 (file)
@@ -1,7 +1,7 @@
 /* ubi1024.c */
 /*
-    This file is part of the AVR-Crypto-Lib.
-    Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
+    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
 #include "ubi.h"
 
 void ubi1024_init(ubi1024_ctx_t* ctx, const void* g, uint8_t type){
-       memset(ctx->tweak, 0, 15);
-       ctx->tweak[15] = 0x40+type;
+       memset(ctx->tweak.v8, 0, 15);
+       ctx->tweak.v8[15] = 0x40+type;
        memcpy(ctx->g, g, UBI1024_BLOCKSIZE_B);
 }
 
 void ubi1024_nextBlock(ubi1024_ctx_t* ctx, const void* block){
        threefish1024_ctx_t tfctx;
-       ((uint64_t*)(ctx->tweak))[0] += UBI1024_BLOCKSIZE_B;
-       threefish1024_init(ctx->g, ctx->tweak, &tfctx);
+       ctx->tweak.v64[0] += UBI1024_BLOCKSIZE_B;
+       threefish1024_init(ctx->g, ctx->tweak.v8, &tfctx);
        memcpy(ctx->g, block, UBI1024_BLOCKSIZE_B);
        threefish1024_enc(ctx->g, &tfctx);
        memxor(ctx->g, block, UBI1024_BLOCKSIZE_B);
-       ctx->tweak[15] &= (uint8_t)~0x40;
+       ctx->tweak.v8[15] &= (uint8_t)~0x40;
 } 
 
 
@@ -54,11 +54,11 @@ void ubi1024_lastBlock(ubi1024_ctx_t* ctx, const void* block, uint16_t length_b)
                block = (uint8_t*)block + UBI1024_BLOCKSIZE_B;
                length_b -= UBI1024_BLOCKSIZE;
        }
-       ctx->tweak[15] |= 0x80;
-       ((uint64_t*)(ctx->tweak))[0] += (length_b+7)/8;
+       ctx->tweak.v8[15] |= 0x80;
+       ctx->tweak.v64[0] += (length_b+7)/8;
        if(length_b & 0x07)
-               ctx->tweak[14] |= 0x80;
-       threefish1024_init(ctx->g, ctx->tweak, &tfctx);
+               ctx->tweak.v8[14] |= 0x80;
+       threefish1024_init(ctx->g, ctx->tweak.v8, &tfctx);
        memset(ctx->g, 0, UBI1024_BLOCKSIZE_B);
        memcpy(ctx->g, block, (length_b+7)/8);
        if(length_b & 0x07)
index 09eb1e9b2a92fbaa90275e4730680d678c27048c..8e60d341301bac76c534b17fa5429b5ae95b6d73 100644 (file)
@@ -1,7 +1,7 @@
 /* ubi256.c */
 /*
-    This file is part of the AVR-Crypto-Lib.
-    Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
+    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
 #include "ubi.h"
 
 void ubi256_init(ubi256_ctx_t* ctx, const void* g, uint8_t type){
-       memset(ctx->tweak, 0, 15);
-       ctx->tweak[15] = 0x40+type;
+       memset(ctx->tweak.v8, 0, 15);
+       ctx->tweak.v8[15] = 0x40+type;
        memcpy(ctx->g, g, 32);
 }
 
 void ubi256_nextBlock(ubi256_ctx_t* ctx, const void* block){
        threefish256_ctx_t tfctx;
-       ((uint64_t*)(ctx->tweak))[0] += UBI256_BLOCKSIZE_B;
-       threefish256_init(ctx->g, ctx->tweak, &tfctx);
+       ctx->tweak.v64[0] += UBI256_BLOCKSIZE_B;
+       threefish256_init(ctx->g, ctx->tweak.v8, &tfctx);
        memcpy(ctx->g, block, UBI256_BLOCKSIZE_B);
        threefish256_enc(ctx->g, &tfctx);
        memxor(ctx->g, block, UBI256_BLOCKSIZE_B);
-       ctx->tweak[15] &= (uint8_t)~0x40;
+       ctx->tweak.v8[15] &= (uint8_t)~0x40;
 } 
 
 
@@ -54,12 +54,12 @@ void ubi256_lastBlock(ubi256_ctx_t* ctx, const void* block, uint16_t length_b){
                block = (uint8_t*)block + UBI256_BLOCKSIZE_B;
                length_b -= UBI256_BLOCKSIZE;
        }
-       ctx->tweak[15] |= 0x80;
-       ((uint64_t*)(ctx->tweak))[0] += (length_b+7)/8;
+       ctx->tweak.v8[15] |= 0x80;
+       ctx->tweak.v64[0] += (length_b+7)/8;
        if(length_b & 0x07){
-               ctx->tweak[14] |= 0x80;
+               ctx->tweak.v8[14] |= 0x80;
        }
-       threefish256_init(ctx->g, ctx->tweak, &tfctx);
+       threefish256_init(ctx->g, ctx->tweak.v8, &tfctx);
        memset(ctx->g, 0, UBI256_BLOCKSIZE_B);
        memcpy(ctx->g, block, (length_b+7)/8);
        if(length_b & 0x07){
index d6bab2d30e151464eea38cb9ed29918c45ecd52c..526018fc9e4c96b6e097a4c8dabc484c1874f8a1 100644 (file)
@@ -1,7 +1,7 @@
 /* ubi512.c */
 /*
-    This file is part of the AVR-Crypto-Lib.
-    Copyright (C) 2009  Daniel Otte (daniel.otte@rub.de)
+    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
 #include "ubi.h"
 
 void ubi512_init(ubi512_ctx_t* ctx, const void* g, uint8_t type){
-       memset(ctx->tweak, 0, 15);
-       ctx->tweak[15] = 0x40+type;
+       memset(ctx->tweak.v8, 0, 15);
+       ctx->tweak.v8[15] = 0x40+type;
        memcpy(ctx->g, g, UBI512_BLOCKSIZE_B);
 }
 
 void ubi512_nextBlock(ubi512_ctx_t* ctx, const void* block){
        threefish512_ctx_t tfctx;
-       ((uint64_t*)(ctx->tweak))[0] += UBI512_BLOCKSIZE_B;
-       threefish512_init(ctx->g, ctx->tweak, &tfctx);
+       ctx->tweak.v64[0] += UBI512_BLOCKSIZE_B;
+       threefish512_init(ctx->g, ctx->tweak.v8, &tfctx);
        memcpy(ctx->g, block, UBI512_BLOCKSIZE_B);
        threefish512_enc(ctx->g, &tfctx);
        memxor(ctx->g, block, UBI512_BLOCKSIZE_B);
-       ctx->tweak[15] &= (uint8_t)~0x40;
+       ctx->tweak.v8[15] &= (uint8_t)~0x40;
 } 
 
 
@@ -54,11 +54,11 @@ void ubi512_lastBlock(ubi512_ctx_t* ctx, const void* block, uint16_t length_b){
                block = (uint8_t*)block + UBI512_BLOCKSIZE_B;
                length_b -= UBI512_BLOCKSIZE;
        }
-       ctx->tweak[15] |= 0x80;
-       ((uint64_t*)(ctx->tweak))[0] += (length_b+7)/8;
+       ctx->tweak.v8[15] |= 0x80;
+       ctx->tweak.v64[0] += (length_b+7)/8;
        if(length_b & 0x07)
-               ctx->tweak[14] |= 0x80;
-       threefish512_init(ctx->g, ctx->tweak, &tfctx);
+               ctx->tweak.v8[14] |= 0x80;
+       threefish512_init(ctx->g, ctx->tweak.v8, &tfctx);
        memset(ctx->g, 0, UBI512_BLOCKSIZE_B);
        memcpy(ctx->g, block, (length_b+7)/8);
        if(length_b & 0x07)
index 04eb437a00edb18d2bc77ffae2cf5ffa974f4c5a..07bc97bf9bf3412dd96d62752611ba27a0dd7b85 100644 (file)
 #include <avr/io.h>
 #include <avr/pgmspace.h>
 
-#define SKIPJACK_CNT_BIG
+#if NESSIE_COMPAT
+#define SKIPJACK_CNT_BIG 0
+#else
+#define SKIPJACK_CNT_BIG 1
+#endif
 
-#ifdef SKIPJACK_CNT_BIG
+#if SKIPJACK_CNT_BIG
   #define SKIPJACK_CNT_SHIFT <<8
 #else
   #define SKIPJACK_CNT_SHIFT
@@ -40,7 +44,7 @@
 
 /*****************************************************************************/
 
-uint8_t skipjack_ftable[] PROGMEM ={ 
+const uint8_t skipjack_ftable[] PROGMEM ={ 
        0xa3, 0xd7, 0x09, 0x83, 0xf8, 0x48, 0xf6, 0xf4, 
        0xb3, 0x21, 0x15, 0x78, 0x99, 0xb1, 0xaf, 0xf9, 
        0xe7, 0x2d, 0x4d, 0x8a, 0xce, 0x4c, 0xca, 0x2e, 
index 69671f6339320ba59b57d75efd25ac2cbdd61f94..573997e66f78d7e7f179ad6460594c47654ddd24 100644 (file)
@@ -39,6 +39,7 @@
  */
 TMP_CNT_0 = 26
 TMP_CNT_1 = 27
+
 .global max_cmd_length
 max_cmd_length:
        movw r30, r24
@@ -345,7 +346,7 @@ cli_auto_help:
        movw TMP_0, r24
        rcall cli_putstr_P
        movw r24, TMP_0
-       call strlen_P
+       call strlen_PF
        movw TMP_0, LEN_0
        sub TMP_0, r24
        sbc TMP_1, r25
index 513729e52ebc8ed47e95728b08dac6a843fc200f..b0d669ede4f7ec39d5df7872ede9bab20fe05409 100644 (file)
@@ -32,7 +32,7 @@
 #define UART0_PARATY     UART_PARATY_NONE
 #define UART0_STOPBITS   UART_STOPBITS_1
 #define UART0_DATABITS   UART_DATABITS_8
-#define UART0_RXBUFFER_SIZE 120
+#define UART0_RXBUFFER_SIZE 255
 #define UART0_TXBUFFER_SIZE 120
 #define UART0_SWFLOWCTRL     1
 #define UART0_THRESH_LOW     0
index 0053df85a77a19696b4af1c277cbf8df97a165aa..984b8bd5d7dd22bd74aa4bd9a3f91d90fa282360 100644 (file)
@@ -48,7 +48,7 @@ const char flash_desc[]  PROGMEM = "flash";
 const char ram_desc[]    PROGMEM = "ram";
 const char eeprom_desc[] PROGMEM = "eeprom";
 
-typedef struct {
+typedef const struct {
        PGM_P trigger;
        PGM_P desc;
        void (*fpt)(void*, uint32_t, uint8_t);
index 6a0edc8d7db6a794f97d5330b6bf063ac07c42e5..34e6739cc0329bbabd53e4abaa8ad702edba06ea 100644 (file)
@@ -68,7 +68,7 @@ const char testkey_str[]     PROGMEM = "testkey";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_a51, NULL},
 /*     { performance_str, NULL, testrun_performance_a51, NULL}, */
        { echo_str,    (void*)1, (void_fpt)echo_ctrl, NULL},
index 934d6df5090e1ecf6dec0cbfb4b24bfaee698af2..e7b20713430094a63bd26d6bd27606d2560b50cc 100644 (file)
@@ -51,9 +51,9 @@
 #include <stdlib.h>
 #include <avr/pgmspace.h>
 
-char* algo_name = "AES";
+const char* algo_name = "AES";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const const algolist[] PROGMEM = {
        (bcdesc_t*)&aes128_desc,
        (bcdesc_t*)&aes192_desc,
        (bcdesc_t*)&aes256_desc,
@@ -177,23 +177,23 @@ void testrun_testkey_aes(void){
        testrun_testkey_aes256();
 }
 
-uint8_t modes_key[]   PROGMEM = {
+const uint8_t modes_key[]   PROGMEM = {
                0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
                0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c,
                0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7,
                0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4
        };
-uint8_t modes_iv[]    PROGMEM = {
+const uint8_t modes_iv[]    PROGMEM = {
                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
                0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
     };
 
-uint8_t modes_ctriv[] PROGMEM = {
+const uint8_t modes_ctriv[] PROGMEM = {
                0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
                0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
        };
 
-uint8_t modes_plain[] PROGMEM = {
+const uint8_t modes_plain[] PROGMEM = {
                0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
                0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
                /* --- */
@@ -510,7 +510,7 @@ void testrun_aes192_cmac0(void){
        bcal_cmac_free(&ctx);
 }
 
-uint8_t eax_msg[] PROGMEM = {
+const uint8_t eax_msg[] PROGMEM = {
     0xF7, 0xFB,
     0x1A, 0x47, 0xCB, 0x49, 0x33,
     0x48, 0x1C, 0x9E, 0x39, 0xB1,
@@ -522,9 +522,9 @@ uint8_t eax_msg[] PROGMEM = {
     0xCA, 0x40, 0xD7, 0x44, 0x6E, 0x54, 0x5F, 0xFA, 0xED, 0x3B, 0xD1, 0x2A, 0x74, 0x0A, 0x65, 0x9F, 0xFB, 0xBB, 0x3C, 0xEA, 0xB7
 };
 
-uint8_t eax_msg_len[] PROGMEM =  {0, 2, 5, 5, 6, 12, 17, 18, 18, 21};
+const uint8_t eax_msg_len[] PROGMEM =  {0, 2, 5, 5, 6, 12, 17, 18, 18, 21};
 
-uint8_t eax_key[] PROGMEM = {
+const uint8_t eax_key[] PROGMEM = {
        0x23, 0x39, 0x52, 0xDE, 0xE4, 0xD5, 0xED, 0x5F, 0x9B, 0x9C, 0x6D, 0x6F, 0xF8, 0x0F, 0xF4, 0x78,
     0x91, 0x94, 0x5D, 0x3F, 0x4D, 0xCB, 0xEE, 0x0B, 0xF4, 0x5E, 0xF5, 0x22, 0x55, 0xF0, 0x95, 0xA4,
     0x01, 0xF7, 0x4A, 0xD6, 0x40, 0x77, 0xF2, 0xE7, 0x04, 0xC0, 0xF6, 0x0A, 0xDA, 0x3D, 0xD5, 0x23,
@@ -537,7 +537,7 @@ uint8_t eax_key[] PROGMEM = {
     0x83, 0x95, 0xFC, 0xF1, 0xE9, 0x5B, 0xEB, 0xD6, 0x97, 0xBD, 0x01, 0x0B, 0xC7, 0x66, 0xAA, 0xC3
 };
 
-uint8_t eax_nonce[] PROGMEM = {
+const uint8_t eax_nonce[] PROGMEM = {
     0x62, 0xEC, 0x67, 0xF9, 0xC3, 0xA4, 0xA4, 0x07, 0xFC, 0xB2, 0xA8, 0xC4, 0x90, 0x31, 0xA8, 0xB3,
     0xBE, 0xCA, 0xF0, 0x43, 0xB0, 0xA2, 0x3D, 0x84, 0x31, 0x94, 0xBA, 0x97, 0x2C, 0x66, 0xDE, 0xBD,
     0x70, 0xC3, 0xDB, 0x4F, 0x0D, 0x26, 0x36, 0x84, 0x00, 0xA1, 0x0E, 0xD0, 0x5D, 0x2B, 0xFF, 0x5E,
@@ -550,7 +550,7 @@ uint8_t eax_nonce[] PROGMEM = {
     0x22, 0xE7, 0xAD, 0xD9, 0x3C, 0xFC, 0x63, 0x93, 0xC5, 0x7E, 0xC0, 0xB3, 0xC1, 0x7D, 0x6B, 0x44
 };
 
-uint8_t eax_header[] PROGMEM = {
+const uint8_t eax_header[] PROGMEM = {
     0x6B, 0xFB, 0x91, 0x4F, 0xD0, 0x7E, 0xAE, 0x6B,
     0xFA, 0x3B, 0xFD, 0x48, 0x06, 0xEB, 0x53, 0xFA,
     0x23, 0x4A, 0x34, 0x63, 0xC1, 0x26, 0x4A, 0xC6,
@@ -563,7 +563,7 @@ uint8_t eax_header[] PROGMEM = {
     0x12, 0x67, 0x35, 0xFC, 0xC3, 0x20, 0xD2, 0x5A
 };
 
-uint8_t eax_cipher[] PROGMEM = {
+const uint8_t eax_cipher[] PROGMEM = {
     0xE0, 0x37, 0x83, 0x0E, 0x83, 0x89, 0xF2, 0x7B, 0x02, 0x5A, 0x2D, 0x65, 0x27, 0xE7, 0x9D, 0x01,
     0x19, 0xDD, 0x5C, 0x4C, 0x93, 0x31, 0x04, 0x9D, 0x0B, 0xDA, 0xB0, 0x27, 0x74, 0x08, 0xF6, 0x79, 0x67, 0xE5,
     0xD8, 0x51, 0xD5, 0xBA, 0xE0, 0x3A, 0x59, 0xF2, 0x38, 0xA2, 0x3E, 0x39, 0x19, 0x9D, 0xC9, 0x26, 0x66, 0x26, 0xC4, 0x0F, 0x80,
@@ -680,7 +680,7 @@ const char performance_str[]  PROGMEM = "performance";
 const char dump_str[]         PROGMEM = "dump";
 const char echo_str[]         PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_aes              },
        { test_str,            NULL, testrun_test_aes                },
        { testkey_str,         NULL, testrun_testkey_aes             },
index 2c8e7f379e54c2ff3615fd3b706ba61eaf0f2acf..d90c8bdd6836779a12b979b4f6e4d600222d3428 100644 (file)
@@ -40,7 +40,7 @@
 
 char* algo_name = "AES-128";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&aes128_desc,
        NULL
 };
@@ -117,7 +117,7 @@ const char testkey_str[]     PROGMEM = "testkey";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_aes },
        { test_str,        NULL, testrun_test_aes},
        { testkey_str,     NULL, testrun_testkey_aes},
index 3d50e7d9998461f31c97c3244e1e95727d5e53a1..0eca624a04b000bc0bd828f7438d452e3a206f6f 100644 (file)
@@ -40,7 +40,7 @@
 
 char* algo_name = "AES-192";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&aes192_desc,
        NULL
 };
@@ -96,7 +96,7 @@ const char testkey_str[]     PROGMEM = "testkey";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_aes },
        { test_str,        NULL, testrun_nessie_aes},
        { testkey_str,     NULL, testrun_testkey_aes},
index 60258938b4112bb3aebb54cbdddfe701c3ed74ef..a1a19dd0244275721b9a9540608a0ae97e3f391e 100644 (file)
@@ -40,7 +40,7 @@
 
 char* algo_name = "AES-256";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&aes256_desc,
        NULL
 };
@@ -95,7 +95,7 @@ const char testkey_str[]     PROGMEM = "testkey";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_aes },
        { test_str,        NULL, testrun_nessie_aes},
        { testkey_str,     NULL, testrun_testkey_aes},
index 760479b21bae2a81532f6c337f170d03eaba94dc..9228188d97012cfd0fd809eed01c3c2a34f977df 100644 (file)
@@ -89,7 +89,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_arcfour },
        { test_str,        NULL, testrun_nessie_arcfour},
        { performance_str, NULL, testrun_performance_arcfour},
index caf60fa4723864f485add9cea8836a7e3795e684..6bcdde150bed802610e3c091da9e841f506650fd 100644 (file)
@@ -144,7 +144,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { test_str,        NULL, testrun_stdtest_base64},
        { performance_str, NULL, testrun_performance_base64},
        { echo_str,    (void*)1, (void_fpt)echo_ctrl},
index 787a7cb4a5b6b8ef42933a632a5af49d0a6a2be3..8fef0fbc9236ba3ee180656b0b5f99c2f6b95c2c 100644 (file)
@@ -400,7 +400,7 @@ void test_mul_simple(void){
 
 // f4 b86a 2220 0774 437d 70e6 **2 = e9f00f29ca1c876a7a682bd1e04f6925caffd6660ea4
 /*
-uint8_t square_test_data[] PROGMEM = {
+const uint8_t square_test_data[] PROGMEM = {
        0xA0, 0x3C, 0x23, 0x9F, 0x7A, 0xFC, 0x60, 0xEB, 0x96, 0xC2, 0xA8, 0xAC, 0xC3, 0xC9, 0x9E, 0xEC,
        0x4A, 0xF0, 0x1C, 0xB2, 0x36, 0x68, 0xD6, 0x4D, 0x3E, 0x4F, 0x8E, 0x55, 0xEA, 0x52, 0x46, 0x68,
        0x6E, 0x18, 0x88, 0x37, 0x03, 0x70, 0xBD, 0x01, 0x60, 0xE2, 0xD6, 0x12, 0xA0, 0x0E, 0xD2, 0x72,
@@ -515,7 +515,7 @@ const char quick_test_str[]       PROGMEM = "quick-test";
 const char performance_str[]      PROGMEM = "performance";
 const char echo_str[]             PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { add_test_str,         NULL, test_add_bigint               },
        { add_scale_test_str,   NULL, test_add_scale_bigint         },
        { mul_test_str,         NULL, test_mul_bigint               },
index ea7e7c8ad9a21b6bff1a88b8a814451d516414be..b3ad2703b2cfdb273a021a9a3667a8e7be78a718 100644 (file)
@@ -45,7 +45,7 @@
 char* algo_name = "Blake";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&blake224_desc,
        (hfdesc_t*)&blake256_desc,
        (hfdesc_t*)&blake384_desc,
@@ -133,7 +133,7 @@ const char shavs_set_str[]    PROGMEM = "shavs_set";
 const char shavs_test1_str[]  PROGMEM = "shavs_test1";
 const char shavs_test3_str[]  PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_blake},
        { test_str,            NULL, testrun_stdtest_blake},
        { testshort_str,       NULL, testshort},
index 2da30a0097576b1bd1737ddd9dae1e6f4f4d92e2..a78e1a5d6304501459b700ec9dc9895852a762d8 100644 (file)
@@ -44,7 +44,7 @@
 char* algo_name = "BlueMidnightWish";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&bmw224_desc,
        (hfdesc_t*)&bmw256_desc,
        (hfdesc_t*)&bmw384_desc,
@@ -156,7 +156,7 @@ const char shavs_set_str[]   PROGMEM = "shavs_set";
 const char shavs_test1_str[] PROGMEM = "shavs_test1";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,                  NULL, testrun_nessie_bmw            },
        { test_str,                    NULL, testrun_stdtest_bmw           },
        { testshort_str,               NULL, testshort                     },
index b3d901d37392426293b6bca4551c33ae7cf285ec..07907282eb45a35d3006c3a017214f0debe240e8 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "Camellia";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&camellia128_desc,
        NULL
 };
@@ -56,7 +56,7 @@ void testrun_nessie_camellia(void){
  * P No.001 : 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  */
 
-uint8_t test_keys[] PROGMEM = {
+const uint8_t test_keys[] PROGMEM = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
@@ -173,7 +173,7 @@ const char test128_str[]     PROGMEM = "test128";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_camellia },
        { test_str,        NULL, testrun_camellia},
        { test128_str,     NULL, testrun_camellia128},
index 26e8274de6326d6312d02561d35b8a8b56fcf1e8..56580e2c5eedbdc62ece00765419aefa263f249f 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "cast-128 (cast5)";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&cast5_desc,
        NULL
 };
@@ -163,7 +163,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_cast5},
        { test_str,        NULL, testrun_cast5},
        { performance_str, NULL, testrun_performance_cast5},
index 78d5b6343df16b109e6ce715fe04f743fd718608..bcd97744f50200846246e83096ee91f440a8dcc4 100644 (file)
@@ -22,7 +22,7 @@
 
 char* algo_name = "CAST-256";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&cast6_desc,
        NULL
 };
@@ -108,7 +108,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_cast6 },
        { test_str,        NULL, testrun_rfc_cast6},
        { performance_str, NULL, testrun_performance_cast6},
index 4de929a03ceacba8626ae91e563b23f91dc38536..eb49a4500281a58f391dc85a4849bd0584058496 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "CS-Cipher";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&cscipher_desc,
        NULL
 };
@@ -138,7 +138,7 @@ const char longtest_str[]    PROGMEM = "longtest";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_cscipher },
        { test_str,        NULL, testrun_cscipher},
        { longtest_str,    NULL, testrun_long_cscipher},
index 2ae29e7cfbee56586553dab3893571770e056277..4d01c63b03c6ea48ec8189ce30bae0a6d0acd688 100644 (file)
@@ -42,7 +42,7 @@
 char* algo_name = "CubeHash";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&cubehash224_desc,
        (hfdesc_t*)&cubehash256_desc,
        (hfdesc_t*)&cubehash384_desc,
@@ -86,7 +86,7 @@ const char shavs_set_str[]   PROGMEM = "shavs_set";
 const char shavs_test1_str[] PROGMEM = "shavs_test1";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,                NULL, testrun_nessie_cubehash     },
        { test256_str,               NULL, cubehash256_test0           },
        { performance_str,           NULL, performance_cubehash        },
index 828593fa82b996758e0a0f3517a684039ac29775..c1ef54f48d931a92a3d71541099a927be09978fc 100644 (file)
@@ -41,7 +41,7 @@
 
 char* algo_name = "DES";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&des_desc,
        (bcdesc_t*)&tdes2_desc,
        (bcdesc_t*)&tdes_desc,
@@ -67,7 +67,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_des },
        { test_str,        NULL, testrun_nessie_des },
        { performance_str, NULL, testrun_performance_des},
index acbffa9e4ac0572e385da33dd43d293a81672467..89e177c292e2060200fd5c48b673efe542c947b1 100644 (file)
@@ -169,7 +169,7 @@ const char quick_test_str[]       PROGMEM = "quick-test";
 const char performance_str[]      PROGMEM = "performance";
 const char echo_str[]             PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const const cmdlist_entry_t cmdlist[] PROGMEM = {
        { reset_prng_str,       NULL, reset_prng                    },
        { quick_test_str,       NULL, quick_test                    },
        { performance_str,      NULL, testrun_performance_bigint    },
index b4d81a993300afcb92b5be7e1cccbaef5965f16b..65b461384d62dc1fedc4ce658bc55e624dce1b6c 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 
-char* algo_name = "CubeHash";
+char* algo_name = "Echo";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&echo224_desc,
        (hfdesc_t*)&echo256_desc,
        (hfdesc_t*)&echo384_desc,
@@ -54,7 +54,7 @@ const hfdesc_t* algolist[] PROGMEM = {
  *  additional validation-functions                                                                                     *
  *****************************************************************************/
 /* IntermediateKAT1_256.txt */
-uint8_t intermediate_data[] PROGMEM = {
+const uint8_t intermediate_data[] PROGMEM = {
        0xDB, 0x11, 0xF6, 0x09, 0xBA, 0xBA, 0x7B, 0x0C,
        0xA6, 0x34, 0x92, 0x6B, 0x1D, 0xD5, 0x39, 0xC8,
        0xCB, 0xAD, 0xA2, 0x49, 0x67, 0xD7, 0xAD, 0xD4,
@@ -79,7 +79,7 @@ uint8_t intermediate_data[] PROGMEM = {
        0xFD, 0x29, 0xD1, 0x04, 0xCE
        };
 
-uint8_t intermediate_data2[] PROGMEM = {
+const uint8_t intermediate_data2[] PROGMEM = {
        0x75, 0x8E, 0xA3, 0xFE, 0xA7, 0x38, 0x97, 0x3D,
        0xB0, 0xB8, 0xBE, 0x7E, 0x59, 0x9B, 0xBE, 0xF4,
        0x51, 0x93, 0x73, 0xD6, 0xE6, 0xDC, 0xD7, 0x19,
@@ -158,7 +158,7 @@ const char shavs_set_str[]   PROGMEM = "shavs_set";
 const char shavs_test1_str[] PROGMEM = "shavs_test1";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,                NULL, testrun_nessie_echo         },
        { interm_str,                NULL, echo256_interm              },
        { interm2_str,               NULL, echo512_interm              },
index 36a098754b0087e41b7ef5ce7fc326635f364e53..92dc8efcfd3deae70bf2ad61ee05cb3e86cadb69 100644 (file)
@@ -95,7 +95,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_entropium},
        { test_str,        NULL, testrun_entropium},
        { performance_str, NULL, testrun_performance_entropium},
index 08931feb66d3715f8c1a7029057a18761cead6fe..7963e344d4eacd5469cd199477940cc2a0d2a346 100644 (file)
@@ -66,6 +66,7 @@ uint8_t grain_getbyte_dummy_rev(grain_ctx_t* ctx){
 }
 
 void testrun_nessie_grain(void){
+       scal_nessie_set_estream(1);
        scal_nessie_run(&grain_desc);
 }
 
@@ -152,7 +153,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_grain },
        { test_str,        NULL, testrun_std_grain},
        { performance_str, NULL, testrun_performance_grain},
index 5b46497619c5af35012f94e807d6cd165ca40eb4..b51b049f22cc12a84a66f66630c58d8f65718e7f 100644 (file)
@@ -45,7 +45,7 @@
 char* algo_name = "Groestl";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&groestl224_desc,
        (hfdesc_t*)&groestl256_desc,
        (hfdesc_t*)&groestl384_desc,
@@ -132,7 +132,7 @@ const char shavs_list_str[]   PROGMEM = "shavs_list";
 const char shavs_set_str[]    PROGMEM = "shavs_set";
 const char shavs_test1_str[]  PROGMEM = "shavs_test1";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_groestl},
        { test_str,            NULL, testrun_stdtest_groestl},
        { testshort_str,       NULL, testshort},
index fcf6dcec1cb0b917b0192ff0b224bd2a804a359c..dc495367c346a73bbc60330bbf7d767c9db1d03c 100644 (file)
@@ -170,7 +170,7 @@ const char hmd5i_str[]       PROGMEM = "hmac-md5";
 const char md5i_str[]        PROGMEM = "md5";
 
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_hmacmd5},
        { test_str,        NULL, testrun_test_hmacmd5},
        { hmd5i_str,       NULL, hmacmd5_interactive},
index 538d36accc255d460524278b4e6dc4fe499bfd32..02b1e6d57c17f530c7e827de47ba6b5e240406e9 100644 (file)
@@ -65,7 +65,7 @@ const char test_str[]        PROGMEM = "test";
 /* const char performance_str[] PROGMEM = "performance"; */
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_hmacsha1},
        { test_str,        NULL, testrun_nessie_hmacsha1},
 /*     { performance_str, NULL, testrun_performance_hmacsha1}, */
index b6ca3fab23057b8e42335389332580c6e0b649f9..6034ae2880cd063b4aaefdf6049af198996cf692 100644 (file)
@@ -83,7 +83,7 @@ const char test_str[]        PROGMEM = "test";
 /* const char performance_str[] PROGMEM = "performance"; */
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_hmacsha256},
        { test_str,        NULL, testrun_hmacsha256},
 /*     { performance_str, NULL, testrun_performance_hmacsha256}, */
index c8fba92832d0a5bb0bebdb2cc80ba001a7ce7a43..725e5bbc9e3ad6f6e438984fbd3c197d3929a12e 100644 (file)
@@ -43,7 +43,7 @@
 char* algo_name = "JH";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&jh224_desc,
        (hfdesc_t*)&jh256_desc,
        (hfdesc_t*)&jh384_desc,
@@ -88,7 +88,7 @@ const char shavs_list_str[]   PROGMEM = "shavs_list";
 const char shavs_set_str[]    PROGMEM = "shavs_set";
 const char shavs_test1_str[]  PROGMEM = "shavs_test1";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_jh},
        { performance_str,     NULL, performance_jh},
        { test256_str,         NULL, test256Null},
index c277ce5c0a7fe8619c230e13f08542aa1fbf9b0f..07a27d6812d4ee5dfb581ec21f40a504df7fec48 100644 (file)
@@ -42,7 +42,7 @@
 char* algo_name = "Keccak";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&keccak224_desc,
        (hfdesc_t*)&keccak256_desc,
        (hfdesc_t*)&keccak384_desc,
@@ -87,7 +87,7 @@ const char shavs_set_str[]   PROGMEM = "shavs_set";
 const char shavs_test1_str[] PROGMEM = "shavs_test1";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,                NULL, testrun_nessie_keccak     },
        { performance_str,           NULL, performance_keccak        },
        { test256_str,               NULL, test_256                  },
index a6a49aba0f70cb4eeb92252ddcbc3d5e2a54d391..b5449fe8034f24d0e9ef0d37e58ea9f05d374df6 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "Khazad";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&khazad_desc,
        NULL
 };
@@ -103,7 +103,7 @@ const char test_sbox_str[]   PROGMEM = "test_sbox";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_khazad},
        { test_str,        NULL, test_khazad},
        { test_sbox_str,   NULL, test_sbox},
index 08c03cd620f2db282d761175696ed0d070418fbe..47730cd71a0e1dd0125a1479b1752fd834d15970 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "MD5";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&md5_desc,
        NULL
 };
@@ -131,7 +131,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_md5},
        { test_str,        NULL, testrun_md5},
        { performance_str, NULL, testrun_performance_md5},
index 9b629536ee42795933efe71c326e8a170fa9a5d7..0923e65c6b7fdc0110704a9ac304d699a7f5df4f 100644 (file)
@@ -24,6 +24,7 @@ char* algo_name = "Mickey128";
  *****************************************************************************/
 
 void testrun_nessie_mickey128(void){
+       scal_nessie_set_estream(1);
        scal_nessie_run(&mickey128_desc);
 }
 
@@ -118,7 +119,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_mickey128},
        { test_str,        NULL, testrun_ref_mickey128},
        { echo_str,    (void*)1, (void_fpt)echo_ctrl},
index a5d3f1c67883a030a87593bf291d61c6833462f1..36776b04713aeb00db6e0c7ae3a6fad364135b40 100644 (file)
@@ -42,7 +42,7 @@ char* algo_name = "MQQ160-sign";
 /*****************************************************************************
  *  additional validation-functions                                                                                     *
  *****************************************************************************/
-uint8_t test_hash[20] PROGMEM =
+const uint8_t test_hash[20] PROGMEM =
 {
        (uint8_t)0x64, (uint8_t)0xFE, (uint8_t)0x2A, (uint8_t)0x85,
        (uint8_t)0xBB, (uint8_t)0x8C, (uint8_t)0x54, (uint8_t)0x5C,
@@ -176,7 +176,7 @@ const char test_mem_str[]    PROGMEM = "mem";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { test_str,                    NULL, testrun_mqq                   },
        { test_flash_str,              NULL, testrun_mqq_flash             },
        { test_mem_str,                NULL, testrun_mqq_mem               },
index 7dd5691fd4cac51983c22469a9800c3332b1f91e..e868907444b5d0029e85bbbb8a7d1983995255ea 100644 (file)
@@ -118,7 +118,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
 //     { nessie_str,      NULL, testrun_nessie_arcfour },
        { test_str,        NULL, testrun_mugi},
        { performance_str, NULL, testrun_performance_mugi},
index f33f5c18f0811a69f43ef5d6d65a4cf0b9b6c3a2..0f7c6b76a0c8d10a1355317009ddf647e2d152d3 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "Noekeon";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&noekeon_direct_desc,
        (bcdesc_t*)&noekeon_indirect_desc,
        NULL
@@ -153,7 +153,7 @@ const char indirect_str[]    PROGMEM = "indirect";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_noekeon},
        { test_str,        NULL, testrun_stdtest_noekeon},
 //     { direct_str,      NULL, testrun_nessie_noekeon_direct},
index 117a2e14fca3d2e35c8211e6b1edeb3ccfb0fe82..a5a0e7990d0746d652a026d785be7e95da241c5d 100644 (file)
@@ -157,7 +157,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_omac_noekeon },
        { test_str,        NULL, testrun_test_omac_noekeon},
        { performance_str, NULL, testrun_performance_omac_noekeon},
index b4e5b4967ca6b88f1fc303fdb07c858d0e5868c3..1b981fa720a1097fd509ffe2033d38553858c181 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "Present";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&present_desc,
        NULL
 };
@@ -105,7 +105,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_present},
        { test_str,        NULL, testrun_self_present},
        { performance_str, NULL, testrun_performance_present},
index b60de60decc1d9941eb30d434f228eace58e614d..02538316dd1ed9ed4d0c017c1e0ec66c3fd6415b 100644 (file)
@@ -35,7 +35,9 @@
 #include <stdint.h>
 #include <string.h>
 
-char* algo_name = "Rabbit";
+#include <avr/pgmspace.h>
+
+const char* algo_name = "Rabbit";
 
 /*****************************************************************************
  *  additional validation-functions                                                                                     *
@@ -60,12 +62,14 @@ void test_vector(void* key, void* iv, const void* ref){
                cli_hexdump(ctx.buffer, 16);
        }
        ctx.buffer_idx=16;
+       rabbit_gen(&ctx);
        if(!ref || (memcmp_P(ctx.buffer, ref, 16))!=0){
                fail = 1;
                cli_putstr_P(PSTR("\r\n S[0]: "));
                cli_hexdump(ctx.buffer, 16);
        }
        ctx.buffer_idx=16;
+       rabbit_gen(&ctx);
        if(!ref || (memcmp_P(ctx.buffer, ref, 16))!=0){
                fail = 1;
                cli_putstr_P(PSTR("\r\n S[0]: "));
@@ -212,7 +216,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_rabbit},
        { performance_str, NULL, testrun_performance_rabbit},
        { first_str,       NULL, nessie_first},
index 2b21e16ab6ab50117f658078b4fe44191a20b3e3..64577442dfeca612d114415a6aef0f5a2464bb38 100644 (file)
@@ -40,7 +40,7 @@
 #define RC5_ROUNDS 12
 char* algo_name = "RC5-32/12/16";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&rc5_desc,
        NULL
 };
@@ -69,7 +69,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_rc5 },
        { test_str,        NULL, testrun_nessie_rc5},
        { performance_str, NULL, testrun_performance_rc5},
index e264d79001fc5afd02f522bf7ea0fb1b32937dd8..2c77bea450040d8c4f46d4dd59eb9ed8a2f7f7e4 100644 (file)
@@ -40,7 +40,7 @@
 #define RC6_ROUNDS 20
 char* algo_name = "RC6-32/20/16";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&rc6_desc,
        NULL
 };
@@ -68,7 +68,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_rc6},
        { test_str,        NULL, testrun_nessie_rc6},
        { performance_str, NULL, testrun_performance_rc6},
index 86fb62c765083a720d44328347932237b7486155..3e0bba267dee34495cfb57b508943b964a417aa5 100644 (file)
@@ -79,7 +79,7 @@ void print_rsa_ctx(rsa_ctx_t* ctx){
        rsa_print_item(&(ctx->privexp), PSTR("private exponent"));
 }
 
-uint8_t testmsg[128] PROGMEM = {
+const uint8_t testmsg[128] PROGMEM = {
                0x25, 0x11, 0x1e, 0x08, 0x1c, 0x72, 0x57, 0xbf,
                0x46, 0xbb, 0x56, 0xe8, 0x0b, 0x24, 0x0d, 0x72,
                0x77, 0x11, 0x12, 0x10, 0xec, 0xb9, 0xe4, 0x6f,
@@ -159,7 +159,7 @@ const char quick_test_str[]       PROGMEM = "quick-test";
 const char performance_str[]      PROGMEM = "performance";
 const char echo_str[]             PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { reset_prng_str,       NULL, reset_prng                    },
        { quick_test_str,       NULL, quick_test                    },
        { performance_str,      NULL, testrun_performance_bigint    },
index 3f3560cf097eaf5bd13c3faa5eb98666c99231a5..03324571a8a4f4b8efb88bdcadfc92acde844d83 100644 (file)
@@ -125,50 +125,50 @@ Salsa20^1000000 (
  ).
  */
 
-uint8_t Salsa20_spectest0_in[] PROGMEM = {
+const uint8_t Salsa20_spectest0_in[] PROGMEM = {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 
-uint8_t Salsa20_spectest0_ref[] PROGMEM = {
+const uint8_t Salsa20_spectest0_ref[] PROGMEM = {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 
 
-uint8_t Salsa20_spectest1_in[] PROGMEM = {
+const uint8_t Salsa20_spectest1_in[] PROGMEM = {
        211,159, 13,115, 76, 55, 82,183, 3,117,222, 37,191,187,234,136,
        49,237,179, 48, 1,106,178,219,175,199,166, 48, 86, 16,179,207,
        31,240, 32, 63, 15, 83, 93,161,116,147, 48,113,238, 55,204, 36,
        79,201,235, 79, 3, 81,156, 47,203, 26,244,243, 88,118,104, 54 };
 
-uint8_t Salsa20_spectest1_ref[] PROGMEM = {
+const uint8_t Salsa20_spectest1_ref[] PROGMEM = {
        109, 42,178,168,156,240,248,238,168,196,190,203, 26,110,170,154,
        29, 29,150, 26,150, 30,235,249,190,163,251, 48, 69,144, 51, 57,
        118, 40,152,157,180, 57, 27, 94,107, 42,236, 35, 27,111,114,114,
        219,236,232,135,111,155,110, 18, 24,232, 95,158,179, 19, 48,202 };
 
-uint8_t Salsa20_spectest2_in[] PROGMEM = {
+const uint8_t Salsa20_spectest2_in[] PROGMEM = {
        88,118,104, 54, 79,201,235, 79, 3, 81,156, 47,203, 26,244,243,
        191,187,234,136,211,159, 13,115, 76, 55, 82,183, 3,117,222, 37,
        86, 16,179,207, 49,237,179, 48, 1,106,178,219,175,199,166, 48,
        238, 55,204, 36, 31,240, 32, 63, 15, 83, 93,161,116,147, 48,113 };
 
-uint8_t Salsa20_spectest2_ref[] PROGMEM = {
+const uint8_t Salsa20_spectest2_ref[] PROGMEM = {
        179, 19, 48,202,219,236,232,135,111,155,110, 18, 24,232, 95,158,
        26,110,170,154,109, 42,178,168,156,240,248,238,168,196,190,203,
        69,144, 51, 57, 29, 29,150, 26,150, 30,235,249,190,163,251, 48,
        27,111,114,114,118, 40,152,157,180, 57, 27, 94,107, 42,236, 35 };
 
-uint8_t Salsa20_spectest3_in[] PROGMEM = {
+const uint8_t Salsa20_spectest3_in[] PROGMEM = {
        6,124, 83,146, 38,191, 9, 50, 4,161, 47,222,122,182,223,185,
        75, 27, 0,216, 16,122, 7, 89,162,104,101,147,213, 21, 54, 95,
        225,253,139,176,105,132, 23,116, 76, 41,176,207,221, 34,157,108,
        94, 94, 99, 52, 90,117, 91,220,146,190,239,143,196,176,130,186 };
 
-uint8_t Salsa20_spectest3_ref[] PROGMEM = {
+const uint8_t Salsa20_spectest3_ref[] PROGMEM = {
        8, 18, 38,199,119, 76,215, 67,173,127,144,162,103,212,176,217,
        192, 19,233, 33,159,197,154,160,128,243,219, 65,171,136,135,225,
        123, 11, 68, 86,237, 82, 20,155,133,189, 9, 83,167,116,194, 78,
@@ -270,7 +270,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_salsa20 },
        { performance_str, NULL, testrun_performance_salsa20},
        { test_str,        NULL, spec_test},
index 39fe0a0edb6cd673823ba726ec52c9ac1c2fe127..b4c957c74d1a5b6dd97d9c971901e7b9491f60bb 100644 (file)
@@ -44,7 +44,7 @@
 
 char* algo_name = "Seed";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&seed_desc,
        NULL
 };
@@ -131,7 +131,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_seed},
        { test_str,        NULL, testrun_seed},
        { performance_str, NULL, testrun_performance_seed},
index 85610f9645960d0c353a9103f4c66b747b2b5f51..ec456d66ebaa2a6876e7b0ed7dac37d2b08ea27e 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "Serpent";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&serpent_desc,
        NULL
 };
@@ -81,7 +81,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_serpent},
        { test_str,        NULL, testrun_test_serpent},
        { performance_str, NULL, testrun_performance_serpent},
index 1b19d0a948c44475ece4089e6860d588ced2ce7a..48d26341d11b586a0eb9f0155687fea119431728 100644 (file)
@@ -41,7 +41,7 @@
 
 char* algo_name = "SHA-1";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&sha1_desc,
        NULL
 };
@@ -194,7 +194,7 @@ const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char dump_str[]        PROGMEM = "dump";
 
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_sha1},
        { test_str,            NULL, testrun_sha1},
        { test2_str,           NULL, testrun_sha1_2},
index 1907390b21adffa7c96fe6fe71740701f1ba939d..7786759c0770e86b63e31d292386884e02706219 100644 (file)
@@ -42,7 +42,7 @@
 
 char* algo_name = "SHA-256";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&sha256_desc,
        NULL
 };
@@ -138,7 +138,7 @@ const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 const char dump_str[]        PROGMEM = "dump";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_sha256          },
        { test_str,            NULL, testrun_nessie_sha256          },
        { monte_str,           NULL, test_monte                     },
index bcdc57aeef20e90b94527ff138a191221ce71868..cfbd6fe17b969c3e306945e7d677ca84aa78a19e 100644 (file)
@@ -43,7 +43,7 @@
 char* algo_name = "Shabal";
 
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&shabal192_desc,
        (hfdesc_t*)&shabal224_desc,
        (hfdesc_t*)&shabal256_desc,
@@ -203,7 +203,7 @@ const char shavs_test1_str[] PROGMEM = "shavs_test1";
 const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_shabal          },
        { test_str,            NULL, testrun_stdtest_shabal         },
        { testinit192_str,     NULL, testinit_192                   },
index 8605640271c9b2127df660567944091f9ffc8de8..5748b9499ac987de6032dbe83932bd2366d7289f 100644 (file)
@@ -171,7 +171,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_shabea},
        { test_str,        NULL, testrun_shabea},
        { performance_str, NULL, testrun_performance_shabea},
index 137a35f998bc0318059776973d1e0b7d6b7a32eb..48b5051dc7c81f6e9fa0caecb858f4462b45132c 100644 (file)
@@ -88,7 +88,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_shacal1enc},
        { test_str,        NULL, testrun_nessie_shacal1enc},
        { performance_str, NULL, testrun_performance_shacal1enc},
index c3e39c38b65890d41344984f9c63fedaaddabdf1..0d6110b8c7a6d8d18f09c553cb0b3fb3b935aeaa 100644 (file)
@@ -88,7 +88,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_shacal2enc},
        { test_str,        NULL, testrun_nessie_shacal2enc},
        { performance_str, NULL, testrun_performance_shacal2enc},
index 2f0b04e6653e9551f5546ede339dc80e6c7f79a9..e93f9d16569fb4831f2a68b89695cec565c9d3f4 100644 (file)
@@ -45,7 +45,7 @@
 
 char* algo_name = "Skein";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&skein256_128_desc,
        (hfdesc_t*)&skein256_160_desc,
        (hfdesc_t*)&skein256_224_desc,
@@ -259,7 +259,7 @@ const char shavs_test1_str[] PROGMEM = "shavs_test1";
 const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_skein            },
        { performance_str,     NULL, performance_skein               },
        { test_str,            NULL, testrun_stdtest_skein           },
index 7c3dd9de198d6026ca5646373d25b8c8dd407742..e3f68f5d3c0010aeeb41d0473d8936d230cdd6ea 100644 (file)
@@ -41,7 +41,7 @@
 
 char* algo_name = "Skipjack";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&skipjack_desc,
        NULL
 };
@@ -116,7 +116,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_skipjack},
        { test_str,        NULL, testrun_skipjack},
        { performance_str, NULL, testrun_performance_skipjack},
index 7cad365ade8ea0a99b1f8de799234a12c048fe50..749032947e7a83258985611cc120f4317404e9a5 100644 (file)
@@ -40,7 +40,7 @@
 
 char* algo_name = "TDES";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&tdes_desc,
        (bcdesc_t*)&tdes2_desc,
        NULL
@@ -66,7 +66,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_tdes},
        { test_str,        NULL, testrun_nessie_tdes},
        { performance_str, NULL, testrun_performance_tdes},
index 799d40f7286c97cac12b9f523e8b2d3381988251..45ecd0097430e2df31da1f3caeb413ad5403d5cf 100644 (file)
@@ -41,7 +41,7 @@
 
 char* algo_name = "Threefish";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const algolist[] PROGMEM = {
        (bcdesc_t*)&threefish256_desc,
        (bcdesc_t*)&threefish512_desc,
        (bcdesc_t*)&threefish1024_desc,
@@ -254,7 +254,7 @@ const char inittest_str[]    PROGMEM = "inittest";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_threefish},
        { test_str,        NULL, testrun_stdtest_threefish},
     { test256_str,     NULL, testrun_stdtest_threefish256},
index 9961222866467175002d672646a78a7ff534dd1e..bf05a81f0b3568249ffbf02bf73772616317715b 100644 (file)
@@ -134,7 +134,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_trivium},
        { test_str,        NULL, testrun_trivium},
        { performance_str, NULL, testrun_performance_trivium},
index b4efd944763823e7b4e4392cdb9d4e49ba6a93fa..2ac3180795f340c23fde9164d1c425247f1e9a6b 100644 (file)
@@ -47,7 +47,7 @@
 
 char* algo_name = "TWISTER";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&twister224_desc,
        (hfdesc_t*)&twister256_desc,
        (hfdesc_t*)&twister384_desc,
@@ -127,7 +127,7 @@ const char shavs_list_str[]  PROGMEM = "shavs_list";
 const char shavs_set_str[]   PROGMEM = "shavs_set";
 const char shavs_test1_str[] PROGMEM = "shavs_test1";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_twister},
        { test_str,            NULL, testrun_twister},
        { performance_str,     NULL, testrun_performance_twister},
index c7a050839e172f174093d30ccd726eb7e5fbbf8c..5a839c468e8770c485acfaf1cc2acfa34669db35 100644 (file)
@@ -185,7 +185,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
 //     { nessie_str,      NULL, testrun_nessie_noekeon},
        { test_str,        NULL, testrun_stdtest_ubi},
 //     { performance_str, NULL, testrun_performance_noekeon},
index 3b973cb9a946886d409719e5071ec713bc63f4a9..c06618879af65939eb143e350ced348f397fa083 100644 (file)
@@ -42,7 +42,7 @@
 
 char* algo_name = "Whirlpool-0";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&whirlpool_0_desc,
        NULL
 };
@@ -140,7 +140,7 @@ const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 const char dump_str[]        PROGMEM = "dump";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_whirlpool       },
        { nessie2_str,         NULL, testrun_nessie2                },
        { test_str,            NULL, testrun_whirlpool              },
index c5475fae7426cb168887fb51cf0618a14877f9e2..1b446802f0e744eb98c4001d33610556c25e0622 100644 (file)
@@ -42,7 +42,7 @@
 
 char* algo_name = "Whirlpool-T";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&whirlpool_t_desc,
        NULL
 };
@@ -140,7 +140,7 @@ const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 const char dump_str[]        PROGMEM = "dump";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_whirlpool       },
        { nessie2_str,         NULL, testrun_nessie2                },
        { test_str,            NULL, testrun_whirlpool              },
index 4d0cfe4a076ccbb478cb42da300653125da263da..c2cc71b7e645bbda04bafdda95a57d337023099e 100644 (file)
@@ -42,7 +42,7 @@
 
 char* algo_name = "Whirlpool";
 
-const hfdesc_t* algolist[] PROGMEM = {
+const hfdesc_t* const algolist[] PROGMEM = {
        (hfdesc_t*)&whirlpool_desc,
        NULL
 };
@@ -140,7 +140,7 @@ const char shavs_test2_str[] PROGMEM = "shavs_test2";
 const char shavs_test3_str[] PROGMEM = "shavs_test3";
 const char dump_str[]        PROGMEM = "dump";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,          NULL, testrun_nessie_whirlpool       },
        { nessie2_str,         NULL, testrun_nessie2                },
        { test_str,            NULL, testrun_whirlpool              },
index 778d9cdce7bee6644fced7a79bcff54a5f3c8417..42b5ee51ea0e240baa40743246a45bf744dace55 100644 (file)
@@ -39,7 +39,7 @@
 
 char* algo_name = "XTEA";
 
-const bcdesc_t* algolist[] PROGMEM = {
+const bcdesc_t* const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const algolist[] PROGMEM = {
        (bcdesc_t*)&xtea_desc,
        NULL
 };
@@ -82,7 +82,7 @@ const char test_str[]        PROGMEM = "test";
 const char performance_str[] PROGMEM = "performance";
 const char echo_str[]        PROGMEM = "echo";
 
-cmdlist_entry_t cmdlist[] PROGMEM = {
+const cmdlist_entry_t cmdlist[] PROGMEM = {
        { nessie_str,      NULL, testrun_nessie_xtea},
        { test_str,        NULL, test_xtea},
        { performance_str, NULL, testrun_performance_xtea},
index 04895b0c89e6f36683a40e2adcda97dde093fac2..5dc117e31dc373e31f91ade30abb8bd1666f859d 100644 (file)
@@ -176,7 +176,7 @@ void tv4_hash(void){
        NESSIE_PUTC('0' + nessie_hash_ctx.hashsize_b%10);
 
        NESSIE_PUTSTR_P(PSTR(" zero bits"));
-       memset(block, 0, 256/8);
+       memset(block, 0, nessie_hash_ctx.hashsize_b/8);
        
        nessie_hash_ctx.hash_init(ctx);
        while(n>=nessie_hash_ctx.blocksize_B*8){
@@ -215,7 +215,7 @@ void nessie_hash_run(void){
        
        nessie_print_header(nessie_hash_ctx.name, 0, 0, nessie_hash_ctx.hashsize_b, 0, 0);
        /* test set 1 */
-       char* challange_dbz= PSTR(
+       const char* challange_dbz= PSTR(
                  "\0"
                "\"\" (empty string)\0"
                  "a\0"
index 80093a038d2629ec78940b1de28cc7ebb1fb98ee..2813a51b036dd99a1085e8affbb0dc47ca63308b 100644 (file)
@@ -43,7 +43,7 @@ nessie_mac_ctx_t nessie_mac_ctx;
 #define PRINTMAC nessie_print_item("MAC", mac, MACSIZE_B)
 
 
-static uint8_t keyproto[] PROGMEM = {
+const uint8_t keyproto[] PROGMEM = {
                                  0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
                           0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
                           0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
@@ -218,7 +218,7 @@ void nessie_mac_run(void){
        nessie_print_header(nessie_mac_ctx.name, nessie_mac_ctx.keysize_b, 0, 0,
                            nessie_mac_ctx.macsize_b, 0);
        /* test set 1 */
-       char* challange_dbz= PSTR(
+       const char* challange_dbz= PSTR(
                  "\0"
                "\"\" (empty string)\0"
                  "a\0"
index 39b862b67899b43b1dcc5f498b7b0523ee9e94b1..1dfc56db3468194e8e730e82086202bfcd020b64 100644 (file)
@@ -116,9 +116,7 @@ uint8_t buffer_add(char c){
                hfal_hash_nextBlock(&(shavs_ctx.ctx), shavs_ctx.buffer);
                ++shavs_ctx.blocks;
                shavs_ctx.buffer_idx=0;
-               shavs_ctx.in_byte=0;
                cli_putc('.');
-               memset(shavs_ctx.buffer, 0, shavs_ctx.buffersize_B);
        }
        if(c>='0' && c<='9'){
                v=c-'0';
@@ -133,17 +131,34 @@ uint8_t buffer_add(char c){
        t=shavs_ctx.buffer[shavs_ctx.buffer_idx];
        if(shavs_ctx.in_byte){
                t |= v;
-               shavs_ctx.buffer[shavs_ctx.buffer_idx]=t;
+               shavs_ctx.buffer[shavs_ctx.buffer_idx] = t;
                shavs_ctx.buffer_idx++;
                shavs_ctx.in_byte = 0;
        }else{
-               t |= v<<4;
-               shavs_ctx.buffer[shavs_ctx.buffer_idx]=t;
+               t = v<<4;
+               shavs_ctx.buffer[shavs_ctx.buffer_idx] = t;
                shavs_ctx.in_byte = 1;
        }
        return 0;
 }
 
+static
+uint32_t my_strtoul(const char* str){
+       uint32_t r=0;
+       while(*str && (*str<'0' || *str>'9')){
+               str++;
+       }
+       if(!*str){
+               return 0;
+       }
+       while(*str && (*str>='0' && *str<='9')){
+               r *= 10;
+               r += *str-'0';
+               str++;
+       }
+       return r;
+}
+
 int32_t getLength(void){
        uint32_t len=0;
        char lenstr[21];
@@ -158,8 +173,9 @@ int32_t getLength(void){
                        if(*len2=='='){
                                do{
                                        len2++;
-                               }while(*len2 && !isdigit(*len2));
-                               len=(uint32_t)strtoul(len2, NULL, 10);
+                               }while(*len2 && !isdigit((uint8_t)*len2));
+                               len = my_strtoul(len2);
+                               //len=(uint32_t)strtoul(len2, NULL, 10);
                                return len;
                        }
                } else {
@@ -201,7 +217,7 @@ void shavs_test1(void){ /* KAT tests */
                if(length==0){
                        expect_input=2;
                }else{
-                       expect_input=((length+7)>>2)&(~1L);
+                       expect_input=((length + 7) >> 2) & (~1L);
                }
 #if DEBUG
                cli_putstr_P(PSTR("\r\nexpected_input == "));
@@ -307,10 +323,7 @@ void shavs_test1(void){ /* KAT tests */
 #else
                uint16_t temp=length-(shavs_ctx.blocks)*((shavs_ctx.buffersize_B)*8);
 #endif
-               /*              cli_putstr_P(PSTR("\r\n\t (temp)      == "));
-               cli_hexdump_rev(&temp,2); */
                hfal_hash_lastBlock( &(shavs_ctx.ctx), buffer, /* be aware of freaking compilers!!! */
-//                                                     length-(shavs_ctx.blocks)*((shavs_ctx.buffersize_B)*8));
                                    temp );
 #if DEBUG
                cli_putstr_P(PSTR("\r\n starting ctx2hash"));
index 744d00cf2884e39c6b3b0727c9ccd0987a040f7a..0bb3ed0e269a53354bec912bbf446bc8a7f776a5 100644 (file)
@@ -1,22 +1,22 @@
 
 [Groestl-224]
 algo=a
-file_0=testvectors/shavs/Groestl/ShortMsgKAT_224.txt
-file_1=testvectors/shavs/Groestl/LongMsgKAT_224.txt
+file_0=testvectors/shavs/Groestl-round2/ShortMsgKAT_224.txt
+file_1=testvectors/shavs/Groestl-round2/LongMsgKAT_224.txt
 
 [Groestl-256]
 algo=b
-file_0=testvectors/shavs/Groestl/ShortMsgKAT_256.txt
-file_1=testvectors/shavs/Groestl/LongMsgKAT_256.txt
+file_0=testvectors/shavs/Groestl-round2/ShortMsgKAT_256.txt
+file_1=testvectors/shavs/Groestl-round2/LongMsgKAT_256.txt
 
 [Groestl-384]
 algo=c
-file_0=testvectors/shavs/Groestl/ShortMsgKAT_384.txt
-file_1=testvectors/shavs/Groestl/LongMsgKAT_384.txt
+file_0=testvectors/shavs/Groestl-round2/ShortMsgKAT_384.txt
+file_1=testvectors/shavs/Groestl-round2/LongMsgKAT_384.txt
 
 [Groestl-512]
 algo=d
-file_0=testvectors/shavs/Groestl/ShortMsgKAT_512.txt
-file_1=testvectors/shavs/Groestl/LongMsgKAT_512.txt
+file_0=testvectors/shavs/Groestl-round2/ShortMsgKAT_512.txt
+file_1=testvectors/shavs/Groestl-round2/LongMsgKAT_512.txt
 
 
index c451f8fc34b9fd62723fdd63237f0ffb4dfb978d..d6d7d0175fa8f7b038f533982c4953a883e390fe 100644 (file)
@@ -16,7 +16,7 @@ file_1=testvectors/shavs/Skein/LongMsgKAT_384.txt
 
 [Skein-512-512]
 algo=d
-file_0=testvectors/shavs/Blake/ShortMsgKAT_512.txt
-file_1=testvectors/shavs/Blake/LongMsgKAT_512.txt
+file_0=testvectors/shavs/Skein/ShortMsgKAT_512.txt
+file_1=testvectors/shavs/Skein/LongMsgKAT_512.txt
 
 
index e10ae6156b3362beecbba442ac478690bdb5adf8..04ddccc9c207277ad94be609be2dd2e22446fab8 100644 (file)
@@ -1,7 +1,7 @@
 # configfile for shavs tests
 
 [PORT]
-port = /dev/ttyUSB1
+port = /dev/ttyUSB0
 baud = 115200
 databits = 8
 stopbits = 1
diff --git a/testvectors/CAST-256.rfc2612.testvectors.txt b/testvectors/CAST-256.rfc2612.testvectors.txt
new file mode 100644 (file)
index 0000000..2b8383d
--- /dev/null
@@ -0,0 +1,27 @@
+
+   KEYSIZE=128
+   KEY=2342bb9efa38542c0af75647f29f615d
+
+   PT=00000000000000000000000000000000
+   CT=c842a08972b43d20836c91d1b7530f6b
+   PT=00000000000000000000000000000000
+
+   ==========
+
+   KEYSIZE=192
+   KEY=2342bb9efa38542cbed0ac83940ac298bac77a7717942863
+
+   PT=00000000000000000000000000000000
+   CT=1b386c0210dcadcbdd0e41aa08a7a7e8
+   PT=00000000000000000000000000000000
+
+   ==========
+
+   KEYSIZE=256
+   KEY=2342bb9efa38542cbed0ac83940ac2988d7c47ce264908461cc1b5137ae6b604
+
+   PT=00000000000000000000000000000000
+   CT=4f6a2038286897b9c9870136553317fa
+   PT=00000000000000000000000000000000
+
+
diff --git a/testvectors/Mickey-v2-128-unverified.test-vectors b/testvectors/Mickey-v2-128-unverified.test-vectors
new file mode 100644 (file)
index 0000000..f16cc07
--- /dev/null
@@ -0,0 +1,10737 @@
+********************************************************************************
+*                          ECRYPT Stream Cipher Project                        *
+********************************************************************************
+
+Primitive Name: MICKEY-128-v2
+=============================
+Profile: ___H3
+Key size: 128 bits
+IV size: 0 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                          IV = 
+               stream[0..63] = D099E3372D5825E31CDCEC9D78EEFA30
+                               36E3FE1BA0BE59FC844078E3CC8ACD1A
+                               69C3FF99D962C8A329FF472D36CE3846
+                               CE13D5CE9EA533FC7472C1344644C359
+            stream[192..255] = FFA69EC2B92836B58AFDC3D7ECFC780D
+                               5BEFA4D6F6D02CF69C48497461C5A091
+                               D6C62797B1CAC1533B06AFF84D8B469D
+                               9370EAECDD938C0EF99FD9916965C14C
+            stream[256..319] = 0EDED449CD0F88C1EECDDAC4A03FDF70
+                               F3CD93CD89329D398E6AC1196AA5FECD
+                               BE307ED0A31CF36DDBA416D3572D5B71
+                               05762FB91447664651B77E0EB6BB30AE
+            stream[448..511] = 14DCA66BBDB0CCFF69780104815A679B
+                               19D84D0AE4FD920436C6B6FFA3AC25C2
+                               DF2B5C6C623822AD4C680A9C5ED17267
+                               DEF12475091F220CC55EF5E6322AFFE7
+                  xor-digest = AB6EA95CDF3F1E498A61897AC2DBEB7D
+                               55B0182FA745E886520137FA19323842
+                               592273D1A75E95B3A933E1A2931E2C7E
+                               C12F6AC124748A5C39E0DA2131AF4927
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                          IV = 
+               stream[0..63] = 4C1E026CE43AC615D09770B4F62C94D4
+                               3D30F2FB5BB92FC1DDEB59272AFCAEAC
+                               92D7E17D358C5B7266AAF876D57A018E
+                               3F95B61D1E8F3D8E7CA198367144956C
+            stream[192..255] = B10747CA1D1B83C0D403CF56E241BAAB
+                               FE28CBF053ADD4D086FFC73235CD2E1C
+                               FFBC25CD3B6F1B2943FC8FA07C112D1B
+                               7A46B0747495E6B903B2C815A2BCB03B
+            stream[256..319] = 94F57ECD56F618B668B02198EB323AC8
+                               1C78C6EDFEA32C60CC2D938B3B77F142
+                               3AC749C636C2B78197EC19F5D3125A1E
+                               BFF29F626F9864054663509BA8B22C4A
+            stream[448..511] = 7FAE40914BA56F5B0DE0A1CE440E5114
+                               AB7E27A38EBE0DAC5DFD107851D6A42F
+                               F971A0039EC6BD4CBF7D17A1F0E1D556
+                               AF1D160B72ED255AFE25D807D639F778
+                  xor-digest = E7BE7FBFBD21A85643ED27EAADD2E2CA
+                               16D1322BD314CC7CE2237AAFDCA34B50
+                               997EEF697E4903274FF1DEE1BE2C51CA
+                               1226C2F490B2CFA3BA6ED004F9D1B79F
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                          IV = 
+               stream[0..63] = 0D9710C7DE1485140D1468D3174E883E
+                               77E9904F2080345CD87D1D9841AA492B
+                               909D47E40112750A18928CD4A09215F3
+                               49C9BC59BC12F9AE259BD3F0244FD657
+            stream[192..255] = 2E13B777BB905E3CD41E0D11D49D6626
+                               36E2BC7623DA433A22E323B35656A587
+                               A60014B18BD3E115768277835035DEA1
+                               AF6262989ADA131733DD4776EAC314B7
+            stream[256..319] = D536370CCE5F72FAC91BDDBFCC314FAD
+                               D50A622E6D2E36C60D5C264C4F44BCD3
+                               592F9FC947EF9349AE61060E4B00F8F3
+                               8CFE4AFE03CDFDDB0F49DE8D587B30E5
+            stream[448..511] = 00B81DE08F5ABDC38FEFE1CD24D63035
+                               D6A4D4ECE553937FCA7B7D1000D8FFA1
+                               D088B9AF2BE986A1CCE5085DF405716F
+                               D25CDF521F992F21F25B45EF9DB13984
+                  xor-digest = 3AA1957EC762341E17038F7CFA6C25A8
+                               C557C3B3CBD4EBFF6AA3B6C7299DAB4A
+                               70E4D9B61DAF52FDF85C89AC1AB1E403
+                               DDEB8F289DDD5418B90A49B5BE56417D
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                          IV = 
+               stream[0..63] = 1432D3A066F73D05147609431F458255
+                               9305EE7D7729EB2C54BCEF19E04B3830
+                               F87BFC70DE38A0FDC0564CE30A26A193
+                               AE1698CB507D934BF6A728CE083D08CE
+            stream[192..255] = DCD08DB31ADA56F454163317B7DF28C5
+                               DC6F515F8E63AF887ECF0BA2D9DA9BFC
+                               7E1E7C09657A65E77FAF4BB8C9201B88
+                               A86527B1115665F00D5CEA0749EA623D
+            stream[256..319] = EE9775BC57567D83668C64530EF5B81F
+                               7C5BAB821FE73C292E1F4970E3770EAB
+                               5F1F5FDFF2DB4710E08005BD70015E27
+                               5AC0AD2D6FF8954A6E763905916BC8C1
+            stream[448..511] = 9557E6964486B7AE55FCB5AB0EFB12FD
+                               0E86EC080B3EA758D04D5F8372DA7065
+                               F9F68840BA8AB46153080B940B96BC31
+                               E89C60A023E991EC7EB6216113B47A91
+                  xor-digest = D9A628CC416B2B4525F135C93107079D
+                               3F0EC6409C1008E5AEA90A71D913116A
+                               6D98FF07B9F5BC739B39583DBE39B48D
+                               680D96640362C9F9A347438BB82D9984
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                          IV = 
+               stream[0..63] = 53D53D717A866FCAB0C9CDF9A0CA4D20
+                               BCD3CEEF1A91FBB1A24A7299E3828492
+                               E6EC4D013C48A5FBCD020B5AD2E6E091
+                               087B3D90550E2B19CFD29AAECB92D456
+            stream[192..255] = FAF47B6FBEC49BD21EDC4A8F3AB14A9B
+                               F894D0CFE9C00679DE7CE09FFFFF5867
+                               B2914DD2869DE9969735843419376CD5
+                               174458635C4819F34CF3AA138DE9FA4B
+            stream[256..319] = 73D3529054DE9BF089139047571FFF41
+                               4E6FA4662E26EC378CD10B15DDC51193
+                               346B8F4835756DF9B80DB62A04AC0573
+                               B57B9E57D7181C0AE9358759179C2477
+            stream[448..511] = E49C08A1C90DCDBF6FE21F88C2470347
+                               C84033CB2A966DCAB589E413265CC501
+                               0A347226A84831FF07C9FE05680488D8
+                               3A59272CE14CEB11FED02DF80481E10C
+                  xor-digest = 349C0A03ED26397D0A2DF762EFF622D4
+                               7CC2922F5F77C9109AC953E3D63EEF7B
+                               464C9E18BF5EDC97FDDA92720B1A65AC
+                               C311236647DCB88E40553E9FEF960F34
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                          IV = 
+               stream[0..63] = F0227DAD879ADCE42DCA091766E55829
+                               DE8AC8E4BFA3762E994C6EC88D0B3C26
+                               B4E5F5C1D1B77364C8DEAB99FF7EC955
+                               00120DB11E83321A4D96E291C5D10AAC
+            stream[192..255] = CD6146FE71FF0339D6964BFFBF15A787
+                               7A3E46ABE09B0C635C566898EAFA4AB1
+                               45A0724D1F70E6B901713024C4045A18
+                               9D2F190115203E50F99B50D45CE68FBD
+            stream[256..319] = A19DA4667EEFE2562F2467D818BAC2B9
+                               3555C78758AA5F39C292188528605C2D
+                               A07FD1BF7DFCE9C0A5D899317638817E
+                               88D91D9432BDBC8DB21B3F6BD6EFDFB6
+            stream[448..511] = 1D0CCEEB8F96CCA1C60381201765B054
+                               A564FA3C8DFA5B4E3C4FCF00DAF744B1
+                               C5213BD208B015064DB1944AD71D6953
+                               347FA616C06A68C2B7155B8881675B57
+                  xor-digest = FE5D532DB6B4C21AD9029C202BBE0271
+                               262E5FC724BE29B17D1B471C613BAD95
+                               0046F72741580421440A3BB1960CF5D9
+                               D3F6EBD12E5EB9D1DCCBA286B5CA39BA
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                          IV = 
+               stream[0..63] = CBC989D4C6F467D6E2C0BFF8D84F5C31
+                               6168ED718B54BD4EB978EC7989A5D7E2
+                               31B66476C1C106F0F5CB93122A457A0E
+                               F99F8E431E7A8A6546A6F86C15A10E04
+            stream[192..255] = D0E31AFDFD2E53CF5F93E68BD783DB62
+                               9BDFF8CDC877AF1157DB04CB5204C2E4
+                               F08D42C5E123CCBED37E44613AE6CA78
+                               4AE23AE29BD68EA5A5C1444ED389BE82
+            stream[256..319] = 35FD8C78B0F1419A75AD34D034CA8FF0
+                               DEE0C9EFB0B0A2692D52807EB17D05A3
+                               0B3B1F7CC950FB9C7127986895B68167
+                               C01634855A5BABA5AAF9A827504E41CC
+            stream[448..511] = DD9ADA1943F160F54EABB681C5C24278
+                               3F78F600F839772183236E996F61511C
+                               2ADAD3AE5BBC9778941824AFCD56512D
+                               3550E4A18D0DDA2184F583BB9670253B
+                  xor-digest = F085021259743A7E94EDBCC51A33EE11
+                               57FE2F339588C3D2BC8EAE536E970FA8
+                               7D0EEFF55F2ADCBCCD27DBE1C57A7E66
+                               E70365DDD1C18A3B959A674E1D726FBA
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                          IV = 
+               stream[0..63] = B7A655FB255DE9E3B524EDE90EE05BC0
+                               7101E900D63F664E32A7DA92C36E55FE
+                               B296B2CD472702E6B399236924BAF5D4
+                               F55235AF0B0F3BC864114D9C3E70185E
+            stream[192..255] = 7A63FC80263A847BF7235E18EDD94EEA
+                               E42547E7287B28141B0749E7D1C8927E
+                               9379D3BD6A42B34D66512B14BDE0810F
+                               646173BF81205BC4348A1C76AF18E9B1
+            stream[256..319] = 6D8CE01767163B2F36B07016F35F014D
+                               C6C20A36462E7A1BC872BE24F644CFD7
+                               AD52D2A36C062B0B18C56A5CA68133D9
+                               7873D1ADCCA1449797428FEBF3DDC40D
+            stream[448..511] = 02BABC4BAA4B62DE53229B0543F37129
+                               B6285235EE4BBF6FAA44305FB76E995C
+                               0D415D51B95AB6FBE8BBC4F255C77AF8
+                               E8F725BCB3F011FCEFA0CEA132BBA2F8
+                  xor-digest = 8220473D8B88F11D60EDF6FBC30D577E
+                               D600972FA3D70ED303502CDDDA5B1BAC
+                               F4855EABFFA200EC8CAACE79DEABFB54
+                               EC4DAFBA205252FA9CCCB3A000886D0F
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                          IV = 
+               stream[0..63] = AF3BA3DC96E49D4745954AE8D3F0F482
+                               4ABD61EE2D1A5DEC6DCAEA40C07828F3
+                               07CEDA4C72DD9D7DC30A6028F0D03C58
+                               6CB3DE86D44F1ED6CB323032451B1E49
+            stream[192..255] = FC0AF30C3070070B304C4E250F47C82C
+                               D607A497ACE3E6D4E1DF79BC788AC83F
+                               0B66DD363DA9BCA8FD26CB1C7BAA3EA0
+                               B6766B629A08BA13AC423808CC83E8EE
+            stream[256..319] = 493BB026C58671D93AA3C43EE43AE77E
+                               E88F364AD77AEA77EC2463F3F6972B6F
+                               B4E1C0E33BB742CC18D3C136809C8903
+                               52C35BD0B9AC745F99038384BD5C65AA
+            stream[448..511] = D16816B2D6E7F6673DBB423F502404E4
+                               261D6CC70EB7CE7D03700EF5041AB3E5
+                               881945DA7973D47F250F5E214B7EE538
+                               4ED1E831205DCBADACEFD1AAB050ED13
+                  xor-digest = 4FEDA8A52F55AA1B1140B2EA6C361569
+                               99C04B49458AE41FC1503D553D5A37A1
+                               41FF46D320D4EBB3B951971CDFD55B9B
+                               6EF9F4F74333B53731C3A556EA08D09B
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                          IV = 
+               stream[0..63] = 817694DC202CAECC7257E590F1C7358E
+                               4063172A5EBB286EB08D174744D59A43
+                               E1DF2BAB5CA62C746BCBDD36C0D65611
+                               336B05B033F7E19BCBD042FEA5389C8E
+            stream[192..255] = 878E626B4E5571A3C4D29DBAA4E946AA
+                               680D617541BDC749729CFBD6CBC4A62D
+                               C54D32173B32FA6E7D7B73F5A4D1FCB3
+                               A5B1830DCCFDDD067D47D0C00EAFBBE7
+            stream[256..319] = D59DD86BBC036EF203B8B4DAC584487E
+                               3280F5C4C9B208208108628065C4B87F
+                               726E28C214A5A8F042BE724FB6B7F1D1
+                               6CBF0BAD04FFF66C21487BC8B1F857FA
+            stream[448..511] = C9D23E131565EE986F6F57257F26FE1A
+                               2A3DC3E5CEC0F28AEE732E409B849471
+                               950323AA63B1DBFFE0123F770658A000
+                               A1779817B9F11BB21BA10D1D1F01A860
+                  xor-digest = 0914D6DF524AC3E4506EADEE921BB93F
+                               EA7B2A8A63E5BA60958BBDF963295906
+                               6B78C0BB7CE289457EE274611341C6E4
+                               0BBF7F7A969AF3F1E377F2F32213EF42
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                          IV = 
+               stream[0..63] = 89558D253BF791FB43A117326DEB22B4
+                               933C76295DFA8497A2C8CB69B6054A99
+                               56C5A739E5EF90BE888CAD7392255B84
+                               55BFD1ADCC4B65E3EA40283853738034
+            stream[192..255] = 9BF3E3A1B65C46B09DBAB31E3BF397D3
+                               F84619CB0602E99E7994FB7E1619479A
+                               DF9FE3E395E67ADC480674814C3851A9
+                               FEC3C6AA16B8C912BC0C023FA1B16407
+            stream[256..319] = 36B651BCB30EC5DF66E98E1AA179913A
+                               803BA045FAF63CB7718F37CC47401C4B
+                               D10C3B2FF44CEF29979279165D254E5B
+                               C6B5D65706B7F039F1137A22FF7F8189
+            stream[448..511] = 1A738BF912582F11997332C9B6B96D82
+                               D82B09FAA6B9BC32DA49130F63FF6C33
+                               0E3A689DB916A3D8D24103CDF873039B
+                               E82823D20ED922ACC647144E743AD630
+                  xor-digest = 1652B4618D5C9C202AC7F02EA6B98D58
+                               B4C25C5BAC38198CB90CF72F1079F1FF
+                               31F9D7A72F208875A33E4BF95DBBD3DA
+                               FD6FDBB40977B8A58C5C548D10CEDD93
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                          IV = 
+               stream[0..63] = B37AF0B8B82B6977D20206EDAC2621BB
+                               C173C5475B84541485DABACFE345411A
+                               BC7236370A0246A40ECB7F6319AA6FFE
+                               167DAEA8B1764BA8650FD5C0B28991DE
+            stream[192..255] = 6E373C69FC65A5E0202BAFA66C0920BD
+                               D12955CA696A36A9FA967D8B809C74AA
+                               B55372A5372675DF71AC214B19082F36
+                               B1F34020024DDBF4D7CC8927FB5AC112
+            stream[256..319] = 7D55189CFC5F5FE08FDC90C611BC2EE3
+                               36125136F3ED117608AA6ACC49684E6A
+                               5EDC398EBF747DB95BF506E9D826D34F
+                               27A3926E57F0932A3C0DE9904B1C0E03
+            stream[448..511] = 351196255DD60514EF45E52BFD415537
+                               247B7D94AE8B0C1F4B2C5A949360D2BA
+                               D2B2B2E117327ABC458BF4D3F9F45E63
+                               14C8FD5E57C1415FED1D059982BCFFD6
+                  xor-digest = 244A14A23402929FC0042C37F25CCBAD
+                               A94C4D6517F0FD1F3C2665B73DE64811
+                               C2D49F28EEA60AEC4698FC7DCD55B836
+                               475F3C07BD2725E66260949BC5400F59
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                          IV = 
+               stream[0..63] = 6705B8B0921070B98B0021CBAC7A8DEB
+                               6962EA4757829A3DE8736F06C2F4BA14
+                               5E3D91FCF4E10B6F4EF6C80C0D8076D0
+                               2D8E13E4A6DDBEF8B64FAECABD4BEDD2
+            stream[192..255] = A9FE258E6AE7E1EA32473A1D1D206D29
+                               76F85E624CF134A8E700021FCCC3508E
+                               05A464A3652AA3AF5A6CF4971688C8EA
+                               5AD029EE28A24189DE5EA19E3CE7A384
+            stream[256..319] = C318164E2851E352EBB377CBAB010F5C
+                               CB2E86EBC16AEEA94DE6170D29CB94C6
+                               700AF77AE3BC0B0D46E92641B42FB7D1
+                               D97F39FBA0CA78C5AC08279A3584FBAF
+            stream[448..511] = 36DCD31671D2867A189BB7F63EE1F9F5
+                               2E8CD30474FBBCD2CD2927AB8AF09EDE
+                               78CC35F19DD194D7F7980EA598E39101
+                               F9073E18A5FF0DAE808AEDBD8C442145
+                  xor-digest = D4594BF45303A587F859337668855696
+                               2CA75C4A9F0CB2421599CBC42580A5E1
+                               A29424E966272EFDAF2592066B1955F8
+                               C21432B6BFF0E917B8BEA379C6F93584
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                          IV = 
+               stream[0..63] = BB87EC9259876A4F1830E0EA172AE66B
+                               FF856D6AA0D1C1242C3E8D2803A44C4F
+                               49A5740FFCF64D379FA97AF55E5D5C35
+                               3ED2D0A6FD47D7D68A7287368A223EEA
+            stream[192..255] = A9FA803BE870BCD64D0A248BE3627CCA
+                               F1D789FAA23B8EC65E52DFD118A31F08
+                               829219CA1F7ECBF90473F94B41003F8A
+                               2FBD8A4ABF7C32F21870038A3A0E6E32
+            stream[256..319] = 420EF6C3C9608B1E56E60772F61FD741
+                               2AE85ADAE67E3C27BE2B4566ED49DED0
+                               021A3B439E006EC2EE1D5FDFFD0DCEA6
+                               E2C7919A2F12D49E56CF9E537A8FB6DB
+            stream[448..511] = 2E31E1A163962C59C8542DF38F2326D0
+                               97E0CF36413FF9BD8E7865ED930CAE9C
+                               6CC4ECE6EBB55B1498FCAAD47B076B31
+                               7A0CAB366961185C1BEA7EE3E19B8780
+                  xor-digest = BFBB9F154F707908CF5B7632D9970673
+                               6C734043752D38A445B0E4DD785B6CE9
+                               9AA16A33648AE9B2A62B525D3F2A493F
+                               EA230FA46B1C931C13FC6676BFCE8726
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                          IV = 
+               stream[0..63] = 3532DE2C34194BD567393C3BC8C3D752
+                               08EB38ABB975961A0BB01EB86256650A
+                               6E49B5376B16DD198EA16549635B3543
+                               9A7DEB992D031EBCC3DCC6C618AAA0EE
+            stream[192..255] = 094A47E7BA81C6E5404981B40448A165
+                               EFAF182FB2C8613069DDD40A94E81C64
+                               D2874B28A47D2264C9CFA92FD25C901A
+                               6766BA83B7A80132CF444D67813D38DB
+            stream[256..319] = C7AA46CE4216F81AEE652B15871D8B2C
+                               F7B9E3690A1CC92F693E98A6228C0AD0
+                               869CC97B0E60410BE883A56F1F33C4E7
+                               3BDF077396A25AEA62C50D8277262776
+            stream[448..511] = 2F3C976DBDDECE17FD95A236E956B885
+                               B63701825F4425B51608EC343E643B3B
+                               E17738CD6029ABDB6EA8468B1C6A14A5
+                               19D566A78363FAD75C18EEA27982B537
+                  xor-digest = 130821064B94462F3F8F9E9481AD278B
+                               904E0F6C7EE65AE1D5F71E334078FC1B
+                               983D7740D63015F0BD8F41C677E3D1DE
+                               D70577521D842D36BED5CB2191C50238
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 
+               stream[0..63] = 59D8D32EC7531D27A55D9B679F64B12E
+                               B62DD46B637CEF50878073B04B7CE74F
+                               4C63087A909988351E52EEAF5BED30A0
+                               8D53EC2C3F3DB4B7986B218EE51FA106
+            stream[192..255] = 0BBA93F3AF61FF2F73BEEBAAEA964F1A
+                               48993D32271FAA28F31A508421CD3E86
+                               6CF764A883B810EAEBA34F0A4869BB9E
+                               E4B57951B1D8CED46A7478D7E26282E6
+            stream[256..319] = 191138BC4B1463B399A048AA376FF983
+                               38E84B9349C84FA500276D9A8F4B5F07
+                               1F959DF8DFE4CA7C246E28CE7954AE7D
+                               58C9CD87D90CF7C14E761435DAD8FD96
+            stream[448..511] = DC9DA31F9FB6CD4F584B484ADFA7CF02
+                               D97C3CE68E63585BC61956246960081A
+                               2B1E4768FC7445226DD6824596AE8069
+                               69366719B3A9D2C5562A87E33D62E0F2
+                  xor-digest = 93A86E63BEB6FDFC80046E8EF23547EB
+                               6001A557344BF1E96AFF2D794D09AC68
+                               29124374CF641618EB699E599EA5C584
+                               82C4865671166D39CD3036EE40BF05D5
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                          IV = 
+               stream[0..63] = F978BCA20ADEEEB3D1A148F5CBFFE055
+                               FD306D53C3CD664FDC93E3AB5130BECA
+                               F84AAB24E8D2F1E0D8D72982425B718D
+                               C7DF72FC87FE7CCE6962279135EA267E
+            stream[192..255] = 0FE83D50304DE8562B70130D14B8AD7E
+                               B9FDCA0E32658F2700AE0F37A79AD051
+                               EA6D5FA05CBD8147497BFCADEF04AC8F
+                               8D571D618A6FA09245ED15B2F63BD6FC
+            stream[256..319] = E45D08B1037EA4A1593111414F8B5C63
+                               3DB51EA1FE4D6E83D8452A8B935E617F
+                               F1403D9468BEAA8ABE556D3FD4199870
+                               08CF49DBC45EBFDA50AED93675327287
+            stream[448..511] = DD73D964D99EF40A90AE0B1A31F35CD2
+                               2D14B19A6E671269CC214EFBC56FB0B6
+                               84646F3DC3E902811717C939DEFDA0E3
+                               0D1169B6D8A559B7473CD2515DC57C3C
+                  xor-digest = FC137AE4416785D3212FA8A8C6137CC1
+                               C11875400037DD80A6F5375C0B507EDB
+                               53F1DB43EBE7F003E1BB888059674367
+                               7CC33B212A28C7393EFFA92E9D52A8D2
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                          IV = 
+               stream[0..63] = D7D75EC9E0E2F873E083B13778159C69
+                               9A02AF583E045D4E1361052FC3545EF1
+                               57ED1E659B4F952241B85FC3F7DD65E1
+                               18FBC25E18823D6F860BD7FDA137AA71
+            stream[192..255] = 9FB98F39DACAF6851A9FB1AD548CBB85
+                               5CA4034C6CF990F5FC89F625553019F8
+                               01F5015BA1C0A4632A8EF6AC1F4E1100
+                               D1C520DC8F56618EA3C86F10DF436BD1
+            stream[256..319] = D0CDDD95B1C2A8B4594D68ECE18877D7
+                               B5E0D2FC8FD65CEC2D6CB8769C7A93C1
+                               B2B01122606227C881A2622419E9DCF5
+                               5DE2C0C448ED4845BC9F83AF16776BA1
+            stream[448..511] = 4E278B493F5E620624271D9D3D8BD35D
+                               698024632028651C5992761B5DA80071
+                               964541AEEA71D5AC1189ACD80573A8DC
+                               3C599C8D3E027C4815588B89267DFE54
+                  xor-digest = 7BACD0AA6CC914EADEF41A9BE8AE26A1
+                               A20391EAB782FEAEA2953CED863A49C1
+                               D491FE4ECB75D69151AADBB0AD181E30
+                               2067524B3DA91CFBF3B7DB23FE18F578
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 
+               stream[0..63] = E2A406758D73E8C66CCEE427824A5CBF
+                               FB7DB68415F22ED92147588FBB4F5E56
+                               4606564AB384BFA80BD64B3A720488D1
+                               6DFCCA26E71FE1D3E230A3568927A3FA
+            stream[192..255] = 7809FC8D157744545A38203E451C42DC
+                               B3989B63AF16EE562A20A6221C2E8646
+                               495F66B1BB9F4E74072BD76BC0ABF30C
+                               73F9602EFCF43FDD39963D5A37C81A2B
+            stream[256..319] = B44D4B5D31A5FFDCB612BF6575186866
+                               9EDAA9ECCE2DDD01D96A454B522614A1
+                               73CCB35BF4392D34001BFB68736629B1
+                               EED7240E39121E83BEC1C2A5A6EEF9C6
+            stream[448..511] = 3A555F1392EF1D91F01CE03CF98C126C
+                               6838D795596DD8FD00ABCF13F7F1BFCD
+                               FBA1D420ED8E0DB406DFBFFF2E22FAA9
+                               68E32B94D69C40494275E159E97506F7
+                  xor-digest = 2D9424A3B746EC835BDD7E29629BB696
+                               39ED0B08E9A8559522A7F081DDCE4633
+                               BE9DE8CBD73D59F6EEC696CF26763B9F
+                               B29B848C05840106B4A6FFE25EC0C6C6
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                          IV = 
+               stream[0..63] = 27DA37555F926B8348A7E448D4BB8794
+                               28AFA07C23C0B8B95262574CCA1CDA98
+                               0D37E058ACC64BAA24A6D94A56E561EF
+                               2CAADCB1C28FEA71AB85DF2C176FF77C
+            stream[192..255] = 52392F5D0025047D3F563F320DFF5392
+                               AEE80958681924145D31BC40959BBA11
+                               A3D3BCE2481F4D05DD1B094FA8FDEFCA
+                               883637FFFEBCED67844DB69FD0B274D6
+            stream[256..319] = 6A954B3609BBB870A5B9A3D4B1A96E43
+                               4447A8305745CE035B9CCAE585134ECD
+                               9CC7B44F4232B63865EC5F1F2F63E876
+                               3E2A172EF499C7DFC5D059B0D3116422
+            stream[448..511] = B74C0E0A1D83905CB21A5E9277C96292
+                               91C60290CE5B794D7B3815AF44B2C762
+                               DD73CD370713486F206CCC6327F37199
+                               A52AE00D59A564E24C33D09162C32D2E
+                  xor-digest = F77ED959B1166A843EB561DC61C16CD1
+                               ACBF0D28F07BBC52F86C511A0DBE2BCF
+                               1FC4F101034A9941B65ABC6ED4743547
+                               3CC997D4C9855226DA4B00379A37A072
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 
+               stream[0..63] = 4A2F49960CD3258BA43F2D2823941258
+                               B07512020DEFF9C66ED414809390FE40
+                               4B36634AEAC522897DF81CF4011938A6
+                               83408E97F8E745D59C79E43F20336E45
+            stream[192..255] = 6300ABD6EA88736F4BEFD9A4261E5E70
+                               87479305D858E0C614361C9C63130770
+                               BA2205ABFD052B225FE1425C8709064E
+                               21D62BCD42956653C3FD07E30D8D1D56
+            stream[256..319] = 83F57BD9D645D17AE1C309EE27438948
+                               0EC29F4D4422D3B020FA744040FF2BFB
+                               ADD2FFA2003C1B733C01B6D51D970458
+                               30FCAC74BBA892F6E0855DE977790528
+            stream[448..511] = 475D517F6402171B164220B5A41DD8C9
+                               F11D866F589B8459BDC3FA55A8838BC4
+                               DCA8EC4F39E4F226A468F007F903A77B
+                               9BD244CFC3DADB789AB2D66300FD45FC
+                  xor-digest = 5937DB80EC0B0E102F2D554F5D057A16
+                               B0476F7AF29783BB7A2C355C8A735DFE
+                               86EA04821B89ED31188197BE8ABE83E9
+                               E28953E85903B7A26EFB42D41CA9C02E
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                          IV = 
+               stream[0..63] = CC1BA3B60D3B517911BD889A8BA61B40
+                               C6CE5A0E7A3A54CCDB611911D06A31BC
+                               9991045B059E5923D2A1FAC8115C4F5D
+                               1C73B33977FFF59A3C32814870CA0CC6
+            stream[192..255] = B88D5335C4442E2F68F02D0A78AE3D84
+                               05C2CC2974FBC39EED1264258861C7C0
+                               35A01C577F6BD4095F45DB92C0AAB054
+                               574FDF836CFFE74FB6D838DC0335FB0E
+            stream[256..319] = E10D2DEA52646E784A96C901E2DBCC62
+                               B1D7DBE489473438241749348C9CA807
+                               0D17E01DB3D82B74C7151FFF9C81D1D8
+                               213AD3F5A78440894AAFB75EED323C0B
+            stream[448..511] = 88B51647714680B5D43B88D42BC2F615
+                               2EE9135049EA571010E454A7CE1B7925
+                               61519929842EA0489F5B658070AA9CB3
+                               26A7F19DB0C81EE546028790248B38FA
+                  xor-digest = E8146C3834E94CCBB3C3CB18F482C545
+                               CF3877FE552E74FA07824D40C4EA9DEF
+                               4CE8EE4C817CDF3EDE72EF3262FB6D31
+                               5DA9F41AEEE370B45C38F9087E7BE6E0
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 
+               stream[0..63] = 7333729B8C34AF7C7B669DA2672DE4F0
+                               07CA953A12FC3360DE1792DA60468D36
+                               A177DEB554BA73FB9F889A79C663320D
+                               F8FD8EEE6DF99756DF65C987EA35592B
+            stream[192..255] = 38C36CC146D74BECD2204CED8349F31E
+                               B833EE6EFD4ED59C08E44063BE726330
+                               B49B0AF7C1607A97D8165BC460C8C955
+                               F026867112F68B770379D7E42DB3094A
+            stream[256..319] = E267B91FAD8054BAC27D1C005A005B63
+                               BE0E4498D7A50FE322DE01D0416F230F
+                               363C4A1CFAB011CA6BDD7DFE6DFDC1D7
+                               524FD90B4C0D84E23B2C8A69D911266F
+            stream[448..511] = 25EEA3FBD56BD7D59E15120C83EDD93C
+                               95374767F2C19451245A9BFF4E928BCD
+                               7677C4B355DE28A57A9A72758E523AFD
+                               D2C9BEBF0A39E1DCDB1F1DADF42B79AF
+                  xor-digest = D4A0629575A90556D0C4AF166B3AFAAA
+                               C179E602293B57A51591320018663BDC
+                               0E57B29D2C6308D5A2B2547A21C815E3
+                               6D9C75F7A2916DC0484186ABE91ECD7B
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                          IV = 
+               stream[0..63] = FA52E160325F8A6F401559A4AAC56378
+                               3F9F6FA1EBA9046730EF2C750523F9A3
+                               1F7EE46EECF2D134C3C2BF850EED4AAD
+                               8FC31402C1E82D2BB458C2AC7DAB43BC
+            stream[192..255] = B0CF6C8A9CB7712A98D9676C9D5C936D
+                               D24F7E405D553DDE5A0C4486092519F5
+                               D9033ACF9BC308A9636D2EBEC139F905
+                               89E62F84E410260CF54406513544CD1B
+            stream[256..319] = FA5524916D327BAA348182CDC4E4F3E1
+                               F7CA365B3C6D83EDDD7954734F435DDA
+                               C4C42043526E4B1601847BC753C753AB
+                               001E9E2F990333651F364542FDA31D00
+            stream[448..511] = 00ACEF482955616CDE2D5A81494DD670
+                               81118B48F56790B5127A662F97E8705F
+                               A874BEA4632E9F7F2CA181CC71E732AB
+                               A797DE2192CEDBC718433EE6EA640912
+                  xor-digest = 187946273A396A53E2ABE4C6564765C3
+                               DC1DCD8E8C652D8B0581583AE35B4C63
+                               B3264DC9B6F07B56AE170B9433349FEE
+                               65B911F51786F0C901537A595F225F68
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                          IV = 
+               stream[0..63] = F53718B288312B8449B6AF773DC981BC
+                               65E6FC165EE7B6A5E86EFD65BE573B71
+                               D3BB84454629BFBB341220FB03DDE2B3
+                               DCD2F4C6134E7DCC67449F0ACC19601E
+            stream[192..255] = 7A064563708132126FBF1FACAC4A99BF
+                               0A23B33B4C39971A3831DA48D6826B8E
+                               874D0BB21992B1B3C1050DC57A36DED2
+                               4F6E2398D16CC1956D35B973B36407B7
+            stream[256..319] = EED5AC14D677A7E251D8E005AFC90491
+                               99E2A0E28AA9A950D49241DAAE8D1987
+                               CF1BFBD83CA56D8DB6E64E487C0F6948
+                               97B873FC02A973BA811BFF8124A5D171
+            stream[448..511] = 38F36F1BC705DFD997FB109BD084999D
+                               614BD459D02188E2F72E35CC55A84A26
+                               B1B15E1519A97238D305A540D6F39BAA
+                               04A62ADFD1109453B9714F4B86427305
+                  xor-digest = 8836D24BDEB584BFFA2556A5FF6168A2
+                               14A6D6A192A9AA9713156246336AAA02
+                               3027249F29D46315677437C16CD25D04
+                               435719E95FADB594FBB2DEB4715E40DC
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 
+               stream[0..63] = D3760E8B677681C02798C37BDF7065C6
+                               80F6AE0FFAE975024C08E7A0586C149B
+                               A4D731581C47B4DCD5D7F9FA2048C5DF
+                               6CAD0927DEE4864097BFF083745870CE
+            stream[192..255] = 01197050092E55509B7D698DBA5D2D5B
+                               78ACA75DA0BBB00127054CDCFC5B1707
+                               57803E764FE0784FDC04CD357D2B4308
+                               7FFE6E634F14DF550F163B0686C2CC39
+            stream[256..319] = 9D5E20A7C5643379A9BE39F6D42171AD
+                               3361A4FA16DB1BD44B0BFB9CF40ED040
+                               C2C9C28628E6E477786E5E1833C67BF7
+                               F8EE5F2C8D748C0F406B66E98D8419F2
+            stream[448..511] = 22194B1073884AE566D03DA2F9D9198F
+                               4362CDD730217DF7DD3DBC3C8E1A76A4
+                               780F4BD5E4F8D70F639998C4F1757D80
+                               9908ED1C4FF82DF7A88AF4332A615298
+                  xor-digest = 5E651B08240F9745315155D74F58BE8E
+                               060A86DDA8B827D3128848118C2FE09C
+                               07D6918904BE78154E67C9E645E4FCED
+                               8A2F90FC1C330FE918EA01F9167F33D0
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                          IV = 
+               stream[0..63] = 06177A5E63D6D6A4F0F76F571F1982FE
+                               55AD30D80E625861A9BF6317864DB942
+                               0A270E53BC3B775D35537E1A1A6E4CBF
+                               BFA5F80F293532A6389C01B714A2FD98
+            stream[192..255] = 767A9D477854DCAD5D73C9601571A441
+                               3D84A6ED17E6E066DB937DE7E8C01FDD
+                               2878D2C795E5AE0C02BCF921952187A4
+                               FA6BD1536C526141E719D428F29E9792
+            stream[256..319] = F4E618C45B7CE79207987986CE4DCB17
+                               A496624FA6B09BB59D7C8CD07596FAD8
+                               6EDD1BF891E0D40FBCA235C7DC43D024
+                               113C0261B3E65AD2F2AF1778A477F6CC
+            stream[448..511] = 6FAC269DD76962C1B377218B2E005053
+                               C87A62A223AB4A671D56521D9230D9ED
+                               62CFD7AD8B336ADF5B6973FDA56115BF
+                               9357EBE92E08B8D5682F090485612F30
+                  xor-digest = AF8D3475E332C7E9869CB9BD92DE96ED
+                               738740ACBF9C23233DA374DC3F8E2341
+                               B48F75527663F252C85D449D08C1E2D2
+                               70B8007748542FF2B95F9F890050C423
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 
+               stream[0..63] = FF1E08BE2B39E356B76D97CDF0F5590F
+                               E494AA357C1AD87A6E451C1322EB078E
+                               D3F40BE454C051F44253B64264EDD524
+                               93EFF1C128243FA5D67AAE276DDD4A7A
+            stream[192..255] = 1BC72907E8BB49BDD38801D893476FD6
+                               1743BDFDFD6613D65F6CC45E5C961CC4
+                               4311B7A35EAA5104F23BFAAF54EF54E3
+                               402E8C849776B59228204C09A874B4E4
+            stream[256..319] = D75BB50917976477463EB1DE4230B9C6
+                               746D3F43FEBE6B6204D2C664875EFE44
+                               B35F5D3FF0C2B8A4945057D11363CEC6
+                               ED16A55CD5911938A0F961DB86A11BB9
+            stream[448..511] = A37A85301F4B414DBC8604B7E9919163
+                               0CD2362819D775FA8618C3202A6FEE4F
+                               8C33EB194D9A99C57017BFFA5E23D488
+                               64256F10536E5D989E8F79B3F2472AC7
+                  xor-digest = AC6DB06E47077F1290731C95DFB70D1D
+                               21265A96DF6F278D528819B851699D59
+                               A5A66477F0F6FEE5C00A495C94B0E48E
+                               A08BE0E2DFE75115DCE14920B2318B84
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                          IV = 
+               stream[0..63] = FB1FDCDF7924CD569AFB2135F21F23E0
+                               E59DE392312205F165EA9D83AC27DDAC
+                               1B607E6B2AF6149A792C6C85B1B51AFE
+                               D783FB109F4FF88AED30E8FB5ED5D1EC
+            stream[192..255] = B95CA18E05F45936F6F0AC71072176EC
+                               D16F082EDDB8987114D7570D2E18E9B0
+                               5CC2359DA9DA336D692B3FA4779AE420
+                               82911A5B9E153E226A64542AB65B2B8C
+            stream[256..319] = 0C294CEAB0D89DD292A5B39728553E32
+                               3BC3F9B5CFF90CCCCBDEB1A93772A860
+                               C1462EFEB3BF534C61D2AA2B56C73D90
+                               27E0E3D70EC4ACB29FE14491A0810058
+            stream[448..511] = 864F26DCFC282C313A5AC89365EC4E9A
+                               ED8BE2AB71DA4FF4958F378E1D69A82D
+                               FBD359BA43516BD0D67F95315D054444
+                               290F7A26B7FDFA1FF0740FD44A8C3559
+                  xor-digest = 8283E71AC43232426F3A79AB83B1D41B
+                               C992DABECA3EB7C8AC7D1B1C2F7D57BB
+                               DA7DCA3BBECAABA2E5E194AD94F755D1
+                               F69A95AC44B08662A0732A2743A503A6
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 
+               stream[0..63] = 8B4D6D1E22370054F93E64C225298BFD
+                               8321EC352AE608EA13758EA04D55F7A7
+                               5AA053FCBB080AFAA4B49A2F4473B278
+                               158D0795269AB5C9C9BF253A3B023F88
+            stream[192..255] = 34BC524B14B8A7C39E5D03CAFE1FB391
+                               AD809D2994ED3D176D06909D8822100E
+                               66E51F6EE5D0B65B759F74780567755F
+                               05D1DAF1036518186B383A8A62D4F2F0
+            stream[256..319] = BBD8AB1E7A7E9D729AE66D55FF09FC3C
+                               6F0854BBEEA2AA4E174454369A4E0199
+                               AE9EC574A9CDFADCCF4A6B6F2E7BA7CE
+                               69342137080E7E3F289FB5A8593F2EB4
+            stream[448..511] = 3247CAA9E07CD949820E96B3788F4CD6
+                               B1F2F5296BBDD06B5DBA7FBD5E92D217
+                               8C1C7DF012B01D96E97043A08D8BA9AD
+                               F8CE942361CC2E9D83C1AE0D7947EB13
+                  xor-digest = B354649E5EA5C5D4D36B42312200C01B
+                               D39E47CE776CBF322B92F9862B253FC2
+                               692E908B86F8179D42F3F5465DBCC108
+                               684103BE38BC11B69B3CB8AE9456C22C
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                          IV = 
+               stream[0..63] = A3DDF78D178D379BA9F4A8B1CACBAC13
+                               F646A923F4529D16D0D38FAF49CBC83A
+                               865E3F1E03C54F78CEB5771F3ACEEB55
+                               B59F531B66B4FEB3DB3DD23F8C6B485E
+            stream[192..255] = 80478DD2FAD4F1773922668E3726C715
+                               BDA9E8FB6B21DBF21387A871D139A43C
+                               CDC9D9BE028361CB076AF990039F37B6
+                               86042F8C412D94DD245001F435A71204
+            stream[256..319] = B1B3017731DB8158ADC002FDEFBEB177
+                               74EBB2C08283122433EF5CFFDEA68175
+                               132F9CC4E94AA171034B0CEB2661F4D2
+                               C7B4594D2DFB1746BBD53520CB20B3FB
+            stream[448..511] = 1EEA9B9D647B879CD6A7F6062D294696
+                               06B1242B9C469C385AF30ED630B742A4
+                               86F02F8C4D5D3F60D53BEB3BE59C139C
+                               BAF3E13B16A339A0FFAEAF0E4AA83993
+                  xor-digest = 9E231C39A84A3C628A5D4F9B85151D18
+                               19559BEB955F907459B844951C273F29
+                               5303348C1A5B1E8841AF0F2F30C14B22
+                               A1A714A8A65226422D4DB0AC68AF37D4
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                          IV = 
+               stream[0..63] = 28DAC15D310A6D9B7597F6A0DE0BCFCE
+                               1F1D7BC099F3569929B274BA659897D5
+                               4508382252C96AFD8EC9FF40E8B5810D
+                               A7B3EBD57527E983739B143887C2921D
+            stream[192..255] = 68957B9633BE64EE62586BFB2CDD1C55
+                               B49C3CAD851CDF76FA00074CDE1797C1
+                               8C32009C242D01D83FF15163C0C71339
+                               5FEB2A9964E84AD243E5B9012BEEE408
+            stream[256..319] = C6A1E2C3C9496F38F1A5E948A915C3C7
+                               9F587AACF58CABD6A164C00222D00B91
+                               B9E2C6F3B0771623809A13BA99871789
+                               68A8ED18DE5EC5022E806C37BC0F8FCB
+            stream[448..511] = 68DB02C44BE0AAD9D3DD07024357A673
+                               7CE7F2AE867E4B0C4FAA90AE7BD15EBE
+                               A1BFA0475D31D6944FDF6334A4B181F7
+                               B0C47881B3A59A2D5AE00E2D2362AE33
+                  xor-digest = AE51A61D899F552C447EEF5B83407D6C
+                               5003F6B522ADDDD372167000D7A380CA
+                               61FD7101C2EABBBB7788C8CA9F44D288
+                               419177500D8C91707313E74125457FB5
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                          IV = 
+               stream[0..63] = 597EE76B215159D4A4C5CD289E4F0BFF
+                               BA72477B877933873E789F3D172429E3
+                               AB60F0F849131C1192F6FA00BEC86456
+                               4555516B926BC3477BC3AF498C87DA54
+            stream[192..255] = EA80CCB18906F1B72C608E8D934C39D2
+                               0F710C3140D037DC85A79E2587F4F734
+                               8D766370AC473564307713A780ED10C9
+                               0B84D11E4C1E07484E8778013C509E63
+            stream[256..319] = A2AD3E0254D83CA3BC171E999DCD0BF9
+                               8FE763E4FF4F2742D56A9FD1CBD09441
+                               8DDD58CA17F91866325449207E10B5C7
+                               65BB6FEDF647AA33A27122F0B66D4921
+            stream[448..511] = D2344EDAC57E596F857333D854CEBD24
+                               EA7CF0E2C11590A351FAA9E78EEA6E86
+                               FD91BD09F721BED8BD409F533D2AD05B
+                               C4A0C2BB3EC14F820046B46F159D3352
+                  xor-digest = 8C908CD2B4766DDAF1AF74C971281B17
+                               8E4C4D30133129B0D4A7E82978787C27
+                               439F8D81FD53818F6C68E79E99D2919C
+                               9F855ACD3A5125D37F8A54726B37984D
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 
+               stream[0..63] = 2BE2E4EF6E9E337AC29631B9526DA51A
+                               57A230E9AE187F966589C2ACD6C7005B
+                               7CA529182F48ECAB3F220ECE69A5172D
+                               F731642A990B5583441EC09708F6FD06
+            stream[192..255] = F6764A18C3B3DDF6727C916965DFA8E4
+                               C066B5745ED4BEAFB7D63E9B647AFD9E
+                               39AB73B5CEA7BDC2DF4160BC64B8BE22
+                               5789A73AB59155BBB09266C80DC542C4
+            stream[256..319] = 3C5567EC1A9FFF10A3A84869419DA6E8
+                               2548731147FB09BA59F20459D1359D4C
+                               1A33A5ADA93D1D4A6E2D599812EED9A2
+                               8485DACF519643DB4B0E86C336904507
+            stream[448..511] = FEDBE45704A23F19976A3AB7102C36D9
+                               463049CE8F48315F4164970D6B326378
+                               7DE4A8D0F9B296FF52E9258BF658345C
+                               F37A81585277A9CB7304593072A890DF
+                  xor-digest = 7F49AF70AB3A07ED06E0A7B1A27040F1
+                               C7E5A3115A4B36D7F334A42DDE97809D
+                               0C7DDDF9FD14D37C51B0749243239A9C
+                               562602D1223F11FDC9DB617E1863E8B6
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                          IV = 
+               stream[0..63] = 7ABDBEC1384D9545BAD91FF41D97D818
+                               A759BBF6A984A7D55D5F605AE9FD7481
+                               9018AFBA246612C380473FD05C54DDC9
+                               B0898DA0EC4B9CB89BCDA5C32B61D178
+            stream[192..255] = 86628D02976C0F32549E372B5A37CF35
+                               11A22DCD71BC3C9862058BAA399BCFD8
+                               C7E05ED991CE9075DB44AC228FE2BF16
+                               0C171B74EFEF250D5DF00E2A6DDA9331
+            stream[256..319] = 8D78983908D2E3ED9EBA6CC9D1794470
+                               0B88862D294DDA7D79B96EE279A88D49
+                               B062620390F4D131F44924F1BF0834DD
+                               3246B23B43BF55E1F372CE0038009D56
+            stream[448..511] = 168F8CDA1ED86FFA602EBCF21A1EF0C5
+                               65290C4261EDC7830F504558D7B59BB8
+                               A984E40157CBCF30E3DF4319D1F13385
+                               F69AB5F703534F83DD441AFD04C2B6A2
+                  xor-digest = FC5E216EA3940E6244F7246C67392161
+                               000FC6BEC43A43CA41466D6DBB4BF0B1
+                               A38F64E904085ACED24E1EF7D5AC8FFF
+                               B6FD76C1D5271530B0080E24319F07DB
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 
+               stream[0..63] = 24038A7C5EDEBF9BE569FBC136EFAF3E
+                               A70CAD9779852D701B9334891A196B7E
+                               3C5FDF9F01317CA7C4A4D74C5C1FFF7B
+                               B1277FACFE0549A9004AB10F81E58710
+            stream[192..255] = A1A6D3E73C77678FF484BD2FCC84C4F2
+                               6AB39740BB3087B3E02E42AC417290F5
+                               BAE43D55AB4F709524E32F8432C5664B
+                               2A534BA1BCB8B489AB0633D1FFFA3DDD
+            stream[256..319] = 4DF45B174E77E25F155B664AAB1FE6E0
+                               DFA815D6F02D7F65783F4A4932ECAB50
+                               8527956EF9E3565ECC33D553425CC945
+                               EE55A316722EDA0E0870BE130C41CA23
+            stream[448..511] = E78AC0DA43FC50F1B584DBDCD5D875BD
+                               F958B5AA6E4669B5A64FDC3DF10969AD
+                               B0D64742D1AE3DABAEAFCA88074E6372
+                               D47095EBB402D4A4B5ACABAB9B35B4F1
+                  xor-digest = 122761BC33DE98C7DD7188745F9FD9CE
+                               D9CBD3E4F05F7F70806445EEA67FFB68
+                               1784A5C49D5AEA391A37F22A8C0E4C64
+                               FD50D7D4A063C8D0FC9512C7937ACB67
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 
+               stream[0..63] = 138E46169E1B3A580FAE9F75C4EC51AD
+                               DB70D19F50C8206343210CEA482E043D
+                               2C9F6206807C03201D4E4BDBBE7F60DA
+                               E92BE7A6BA4BF8824F7AA306AAE48EB7
+            stream[192..255] = F1F7DD4BA59B3A480D36421D2422ECE2
+                               E5346096CBF941FF46D1439D2B43F55D
+                               97389128885A86E0A948F8A4C1B4950B
+                               6E878F0BDDCC9D3AA0560686B470A438
+            stream[256..319] = 23BD586DDFB4E6D027744E23C498AD53
+                               39AD0687B3CAE0D736A6D234A1C6EEB3
+                               70C3538593223138A9E30C349436D716
+                               402F068746B8505D817064BC705D015E
+            stream[448..511] = 80AE49B68C5620FE1C404D8BF01CCB5A
+                               7309AE639A161853DB25569F71C06F50
+                               5C5B0981FAC1430B62C59C670BAEC3C8
+                               B78CF6F961B25FF78CC431A96FD77023
+                  xor-digest = AB3FB361CCE9B90CE3EADC9F25957CA5
+                               0AAC8402D7B49F2A8E24972B9B22DDA2
+                               D65CA5FD7759F9526C80DCC8DF313E11
+                               73CD16C2BE53C88AA6B8F46511B09508
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 
+               stream[0..63] = D75267A11599B987FADF789116955A64
+                               3372C3DBBA6DF163FD4FDB5C2E3BF11E
+                               F22049E462B85D6CC96E0742806DD47C
+                               EA6BB0F716F3ABE27321D8444216ECBC
+            stream[192..255] = 6E58309A50B5D3AF366E4899A52DBC58
+                               1EB47A8F5BA0D4DBC2F0E23153E689A3
+                               0871DDCA71480725841F5E6BE306E4EE
+                               C7570CF3191914814EB585EF1BFEF18E
+            stream[256..319] = A57E7EB23EA6F93D4EBB022DF44F9A56
+                               389277DF8ACADDF069BD3B8B6F8E7725
+                               0861F22276784DEFE494E7D8C19A297D
+                               54274A5AE2E8C8C80FCE7FB07E452411
+            stream[448..511] = EA06C509E71A79FC4C1D3D1A0804AA0D
+                               DADCC54AA26D2E375935ED08AD7E204C
+                               6CD7E75A6EAE5D948CCE6FF7D2BCB8C8
+                               0AF1F462CEA3668299C69093BBBC1DD9
+                  xor-digest = 4B90A2F6A3A9C64FF6C2326B52EA3373
+                               8D0A9146803034B73A84B2038A687207
+                               CD1BF63A05561F57ED75EE7D79D8E773
+                               F7DF24BAFB85651164A07BE4A4766F6A
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 
+               stream[0..63] = 60142A5D8A6953F1CB27D9113E07B100
+                               806EE8449A2920047FC15BE4E8706AA8
+                               69AF4DE1541C1F8FD4FE6E48017BBB50
+                               F0F0894FBD3A6606F50B84F92EFC5959
+            stream[192..255] = FE6C974BDBDBEF2AB9BFF67495A3BDA6
+                               C279B200C83781377D76B404E1B9C0B4
+                               B75DA4C0CBD45C3B636D5230BE4C393C
+                               2F3A73B740710A1D42AE6375DA13DC3F
+            stream[256..319] = 5259E29CB0FF384A0C4B0459FCF9F290
+                               948F174E8C9E03A8FD57A37EC247F01F
+                               706BC624F1F044ECBD79B82440A36D19
+                               CD3EEFE72296DA32974C7C0D89A0070B
+            stream[448..511] = B9C50FFC2CE93F3C971FFE85736E20B8
+                               85A925CF57F492F9DC915BB6B7621EAB
+                               BBB30DAFE5C32EAE36C0ED6DD5663204
+                               4168FFBC3C43CD1012BA9061FD27E4E0
+                  xor-digest = 85751816E523646572D7698CCD1B6C5D
+                               651B65402C93DAD364193147026C231A
+                               577F17C3E1AF29B5FB6029CB442A6F82
+                               D2388B8097E1BB1D57CAAA3512964391
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 
+               stream[0..63] = 0A1CEA65291558BFEBCC5B59E4A8B61C
+                               1AE68E4938C061124BA76CD4173C125C
+                               E9D7898A638330BA4C21BD27CE77888C
+                               344B1373ECB459B23532AFBB6CE279EA
+            stream[192..255] = AD46BA7E84AE79828164F74A303273D8
+                               B44F1A0882FE8FAB2667B1BF1F1B61CE
+                               4FCBCEE524CE2272048CAABA6F0CCCFF
+                               28253DC9D07F19ABFA1FDDFDBD386C4D
+            stream[256..319] = C8CDACACE5EDCD13B1CFA36024569BB8
+                               488E9DC54F58481DAC6BD247E54ED3EF
+                               61831189CD393B3B6DC6994CEF941DBD
+                               254AECE82FFD0EA4385DBF54050336BE
+            stream[448..511] = 05E58763F2D65AA4E9902AE20DAC5795
+                               2A92AA1A0CFC3384D63AC788AC6E0688
+                               2E63969BD93932ADAC0302B9D7FB38FC
+                               9175AE0B14E8520DB6719468E0DFE5D8
+                  xor-digest = 70388C5B3DD1211860B9B0A800C8FCA2
+                               A9F9045822F0BA514D617D6C8401DD8C
+                               BD220C128FD45F3002E0BDD85C2E2B7C
+                               F16ACB993A879E4A408C8588812F18D6
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 
+               stream[0..63] = AD4CA963B58AE3C3E5A83ECF67F5F6AE
+                               41871AA3A35C2BB7B3D429E560E37C40
+                               6C81014795DF6477F0093B32AB3D1589
+                               33984B360F3386F5BE951C9256B06940
+            stream[192..255] = 54CECE8CC15F8F1125793500CB999703
+                               731E1E05B52568C7581C2BBBB890CC3A
+                               BAB8D2ADE2FBE8F21EC63F4A5C277F7E
+                               8F11FB8FEA69F7DE70D438484A2689EE
+            stream[256..319] = F3DC0EA99CFA7B9033022161D5465766
+                               508DB2DCDDF698DF3A409C3880CC04BA
+                               374FC8EA3FE532BFDB94DC7A40D1B18E
+                               943DDD833000DF8B80D562D4F68153EA
+            stream[448..511] = C28B3AC44B6AA3D89461BEF03F990FA3
+                               17C43F84E54126C035DF307131BFC508
+                               E265F218D44ECC641BCCE08049074E49
+                               5777C0968359649E21E7DE0BFBDA2234
+                  xor-digest = 36CD1A5116DC711AC428762363DF4ECC
+                               1E9CE702653931AE08CD5D1431EC3427
+                               22A4A3AFD3DEDCE54A24215B6E02775E
+                               0060F2DD17BEAA4530940C20ECC2557B
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 
+               stream[0..63] = 81F72720BEBAA6C73D6762DDCC433539
+                               AE1BED8FEF35D6EB146EB979EEC9D779
+                               EE1FB7947816267A10784AF824655D81
+                               4E820198A63A23EF2516EAA16AB70740
+            stream[192..255] = 744D2C2C4076DD4FED526D6621591802
+                               CAF8B096B80AC4F9F3F46AAE63EC0A7A
+                               FCB5D63AAAF9493D5F72F9D149989F20
+                               A1AA2D9CD92506EB6B59322000B473D7
+            stream[256..319] = 3D1DCCBDBCB67D54DD1F524E9CF781F5
+                               C2D9C6CC698FCD9E3F49A8126311BE3E
+                               472626781C86FEB5C2411583C4ED42CE
+                               CA535F4D51C440191435E9B2A34CAC27
+            stream[448..511] = 6A5B35A964D7D6749E7D47BF0813CB8F
+                               C53BB67F4511D262DABE7C44B1A86B09
+                               F9F31C7694787A3840F884DDC75988EC
+                               78BE101EAB8163030465D7FB8F7EE137
+                  xor-digest = CE629B61FB5CE374B86DE165CA21C4A9
+                               033CC403BC21CEC2CD8F325854BC5222
+                               CF727DB4EB7F6961F603A962C3C8D46E
+                               4B63F30A32957A59FEB1603934E0E1A2
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 
+               stream[0..63] = 4FD65B9C94A3EA1D23DFFF998BCD42A2
+                               5985ADBF482E02248020B075201ABCE3
+                               7447B12643A161164E8CB3C810CD57CF
+                               7E7D998B98E52AE513AF37DFAEB960AF
+            stream[192..255] = 4262BB2B7E587A84A36F91B14F8228E7
+                               912FB2571691078E9B70FC15D445D6F4
+                               3424409EAAD9CA02FF67908A152DC3FA
+                               0CC32F97F22DC2249DD0DD491665AAD6
+            stream[256..319] = AD9D572648E47D4AA276EE065785FEBE
+                               947D24769B91D2C1F8577CA5D370551E
+                               8C7A2D61E1E989B409A6E99F59BD0A0A
+                               AAEFBD219B205F52FE72E0EC31F40A8D
+            stream[448..511] = 46C7AEBB2298CEB8251CC13F2BE50C86
+                               22E37D322B76333C667E2AFB3918E1C2
+                               E891222E510B766BE5DC377BE64CA1BF
+                               D8B96A75AB591ABE908A2FFF30C1CF75
+                  xor-digest = E7100316DF67D2674253235BEA540CA2
+                               76453EDD483FA3EAF15BC25479F1DF44
+                               E3E5A15C84B0C6D43208B0281454FA17
+                               543CA8D6F09B455CDFAFA5A701CE3409
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 
+               stream[0..63] = 2F651E54A200E957466E38EE2E7C2913
+                               4E8FE4D0849841CE7385391FC71A7549
+                               B088F133AB43BCB4C1ECA9C719F83513
+                               EA4BA78AE6CB286E9EFB1E0141D98EB8
+            stream[192..255] = ED19D84BE0C02DA1EBCB4FC8998E6A53
+                               26713D31A2605D8F39349F20787D2C68
+                               0C17338F01700B667CBF36271F7664CF
+                               21E4BA08794948711E8F870660F9B5BA
+            stream[256..319] = 3179DFF2F816C011353F6EC1F6233BF3
+                               84A407E2E121D49CDE7DA02A19F72E81
+                               7CF908841C006F6867D1CF050B3AFB79
+                               F887807790A5705BE4D98040F4D45F2C
+            stream[448..511] = 0A92056C0DC2E2B93BCB195A0C142F19
+                               C53EF1CFA3ECD61F62EC3EB1473700AE
+                               9800BFD9DE01EB2A2E2A28B4FFA3F0FC
+                               117B9C458931483BCF1271CA561724A9
+                  xor-digest = 8570FD11F5D0CF3CFC8C68E190ABBF5E
+                               FE5A6F6685BBDAD46405FCCD4EBC34BC
+                               EF4EFCB9742EB2D9813EACA3AF045834
+                               8E1EE4BD958E2CD9E601F744589155DD
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                          IV = 
+               stream[0..63] = B7345CFF45F952763C0D32EDC66FEEAC
+                               9B1C540F28907641444ECF7FF7122165
+                               F66A8F3783C8389429CF02CAD89965E2
+                               2B59B5D9309980E2C7A213A6F81087F0
+            stream[192..255] = F5AAE7453F7394639827ADFC927FF0AC
+                               245D4B9F66B06ED7420EE2CC08CE31FB
+                               B0800038166A00629CCFE60C0B77D17B
+                               997D2F9E29A00AD8B5DDAEFA0C8EA02B
+            stream[256..319] = 86F4546E60CF77F2E6B0B3F221334A1A
+                               0026D21625477D865295C7F56AA4CE92
+                               B49257933228F3545FDE092A2174A12B
+                               7748F7962C4E194AB1FC36DCF5A3D880
+            stream[448..511] = 96836010D8C580C8B21487B736B4CC9A
+                               51739627FBD7AD249C261A9928940604
+                               B67FCC09F3D58CD0222123346B0E8AE2
+                               11B3F5D2F5352D4D6D1C159F9E8A6E4A
+                  xor-digest = B18C2B6F08B5AB9BEB3638FDBC716391
+                               16FCA4661991C8DFB3AA83E6CFECB290
+                               B80AD076011506EF22C35192B704DBC8
+                               31183B7CA7E0EFACB5F165CE22DC7391
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                          IV = 
+               stream[0..63] = 3AB56BC92BB301039D3093DECFBCD863
+                               CB38FAC88453BD5BB7549F8DC4AFC78E
+                               F1919B750A8D906C295D41DD253FCAE3
+                               1ED47108EE43EC51C5D2FA417FCD7D96
+            stream[192..255] = 7006D1C532F36FE4FBC486DEC840A188
+                               C1AC5C380D5FE48247EA6DA697A941F1
+                               9DBBC59C744AA14FFCA85AEFBC4969FF
+                               A49CC5CED8E2EA1B1E5AF857A715E284
+            stream[256..319] = 1EB0E0DC4E79D82C5CA0AD9ED509DEE2
+                               AA039036C8C95F2EF53419EDDCAE79FE
+                               3BC11EC751BC47CC3CCC4103EEAA6907
+                               F5C49B5176EEF5246392362BB01F3329
+            stream[448..511] = 470F067B1FAF12563750F0E2BB1163DC
+                               100BD4C6A2725E354E51FBB9AD2A5C74
+                               67947819A4072AD9DF0B2371EBDD1391
+                               27CEA815685D5AA433D6C0A09EB4A693
+                  xor-digest = 9976ADAE6FA18FF37E6D1EEB71F8C610
+                               55EF4649E6CFC9F36A53ED8412439BAF
+                               410249279F2BC5AC4DF0215154DFFDF8
+                               6255858CE63FC84414B5707541AA00DA
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                          IV = 
+               stream[0..63] = 5420C20B8D7EFDA5E044A65B9826586B
+                               E65C332A00FBE7A8044FBA5FF7536F1F
+                               19A6E0EFE8C4A2173AE202D948050AD3
+                               CB3CD3F54610D1EA72FA3F0CFD9830ED
+            stream[192..255] = 77B44CCB173B469A80240076C4E76DE9
+                               24722944193FDA1E5ABF8B8A9EDB0998
+                               AEB418E4C936C5A2CA75F7B6FEEF4AD1
+                               972D18798288DED11547EDE091D324A5
+            stream[256..319] = D6213B985DEC36B9B8CBC50340D7A5CB
+                               8DA674F3FA323D2A3F30D20C74555684
+                               52BA8E5F520817BFE82CFFB9637225C9
+                               52B13D22E739FF636021DEEBB73A44A0
+            stream[448..511] = 677E5DAD860F732D1F76518C29D1DD7F
+                               78F9624F908359EEC5F1CDABDE4F26C9
+                               23C9FB701F323C9A652B5EB2AC97CF70
+                               D5C30C2F276B990FE454C3880349B311
+                  xor-digest = B3EF8106E43481F823297BC40429DE82
+                               D6811EE24238F08C8366A30EEDA2BA38
+                               A76F78C8A14D7395C635838CFB411777
+                               B382DB77C5864869574C50ABAD011D32
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                          IV = 
+               stream[0..63] = BD28516E8F81AC4A212B9286E4961104
+                               FBAF07276AF0ED083F4CFE26D88233EB
+                               ECE01DCC43C02F63381B9BC9D7441D3F
+                               16EEA73CE9A305D2F850CD4A762F0578
+            stream[192..255] = AE62BF7550D226DC7051CCCA3C7BA344
+                               88DAB251A113FB1EBA331CD5D1C89D51
+                               7944BA84C9779BA09052D7E5B80E79FE
+                               73317B24268DCEBD8919016E0EB3104E
+            stream[256..319] = 3CE3007444F285243786DAA6A77756F9
+                               7DE01A0DA445E139572FE06DAE0A8440
+                               61F04B8261ADB48F766A0AE3A35BF9F9
+                               6784981823D8A75A0ADA53348A212E3C
+            stream[448..511] = 84FEE97C7CF58DCA6F8EAD9FE67E9C6A
+                               FF9681F8C138271DED31BEC9381229E3
+                               F31BE716DEA8A78CE1F5920BCD6461C1
+                               243AC623EE7092D34AB833F8EB6FA509
+                  xor-digest = 3FD75F7A9EB97651EFCFD9B52EBC2613
+                               9C188C57342913F09EF5E88CA1981141
+                               98A609CAD2A42AC333F240A948A47F58
+                               1EF192C08958341517DA6E9F4D5329D6
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                          IV = 
+               stream[0..63] = 638297CD5B1A47DF4C65916E9F2ED9C5
+                               2A3DF8D799D7C13450AEE3DA0A2868A7
+                               08D715BBB33893B07EA6AB3AB74D3FDE
+                               6786EE3FF739C5EB2ED5272C530B421A
+            stream[192..255] = 9DA4642FD55C6F22E392640588EDBFB9
+                               A0157172BA57C67EEAA99127F8C9DAF6
+                               71ECE8CD2CACA05D8180F712DFDC8CA4
+                               BF545543068A82D156B11371CDD5A83C
+            stream[256..319] = 486C9A2B715D1447A0EDD052B5803472
+                               36E621953C8060329F300F6535FFD01F
+                               A27A711F5F6A6C0D0A29AC0C907BB376
+                               6F4F0639D9B76116051ED299DEA25AB6
+            stream[448..511] = 48F5AD44355AE961AD54BC60AE8586BC
+                               26CAA4286CBAC6F22C1215FA964DF4EB
+                               4331AADCF184A0EA469DE1EFF3E29CD3
+                               AB69A32CEB30B45604465BAD97041768
+                  xor-digest = F9378FFF702B35212979B8D16667EBE1
+                               9250E90A64AC59EFF27621B725F78B59
+                               BCDE5421CB833AE2D003D2C348F7D1F5
+                               DE4F2BDA4CE10C8130DADC8217212F15
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                          IV = 
+               stream[0..63] = FA167B55F48919ED8872C28A18094974
+                               B2223B8F241E4C5AC9F5B773079D6FA0
+                               EA8DFB4BA50C683C0F7963760037F406
+                               F73A7FDED1C7BACB25853F9C072C145A
+            stream[192..255] = 6C6525AB39348B918DEC7C3E2C235B21
+                               9D612967769182D0B8FAEBF1BE831E42
+                               9B967DF86470DDF8A1D0BDFB9B595D36
+                               F62E59D9BA697E9C417ADF6F2F866C52
+            stream[256..319] = 556287C6D7A8BF4CDBA6BCBE167AEF3C
+                               3FFF6777E3DD6B53AF205F18EB3BCA05
+                               ECC5AF32A12D75A551EBA1388ADE8D95
+                               9121D2388B605B538A29C92CD425DC05
+            stream[448..511] = 2E7D36F6D934395883B333C58847DFEA
+                               B04266864A31B61723E0E8B840FF65E6
+                               14A7CF27248CFDE4E8D8252A53288747
+                               70F5B7393475E47A686CC30D23307284
+                  xor-digest = 77146382BD27B8E20DFC2967D588F7E8
+                               87206E9FD3817885425D2CF78714C4C0
+                               77BE2B699B79801E072233F27AC307CB
+                               F0904DFF90B1032645F27940D7F71ACE
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                          IV = 
+               stream[0..63] = B74EDB9C246A6739D9FCF5254338A30E
+                               4C3DB58A88E5C0BDD88E0BF76176FF83
+                               CAA849DF11899D2B3102362A1052AD03
+                               2C6E3EC3DC0C07569CF77BFA1CAAADD2
+            stream[192..255] = D294A93D02ADD287D08897131906E9B9
+                               5B1214E418EDC1E1E09F07007C5FDF1D
+                               DAE38A0213A1F194C04B6D4C4A17AE23
+                               CFC598ABD2345984525A3D04407B3181
+            stream[256..319] = 83B12E44A4972F3535BE7493D8EEF172
+                               7BAB4F29EAD5D8F321E541BF51CDA75E
+                               D9E67016408206EECAD1BEFBE61898A1
+                               39C6CCACA67C5A4586995C2904EE4D13
+            stream[448..511] = 370E61B58AAE209B9A2BF408130F16D2
+                               DD006A28A892611EF69969CE7D4ECF8E
+                               DF4274EA92086BBA3B1BC3371A8E5282
+                               0F803AFECE6CC980B2C5C1A4F06834D5
+                  xor-digest = B7A24F0DF683EA6353053B1920105254
+                               8D1CD068584C604596DEC0D1F6912143
+                               0B2E681BEDB0F87870AEDED5E0148997
+                               D61276DF604DE0E6C22C6D1879968DA0
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                          IV = 
+               stream[0..63] = 55321D47E89B9EBE10E4A605D6FE6A92
+                               883C7C3803BEE186FE5A9233CFBC4E27
+                               CDBD4D913E6313BE11F8E390B7F8583D
+                               3245FE9BF82743F9A4013B7C3B57B0C2
+            stream[192..255] = 4595D31C0D972661FE61A83D520E4CD0
+                               34E7A74968F8FBB355F187656F6F6CBF
+                               A98A84778B7ABBAAC2E0C75EC858490D
+                               41479D72E1E914C44C37B1CBA7DB878E
+            stream[256..319] = 7B45DC174F23D72AA94BBEE55FB59A9B
+                               879310454D8597AE24E6D523DB4643F3
+                               F427EF0C4670A20B1193BA66D42DECB0
+                               1810DAB7D51FD541E2E14BB20F941850
+            stream[448..511] = 0FA92B15EC5106CCF65943CE3CA6BECD
+                               C508BF43FD7B09ECFAA459CBDA5F3F13
+                               764066EB4DD79AFEEB6220574314A7F0
+                               D290A8D8842975959AD36196B0A7C9A6
+                  xor-digest = 1DE839EB0E412A63C9268EFA905FA1FE
+                               EBC135F976DCB39BEB37450419F7D2C7
+                               850982B4FDC0D35EEA63774AA33EB76D
+                               E3FF85F650CD49D4468586521519262C
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                          IV = 
+               stream[0..63] = C306FC0AA9355293A8D9A0D84D55F0E5
+                               3F913D17490F6CB691436DCBC4963FC9
+                               BD8CE7A4B39461A2A38B98DD9948DC56
+                               DAFF7685DB35D646AC36F7BE638601B1
+            stream[192..255] = 757FAD3E0946BDDD7CB3697047B2ACB0
+                               BE3EF5631DAE8B1EAD7C958E3352337E
+                               737A75B1062AE51F290FA91D57F8E139
+                               C985BD1011EBDEADA20B3A80534C956F
+            stream[256..319] = 364CFA858772802D15540253B80DE484
+                               70F26BC0049A58780E6A97E54E60506E
+                               CA2E072BCF6B2656602892D902DD9373
+                               02379993BD387E26D5D7ED309B2AF51C
+            stream[448..511] = C8627686A18630E37D102A8631FFFC0F
+                               64726F83C15783EC7E0111B91F527AC7
+                               7D8A6E1B8555F60815D2BFCE2E718278
+                               A8C0BA72647895E277A3D9D869B81F9B
+                  xor-digest = 2FFABFADB76AE77683151F1885B5DAF5
+                               E227A6E00B235666ED743CD64150380E
+                               89B7AB04F2F8201FD0A812F5E8F7FF95
+                               21749562583E3C974E96CCDDDDC964ED
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                          IV = 
+               stream[0..63] = 46A264CAD4E951FCCDD4A1C51BF60DC6
+                               0E76E90D0483437E36BC7A43A7406497
+                               7004A2C0429F292C05519C61F6009484
+                               E6C41660A038E03044131711CB134195
+            stream[192..255] = 25C33DA571B800777A968F87126CF7EC
+                               BDE7EA8F812211CADC4120159BC7E7D7
+                               EDB4666A259C6E16EFCCBA776F4C6A4C
+                               8D03139C6C9F2E60ADAA4BAD4FDCF200
+            stream[256..319] = D8FEF4B46A4E776738DC91C4FF0658A1
+                               091A4CA167973BAA345B047205FCB694
+                               75EA318DD3D031574641C35755E08DCB
+                               1242E5BAE0FC61ED2FE374D4AC9C4D2E
+            stream[448..511] = 07C0E55FCA1FC7ABF17525F8BF8A8A87
+                               987A1CBE4F28335A85A7C0400C93A157
+                               5C40D99AA1E3964AFAEEBF2B67DAB3F4
+                               B864BC6325D383C73A79494CADB60143
+                  xor-digest = 7476A28A0B4AE970488E96029B047573
+                               B96E77AC51512340131FB4ABBC5F746B
+                               BCFC09E21965E320B6B679EE23EAA14D
+                               D28B6E84796BB75D98B2EFC450B3BB76
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                          IV = 
+               stream[0..63] = D9E77156510CA2BE938BAFF1F1592500
+                               A27E1CF13890F224AE94FBEE9A5BFC16
+                               BCB2DE2156B2AC391A8C9D9E0F86FF05
+                               CD168BC1E25C9915E44DC0F34802D14E
+            stream[192..255] = A7D1FA07B18992E35386424CE3F63A49
+                               76759245C020D847D4D7B61A3490026A
+                               5E9CD2D4CC9AA935936E09CA52A5DE65
+                               11EF87216A52D3655E596D7E780F5C97
+            stream[256..319] = 8BFF29FCD32A2936F51FAE9EF9E3B00A
+                               FB3D8710BEBEA744CAE78F5DEF226DCD
+                               C608B913A3CCE321CBE79152398ECD1A
+                               3F6EC0578971D82D5247A22D05CBA9B2
+            stream[448..511] = DC765C545067C35FA8BFE2FB889EC376
+                               5CAF23D93597A6FCADB21CF28468BB49
+                               31C0949330234AFE5B4882392E118EF8
+                               48BA5B5C8C0A409B425B430331FB589F
+                  xor-digest = D8FC77452DE3E41A1556ACB63E52DA04
+                               FA8643EF850DBBD854FE66118FA0F9F0
+                               5CCB6736E2649CE1A3F3B2CB9EEB15AC
+                               A6F118BD5509FCCF86314E61C27742D1
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                          IV = 
+               stream[0..63] = 73E97E64B9686D16000EE77FB275A010
+                               0D7727AA6E603592CB31887D3DF19408
+                               329262C50CA0C803B6575210BC7CB738
+                               3C0B739F372886D6A67DAB339DF65681
+            stream[192..255] = 74A275B0C78C99E67C1569B905A04469
+                               1F3C388CD69E2264D6BF63DA62D41A7E
+                               163C2C015E302BE3821DBC028E24FE6E
+                               369D2F9C4E6CF72C893CC3AE0C2DCCDC
+            stream[256..319] = 6CC94B1995E4E022375218A1015AA4A9
+                               34C5240E58D9337C1C7A44BCC0D1E7FC
+                               CDEB5D85FA4ADB57CCDEA725668B5B2C
+                               F9688143694B80539D998EE97E9C6316
+            stream[448..511] = CAF9E912AAA90EC29BEBBB064B3795B0
+                               78B57972E90D3735EDC101253FAF2DBC
+                               AACB7E930BE767DAAC88B4E646A6B808
+                               2D126D2248835F4A91A8FCB6F7784F77
+                  xor-digest = 695D0C3C1F0047FEF7EE6FF7DA1731CA
+                               FE578118BA0D647ECCA347C5C09B0C8B
+                               CAD6C99FFA1BFF0922A59B9D31F0202A
+                               7035B66822B51611E780653D5C677DE0
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                          IV = 
+               stream[0..63] = DA0E50257BF4C31EB348A32306D90C1F
+                               B8DEA23A7E0C514A4D350C4955131744
+                               D3426135AADB50D1AE4E0EBE32600BAD
+                               48C13F6322A42E931AC4AF35BF2DB834
+            stream[192..255] = 994A290C8CBB2DE81173B7AB03B3A80B
+                               92574363060145E3CDE160F0CDD3C7A7
+                               AC3BD5BC4171E2CD8C2BEC9BEA9D1D20
+                               7EC788D71C5830BF441379A1416D3411
+            stream[256..319] = 767BB6F7046960957D243B925F9C7D77
+                               20AD02E68035D7BD3495A14C6977FA27
+                               CA53790F1E6DD14BD9A90DB948596CE4
+                               ADD0155FCA76479E9C3696441EE10225
+            stream[448..511] = CF563865ACD396BF031D5BD95C727430
+                               2665DA13906A03C37B24E50A0A9E97D8
+                               FE80F0EB65AC07E75AAA0A9F8539A174
+                               2DA4BF7C47E4262F924819F4772B2AEE
+                  xor-digest = 7FE3412DB9312084AC9E8FDFAFC3E292
+                               B201618571C315D40BA9ED5F8FA3BAB8
+                               6E70DB9606F4A74F13BA6CB2F421E4C6
+                               52AF01B02A5AC1C63D30516FEC173D78
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                          IV = 
+               stream[0..63] = 78652C000FB1F471AB653130A45D85BD
+                               1523AC8F419B86A380990E988489B973
+                               6494BCEA59C71ED95C31935B6129A3D1
+                               5A9690954D31F61829E300BC0782B549
+            stream[192..255] = B7C3CA6C05DDBB74C9015873726B66B4
+                               EE373E301B3BD6A13C58259C095DD28E
+                               6CF2E49A94302E83472F60AC2E076B56
+                               98C8FC32855095E7223300A15281600C
+            stream[256..319] = 8B39F97217FE644BF3C92F17814372A0
+                               91F691A9B711B020E509BE83289D3473
+                               8DA6B01DA0B6594BB73EA64D484352F9
+                               F94D83AEE164A81F208DC96F33F1B0C2
+            stream[448..511] = 15B84D4B277EA307DC83887A67E5DCA7
+                               A624F218C998168111E3E14C6351CD70
+                               C152BC7EDBA8DF7A0E65ED975F86DF67
+                               C211E4373403105F18D98A034538F51C
+                  xor-digest = 50567D6B73847470632C76F35FBC9BF9
+                               211A67C030B15A650529E5AF2923C409
+                               51F825978856968EA2087D4927C84189
+                               DA17C9FF222A08A6F1665F1C3E86150C
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                          IV = 
+               stream[0..63] = AFF596D970ADDEEDE2D3024710C6496F
+                               0785BAD5686858B43E501FB564077FBB
+                               7D518A33168260DF28EAD75E5CCBB23F
+                               DA17C2800D97982E463A66527EC1A724
+            stream[192..255] = 681CDE43CA3F6D06233D53B5E0C8864B
+                               A3B31BD3C7F8BC26AEA721F230376244
+                               C29DE09C79766A5A8455B1CDE8DCDBE3
+                               A06EF9EFDA30FD1AE05E938677DFA595
+            stream[256..319] = 954E9C90575FF69A5AC032AA23DBBF16
+                               59FF92E5AA0EDDDE0FC3AB04BA47304F
+                               52A97E75D1B850ED3A2C28E7F67D57E8
+                               BFAAD730190D6E46094143C40020DC85
+            stream[448..511] = 49906353139490B94F885676211F4A43
+                               8F46DF053944E6BA7BC98BCA85DC2162
+                               AE7F88CAB544E52950B5C743718C37E1
+                               1758D9C9C7B6606D4DFC658171FAEE0B
+                  xor-digest = 8016E5A51942016CA79E6DC874B0CA63
+                               C3023CFBD461091B09CDE55CC5107F0B
+                               7AFFBD144D4775841B34E97F419781CA
+                               2868C30AEC32CA88F8B1A49CD00D2B99
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                          IV = 
+               stream[0..63] = ABB1AF87D4DB04965B40B3B517C78ED8
+                               B18974A4A01452FB5ABB463FA21FC4B9
+                               6887F260B0A3F2C3335F31C82A57CF01
+                               70499650C101FA8798494B9B0DF52331
+            stream[192..255] = 6FBAFA36A5DF461EDA3DD1A4CDA08D26
+                               5472C92E4EF915A5390AED5605ABB071
+                               B3482DA11D8D235DCF51C5105D3D5F84
+                               AACCB7609135FD741AAAEA7AC0871FAE
+            stream[256..319] = C9B368AB01B8C58D61CFD362FED364A9
+                               2F03DEB900C7A473F16D32FCCE6D1FCC
+                               BEAB7FD73AC7C4F5D82418F159E4C7B7
+                               7EE76562F62F037668D894BD43C26C1C
+            stream[448..511] = DECF4CBB41BB762162A60B3A1B769325
+                               D25F63B6134AC35AF0401CFC8F22D8B4
+                               DAE21F8C91FEC723B94F9915862C0162
+                               3FCC02FCCE8D5F3F43BC837D05E76076
+                  xor-digest = 0C70DF74D6685122503D2E395BA5ED1C
+                               8EA25FC1999F1C7EB19F8B5B86A56805
+                               0813039C9ECEEE95D5CE27BAC59EF723
+                               113792660EF68C19EE2D72F8014558B7
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                          IV = 
+               stream[0..63] = 6DD18B2D13B59156BD8C7B5762D3720B
+                               7DB793F717D60DC05E258FC160A1F0F4
+                               077C8606202FF0693762E6542EDB483B
+                               511F69B51C98D762939A68A322154E74
+            stream[192..255] = 4E65BD68BC9A16A284DE9F7267FA0FBF
+                               0B982C1BC14F9E81E4DB102A9D0C0B33
+                               1078AC3C6428F9A62FFD291775A27D2A
+                               5105F82B50E41261D60F217E3D982F72
+            stream[256..319] = F92EDF31F5AF0ED8337D16C03AF943FB
+                               DE8D3E87CC345FE39F1937C857008C69
+                               EE7B8022E9F2544428AE8D24667C592F
+                               9C3C416DBEE1AE93A2DFEFD1688A4FEA
+            stream[448..511] = BC84415E47551F06A5462C3663277284
+                               9FDBD540C950924C05DB5E864C4FF59F
+                               E4209C6EACE7C060D66D8002268753CC
+                               536B87044A88F1FE5C0C5CFDBD2EE005
+                  xor-digest = 0637A67E6E504E3AB58DC70703DE53B9
+                               EF63BE07DAD78CB029F43FB20B8BB64C
+                               3D3D42E6DE04B2DC9240B3C1C29D334C
+                               ECB1A2FB609F711840425A09F9BA1B00
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                          IV = 
+               stream[0..63] = ED7C37F1810CAFCE7516085845BB2BF8
+                               3B2B57A8AE684E144DF409F608567627
+                               793FB481AD7EC201611D167EF484F2A3
+                               7598E5F531F970AD5CE8F6448C3BCDD0
+            stream[192..255] = 08C703D228A8D6AE85970ED0C4496750
+                               1E0D11ACBD987D5E68CEAB7164CE5C2F
+                               BAC239160A0CF37D801BCF44CB3AAEB3
+                               E790F63F5E2B9047B1554A97736DAD75
+            stream[256..319] = C38EB81CB041028B7214A2B4A171AFFE
+                               ABAFFF45BFD6F02F31981F9651E39A4D
+                               5677EA22A425D312FBFCBF3CDB5CAEA6
+                               8AE1F74F7DAE38435D84452C2B6AA84A
+            stream[448..511] = 461D8F78701D6E075DEB5A935FB3306B
+                               F04057A26C483E66F511B1FD84A97B86
+                               633F1CE2F6360E299A2830D7B3F469AB
+                               B6ACF318B15E29FE1B38779A02F33A35
+                  xor-digest = BE204EDF7B533120AFFCD803395DA711
+                               478F37702BE5293D04A5CD2EAB9B7993
+                               8431FE387E528AEE1FA0294AAB235B72
+                               0A33566362C261F706ABC374B5B91545
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                          IV = 
+               stream[0..63] = AFA6DB38E4DDA98ABB36E8210EDBFB05
+                               88776D98C22F0643AFFDA9D19434BAB6
+                               109E5236407E7514008FEBFD5E367699
+                               23556CA1054E446E34947EF97BBE00BE
+            stream[192..255] = 9E3EE5D673B9731C6AA168B09AB0752F
+                               EBB67B7CC87FDB202AEC04FB5272EC76
+                               E462B3E95B9E3E2EA513D9B2A9244C21
+                               9B91AC27BB0FA85B99531C2C5024E29B
+            stream[256..319] = 21D6E449CE114513CBAB70C08E0C927E
+                               69DDB7FC473BCC410237C8C71B1C4768
+                               8F798310379EA1D3C16BC3DA2D18DFA3
+                               9D54B7B70DC5D3CF26F695A31E8EA1F7
+            stream[448..511] = EBB796898D713322A58A029F75B4DE6D
+                               0039D30620362D97A5F96D14E22DC55B
+                               27C04C69EFCB9903C796615F33CE89D5
+                               5757A568BD61976D43BCDD454FAE8AF1
+                  xor-digest = F22F1B0E130FD18758B8DAD37C25DF2C
+                               9E4ECE64040067C0C14FBE490CDF600F
+                               CE60CF4DF80246CEE51C9165EB528F4E
+                               1A77EAD94F4E0199C0D13C9E49E0AB18
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                          IV = 
+               stream[0..63] = E3221E3EEE6B34BF6569A3F9840E1484
+                               5950DDF6526BDB9E99ACE35204ACB3C8
+                               CF1E7B3CA18F009C09CB5F4A431F6D14
+                               8F36C97972AAD915ECA562F261417744
+            stream[192..255] = D8F42B87E14A0E11E559D3F342B1E7C4
+                               0BA64A97F6BB7C8B00D82102A3B5EEC1
+                               E6C6672C7E2937CDA73F400FB6DC3B72
+                               5221AFE9B3213713FB3D7C827357CFD9
+            stream[256..319] = 00E8C8D84D30588F0CD590B4DB448D9B
+                               D28FE784231A7F9E8CF39DA958ED9943
+                               BD7E4E9DBB3E8659002813DED73B036D
+                               0AB552BAFB5216502377FFC2A71D13B1
+            stream[448..511] = 7E5A25A146513A979C51138A785AFCE7
+                               338CD6686A24D9FA7D130259059FC988
+                               52903F2EC85BC8A9A6CB8E47B822734C
+                               063D33E2BE471CDEB8C9A8CBDB270212
+                  xor-digest = 7BDE46979978869F9F8474715193B2D3
+                               CE1F2E42A98837135B6099C51640CA3A
+                               B9096B8AE1EFB308906602D4EF4158F0
+                               D358CB39FE1B791E130B824806E355F0
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                          IV = 
+               stream[0..63] = 600E91A4C49CB4CB60FC02D1408BCC51
+                               8EDBAF523CD5562F68756BDA2A79764C
+                               C7BC7C24C8DAE9BBD93F51174CF813C5
+                               C9AD669E665DE839F35C88501D25059B
+            stream[192..255] = CD92A54D538C5AE5675AE2EEE9A89D0C
+                               5E0E796D0FF5B5BD9997133A30E7AD4B
+                               C502844EBF4F0D4D9503961F8432F938
+                               B282612720EDEBEB91FFF8FFC15EB2A9
+            stream[256..319] = 75A9F9414625CEDB2B1A6CA862152CF2
+                               5BB0F7AA3F538501A41019D5B1944F8C
+                               D346B854776D52DDDA82EB83EDB4DA9A
+                               9507E24FAA548609B8F961C6A384E37A
+            stream[448..511] = 7709860EDFD68D68D2336A80BE5DB137
+                               F165E3C52D51FCFC10F4D579E3F0BA83
+                               74BD30151B4FAB7BB10870D991E57AE0
+                               A497A332C94B39F987976568B63A35F2
+                  xor-digest = 159E9A509CB066BEDABDD498CBF07F3E
+                               C318808AC2710DBED875591AB0A702ED
+                               66235340EC34E8DB19F6A7CE02EA4392
+                               1F76078AEB626EA2C8EA758CCC69F955
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                          IV = 
+               stream[0..63] = E07C8DDE1E5D99F8F5CAAD62B1DBAE4B
+                               3A800F601354E4EAC099CF32F04463BE
+                               A7F329BF948A4EDA15684CC4EE8F7E88
+                               1E96DE810748C30764DB44AF0BC2AC54
+            stream[192..255] = 3BB061178DFD722F75C8D7FAFE1DDE2A
+                               04ECC169BCCF3070843F3F6F7E094775
+                               1B4A033A01CAC11C7A65F932C63DE855
+                               E6F12507062492218C17786C3DC1AC97
+            stream[256..319] = 1598B2C10AB9F0EB1FA9E2D1995E8D2F
+                               373FB08ED27A53F70B4ABA3F3B4EB65C
+                               4AD3F9870E02A5ED20A9AE83CE1F276B
+                               16549CB7ECBB5F7DABEF7DA5CE03D8B8
+            stream[448..511] = 1C112AEAEBFF1BF652AF40E31D69AC8B
+                               6A7DA2655DE95D37A14FDCBB53703273
+                               DBAB3573F8F3B49612673D620D9E3C05
+                               0987FCB9929945A0EFC00D6055B79BBE
+                  xor-digest = DCDED1C5FFB580F26F48BA2211B6D3C4
+                               2315D80BED969AA23A65E9E9B699788B
+                               7759EFDC65FC2B6054FE333A6A14396B
+                               8668B5CE44F4E18B3281F4F9966781A3
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                          IV = 
+               stream[0..63] = 21B8C8FFE0A71B9441E69DD088854A53
+                               D99B5C390A9860A7A96054A99629F9E7
+                               5D0C979F1D2E6FC3A80DA50127F73A0E
+                               4B6AA372CD3D699D950BE9D7A058DBF0
+            stream[192..255] = 96ABBE51F16EB4A33866BFD54D62A2C1
+                               63A06940819E6A937526A246C5FAED67
+                               6981ACE6E6043CE621823E9BD3D4249D
+                               5ABD6E3EB25A30D46AF5305105FCB624
+            stream[256..319] = BD4A74112830095267F2DB5C836F8A8E
+                               DF463F2378E498DC15C8B2B6DF2D557B
+                               303147B01C461F752DC1502BC32252AD
+                               681156C7F3BC8F57FEA5EB91AFB3EAE7
+            stream[448..511] = 083B59D315C2D9DE62A95CD896C4C016
+                               843A672D4CD4CE6732C87023440CE54B
+                               438ADA9619280BCBF0EEA4CC080A4120
+                               6B9A9173725DD318448FC0F9FFF4A0C7
+                  xor-digest = 26134C7041A488687B0EDBEBA3AD4AC6
+                               9327B072F7271A0ED1EB6B303EF78C25
+                               D02D85A95522B1E98DA2E6039B073DAD
+                               D09384CF8C0FC5AFF7DB3DB67403E01C
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                          IV = 
+               stream[0..63] = F9FF49B396340CE3625736E2E8EA1D93
+                               3C10F37D2656199C148C344BC599265B
+                               EF7132363B1E3E5F72ACB86DF5DBFA74
+                               B911C40DF21526052D8BA969C1B385C8
+            stream[192..255] = 99D8907D949F7A1343587935CF9C51B2
+                               6F550CF431A8F1B5745F4973A80B969D
+                               CA5D7F8970132FC564DB1E6BCA7A8660
+                               B1B761CC859828A53DE1A82DA4BBB0DD
+            stream[256..319] = EBB233A0347AA7FC4425E1D3F1A49BAE
+                               89E63FCBA97C1C2B33C383336426C247
+                               53110F6A502A26D3561FB8A22396033E
+                               A4F1916960B9E17E8F5CEB64DA269559
+            stream[448..511] = 1C75A00A54EC0F8A3087101A0329D660
+                               9F8FE80B85C553223BB26D13E5061B69
+                               CAD7387A7CFA61E70D5E6A64D2F1A058
+                               8E797D5E2CDB5C3A8E85DEAA3DDFC66C
+                  xor-digest = B8E7410B346A8A3139A294DC79F9BCB3
+                               9C54437E842C24B79C97F1EE4936570B
+                               A73DA024D86FD08EAC2A51B2E204DF4E
+                               43D00273F24CB0F743A66A7E10848BED
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                          IV = 
+               stream[0..63] = 540E0DB60551BFB7D7EC7EAC9F5F113C
+                               018A18FC24E02CF0FDFDE0AF55B8859D
+                               841F4BE4AA967F4222058AA8AD2AD6B4
+                               D7A6B4A2FDE35D95ECF8B1A568958F4D
+            stream[192..255] = 0FA7D51B58CC6F2D6EE3D576D0153A79
+                               0F8728044300D1516B1EC076E43F5295
+                               F5B303D1BF27AEDC0E8B5C5941279073
+                               F12BEA92E97AC298BE384CA26CEFCD83
+            stream[256..319] = 79D4E09967825F6EE11F0DD430E1CAC8
+                               67E1A704F7246A68E40060570FDF97BF
+                               75FFC6DBAE78D63CBDDB1FB00F8BD83F
+                               B042581FC07848BA88C5FF49240BACB3
+            stream[448..511] = 7E59ECC2C612C900F221F1541B08B4B0
+                               292A702BFD44F943BF5AF82AE0EFD186
+                               CC7819E8029ECF1F3CA8724EF2F31EBB
+                               DCA4C345C4E705D91DC5D2D46BF399BF
+                  xor-digest = 786481BD2804FDA3643EC2C8CD3FAA8F
+                               F53977CD9C4D0FB5060833D11038F765
+                               35B08C49FCC8FACD58FC4BD7EFC9AFE4
+                               46F08D2004EC10F0BC6B7CBB57FF18F7
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                          IV = 
+               stream[0..63] = E38A7C4AF9D860ABB0F3689FAD137F9D
+                               64C1F88C6E275273455F27B7077F9B0C
+                               0B69796B803F00609D91A5848DCB80EA
+                               231E2D7FD7E8435B5896FCD5E564C859
+            stream[192..255] = F604C8A300C6D845BC73D58A8108140D
+                               E4945130BA229782124852252D37E0A0
+                               0CE8F86DDDE295AF4C39F63D18740061
+                               525B6E4A626007752A5CE5406A50E265
+            stream[256..319] = 1A10C687DECE033E4318E29D9A060B9A
+                               ECE48C104724C2020F28785C22B092E5
+                               281D5379F098E8CB6F72FC52D88842A9
+                               1CC88539F2826E3A3AA5CD8FC3021BD0
+            stream[448..511] = 51D19A35575F8B43019548B27C67D721
+                               46320E470D5A6D710D4F881C07B6B0AD
+                               CB817CBF1EC011B922DE0ECB227BC893
+                               F0A79C9B9B39EE3B2243FB8E6E4C7632
+                  xor-digest = 427797404EB910FB05D275A4F4672E46
+                               02F86BBD823B30D7E58DDC68B142BDBE
+                               A37EBAC98B4A96298478F952D5D0CAC2
+                               346E134E45F29AD7322FFE4B44CCFA5B
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                          IV = 
+               stream[0..63] = F04079B197AB338459F47B7268784226
+                               9323622577E09DDAF5FA163A8ABAFA40
+                               81E851543C74E407FA03720713669BC4
+                               9D6E05F438F12CF1F8A55C042B09C184
+            stream[192..255] = 91C3BEA2C3D4B2DC518E4A6D311523B9
+                               17C7C219458037C073B399790A62C2D7
+                               46AEA28E28470186693FB8FE406EBB6A
+                               0D80FB6B63F5E0EA2409300914E8ADBF
+            stream[256..319] = 44C154CE2859CB89B4CD2BF98BC9C91C
+                               B031FA6AEC3674800DAB1201FC249A81
+                               BC18CDA2CB638D62D23FC371F981E8C0
+                               31D0D9983CF157522B35DEAFA36C4D14
+            stream[448..511] = 118AF19E7F0608495FF976E4F817C828
+                               A3F0E696769CDAD40E7B041122638CC2
+                               2FA113C80714209EE8CD2B0B2E517754
+                               C5A8FEE1D07942ED2FB4B0ACE77A9AD5
+                  xor-digest = 68782D5B24680E6DBC408C8B8D9F29BE
+                               0FBEAC65B97B4D177CCC7B97F358EC45
+                               D9E4EB1DFE602B6CAED3B5FD2531A487
+                               1E3B126EC6865F0D50ADF3C5AFF505E6
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                          IV = 
+               stream[0..63] = 3B91509DBF726E0CAEDF3F7E33988E54
+                               D61ECD2D77632896CC7D03E0E2508C6C
+                               D483D2F73A7D6AF86A4D520E0D7B6854
+                               3526D0280366E548A3F0CA600FA9A906
+            stream[192..255] = E3DD2985316C80DC869268E68C63F221
+                               18373601736FE08FDF1F797D29A1402D
+                               6FC3DA545FE7474BCDEEC8FCD8C1FC39
+                               4F6B5BE67B40E7359AD686A1F4C661FA
+            stream[256..319] = 2F41BAD8518AF773CDD05F40D618F46B
+                               A9C87CC002FCA5CBE92746334A6F5A84
+                               50011F8AB4A644835E44877DCFFA4CC4
+                               B1CE9E4C65E53852AED622AE39DA7214
+            stream[448..511] = C87EFF1F48918EC72A83ED62EB205AF8
+                               83592BCC6E0CB03509D15BAF659F523B
+                               3AB1BF7AB27D32B13FA5555F638D5DC3
+                               51CF33ACE983F5B9F8C1E0A773F00908
+                  xor-digest = 801EC479BC971323676842B8DBAC8053
+                               32C7668544C1888B7D007352000D9293
+                               1AEB80D758C80B384EFC9231257C7617
+                               51969970FBF599187EA10D7834C62BAA
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                          IV = 
+               stream[0..63] = BFA6BEB8DE544EAB0BC625DE87CD3D40
+                               AAEB22E39C10F4A03F7FEFC4111B6216
+                               818DFFC064A8DC537040588E3DEFF1A9
+                               F9BAF13CA78FD40BA8875006B32DB89F
+            stream[192..255] = DDA22B5D4FDBFF769AC93A74B23649CB
+                               642179A4F5BE89AB63C03FA59F1D2CF3
+                               A763E9AD4BF4F887ED318F9FC86AC730
+                               932F66F7CA4E1E6EE6FF6C7C63DB2F1B
+            stream[256..319] = D4AE98E39DF8C95AE56CA92B2967C17A
+                               C2518EE79DFC96DAC06E49D61FAF30E2
+                               8441C004CBFE65E46C30F8745B85A835
+                               58829BFEA9BFA6C0CCE197CF47C35F3B
+            stream[448..511] = 2A38ADFE01B6352FF2C9C6A5C8158EAF
+                               859E56C93A597A44AACAA7E10AEE57FB
+                               B311A39ABDD6BEBAB5B148B370795BF6
+                               CCC605D5123C1C2602840BE73807D018
+                  xor-digest = 9AAE2E96A563E5061B48A875CA83C418
+                               1CE9BC9D65D3030AB9CAB5370FFF9BFE
+                               9F0D3B0A1F0A8CA11DB3CF996C0C3E9B
+                               5942D910CADFCA0BAE3B99FC43534D29
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 
+               stream[0..63] = 4C7549366D725389C0CFFD6182746008
+                               318CDB855A28DDEEA4616882F1A5736E
+                               DB580C387C90B5F59906AE29B718015C
+                               F1F672EFB64A7A67C6CB5FFE9AE78E63
+        stream[65472..65535] = 27929223275441C5DE13002CBEFED5E0
+                               1A81257E9560984CBF2C3EFE7704E864
+                               B64F3F014F9EAFD3300E98B51E304A50
+                               D06650C06388FCB9CD81B5E31106D2D8
+        stream[65536..65599] = 0DA038E03D0C68D2765EE86A3B42E845
+                               865B0C4162E1B7784FAA2DCDF1BF3104
+                               2E921C8F1958A2D16CE46709C35933E6
+                               2DEA2096676932471882819836C88A46
+      stream[131008..131071] = A7547D95631FACC4E929331A4566C970
+                               5F5C56989D829E672165BFFD5E52DF53
+                               59663BDAE332A43A6DCF1B22594D6D94
+                               14F817A21643D5D34EB5896B93B06F85
+                  xor-digest = 46CF69A5F5F7104A55235778E3C42C7A
+                               B133F4C114856D7FCFB465BFDA6FFD82
+                               89E38142D5764D662A0977988C60197A
+                               9B0E2C179D510A1668C17BF6F704907C
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 
+               stream[0..63] = C9731F12194B379A2E9F4D16B69E5D18
+                               44822C2D3E23AAB172F4494E4A2FB160
+                               770BD121F85143008B0E490BC9AFB576
+                               B8AB0D2FB097E27A9CE0D7468A9DD676
+        stream[65472..65535] = 649A0FFCC973B88C39BAB42BAE9300AF
+                               90C8A51682280441AADD8E6F1B92F3E8
+                               40CBE19B0A9CB3098B5A7AF51773CFBC
+                               DF122F22B394D692EC2244944070823D
+        stream[65536..65599] = 203C53232FFEBE24C515CA25B8F589E8
+                               38FA0819A0017EFEF8272591EE9CA486
+                               2F880CC20AB2449C8B498453C9ED6394
+                               77833711749026EFC66F5F71AC7C1455
+      stream[131008..131071] = 507217EF60F37D559DA24EF7E97807AA
+                               D0316EFCF89FADA2491421B6D15A67C5
+                               CF84C8AA0CCB2415A76AE0DD86873E94
+                               932C129B8409516A6C715C91E4E1CA29
+                  xor-digest = 5D636554ECD01741F3792C92B0ED98F9
+                               0DF86B92EC6B42E6CE749FDDB2C97F69
+                               83424AFD3524EEDEE9BF4E92EDB2DF21
+                               2D34606643047D6DCE635FA17CE9ADCA
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 
+               stream[0..63] = E9963A4E0BE0226E92E5095ECBCC5A45
+                               407ED0AFBDA90E4B7F8CFDA08D310F5E
+                               31BB717CCF0D3B5470D29D2EF570B079
+                               AA46D39752B790E7921ED3D1F56ECEC6
+        stream[65472..65535] = 796D52A2A77F7FD43513C0C2E9E16B26
+                               F2BC3349B0D5E82272A9DD820D3BB3A2
+                               26031E6EB5E8D98C5E323E6D0E2C98D6
+                               01B41E9B06FA6307941DD69C9CF02E43
+        stream[65536..65599] = 1AC463A90883DE4BA94DB89C72FF4459
+                               1AE9BE96CE66D4413B4DB59B5BC99F80
+                               8BE201C04BFC4DF91CF10476AF179823
+                               4BDF4774789831D46D426B2062065958
+      stream[131008..131071] = C04BDA495E1750FE67D0E1AF6A911E37
+                               9A386889F7B423154DA8293E960C0DB6
+                               FE284A786F7CA30EFAF7CDDD14F0EE80
+                               5C2B943B718899A6D7EB8A2513490562
+                  xor-digest = D21FFE07CF7DD7E50B746A51A46A8FD8
+                               4B84E618EFED1F751D4D001A9CE09EB1
+                               AE579D06FA56534F8E7A313B02CE31C7
+                               09338C8A9524A9D08CE0A17413F39FCC
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 
+               stream[0..63] = B771A1098E0E3950706FA93CCB08CB3A
+                               DA1C8112DB74402F35FCBDCF2297C5F8
+                               F4131618C9921E42D4761D6A0239B85C
+                               C3E0D5CF754C8A3A19ACE03B35DDDEA0
+        stream[65472..65535] = B5C6FC97D7D302B8DEEABFC28B301CB7
+                               AE7CB7792F330D5F9610EF40AB1CFC1F
+                               6C6BA90F4A7AC3275038B3FB04C16251
+                               437093C4A1522930EED27FAAE475F81A
+        stream[65536..65599] = 0A24C01E0EAF05FA288AAFE43B7041AB
+                               9BB23AEADFE18E3EF431303F9D04E42A
+                               5B74004247AB19F97C898A81F0F3ADB9
+                               E285D675395CAD38245B41B45E47E470
+      stream[131008..131071] = 1C5F977E496BF60A7D93EA2E5C293AB9
+                               8BE7CDF3C9662C32312B0AEEE28351A8
+                               18C18237BAA132C2978F29CBB886D3E4
+                               410C5151DD0421ADC124F6B033355696
+                  xor-digest = D773251DE167937E9B3ED8C4D52EAC61
+                               E92FCEB25CEA06034B75A7A4744403D2
+                               38598B844F33B4BB5115502E33F83EA6
+                               E2ACA79317A7F42F149C57BBDEFEE41C
+
+Test vectors -- set 5
+=====================
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 
+               stream[0..63] = 4C7549366D725389C0CFFD6182746008
+                               318CDB855A28DDEEA4616882F1A5736E
+                               DB580C387C90B5F59906AE29B718015C
+                               F1F672EFB64A7A67C6CB5FFE9AE78E63
+        stream[65472..65535] = 27929223275441C5DE13002CBEFED5E0
+                               1A81257E9560984CBF2C3EFE7704E864
+                               B64F3F014F9EAFD3300E98B51E304A50
+                               D06650C06388FCB9CD81B5E31106D2D8
+        stream[65536..65599] = 0DA038E03D0C68D2765EE86A3B42E845
+                               865B0C4162E1B7784FAA2DCDF1BF3104
+                               2E921C8F1958A2D16CE46709C35933E6
+                               2DEA2096676932471882819836C88A46
+      stream[131008..131071] = A7547D95631FACC4E929331A4566C970
+                               5F5C56989D829E672165BFFD5E52DF53
+                               59663BDAE332A43A6DCF1B22594D6D94
+                               14F817A21643D5D34EB5896B93B06F85
+                  xor-digest = 46CF69A5F5F7104A55235778E3C42C7A
+                               B133F4C114856D7FCFB465BFDA6FFD82
+                               89E38142D5764D662A0977988C60197A
+                               9B0E2C179D510A1668C17BF6F704907C
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 
+               stream[0..63] = C9731F12194B379A2E9F4D16B69E5D18
+                               44822C2D3E23AAB172F4494E4A2FB160
+                               770BD121F85143008B0E490BC9AFB576
+                               B8AB0D2FB097E27A9CE0D7468A9DD676
+        stream[65472..65535] = 649A0FFCC973B88C39BAB42BAE9300AF
+                               90C8A51682280441AADD8E6F1B92F3E8
+                               40CBE19B0A9CB3098B5A7AF51773CFBC
+                               DF122F22B394D692EC2244944070823D
+        stream[65536..65599] = 203C53232FFEBE24C515CA25B8F589E8
+                               38FA0819A0017EFEF8272591EE9CA486
+                               2F880CC20AB2449C8B498453C9ED6394
+                               77833711749026EFC66F5F71AC7C1455
+      stream[131008..131071] = 507217EF60F37D559DA24EF7E97807AA
+                               D0316EFCF89FADA2491421B6D15A67C5
+                               CF84C8AA0CCB2415A76AE0DD86873E94
+                               932C129B8409516A6C715C91E4E1CA29
+                  xor-digest = 5D636554ECD01741F3792C92B0ED98F9
+                               0DF86B92EC6B42E6CE749FDDB2C97F69
+                               83424AFD3524EEDEE9BF4E92EDB2DF21
+                               2D34606643047D6DCE635FA17CE9ADCA
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 
+               stream[0..63] = E9963A4E0BE0226E92E5095ECBCC5A45
+                               407ED0AFBDA90E4B7F8CFDA08D310F5E
+                               31BB717CCF0D3B5470D29D2EF570B079
+                               AA46D39752B790E7921ED3D1F56ECEC6
+        stream[65472..65535] = 796D52A2A77F7FD43513C0C2E9E16B26
+                               F2BC3349B0D5E82272A9DD820D3BB3A2
+                               26031E6EB5E8D98C5E323E6D0E2C98D6
+                               01B41E9B06FA6307941DD69C9CF02E43
+        stream[65536..65599] = 1AC463A90883DE4BA94DB89C72FF4459
+                               1AE9BE96CE66D4413B4DB59B5BC99F80
+                               8BE201C04BFC4DF91CF10476AF179823
+                               4BDF4774789831D46D426B2062065958
+      stream[131008..131071] = C04BDA495E1750FE67D0E1AF6A911E37
+                               9A386889F7B423154DA8293E960C0DB6
+                               FE284A786F7CA30EFAF7CDDD14F0EE80
+                               5C2B943B718899A6D7EB8A2513490562
+                  xor-digest = D21FFE07CF7DD7E50B746A51A46A8FD8
+                               4B84E618EFED1F751D4D001A9CE09EB1
+                               AE579D06FA56534F8E7A313B02CE31C7
+                               09338C8A9524A9D08CE0A17413F39FCC
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 
+               stream[0..63] = B771A1098E0E3950706FA93CCB08CB3A
+                               DA1C8112DB74402F35FCBDCF2297C5F8
+                               F4131618C9921E42D4761D6A0239B85C
+                               C3E0D5CF754C8A3A19ACE03B35DDDEA0
+        stream[65472..65535] = B5C6FC97D7D302B8DEEABFC28B301CB7
+                               AE7CB7792F330D5F9610EF40AB1CFC1F
+                               6C6BA90F4A7AC3275038B3FB04C16251
+                               437093C4A1522930EED27FAAE475F81A
+        stream[65536..65599] = 0A24C01E0EAF05FA288AAFE43B7041AB
+                               9BB23AEADFE18E3EF431303F9D04E42A
+                               5B74004247AB19F97C898A81F0F3ADB9
+                               E285D675395CAD38245B41B45E47E470
+      stream[131008..131071] = 1C5F977E496BF60A7D93EA2E5C293AB9
+                               8BE7CDF3C9662C32312B0AEEE28351A8
+                               18C18237BAA132C2978F29CBB886D3E4
+                               410C5151DD0421ADC124F6B033355696
+                  xor-digest = D773251DE167937E9B3ED8C4D52EAC61
+                               E92FCEB25CEA06034B75A7A4744403D2
+                               38598B844F33B4BB5115502E33F83EA6
+                               E2ACA79317A7F42F149C57BBDEFEE41C
+
+
+
+End of test vectors
+
+Primitive Name: MICKEY-128-v2
+=============================
+Profile: ___H3
+Key size: 128 bits
+IV size: 32 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                          IV = 00000000
+               stream[0..63] = B37BD3EEF2BD710D291DCF35D0084CC4
+                               288A7DA21804AACC2B1C86ED8BC36490
+                               9DB622B8CD084E6012E880B895B67F2D
+                               BDFC654ADB3D92614B786814B12327DC
+            stream[192..255] = D82B9ECF74A9B2BFE7C81A4F0965BBEA
+                               5EE47F791269C639ED7BF8D66A87FC60
+                               9CB8BD35CBE569244A76B3BDE4445B1A
+                               FB877CC803AAB497AC58D52AE07F7EC4
+            stream[256..319] = 36DBFB0129DCB1CF23C1F1FD91C4F926
+                               AED4418085AD4DAF436650192345289C
+                               E9C490977FE8126A6F253D2BA4ED0877
+                               A5F543081F0BA32A74AA7667C240B272
+            stream[448..511] = 67D6D696A86FA3253AA4855B0654E708
+                               24B36F817B55E0DF6C31959E8B0BBE92
+                               55558BDC99560AC221FEEE0D71981BB7
+                               9BB8244FEC818B1139537CADA4133893
+                  xor-digest = 42B136AECFE342C2D536C7019764DC7C
+                               F261227EB91659BD7615FAC82EEA6DDF
+                               BDDCDD5C25880EDACEB54DA1FC61F2C9
+                               6F529905EE7380BDEA3FD31E6EC2EA80
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                          IV = 00000000
+               stream[0..63] = 77474B5B3EED0B96BB3871A341ADF4C9
+                               E0E51AC301A5E4A45AAD7A3D50DBB427
+                               EE4CADC44EA1108CBAB646ADCECA2E6A
+                               D8718C92664DBCAFBD9E635A7A3071FF
+            stream[192..255] = AC26548A6113EF6845B37FCD74C839C9
+                               C2D70AC2794FE2C9BB9057D3E0EBF28E
+                               F7EBC91DDD82877AA3AA660A14E8BBED
+                               A2F592B1BA08E5237CF4ACA5076FD6BF
+            stream[256..319] = 3A9F9E1E0F708CD4C520B97B97C46D37
+                               35D09281F389E205D3FD0F1AD04697C3
+                               4C0DC0560B83ECA5DC7436E35D490B6B
+                               54F9EC7BE593DAE89AC80D9E5F0855D2
+            stream[448..511] = D9C86DF2B435FA6FCC77349D03194051
+                               19B7D1D443C6EE4BF7A64FB98D108A20
+                               3099619ADB5A959E933E44BA69B91BD6
+                               6A2C51FD7481B5AFCC60D48FEF3F98D0
+                  xor-digest = C5D7304A86C47E59122CCF21E05A5C6D
+                               E67F7037217EBD8958CEE31F6EC87AAA
+                               59FD7F1CB7BA948A309245E7EED1142E
+                               117AB6829E240BA0D8EBE702BAF8C22C
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                          IV = 00000000
+               stream[0..63] = 9961362D2F34706EE59650BE6149AF87
+                               FD76F9579E189965031C141F7372568D
+                               648C6BA6BD8D898FC23F1E654789934F
+                               8AE8DC49A2F4D0BDD37B44AC0C23F9E3
+            stream[192..255] = 97E556C6DDB199BEC3105CF1FF17FFA7
+                               C67901DEE63A74A9E745CE10E06F1271
+                               6F8FE6173B078ADC110786C4B94DCFFD
+                               9905A9875A7984755E2EEF6D69D8B663
+            stream[256..319] = B94B7DF8FEE1C6D9FE84903F8A567DE0
+                               47BDA2AF6A35853B9276C01528242A03
+                               E954C606C267F1B95C0482022AB63CE4
+                               40D96FE2971E39D382D041B02E4F5338
+            stream[448..511] = A837F1E12413542A5EA03B1F2CC68A25
+                               1661C0F14A3BD398F136DA001125474B
+                               B5AE47278615C057520884FA037910B7
+                               7B5E49A736F49856C4EEDEFD7A12F96F
+                  xor-digest = 05E7AE01F0655297178975A3C8E1A832
+                               8712067DB824786CB4748F88AE7A9A3A
+                               C2A249B07FCAE52F619177D4EFB2929A
+                               64F73039138D515A88DBBF0622125AB2
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                          IV = 00000000
+               stream[0..63] = 7A76FBEA5768835DEE64AB4DCB08CA79
+                               9DE00AEBE3C27CA8EE7E133B74E4436D
+                               5F3F87E06075F9A5EDF160BC683141BE
+                               74F2A57EB7F4CC633ADD70F2C996B5FC
+            stream[192..255] = FEEC323C3E070AAEF56549EE1CCD5289
+                               61644860CC620B9E76F2774670855485
+                               610E753F1EED8FD0DEC4B1B0B0FDF139
+                               6EDB28AD6920E7783593544163C85537
+            stream[256..319] = CD7C795C4CD5F44F5B9D99FEEE31DB3C
+                               7F3C8181B7559BD05B2B1A3065944F2C
+                               42D1D6475B0507FBCBFE1C368B362B3A
+                               3210985C932B56FED7C1915F655F4ED3
+            stream[448..511] = B19CAADC814BEDB6B3C90527473BDBDE
+                               83AD1793F6CDF1F3492FF50534EE9F28
+                               39D8CC53BFFA3C39F785760A28CAB247
+                               39BC57EE5145E93DEC939E952896E62C
+                  xor-digest = 7A46CF8C6B2BCA3AD673C514948B637C
+                               AF95BD5A6147FB2735A36775A5E28A7A
+                               6EE9504518DD974F38243227876389B0
+                               5915399182A96825DC7BCD42C7F1F913
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                          IV = 00000000
+               stream[0..63] = 6B454B9F9B02C1000F3841788149CFF4
+                               C61D803B4283ED3CAC2C067FBFA2EFBB
+                               3BB8ABF513397B7F13FED83632C4FA8F
+                               2C9D6C1AB34565D8B8D972D5E4B8A3FC
+            stream[192..255] = 292C1E41F6F842605E0EED555EDDE4A6
+                               F466C6F0D97BE86414A91FC56504EA3E
+                               1BD5D77CB5C07BEDDAF921A3763D32CB
+                               7EC926FFBBA55E00C2E1E27A660E2D4B
+            stream[256..319] = 64E921566E97C54BB1B3525225C433DA
+                               BF00CA8A23BAB46840E60D3871234619
+                               BA305BFEC14A7EB8D3BB8C137BCC8E9D
+                               7B6FB1B664CB249587B31A866316761C
+            stream[448..511] = 44B4182D0D61FB411EF8B7E2FB4A5B6F
+                               D031F1E9896488659F392A26366BAF43
+                               759BA41BBAE0187D52996ACD9146EC76
+                               576E7891643EF53B3A3438D109884731
+                  xor-digest = 6114900D85003B9C886F7E54FE2957BF
+                               1292C8AF8BD5C96B3C9BFA4E1A45F0A7
+                               5F78B41F7BB18095295EF30FDB84837D
+                               4EC13068B18429E8ED7EF57C70FC263D
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                          IV = 00000000
+               stream[0..63] = CB9E1551A0477F39C87B971E7FE474BA
+                               37A145D8CE9F291C1AC173151D2D886C
+                               A35F238E0ACC5DFC806A5358E6F3BDB6
+                               F5EFD930B30796011DBBC76DCB9BC5B8
+            stream[192..255] = 30FC1197EA27D127D76740D951D4884B
+                               CEB8784097CF570DC4C1F9D93596EE60
+                               F1EC85610E5AC78EAC3B4D5AC8D9F741
+                               5CF577181B04CC17FB0736E85B573FE8
+            stream[256..319] = D49FE5F974F758D25DE27B427800336F
+                               5E269C002BA01472B8CC2A67F4182098
+                               A6A554DE87A022668701D4A47938300B
+                               C267314DB350B9269F381E006521B2FA
+            stream[448..511] = 6BCEE8A34EE3F5C26F6561A10548ADAD
+                               B26D16519422D1DA7236D619601FCD29
+                               BCD1E85668A7A8D793B5AE7EE1059D10
+                               ECB9E4C1D35C0BED0A55F836B2FEE382
+                  xor-digest = 25E4637DD2A8635EF33990A4BB4ADDBB
+                               44C1C52F0646786845ADC838387A0695
+                               3E1641FF44BDC5EA31308D49A29E6FF8
+                               EC401DD9EA743F90CDDC27D1AA3183AB
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                          IV = 00000000
+               stream[0..63] = 8B593BE52D1B2458B6998FD63351022E
+                               5698E54CF2963D99CB2C956443D6AB3A
+                               2684C0917B9A049BF9C371892BBC0A32
+                               E4840CEF76B8E45B213B31DC7F081D66
+            stream[192..255] = 595A1F32B48116B9780A13E19B571AAB
+                               69CF25F816EE15BA2040C1AD5F6EB728
+                               FF0DDEF7BD063297908369AF3AEDE2F7
+                               FAD3931492FE456EF5CAD33DD27A9EC7
+            stream[256..319] = 843743FC3EFA4ABB3E5CCBA467FBA529
+                               3D85614D2AAA80F859BA430A727440AC
+                               24B089572AA3499C88E9F60A6D6E609D
+                               2E9DC60A94A76BED415ADECBAAF4DA34
+            stream[448..511] = 16F6812F22F120613DAD6E69D1A8BDB7
+                               3BCCAA7DB6CE47ABA01B337FECAB14ED
+                               BDE533F3A8DA1E47BF2CE76E00F7AF61
+                               6D6542B15142E32F2D6B187E3B0BCF8E
+                  xor-digest = 67688DC0BF9DD2B798B4A1E49D9DDC1A
+                               CAEA7397695BFE770A7145D894D0FF4F
+                               84A95B1A468F4F5E0B53699379908710
+                               B1EE76F0459D0F583F5E62890A7B937C
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                          IV = 00000000
+               stream[0..63] = 2E8B4F696962F872FA1386DC3D64BA13
+                               27A6B30E0E0106DD9672FD60383A7397
+                               003F1895A2A2FC9F716BC74A4E90569F
+                               6AF611DA2FAA0B93D4A7FF792582F03E
+            stream[192..255] = 0E377E1BBF33787D59D0522A98939823
+                               7D2675B65EE5165B705E51FAD8705AB5
+                               910D04EEA93A2872F6783AF93236E5E9
+                               6E4FB4BA38677E737B1263F34B1ACD8A
+            stream[256..319] = A0C1DC5A94E1AACC7805C08C22DCAE97
+                               926DDB4F169C87DC20D45D35E345F21A
+                               C355E46D60B41361859A944899ECF742
+                               95940DF610170B8140A0A1117C3EB7A7
+            stream[448..511] = EFDAFEC3177FAE03641F294399CD256C
+                               F9685CCA27F45112BACFAD6AB40A0B5D
+                               B8EA6CA64FCAD47DC233135368C64479
+                               FF0D2D23A536942FDC4F541F5CF8F296
+                  xor-digest = 925BF0457EE4191B9A8C27194AFB689F
+                               01F7F0A9B42CF9512A7EBCBFF21EF34A
+                               2F44000C1DDD3B1956080207BE2A2EB0
+                               B2B18DDC2978C5AF3ACEF584E737B57B
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                          IV = 00000000
+               stream[0..63] = 06E6AF1065771C8919ACAF03EE1C3EB4
+                               C704E9BE5B4D1695A13FCC900AC524D5
+                               CD38855206B525828021F62A49CCC3D5
+                               A7BD6EE44E20B4F9CC586E910F4B80F0
+            stream[192..255] = 85BD6638E0D48ACF20642DCBFCEFCCC2
+                               FF9EB242CA7A8E39145B4D6DCFE23C9F
+                               390D95B8948FD6828286CA36B540E258
+                               A0578F7F97FC7BE3B54515620ADC402C
+            stream[256..319] = A46827C42CA28A9D4A7C008FE21FBC15
+                               A0599DFF3933F5F854365A7C769A9AEB
+                               A529479C40C955AE1A1D4FCADB12CD0C
+                               7EFDFAD2329763EC346F9DCE2491F300
+            stream[448..511] = DB69A8B6DEB972FB2638D4ED1A0D8153
+                               0449CC44992211AD8AA34DF7794BBE60
+                               C34A72678A079AD74AFE8B3ECD986677
+                               905399C913AC1F40D91E2ECCC9FE63E6
+                  xor-digest = 45AFE44C48005DA3D85F1BCB3C69029D
+                               CD16BB5C6436C39A6789C2547F924DD2
+                               83C61132C15B2B6D44FFC0A0506AA5D8
+                               FA2F6352F278FB69FD82FCB6865D43E6
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                          IV = 00000000
+               stream[0..63] = 82B1F016A8989F5A1C6157D3D7AB68BE
+                               2342D7CA63393502A60E4943F1F82A8D
+                               826B6EA1D45366064A62CAD1A3224576
+                               546D2BB1EFA643434771663DEC372559
+            stream[192..255] = 3E2940F411E18E82E88CFCF069EB4442
+                               1F831C9A09BF8C9C08628836B8A22EC4
+                               1C6BA515AE7E79D6284877BDCAD4FDB0
+                               BBA2527BB19E6F77016A9E9E76126508
+            stream[256..319] = 9398B2C6735CCA20511F9BEDC39DE9E6
+                               14016ED28B6110A3B31AD29A40C07360
+                               B7E41DE96E42C36D082E5DAA84978BB5
+                               D2D8139508CC80249A6064145AEE6165
+            stream[448..511] = 15615CB066008434FA25F920786C8A26
+                               59AED5F638184ECC678F049876D1E486
+                               632C84DD5E103352A0513BA1DD0467EF
+                               6837569A5D5A712A1F4F99536EC4B093
+                  xor-digest = 51457832D842EC4120A9B0D8CBD66444
+                               D51D9DF6E939C767EE3D0DC2875C64A3
+                               5B0DC3DB0F2D3CE71383E90AB014267B
+                               738F744054F97D5A160E8E90C85A0407
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                          IV = 00000000
+               stream[0..63] = 70A07A3BBB07F5B3ACB6CC95712D80FB
+                               4F8FA5F9E59C9DAE464AB7CCC175A63A
+                               7B4CD052B196017498217CCC083D5218
+                               17081932C99E8BEC59A260BEAF124D19
+            stream[192..255] = D730B7CEBC22298EF218D39C12E5E44F
+                               9887A925DBACE8B430636A60DB60692C
+                               09AB06D6F0BFF22A55E2113C77911522
+                               6B40CB58DBE2634E5795AB2F4E3C317D
+            stream[256..319] = 55657019C5E66A60571B6F5D1F05801F
+                               9CB746ECC82F670C409CBFBD2B060BC3
+                               2AEDB97D2E3ECE902344A90117357BAC
+                               808E76881BB500542874437AA9AA5354
+            stream[448..511] = A3D1F153F3992077E47FAD3BE1E4C04D
+                               52DB934595660508F68F4DB2051DCC8A
+                               92FE012633AD30157A2FC66DD5F858EA
+                               9666293A02CFF12621CCCE42F08E3EF8
+                  xor-digest = BF5B0FE53044997E756565C56FDA97FE
+                               4860C807FAC5CB4644BCC91B61813FF1
+                               443F992DD19D5839B762DE1AF8038BD2
+                               B433144FA7398748A6634207EB6CD3ED
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                          IV = 00000000
+               stream[0..63] = 0C71C31007E963D54E21072EE47CE28E
+                               097D180E2AA2A29C1F657374FA6505B0
+                               83FD920C10B42B549A483B17DE89EE22
+                               A98B4A439252C04802F4AC22F7F2F6BC
+            stream[192..255] = 1F3D4FB3C475120BDA7D9DFFFC28A9CE
+                               080FA9067B3D03F4631347D75D898C0D
+                               E70F3A8A6C8C08838453B0ACC3B15ACF
+                               98DA93708C63BFD5ED10C7FD70F3EBCC
+            stream[256..319] = 718031983996C095058A895CEA31E2FB
+                               70867A86A66EB7997B41EC51FDF9C2DC
+                               DABEE8646A7C985E56F23682737BD887
+                               A3ECE72AC6BB3D355C0379BB8E20DF91
+            stream[448..511] = 5A72704A787732B18D6A839641ECFF15
+                               4122874BD1A11B1AF8F10C7F878726F1
+                               7F656AED942AF2CC9D29B078A4385F84
+                               6A45179ED90A9631C3701ECEFAC53D98
+                  xor-digest = 96D22823F290F1CE923AD0ED4480B131
+                               33BE63175D7913352F1E7987F1A26D1D
+                               5A5EE144840D83623A5D43B9871C6CA3
+                               B0EFA1168058FF2F74B48FD665BB83B2
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                          IV = 00000000
+               stream[0..63] = E4E976460C55414F1E89F8742E881587
+                               1465EA8AA1EF6BA701372F17FE4F0335
+                               E1AF444577071DBA28AAF400F5E76891
+                               2A4BA4EB2DF4ED6F11F93490BE9BE7F6
+            stream[192..255] = 94D0941B84887F2F1C2ED1444B73E117
+                               76414D1BF8B1B0EF1D76E0CA834888C7
+                               65D272793C9022C1A7860FD44A5840A9
+                               2802B37728B33C8D9BDC95C3C1D62BD8
+            stream[256..319] = 3BE85D051C08881B3BE3E04006FBE08A
+                               D0EE26DDDD75A9C241352E5163F305F5
+                               2F369A69CF84FC2F275F6742F0631236
+                               7B6B4904DBF75F7BB817E3F775E87C49
+            stream[448..511] = AD4C426E2887151FE34AA12C4466B055
+                               0A89539B67BFFE9C8FF1A758B49175DB
+                               97372EFE76905C95613BD6B6FCC9EA33
+                               B3EAB32F12972218A58D73955E5718CD
+                  xor-digest = 46A82F1FF4BF2CCBDACEC265E4B12E94
+                               5BF1556EEFA54993E06183322854E0A1
+                               EA3F18434793EBFBDEFD0DCB91132310
+                               CFB74F3D43434565FA2E5E7EF1AF3C05
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                          IV = 00000000
+               stream[0..63] = 10B6262DBA26E3F4396032DBD5E09657
+                               82628E661B9A8F5272C8FE4B75EE6EF2
+                               AA64C06079D3C88CF26306C664091415
+                               2FC0128C46731859C34D75D7F5C52F7C
+            stream[192..255] = B76740DA3AC51CDA29ECE99D60DD61C9
+                               4E127F4278DADECD220065301BD72420
+                               7D1545466B9B11664CAEBE961FE1FA8E
+                               069C74F4673EE59AED7A574C5D1BD818
+            stream[256..319] = 76F0AD92BE7E58684E8A807DBD472C26
+                               E73B3225BB3D1D1DD442EA0A116949D8
+                               CDE6157EB61DDB42C214C9AA1A1D2076
+                               9F8C89A881DCAF07D45D030C0F49EE2A
+            stream[448..511] = 3C0ACC23B04CCC0BB7B0BDFFD33ED575
+                               050C6B91D45BDED7EADEF7C5F4AEF2FC
+                               61CD8B194AA1E571FE3EB779BE61EE5D
+                               4E4CEDEA5BE18997A0231DB35E24645C
+                  xor-digest = 4BCDD5C9E89D8FB170BD42D36525B710
+                               F5E7A9643E2066C799AF288EACDBDC0F
+                               1CD86ABBAA0C2412DE282C88A110DB54
+                               9937A38C96C95A7526E918E15D614490
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                          IV = 00000000
+               stream[0..63] = 197D3A28A9AE53D2AB426B644752714C
+                               9708434B7EF4DE1578A222697CF858FB
+                               DAFE5E2ADE90CA8331A7A6A60CC47C02
+                               62D29F81A0A7F2DDA6043E24CD052A09
+            stream[192..255] = F3290E260CFC302C9C9749D513EED01A
+                               40B338875FA33D0ABEB70F4F098223A6
+                               B9EEF71C0451A2D2976969F54C3AD05E
+                               17F85E7BEE4806A042941C43479BB314
+            stream[256..319] = CED4A95D10D8DC0DA3F78E10AAE33245
+                               B5B6FDE471D674D784D73B0BA40EE6FD
+                               20B618C0C8F4C76CFD75533FC568B63C
+                               325D2CB0AC5E5E5D0512DD1C9C8DC136
+            stream[448..511] = 2FA8EE80DEA99ED5740F9C464369BE96
+                               EB97F149E2B07B785B5446FBDB3C89E7
+                               0C980BCAFD39BE1A38149BB178A19AC4
+                               971B26367607E4BF898C32304FBCD78C
+                  xor-digest = 81C612167368BA878BB066DBF5AB932B
+                               9DE756EF98369B9BAE3D74680328D123
+                               19E3CE5EFFD3DBCB1E38A1EF9A40D9AE
+                               7AA6B9D14475EF88F8A1C3B1846D7D09
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000
+               stream[0..63] = 03AD4E6962B2D4C3A1925FA4666C8566
+                               52B7F0638C5555578980818FD1100FA0
+                               59F92BFB8AAEF108E6529D33CB94066E
+                               974C81ED4AC505310F482B845A3F75F1
+            stream[192..255] = A38B67240CD0A1DE7466D0A2C87B29F1
+                               9434DC7847E778C0DE831C4927E5A4FB
+                               962F5F4D56425B5CEFBBCEA38553402B
+                               33FAA64B6FC497ED8185B6CB88F616F6
+            stream[256..319] = E78DDB6EF270373B549E5142F92CB7C5
+                               0282DAD75F57F251530AC561B255D433
+                               6CA8BA2BD9F8A66D9D9DB2718DF07660
+                               A7EBD136BCF884DA1F04AED80D31C595
+            stream[448..511] = 48E1347E9153336B40A20DDBD004F3DA
+                               4B8C52478DC56BCD3D74C6A438334D28
+                               5E10D7E7681FEBA86505E22B0420A884
+                               6146F3FC2A402A0511C37A24D9B45E54
+                  xor-digest = 9B75CF6925279A17A0034701F505CCDC
+                               886DF60A8A7990D29E9CA25B989D85BB
+                               DCF215F44FD349C855CA8EF332FEFC45
+                               5520219E7E1BCE6826129FFD588C984B
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                          IV = 00000000
+               stream[0..63] = 71AF9573D9170CF2739F9DA1264FD87B
+                               685DFCBA14DA98948B12F15C94A4F29A
+                               ABFD076D498C17AA96F64BE3E7CB3C4A
+                               7FB23AF1F6A26800F2E293257D905137
+            stream[192..255] = 298E5930FAC8995A1D30EFC3D00CCFCA
+                               2CA23769F91F9E60683E5F9F01836482
+                               5FC4E5AD700EE348CCD4395F30B02312
+                               BB8B423292811F59AC0D0A22458CF0A7
+            stream[256..319] = 696440DA1C5ACE0086A6412423BD6010
+                               C9795BC270468EBDB1C39F34380195A0
+                               E957DE32BD08DB2A700D23E2D058268C
+                               C588BF4745D93857FDB56A34FE7BBC2A
+            stream[448..511] = E2A56E1D99C2BE7FB2112764634C2051
+                               1B98D94E3156E714163757E04CFE75F0
+                               153F4BC888A2264C632E287B38E7A2BE
+                               89152096313716E69BE1BE056367D660
+                  xor-digest = 7C585E72859A1C68D3EA4D0A9598A8D5
+                               31A4CC474AB5A17AB6C5FCAB34140024
+                               816DF356F048FCA61185F996D3FE8A8D
+                               4E1BEDFA0CF762CD9CBAD72C53968B47
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                          IV = 00000000
+               stream[0..63] = 330C91DA9F41D351735B2132914CA322
+                               E06C9ABE78336B7663BD69BB66ADB321
+                               477220A4076C3FEE9F8731C49D10E1EF
+                               EE5C416F6D05C8328151F0EF529E004C
+            stream[192..255] = A041292340D1EA3668FF32BBA9498A3C
+                               EEF95DDB2480A409C2BAA5F18F8E4220
+                               3CDD5534DD564BB649F5141F488BDA4F
+                               F846B8295A8A4E153EB83106B0801890
+            stream[256..319] = 04CFDB38BCA26046136C0B159BED75FC
+                               5244106DA48861805BBBCD30AC4BF30B
+                               F78CE3F314CEAFD58D11DC2FA4C6C8C6
+                               03500739AF087DA490C71B7F95703E70
+            stream[448..511] = D7519DCC920CD805982009EA6055DB3D
+                               C33B43399FB2B76C8B239B350FBF10EC
+                               A4F0A2A7A10052F8CF4CC5D80FA74434
+                               D3B4025B34EC473E98FA56630B756AD0
+                  xor-digest = B9418BC95350B592854D9174C0257495
+                               081AD482C3BBD061B40412ACB38DF35B
+                               3505F3D41CACD206CB609C4D4E1D1C84
+                               DD32DC44B827F03DA0A866A762FA5148
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 00000000
+               stream[0..63] = B074FEFFBA7A1AF59BFFB5BC407A20F4
+                               3871BD9E09E89D331C2EED4B09A90413
+                               C826973229B20F039DC05608423BA635
+                               C7821C79D054CBF83C0E52981E50B823
+            stream[192..255] = 4E2D45344160BA8B1CEF3ACFB9E10D15
+                               B6690C269C82BEE9E6F5E4588876B2D0
+                               C2AE2588A35C3AFCAAC49D261F662D2D
+                               553A4B0E25805D3111A0F696EC4B02E7
+            stream[256..319] = 70214A5D6AD53BEE45BBEAC54FBC5505
+                               62243EE587CC5052DCB24BDE3D3C2456
+                               05AFED314F70BF6C7FADF09B553D13A7
+                               6479DF6288CFFA4D925DE2C78E6B5F93
+            stream[448..511] = 85C462852641C31B3A4DF975F7386AD1
+                               C575155EBEE39181A326B5C8DA5DC713
+                               B0BE1883C09FB1A80A3EF17C33BA93F4
+                               29CB140C28BFB54AF3594F34C259B7E5
+                  xor-digest = D0255FADA4ED82EE1C87F518425D3757
+                               5A32234AD19FA65B623A2B315D79A129
+                               7C1C4ABB9522D1104B371A4B2097CAC3
+                               D14D2EA4EBD86FCE7576D12F95474A01
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                          IV = 00000000
+               stream[0..63] = 73E62B5C736023C92F1423DBDA8EF789
+                               385F386F3028345DC00C1A1BD5C6793B
+                               E34606D2242C67F840180FF036F19EF7
+                               41E1A695AA493ECF9D92561C80EA4082
+            stream[192..255] = 43B1C3D424225C181216B359A7688151
+                               4787292F094DFA3AC03543FB744CE339
+                               8DF462991775FCBAAB44B8B3E81CF1C6
+                               48E1AE8DAACEA8653A64BEF9FC087D00
+            stream[256..319] = 34FD4B7A021068275FD7DF8704EED82A
+                               16338C8C18BE028081699734C5BDF50A
+                               345C6DB464325CEFCBCD6A2895CED528
+                               E3C9D8035BFAB9E4A7926445EA3CF17F
+            stream[448..511] = 9323B135FAAE2D7CD85EFA8EC6F3C1CD
+                               2C96D78BAA40673D1ABD18001CB4BA36
+                               264BC7EE2C8C8CD487FA3D7516A9DCB7
+                               67F7B2882F8394DC5963B481A12B8909
+                  xor-digest = 3687ECAFBA14BF1DF3801F8BE22D71CF
+                               590537BADF0DBD897D2DA4AC7726306F
+                               0B02B09C44B99681DF45E3E91C9FBFF1
+                               B650C8AD62A0A751CF20BC3553CC6A2D
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 00000000
+               stream[0..63] = 7133D6B04A4F38C4ED6E7D203A4C3271
+                               67026830D38B02C3F00011669930BF7B
+                               F658FAB2B939647B57D9C7C458908A9B
+                               5A20615C4D8F4755C154BED7E4188229
+            stream[192..255] = FB8211B17540DBC40BCADD223BA66CC5
+                               262CB8EB7FD1C3F5100EDFEAA5AAD5B4
+                               EAED27BBF8DCB84C6540B83EF79F2FEE
+                               BC8409E306A4D021344469C97B2F7AD0
+            stream[256..319] = 9A58580D016E46B8976F7892EDE93E2E
+                               F9D7C64112BF9C3F930DFDB44C25744C
+                               4D9FC3AC8BA8374B391107558420103E
+                               60B55CD3B38908334AFB055547434FC6
+            stream[448..511] = 05F84C71D005BE15D85425627CB3B30F
+                               F344250A3454E9B72523961564F76CBD
+                               4558E9159AFDC0763DB0A8E5CFA3BD32
+                               38AE0F74CCB6905A32771955077A3D86
+                  xor-digest = 3A69DF46CBBB996DB1E4BB1D283B9653
+                               B3B7794B5E765478660AA9A83153D8AA
+                               D6C0E3AE23D27431F956DEE8B596C78F
+                               A1A05E611EB0919D8944C81EA3CFA23D
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                          IV = 00000000
+               stream[0..63] = 8909BC9305DEBEB45591DB9457770C52
+                               D6215523C4E1641FA612E43D460993CD
+                               6E375690919F8B79D52A9F4FDD2E1945
+                               CDE03A4D765DC03CBB4388EF099EC50A
+            stream[192..255] = B566C37BE85F6F6B71076BC60645EBD2
+                               9D99B25FCB78B20CBB8AD9863FD4F6BF
+                               5CDFB625C1D08997A2C38A1DA11D9A06
+                               57622B2C49719EC2078284B251DCFC7F
+            stream[256..319] = CAC1C10EC4AC58692CFD5C3B438E3093
+                               369DFA6ADC165C414791257B5F151CEA
+                               924BBE66D087EFD720F364466527FB6B
+                               1D01D330493F39AF9F69330DF28085E8
+            stream[448..511] = 0057D7C09D12936C3BF04889613E85B7
+                               E829F97682E8ADCCFC162D53602A79AA
+                               2351C5525547DF974D51BE9E9BE59CAD
+                               65F0615C15EA4ACE0B08D0B2E00AB992
+                  xor-digest = 08E134D0F5B191A7A186CDD54323D44F
+                               8C71F731D4C142F13332BAC04A6F79B2
+                               B0E1F883DFC8082A6AD0D42AAB1F26BD
+                               417D6C6BA7A0F7AF1FF658D27177F177
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 00000000
+               stream[0..63] = 761F344591B872ADF7CA537818A0E96C
+                               5C5103DA6128FBDF078518B436171792
+                               93C0FD7097D4713ABF480A3CEEAEA2ED
+                               31CDC344B4701CA307B80A72D22B6907
+            stream[192..255] = 80E603950C4C38A094FFCE92DBDB55AA
+                               87C4F1A2A9C0CC6295E56AEBAE202AF6
+                               F32BE66F09D8C22D74A4481CFECD5C7C
+                               AC5ED3249E25ED41DF9FF1D7A7198690
+            stream[256..319] = 91D0285FB29C6D216707B5C6AA5D6A50
+                               39830F6BECD17166AABA998141D41551
+                               17C3082E0201083F0800A6E973B9153F
+                               6F81857831733376EB4C9F8742C02226
+            stream[448..511] = 675162259ACE7B31C743658CDD7CE8C4
+                               195860734B1EDADE046C54B42D22ADB3
+                               3DB97EAEC7F1CF9398E6594DDCD215D7
+                               76935CA3F0D0E985BE6766A4B24D1BEC
+                  xor-digest = 30394DC0D2BA179764C6FC475DCBFDB1
+                               240E46101D17EE9165C42F7A66C26EB3
+                               63C79A4DF539D32B412E31993794E434
+                               BC141A65F860705245A9AE54AC87F079
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                          IV = 00000000
+               stream[0..63] = 2161A2C6C023093E35E5C83FE32E0285
+                               50E5ED5874C88231F2022933BB886BD1
+                               8A42D57F89C23585B7A44E4575299AD6
+                               8E96FC1A31268A2909F558E1CD1708F4
+            stream[192..255] = AAF43EDE282161C52695EE291C4844E7
+                               8AB3C129B54BE3D4C363508CE459793B
+                               C26A5D89BA3A0D4EACD3DE0CFA4BA89E
+                               4569ABBD9E4C76D6B0B61C12999BADAF
+            stream[256..319] = 09521CD50C8AAA7DFF375779B1A8D3D5
+                               DF59CF48D5C431D31E123ACF14071688
+                               02762C7CB8B724D15D2D918DF8164F71
+                               FE6488B7D6C0D6A111F016A4950818C7
+            stream[448..511] = FD14AAA721F249B13750485FBFE325B9
+                               82E28FA3DAC4A7FD2FD922E45B09A3AB
+                               E30BFC57A8D76616FD291834A4A886E0
+                               C359AF14B96820BA90F3B3E92FC7DC1F
+                  xor-digest = DFEE61E2D0D17F52B468FE2A06768118
+                               30021758E0999296E17DB73C087D70DE
+                               7DB511B8E1C23D08126AB9CA14857D58
+                               24B84BB81867E48477528A42BBB7EF15
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                          IV = 00000000
+               stream[0..63] = 5C122E94C96EE13FC589C7047F5A7F19
+                               F7E48D67EF37262959981E9E1E6DEDB2
+                               A118D3270025DBA2567F686682FF9F59
+                               D3E3552DBD885343BE5943BA05AED13D
+            stream[192..255] = E3ADFC246DB10878EFD72903FCCF99CA
+                               FB74F660470E3AB9645FD0E713FCDC1E
+                               B9D156EE3D1A7E761309D0DAD86A97F9
+                               6A41D402954CEC5F98F74C25FBBD6102
+            stream[256..319] = 20ED6271BD550771FC36200322A247EF
+                               710910B2FD8C45205646C4B3AB2BBA16
+                               1108643FC96767FF4125E353A27D45C0
+                               5B3D05435F6189C56CDC50D3F0395982
+            stream[448..511] = F1AAD1F1726C0646C85B578EED72E52D
+                               507929408C47EBE4A0F1D5520B460EF0
+                               1F810CB02197DA525EEEAFA2E84ABF48
+                               DCCB3F6B2F834A820912A1710CA2768B
+                  xor-digest = B4D3FCC380D2CF94C41A818FD8D01C31
+                               CA2B4A2B5127289FDF92BC45143E5D49
+                               AB63E2EFA9B0BA6B947560A1ACFA78D9
+                               00AB872FC9D21BC6A5B8423583861C63
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 00000000
+               stream[0..63] = 3C253078AD7D6C9C6FE16636FA2781F8
+                               98F8E213DB1EA28F864EE6EE73BB0E9B
+                               4739AF9BAC3F66573CF93FEA457A00E9
+                               5B3C5F6CAF56C7968315AB30A11F33BD
+            stream[192..255] = A538CFEDA8B89A89B0F6B2E9FDF00DA2
+                               F31A5B5D35BB6EAB2DBBB682A49FED29
+                               3A1630BCF62EAF386788966E4D5B5B49
+                               1FE7062DAA55ABDD75A52CE753CEE8F4
+            stream[256..319] = B965BB204E8F99B9B370BCDB34362028
+                               6FCEAA58E51F3D001C2653224F11F16D
+                               B4C5C91E962EB0AE154B4BABC57224F5
+                               6FC4D6975FDDB847BFBB6E0CB0B8A238
+            stream[448..511] = 3E628A1AD9283E4148AB61D6C9637E79
+                               0AFA8856038EF6EEF182503859020528
+                               EA02F6A7887A0F5E0DA42B9C7B2ED677
+                               900C87340B1519903204C19C50D0942E
+                  xor-digest = D27BA9B016C3E1A53491AE8B903C8B8D
+                               AC2D1021EDC4A4C34BA67271B0BB36F8
+                               401D16045FADE1F3EAF1958F27AAFE01
+                               7CBEC385D5C04245123CC3ACF8DE6B3B
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                          IV = 00000000
+               stream[0..63] = 76BECC20172CD2A001654648E13CDB84
+                               5244FCFF20A2F2110DE2AD74FD22BE1A
+                               B5B469A878A8A4510976FE81AA5D888A
+                               1BF7FCB450095758E2DEF696B979AC2A
+            stream[192..255] = B37DC45C4F2661E46654470FB0D38350
+                               9B5D9591E0B4B8D0715D8A47533E9456
+                               F8F8C2631C390E5CF0357BD768B33F96
+                               AC1C8E3AB13439AC11E0D83391C16147
+            stream[256..319] = 53E0328FCD518293BF9CCDA910E07831
+                               4382E65D59B24733479B841BD2538B06
+                               25179D22AFB65E02F4CEF61E52EAA8B4
+                               C12D89639BC4C2D0AC993B22C75DBB3F
+            stream[448..511] = BEF57F1BC13E7C8B156B91C5B7688668
+                               64DC4E437620946B5A2B97F5205C3A92
+                               AB28CB926F00CBD56D19849D472646B7
+                               8A7FDCAC37B1DC9780C5E924C0C66C54
+                  xor-digest = 68E15019C443F81E0064ABDC76E442E9
+                               F36BEE832882E01DE983EE9BAC136B1E
+                               C92049A59335595EA8575B4FEA25D35F
+                               64A6CFBCE16C9CC7AB1F4E4F831B6905
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 00000000
+               stream[0..63] = 69598CAAF8F3F227C2FD175AC958BBA3
+                               C91EBA70CC52FADA577AFFB2F5CB0DDB
+                               091AFC49FC03C968B0FECE43C7C542D6
+                               BFBE6E26069E28E702BC2BDA89FEF596
+            stream[192..255] = 78F1E5E33571AF9131FCE47965A601F5
+                               00195121769E3EE0A200C71052354FFC
+                               F8FABFDB3F3BA9A8C0B914AEA4A804F5
+                               CB0BB99136AD8FF16CEA3778FD94D998
+            stream[256..319] = 3022B71FB3A633D7AEC22190AA42A1D0
+                               21CB1263EAB7009B141B87751B0B9257
+                               0758DE697A8D417E27CC744422B2ADAE
+                               B743EBD9A93EAAF46479A50B45B39034
+            stream[448..511] = 66AF3504AE793C5F623304E597FFF62A
+                               023B79AB1BF70762A43E28D45B8D3EA8
+                               620F11F9798B1CBFEF670E1264DD9C51
+                               BD9D6684F9DD961D232E195B02E7D4A2
+                  xor-digest = 8EC190E7FAEC46E26CE8BFE2FFD6E0DF
+                               F32964D66834317BFBD68BEDA224F17B
+                               C677CAD6D81DCF8CDCDB58509D32D77A
+                               3ABA58C9759711C05B034B6B970CD7C1
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                          IV = 00000000
+               stream[0..63] = 3E1C0A2B4EE217DED97C5DAD2DD835F5
+                               4730930B320438C1A126348528D857FD
+                               A4016DC92A2646111C08B80C43581C67
+                               281CC01F47E9577B6FB3254991E07124
+            stream[192..255] = 44DA8C61CAFC7EE7222304DFE6F8FBF9
+                               215A3D3EAF7A678C76F8D66DA7357EB1
+                               5CCA5CF0C6FBC6BFCE2601CBB9A6A2B4
+                               8C91F53D966EC6BB9522AC910E1AE185
+            stream[256..319] = 9B0EEE67AFCA79E391653D91BBC21C45
+                               D4E091DC1B90C77482572723B22954FB
+                               71EEFF8BE3ACEAF6ACC84C44CE6F5B65
+                               ED45B0035B4D0047801CAEFAEFE257F6
+            stream[448..511] = B32152FEBD0ED7A6A56639F20C97013D
+                               55380ECE3A40B2347FC806F7ED36012D
+                               DF6198755D124C4BD60B2709E2F64A9E
+                               DA5647DF8C2A53A22DB3226CE6FF3B57
+                  xor-digest = 7AA67D4EDC1D54F46D909AEE20A93A22
+                               3BF2DA4AF1BE62563EF031EB88B32CC2
+                               8BF4827AFB0544C8E70F7CEC00E30F54
+                               F5D8FE12DFBDD9A4ACE1D41C4588BA8F
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 00000000
+               stream[0..63] = 032E6D53DBC65816B197DCA5012D7029
+                               1FF9F74BC37BA70D649C161E9B5B2CBB
+                               2D479D5736F5D3427CE885BCB213DE8A
+                               9E954DB0C5C60BED64BF8FA61B887972
+            stream[192..255] = 908C149C617EEE237008D248BFDA47E7
+                               1B57BCEFA89A2756FEF25037FB6CE995
+                               EDD9A50BB69F2C2AD24BBD0C594F43E5
+                               D2064BD0A923EB971A24F0069385EFEA
+            stream[256..319] = DBE0C3688448508AFFBBF2F32DD3DE3D
+                               5096549CAA6A5454287FEDBE9E0C8E9D
+                               218BB6CE78EA923031704338AAE90984
+                               CB2BABAE690A4554FB1597705C3DE642
+            stream[448..511] = 0A2DD5D3ECBEE9483DFD1F79F721B88C
+                               FAE92BAEC51F57E163A731AFC0D42EC8
+                               33B1D34FDC56F9651D2AAA735DAB232E
+                               9EE4ECA1F782B28DFBE884B72EFDD467
+                  xor-digest = 98D31364157256768420D28DEE0102CE
+                               69E2096673D51C4070D4AFEECEEBB61B
+                               E3DEBDEC4DD66C65628651998D25DAD7
+                               9C7754E1A2866413E35756DE90DFB6B8
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                          IV = 00000000
+               stream[0..63] = 9ABAAE128AEEE150C7F0FC5EFB3403D5
+                               854F09E407495E6F082822C71A6BD7DD
+                               D91E9CF0DBCA219105CF38209DC9C938
+                               EFAD92F994A918F0D9AC3E589416A4FA
+            stream[192..255] = 09D283E655C886545C2A6E831A7E72E5
+                               EB5B8266B2007B07E93C28285569974E
+                               1EAD9E835A320A42A2054287823B17E5
+                               4C6D919228E0B82F712C9D279D63F869
+            stream[256..319] = C72549CFBF5096C3A1A6C263196D510C
+                               8E1A824C90936EEF460967482FD9B808
+                               463871D709EF3DC097AC21B2A18853CB
+                               975924BE9C27252AB8109FA5A8164CC8
+            stream[448..511] = A6CBCCA10161FC5C0C913DDC454BA7E6
+                               F79FF47A8C9156190E5D0136805D46B0
+                               1B03B5DF8C026C30133EF19D3A690DF0
+                               D969CF5138CF20CAB9A79CEDA6E9813C
+                  xor-digest = 02B890BC291C1C53CA1CEC33A6D7D4FD
+                               ED01CFBA0CFB2009D8D2FCBA35D1FDE7
+                               487B7594F7703F2066876BDD4C6240A7
+                               AD7C312F717BC9B701445B9302690F45
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                          IV = 00000000
+               stream[0..63] = E2857E1751330106A8E1E8116C35B081
+                               630D115A920B2A96351384A1E4BF316B
+                               3994E48E2DFC33D1944028E08F8EF8D8
+                               0E30EA8B834856E7E458041FD576B605
+            stream[192..255] = 1B0F9666E4B202E286EFCA7F14EE6D4C
+                               9FA41150E921F759CC65E85D968C5273
+                               1F8E5C6228062DC2267481BA099D4E5F
+                               004389CFD072DC73A939F514E14B6C37
+            stream[256..319] = F7F3027390002A55A1C53E8DEC7D57A0
+                               127F41054F7D8DA1A227F2EECA251C02
+                               ADEDEEB344B07FEAF8B70863172EC5A6
+                               0D73E6082F9F8B13796C52739957140A
+            stream[448..511] = B516201817CC7BCA653DC17FD1923B78
+                               17DA3C0DCEF16E6417D2A59496FA9B6B
+                               C86F4E2C59E2AD73B7C6F32482A601D8
+                               DE2D691FB1DC139380ADDAB0D0438693
+                  xor-digest = 1D37589CBF9E7E45C202AC82B491DE97
+                               84B48A093D12BF8BC1F1F83BB62C573F
+                               163E2FAE2EF0CBE059AFD6D88F8921DA
+                               76A1C56A8FD4D317C64BCC18E508B0B8
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                          IV = 00000000
+               stream[0..63] = C296CFDF1CC99434464330E5D97A7DED
+                               53A30036938E67D867D1D59148920627
+                               5F8CC0E79F00383E155FB8559427155D
+                               6378D1F6FF08557344F45EDF853F8F1F
+            stream[192..255] = 4268FF91D5465174AD2C74FDF8CB4BB2
+                               789994B5B7E22321E250EE5D8BB252F3
+                               2A208F4382C49924A1595892CC92D167
+                               E82055798BE63A30660E6198AC87CB60
+            stream[256..319] = 9E120DFAEE5723DA274F9AAAD9BF2C93
+                               7C7FD2B3C72B08129D22E4027E17B2B4
+                               73872DFA5F6D7AE40C6F08B5513FA5B4
+                               4619CA80A96C860D577B4471AB835ECB
+            stream[448..511] = 8E11DEF886955C51DE5EF5476DAA6E91
+                               F97F01AAD887DAC3C1D256997D1050EC
+                               0FB7E34412AEE73BDDD671994878979F
+                               C12EB25439A5C48894DE19F83F6121D0
+                  xor-digest = 146A9F4D749881D3BB5BA39615D55528
+                               C4AE0FE8E7557E127CA6504FBE960AFD
+                               81D5CEADABB14B13633241D908271F83
+                               B0F315F0D3C2A68798E99B1741A762D1
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 00000000
+               stream[0..63] = 0E647E11171185763893DE303114AEDD
+                               73EF2434E07366AAB400E6E274A13071
+                               406C2AE959FD2623C24F784A84615F65
+                               5566AC96FBFA5DC7C37DF84DEABA0B76
+            stream[192..255] = 2E412F2DE9745FB8D1D728042A5DE0F8
+                               ED6CFDDB0FD648AE16E7FDECAA10ACD4
+                               05943C6C54FDD2F4759A32BEE6172A16
+                               25E8F81F241D772DC9DD5BC4DBB1BD05
+            stream[256..319] = 59110F72E4C2AB3A1F724070DE4CC8CF
+                               64EB0B613A57088F21F1412DF71E27F9
+                               FCEE75F33DCFC1FDB6C75F6B75AB3B43
+                               EB0EE1DDBDECE320918F859ADEB28E12
+            stream[448..511] = 46CEEBB68D4B63FA03DADB7F5E3DF8DF
+                               F1D27F7017DFCD5E8EA4C3EDB1736B63
+                               000629D886384487CD63B17AC52E042D
+                               97E89AAEC33429E255785D7385757AC6
+                  xor-digest = 32611B44C30886D9A1B1EE1102248AD5
+                               AB69588C613B62F0D5A7EC90E13DA5EE
+                               B488020E0BC388FAB0BEB27CA0AE9819
+                               73A03AA3A32DB4711C5548BDE0E1CB85
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                          IV = 00000000
+               stream[0..63] = BEA9600DF5410BC3B661731B859DF849
+                               E3BF746EDB15A9B72042A880728BAAA7
+                               0E00F5146E3296AD73982185F39F99D8
+                               8112493CF0C94523D44E11279742075A
+            stream[192..255] = D349A02115143BAC156CF530CBD84316
+                               C3BCAEC40C166ABED192284553E5794F
+                               62407A1C4822B358C33ADF9DA194B392
+                               A3E43799ADC973143C311C1BA3AA447D
+            stream[256..319] = 1D366457F22A12BFB2E016B97E07CD0D
+                               77F8891E88EDFBF9A5EB90F3683C9054
+                               384442EF5C846DA56A84D66F650A38C3
+                               165CA81637B8FF54DDF7916326E27D56
+            stream[448..511] = 0561FCC883738EB25893FDD6F74CD81E
+                               550622F4EECD176A9144F927B6FFA4B0
+                               C6CFAA1C55CB271E16652CDE74D7BC50
+                               4092EE24C3C5C00CC27FF911F1A90E9E
+                  xor-digest = FD8216A95AA144BAA06100AF1FB24C50
+                               F59D7F8FA5D333F25B3C99E2BA6D0572
+                               EEE2E15F95884B29EAF8F980F4C900BF
+                               868916506884CA9C821467309883E787
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 00000000
+               stream[0..63] = BC035029B7E9D9B54899369F6C5A9113
+                               69AE0C1471B1FB8B6DA7C2C6D2A69F85
+                               53F812EFCFCA7BF620ED73140FF4EC99
+                               D54ACB275F318FF84AC5AD7F75D8DCAC
+            stream[192..255] = 92163A850B0A0FEF01320B5C9D75F4BF
+                               61CD1FE8B93AA4BD442A5F81B5F5E6F9
+                               A03CD598ECBDB62F2F3A693537DA3085
+                               AB4AF593E5C676CCF4BAAA27D4599ED0
+            stream[256..319] = AE695F898636DC07ABCB37658F6E5E70
+                               9BD0E08E79B1A94FCE0D6145B58C745D
+                               D5C5544645D15ECF1D4CA06BDBFE8A7D
+                               FA578FA97FCB9FC7AD9D2FBD8E61220D
+            stream[448..511] = 36C128AB4A37CB8C4ED1FF49EA6EC7FD
+                               57C0125DD660DB6B3F831111E0D4D408
+                               3F77DE580741F4EEEEEC7588F9C97049
+                               B99CEE458915C221F4D398BD93F7214C
+                  xor-digest = 095637FC71627CEE8802BBAD65108880
+                               560F6FD45AE7D32CCB6A2913B12A738B
+                               42BC25BB4823B36B98DBC956DAD5392A
+                               88C7A4050DB6FE6197CE8C08C6EB0FC9
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 00000000
+               stream[0..63] = 340F6FEB83B96DFA37343C233E05213C
+                               9780F81D508D1C239B98B23087CBB340
+                               821F9650A1F428A0F7E9760D7B8B8387
+                               F055AF126A8197B518A5EDD89861F361
+            stream[192..255] = 8CE80B847FBB4490E59369C8C7856D34
+                               D3FFCD6DB688265C0C20326C86E8D914
+                               6520CDE8EA3C3F02A7646E39EADE6F28
+                               305F81546F078F6C1D3CFFDD4E04BE10
+            stream[256..319] = 8F899D2EB430EA6C05A25697F9D2CEA8
+                               6C765108EB7314C8BE9DBC0D72A74BFA
+                               E7A0AF0C25D1CA80351E4A9101466092
+                               2ED9F03D71354386EC48AFA0A043BBED
+            stream[448..511] = F03CA05080113446D10B3F6CA1349D65
+                               FE445F103190D15345F9BABC72F3C458
+                               97CA97D2E272F2CE821E65EC0339262F
+                               FD0A6835FBDA8D0DBA5CFF81CF4F07F2
+                  xor-digest = 57F886C18D49C31FF1EC8331BCC399E2
+                               B8CEDCA068476AF964FB99DFBD742A64
+                               626D4E6E47E75A4E2CD63FEBE23974FB
+                               967F3879740849F19121F3D53ECA94E6
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 00000000
+               stream[0..63] = 834E8BF798344A4380F2EBA4ADF25D87
+                               49EA4996B874643D11956E73508A7962
+                               9DB0368F268EAE54B2F76EBBA23790FC
+                               0C02C99B80120CAD21EAC638541CD82C
+            stream[192..255] = 94CB9B71327CE571A8837C21CCC0AEF4
+                               E418A958FE534D0C5E37B078C95009A7
+                               CA53CD31D7641013D4B6DF3FE437689F
+                               F446B2B7C1D735E8C72FDBEDD52F4C90
+            stream[256..319] = 16B81E532A1EB2C0B40B9C85587A3583
+                               57E56065EE93A06BE50704A4987261D6
+                               E7AAE8412FCA4BA8E597EAEB42A5062C
+                               59957CF18DDF23E11EB1F1E3276C09CC
+            stream[448..511] = BF651FDA61FE24A18041A91D660E7F12
+                               13EA9004DC17F9288516376852C1498A
+                               95C87E5B63066FF5B1B2F9F4DFFE4FFB
+                               C928849D72CD21BA2FE2A7309EAB6EAE
+                  xor-digest = 6D14B773E3051891BF6EF64E3D6F8CFF
+                               72B8F282FCD492C8AFE5B8FE22A735A1
+                               6D2C3A4793A28C2D7669AA1C553CF776
+                               79859C861CC9A4CBEEFD962E305B2E27
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 00000000
+               stream[0..63] = 9704EAB4EE00F66BED8B97563ADB3EB0
+                               E5E22DE44CD28791DC54A21B8D0BFE73
+                               F5B02C12B127EC315BDC886D36B52007
+                               884DAEA8542254CCFDCDC423060289F1
+            stream[192..255] = ABC1AF4B882EF30D7861DA739B076402
+                               944C60AFD4679C01D27FF35F41527DE9
+                               CE521D34C97102AF7ACB2DB50971507D
+                               F3B792077A84558F29079367956CED76
+            stream[256..319] = AD9B315D9C815ABFCBDE6A1314FFCDC2
+                               F09C980314F143BE3AEAED992110A0E9
+                               C837F6D334654D3DB208B32DDC68FC39
+                               A5C64D284183D889BF2493B00F26BB75
+            stream[448..511] = 12E7830CAAFD55C58A6588EAA8F3202A
+                               65FE5D1EDE662036DDAA9947B78F7913
+                               F09F83687336073A77A0850E4031FD86
+                               D508E29E8FD5D6923FCA2C13428CB623
+                  xor-digest = 144A74BECB6E62F73D90E30CF31C0D3D
+                               9A74D75445C0FDDE41891398E26EBC8B
+                               FD2AF00A5FA32A83C8E38136FA0E4F1B
+                               1C9B48D245F4ED3D8145CBD84C6E25DB
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 00000000
+               stream[0..63] = 25CD3487315B7D8EAEF014C442EE1EFB
+                               793B2039D21209C4C9DAC63CA07244F1
+                               5E1F7EDCF49EF612A6D5FEBC76B07FB5
+                               EEE78BE002192C5C9E65AC96B9DD829E
+            stream[192..255] = 883D2852ADCD200A79E275FDB727BCC3
+                               6837BFADE0D10601779F46836FDAF142
+                               E6557D528C6C179A6F4FE0D62F54E0C7
+                               FA65C4F50CEE63DB2D6765EB3AD22DCF
+            stream[256..319] = A153426804409396D5667A9708AF2F83
+                               8D50BA548354CE8BD2087D2DCB2FD1EC
+                               06C9463240AC2806C08B3885094E334E
+                               3B16D2EFFED021D0FA503A44C50AB979
+            stream[448..511] = C1224867E6E2BACF8EEEFDA83484FEC2
+                               ADA53204F7BBB0FBF59402BE87E77610
+                               29D95BDFDFE07EA30D881BEE0F998677
+                               3F1A24A8A1ED44CB0B38504933723E24
+                  xor-digest = 09A4E606DD572EE1C5E12722B15857F5
+                               3FF39E5A9F3B166B1BF2ED0924CB5DA7
+                               31F99044F2C625E63338689B1ECB5040
+                               F46281C047A96E595E64C1B974A47750
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 00000000
+               stream[0..63] = F9CDBBE90042248C25900F845D3CCDEC
+                               2B7578ED37AB62B16226AE59E626D7AD
+                               9ABEC511F610702682E403BA27FAB5BA
+                               EFDDA22CBBF9A1026000DCE6EBFCE5C8
+            stream[192..255] = 606F33DD986CBD5E2F48EE0F87613198
+                               75D19075D73251DB8B2D43365AC2E838
+                               8E5F02F9B6D4078377A53C8723A01422
+                               87DAC3C382A2A1576AEA65A28186BAB3
+            stream[256..319] = D88DE3CF5DDCD1F0A69D0EB8E71E30EF
+                               467D5D42D0D9212A67D6C144B1ED0486
+                               9731B3D695F961E615B1438A3E0CD001
+                               73C41B79C15C9D214D5568DEEBFBE061
+            stream[448..511] = 9D1581ED14D664FE3C2E84D80ECF6FC1
+                               2D69026BEEE4EEAAC69151C8A5286F3C
+                               1D01401315DC68F4AF40B3B72CC4ACE6
+                               6AEA50347D1CB7E2390FA05342BA131F
+                  xor-digest = 2AE875365854255D7D52D57185BF25BD
+                               130777B798074E8185BF0E135EB7E152
+                               85AFBE7770E25E5C744D62851C614618
+                               F25C06C500ADA250688520AD074E7DDA
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 00000000
+               stream[0..63] = 308FF48BAD533C83B01AFEA0D71D5518
+                               BB16CDD9CE4DB610D399B373B20AEC04
+                               235B0502AA8C0100C6B92F3B40F2FA0A
+                               ECC427DF5418BBD2400E0AE00011D86E
+            stream[192..255] = 4E402EEB5148E21FDE18CE56074C1C9C
+                               723608D9B964FD955E6B2503A01B7EBE
+                               32C924D6EEDA289A8A114A0DE9DE3273
+                               1203A5A3BDDB043F7DCE62231DC0076C
+            stream[256..319] = 6D4DDE0635DC84CB2464C13307931D61
+                               447D42364B9D3446E5D8112EBCCE2871
+                               5787A8698B24CCAD63F25629A7B551B7
+                               CF0CF6EAE38E748C3178433CB832699E
+            stream[448..511] = AF1DB2C2F2DF0F3A52F9229BF4A25569
+                               0536B76049F7519B780FB63C2B7434A2
+                               FBE6B78F1C09093086BE221422FA1757
+                               25C5C99DEECA9050ABD2797B89F5F052
+                  xor-digest = 577ED6F2826921E63DAE00065DAF17CD
+                               B80A4D00DEC3BC6DAF82F4D92AE8BC70
+                               0664497D37A70D4CE02964F63846F26F
+                               AAF819F92EB99699FD618FDCF797737E
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 00000000
+               stream[0..63] = 137833EDD988E9E0BB231F8F2ADC03D9
+                               731F6205FA23D3ED4CC9B5A079B2F673
+                               7259524E390FDAE8E85FEC23C02FE15A
+                               3EE214027EAA3527A413E519EDF6523D
+            stream[192..255] = F72F152191ECD51DCDEE2349898FC655
+                               0F5B5902368B8F02091198EFB225988A
+                               BF7D936DFD34D4BE53B16B94BE6976BD
+                               37767601BB7AB01E830F4339A79BCDE4
+            stream[256..319] = 18BE9604BD32271C0229D6E3F0FD4FC5
+                               CB585B2A1914EB4F622B701BEC553D11
+                               FAD2C609785B6A01DF4609BB5F90EB28
+                               B9A69E019967D71BE94410D3D65AEF4D
+            stream[448..511] = C35C474F923DF53CF45E932E3514AD71
+                               0BE6383E93870967DD6B5DAFDE6AB3F3
+                               78C5B6F46295175179163536818E112F
+                               1ABF9ED4882F32F6BFBEFC97D52D7A67
+                  xor-digest = F506E811320ADB9218C3A25B8A248162
+                               E918B941C2BBA62729BA5A06DC36B7D9
+                               904BECE509E2A04785F1743C485AF9D5
+                               D74B54DBF527D7E9F2B2B475BB109E6F
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 00000000
+               stream[0..63] = 90813F4562F8B0CB87E1948085F01DD3
+                               737E7F95CD89F393BE7630F6CB10D7FA
+                               7CA6DC18ED14063766EA140B841ADD36
+                               F00A5F49990480ABA3036E068DF861EA
+            stream[192..255] = 8ADA644E09E46B99BC1B903368A49E5F
+                               AD3363E3E374C9E518D90B4D6943FB7D
+                               DE0FF2FA62FE7FEA0BD922219B9F878A
+                               B70FDEC0294DD9C3FFBF13CC95A67714
+            stream[256..319] = 5AA0A7B62DBFC0F1C6FAEC69D6E3750D
+                               AFA610F879073D0FFB14A04A22698D1D
+                               E8078CCD1E376BB4543576B9E2F707B6
+                               28D1866F48AEF79D65F2FDA03FF40D3C
+            stream[448..511] = 1EF40AA4607379868A04871FA2E31844
+                               05FFD372E0DDACBF190A1F627412AE3C
+                               6932922BA3F27A7FEDE3A9020D177364
+                               1CC14F4A89BA500A840BC36B62D0523D
+                  xor-digest = 8EF0D4DCA50F3ED43120C9A3BD7EC2CD
+                               E97B8B9473F11FF7FC03430B7081F019
+                               50AD462381E61C59DE78F28C940ADF88
+                               F17420A0EF26145E7ABCAFDA5F2C8AEC
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                          IV = 00000000
+               stream[0..63] = E06452C2E207C92D34BD980F2E00ECD0
+                               D95481A9D96F30C5E8398AD4EE90769D
+                               86CB78BE9CA6330F25C21975684C1770
+                               77402DD98412CC53AFDE8E1397E547DA
+            stream[192..255] = BE1E1ED83A7EC46CAFE22AB5D5F062D1
+                               3023145FF57A01436539618A65910A96
+                               D6C0AD82BFA5F889DFA5818C489FCC1A
+                               4546506CF924DC8A91F2D641BE63F19C
+            stream[256..319] = D7DA1B8247810A0C0C2628612D61AEC2
+                               CC68E974C333BF5109650B62D9360CE9
+                               355F2F8AAFF0BC7AE0C7648A71A9879D
+                               0AF02C7752D678320AACE995624928C5
+            stream[448..511] = 9A5CF651705358FEEC5DFA8508763F7C
+                               9A71017713A18E02BC52C2B94C11418C
+                               E3AE453F05A06A6D50CBFA998150F3B8
+                               574C14219C3DEEF7F7B480BE98A0F0E1
+                  xor-digest = B13276CE55739316928A5DEB41B5EE25
+                               5A36F5F5D1EA0E8EDED9CC82B2A026E0
+                               D24809673D991ED39712EDF6BBD6AC4B
+                               6DC0EC8D1F2A358F1EFBADD73A40AA1C
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                          IV = 00000000
+               stream[0..63] = 0DCCD386FAB06F3AA2451F82081123EC
+                               9C00D157D868EA513DB478FCE80FE9F8
+                               1507C2C02D3842120D040B650BEAF306
+                               BCBF000CEEC0122A07BA3487597FBB93
+            stream[192..255] = 2E28279137756F8F5522B9B353A1E24F
+                               2970927A6DA9A482590AF6B737E38368
+                               60954D8DCF9360458468DD74D05BF7F8
+                               928B93B4BE1D93953DF92DF4E18DD8E2
+            stream[256..319] = 6B098CFFC0B93A3B73E181ED05ABE5B2
+                               DD01C7C0CFEF1AD93C375B646B16EA31
+                               4471EA3ADF6C0BDFE187CB10310FC9EA
+                               9410C9B342138B82AF259B9571EF1944
+            stream[448..511] = F350920B643A44C7D9669AE346844DB5
+                               E9DC4645C5F57C92A39A79ECD0BEA9DA
+                               417342C43CECC61B99F1FA89BC914B0E
+                               F4154190342D2159F976D86DB5CD8295
+                  xor-digest = 957811BA1E6D77985E956DA6A80C418D
+                               CCF1E8F512457194553BCD5D02C82E7F
+                               47AFAB57BE085C106484F0F927F0EEB1
+                               54273FDDAA408F3115289C4018120334
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                          IV = 00000000
+               stream[0..63] = 411351A03A76C8E1E76006701F23D5AB
+                               4614E7AA49EB639E139A9F3F6E11E1C4
+                               63BDA9E6227CDFEAF91CC0DDA126F4F9
+                               6DED9F21DE1D1E7A22497307981B2CCF
+            stream[192..255] = 3DC54DB88D5B54DF7F7E8FF65D2B643C
+                               416CA2B364B5E33F09A4EDF34D41FB4C
+                               1AE8D585AAC16C595C939DF222F1EE7D
+                               83D6C2193F4599AD5C3831283ADFEF7F
+            stream[256..319] = AEF5560348E6B5F183FFBE24D8BE1B49
+                               F3E3E05A47E4E00CEA0088BD14CB6BF2
+                               3A47C48CD4F87C258A55AE0BD1684547
+                               4B5E16E9EDE94D87459B3D85D33312AF
+            stream[448..511] = 47ED2C5EC32D9E7C4D307E479837F3BD
+                               EDA44E19D231BE1C6F10C3663D1A3560
+                               436F859D5F2956FAAE170C09F0A41D08
+                               99772B53942C643221ECE741F149B13C
+                  xor-digest = 24E80C9EA59A20640A5DAFB57BE92D77
+                               EE59B33264629D14F54D3151CA8D1C3B
+                               145F825FE954EB9309DBF8A0A52CF202
+                               9E2B2F4089F85B40C1C4418ED56C9AFD
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                          IV = 00000000
+               stream[0..63] = 495B79ABF0B112286C292315A7ABCC48
+                               1B28C06997A89C38AF4F02F934D00EBC
+                               95A644EAE9A5B9C583601FB558A5B62B
+                               628D684EACCF67C472A72E579E8F03CB
+            stream[192..255] = ACD642B1B9395E1A7D9143CB01C7BF7C
+                               FDEE76FC02DF3901E57A70FE5589EAED
+                               CE59A12AFC04F2CEC7DF63BC91677A22
+                               2E7BBE2C5A98B3D1691C9E7C8D91318F
+            stream[256..319] = 659502D87F9FD7EA2139BD3D36C81127
+                               AFB3FFAA8E54DC517A95B108F94BD486
+                               CD006E60745EBDDBAC442D2CD1D043B0
+                               693A584AADA60B67B5D44F54B6684599
+            stream[448..511] = 1D5D7CE98E9DE4C876E51FE6995E4E8D
+                               81508A8F939BA9137EFF0AAD0DCC3197
+                               F464224C55F770200E36932B99FB9A24
+                               0DBCCDE19649010405A11D747022296F
+                  xor-digest = 145A3512C03D415ADBB2F4E5AC0FB742
+                               C97657D29ECBCEF010DDCEC85D0E9D98
+                               7E999F922BEEF2061B41184D228303B3
+                               E09FA12FD39127E9B348DA921FE9DE71
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                          IV = 00000000
+               stream[0..63] = ACDA6BE031D0B9723B36BF0FAAECA3DE
+                               C9A991BE697F9D02648213EAAA95963A
+                               4EBDB9091E9AC6109C9D87F3597FA0C6
+                               1EE7CC205F0CA5D6FCA683B039A5637C
+            stream[192..255] = F5EF3D8B0D231CC3BD06BC86EAA06291
+                               C2842526AB60F5A90A43DD861B9A9D0D
+                               B4069D06032A5FA162B94BC1C52982F2
+                               E360EEE81FB99EFC41681444433F8494
+            stream[256..319] = F3FE1BD24BA1AE6C59335B2A403B5FDA
+                               E2FBD9A39897B9F640455CA3C9437FFE
+                               E2DFC347FF0D2056BA9B53A24224AD6C
+                               126CC9746FC5B493416ACB2D5C6F005C
+            stream[448..511] = CEA7F812F218A3F4AA756BEE7D9C1C86
+                               E6009670E2DB85216F6CCD2F858B2956
+                               78C8EBA5181013901503C355F603AF33
+                               FA67312769FDC761C3CB8697239D523B
+                  xor-digest = 6C66091E203757C94BC7F398477AE8EB
+                               C85DA1352EBA5CD5DDF9B74CE77CD237
+                               F8C8ABAFA3A716E726331EFB4E94181F
+                               08C34786B1000CFBACA68C6868079288
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                          IV = 00000000
+               stream[0..63] = 684CEE53BA8DBFE7C362F6FCC8BBC3F0
+                               5E82ECD5F8E2D10AE80F2858E95EB256
+                               5EA7D5729BE216FBDD27DF1829D066AC
+                               CF328E570390EFB87374BC7B934B712A
+            stream[192..255] = AF2324974367960CA99B8A11FF2A88BA
+                               9AEC75E3F391357048E6274DFF77F2E4
+                               1FC46B1562BCD30FA8038F200ED9A903
+                               E0A6FA159E7830C050EC76D79D863DA0
+            stream[256..319] = 95F9DF3799CDE6893E1E2EC25AEEBBB2
+                               AD9C12DCC316FDDAE603A2C239FA3664
+                               BF866CBB4C0D836DB42E67238E36CA29
+                               526C74010494BE29AE1A5C95C2844431
+            stream[448..511] = 938072F1B0F0BD87EE328402FABFD235
+                               14237B3794F9DE8ECA643DDFB40524A8
+                               2166CD3146DEF4BFF050BC5B91B2526A
+                               D28E4DC70F8917D5C797B933443CA9AD
+                  xor-digest = 1E8B6A4304A7B9AA31002F25ABC29845
+                               DE6E1A4835C891F57697DE91F9191480
+                               983AE4F0572B5205E522B51B147EC6EE
+                               792602ACBC08D8E71E8EE478F3B97334
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                          IV = 00000000
+               stream[0..63] = 89A540ECC1B1B6989819ECDF6037E6A1
+                               6C21CC3783A8B988E2EED0CE99A62F05
+                               3C66B7895AEFFBE593F4407F3627DD61
+                               7EBB70D1F71142E7521B5B3F3CE29276
+            stream[192..255] = 38464A71EE329567E011D54D40C6BAF6
+                               518FD61137B141340D7DBE1B3D58B223
+                               F03C562231AA5A3CA2A36C0913D077AD
+                               C0CE3A9D7537E2F544F02975CC385F67
+            stream[256..319] = 77D1556FB534D4CB152C9C05CCFC7254
+                               9B0F4DF877D6BDFE542576E645E58732
+                               63EA299C73078720B7C733D37B356C7B
+                               59529E0E6FC29705E7981FFF45A9CB4F
+            stream[448..511] = 4A4A9411EB21A84A84826BDE25684E68
+                               CEB761208BF0A0A775F1CA8D0185790B
+                               FD2326836B7CD5D208F8846782C8E880
+                               51124B4A602D088349EE4D9419AA50AD
+                  xor-digest = 6362306A8E7F2398ABE6DBB33A2D7CCE
+                               B314214CA1948A843B8D776AEF8D1736
+                               07F758B3BFE44BD1B6277B9ADDE92AA2
+                               B643030556C0851A635738B4865B7152
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                          IV = 00000000
+               stream[0..63] = B0AAA0A8FBCE16391FD1B5A46AFC8817
+                               925E0B30CFD24DD352C7C2DC77568075
+                               92D3D538F2D5878DC2DC0E36EA87CE89
+                               D58C6D129C432C01931950FF32A14370
+            stream[192..255] = D8A6083753D8C83CBFE3E5C331220CAF
+                               8B995EB7C589FEFB24110A17757C0EE8
+                               E3DCF37F6677DC0D34ED32FBC6318C42
+                               AA9195C4D20FE35E7149ADF7E978038D
+            stream[256..319] = 9CD35F54B8AE7C092A99642A387F36A7
+                               D0ADE2BAA6F4975852FF2F9D95C19A96
+                               0D3501E59DF2C82065020B6ACC8F7F0D
+                               AF1F19E87A7C9117C880DB14D9069D03
+            stream[448..511] = 9471A7E22FD03366C238DCBD6421C2CC
+                               11729791B08FF6B5DFC2213AE3C26869
+                               677DB62DDECDEDF34709AA56FC623198
+                               C6E7340423FC6B425865F8EBBCD97D91
+                  xor-digest = 6DB03B283A1F065B0474CC489512669D
+                               EA492CDBA603AC13D5DFC16BCBC5D3A5
+                               314D58C7A59617E1DD4BF2BBFCC1C14F
+                               85335ABED0D4520E9C41969FD61B101A
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                          IV = 00000000
+               stream[0..63] = A59BF9F7D8D41ABB186D4AC875E243D7
+                               CCDA9D92715BD61F67E7DF519F881936
+                               4E2CB26E25AE791B8EB5161DBD9BC5DD
+                               D73CB1C019FCB2669ECF291E713DD1C6
+            stream[192..255] = 4EEE39CBA101E88D8B7943510D892829
+                               BCC1CC67E7E936A41C91FBF1EDEA2D38
+                               9C77281BEB86E6DC96E5794AA3751B61
+                               FF5DCF8D7570061B2A4F62AE60589521
+            stream[256..319] = A764031F040435DC526D1F6DE6E974EF
+                               2FE52B030982D68C2C70919131DC5CE8
+                               1EA4EC758972695C52333437F0D46878
+                               9F8F951D1730A8713F8CAE806A53D179
+            stream[448..511] = F2DE12A444191540803A6428BD87E74F
+                               D103B94D276079F634233D6B582CE72B
+                               3D9A50A6B290E6E19575E818761D9C7E
+                               F02CE3C983D06694EB96D5A861D5DB1F
+                  xor-digest = A41B6AAB905D6CCAF74C69AAF67B4D41
+                               FDA92C72A7ABD272408A0E4B501B92D5
+                               D42A61A7CF8D1B1F86791581C9607C88
+                               0E10F6CD23D66ED6F11CE4BE55CE21EA
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                          IV = 00000000
+               stream[0..63] = C7849856E2FA006E45A16B5BE00D4FCB
+                               75946DB7247D75BA13915D52D571BD50
+                               F95BA9B9DC096FCEDFE8F288246135A5
+                               8DCD90834AAB933ED3E487455495FCB3
+            stream[192..255] = 11C65CF7BBAF46D60055886992BB6D01
+                               69A6C55BC91B17B831046FD76C96310F
+                               5E1E6B36148C168EA850AA25C537F618
+                               10618084340C1EF643A34CB9676832ED
+            stream[256..319] = E170673139F4FDC29DE3C36F2E7ADE1F
+                               F027F8C8B9BE1AC0BF15D4C70169022E
+                               891502F7F39BCFB61D83087D36042102
+                               805F815A721B9650623175DCAE400814
+            stream[448..511] = EDB911729CC51D039EE9DAA393CAE1E2
+                               1F569B2CCCC6583946017610E8B8BC97
+                               2B3CA1812BA72B0C553329253ED9557D
+                               C217F27FFEED671F8C97B340B6FF9D45
+                  xor-digest = E6AFCFAED9AA64E3A64AB1EF419F0037
+                               559A5CDFE7783C5F5253E58141B3C244
+                               FD32A789195C7C39EFDA863C00A508F7
+                               7130FC39A58B962F9D0389EB757A240A
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                          IV = 00000000
+               stream[0..63] = 4E121E47137918BCEBC095C1DFC1B566
+                               D7C26A8A883A1E789F55916ADB8D425F
+                               CC9BB78131416A65FE50686327525909
+                               70BA4B590DC1E5A1434A7EF6FB3A143C
+            stream[192..255] = C0D36A5989B0DCE63EDDFCA10113238D
+                               B0CDA39B95F5C30AF9F03B62A0A1EB5E
+                               35119500925D809ACC78BEAEAC0C0A4E
+                               D5519C5EF4373890C1316773800D472D
+            stream[256..319] = D3702BFF721D1A19A8447E8C685EF2B6
+                               A863541B88F9E77E2AD1762EB10BCBEA
+                               CB3B2FED9BC6CA324BB18BEB7E3959F7
+                               89168C5FBDDD952A40C47CB8AFEC904E
+            stream[448..511] = B5B328E6072C189603A7D5C4F9A4F693
+                               D722C70D4495C527B1DF96530CF47BB2
+                               F825C96849E63C30A1F86A4755F5623A
+                               6A74C1D874D4AD207FAE99F5B5F3876F
+                  xor-digest = 549FA637E6767B1701F9F9292E797994
+                               276E26D79E5EAB075494784362FADD97
+                               263FB8D9C573DE7E38A0145677C454DF
+                               20234BDD1DAEF5FF0862396706835598
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                          IV = 00000000
+               stream[0..63] = 5AD5AF14F4018DA67953EB310B63308A
+                               3DAC76347F7DFDC4CE45EB4F9D8E16D6
+                               C909D282F26DED3717BE0C699FAA937A
+                               954A1AFA907D5D4DAF7AA052CE0A0911
+            stream[192..255] = 0EF9EAD214485BDD9B6FA1FC7BE8253D
+                               A143CA7E5C2A72205AB59817854BA0B8
+                               D55A17D84913864D0FA374B7E0D23CDF
+                               98F8C0133B12120F2805A72D90E16A58
+            stream[256..319] = A000D7E1E1BDC8D6C526ED1F4B2FC76F
+                               9B562AE97B691237B7EC6C1E9CFB9B79
+                               C44A834001023F13312803A5F580382A
+                               C4622019637833701159A976C53C0FCD
+            stream[448..511] = F24E4D03384D0D15175E775D7E9AC7DB
+                               2633C32310D8F5ACC3B26F22907EBC82
+                               B2F3719A94F7E3537CAD29CB3D60DD9E
+                               E474EE2719F1E61836DF9DFBC42B4E4A
+                  xor-digest = 02ED481FA2BC353F7930B771013963A9
+                               8F51E5FD0BD26CBADA793CB8AD6B31BA
+                               FCD711DA8684F70853994DD9F36779B8
+                               7CBFDFCB4B5AA7F03FCD78AD5583446F
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                          IV = 00000000
+               stream[0..63] = 4DD4308D2F2D98388538915E71795AF1
+                               8FC4258F60321CBA622587DE32A11A56
+                               CE14358BAEE0A12ED6FE80ACB4946C06
+                               FE57BB0A2DDEE8848D98A465DFFD85C9
+            stream[192..255] = CE779289341B05A323623C1BB729D03E
+                               4ABE1003A614B20439CD0E8B3F5A762B
+                               440A4C1C41B8AE2707E3D4B1D0EFA677
+                               0D093FF3FB68F2C0491B2F65326525D4
+            stream[256..319] = F0E60279593D596F4A217CBFF747D116
+                               66A5CEEB3B10D5FD54D01C197F5803A4
+                               350A098575F1D6C542E9EA1AB2931D34
+                               C7B797EFD3CB8CE08F293F352DB6A42E
+            stream[448..511] = 46FD0C2DE42E3B708AC571BA7F2E8AC6
+                               3B1E719F9BF7CFC08B36FECBF3EBC527
+                               E8399B7902B3C88407BDADFD43B52100
+                               9480C166BE42A08251FD843CC2B1C4FA
+                  xor-digest = 8044E57E92B2B3CDC9AA7C129E9E8B12
+                               0CF7ECAB4240A936DE50AAE42DEF209C
+                               E68DE001A4C0894DA6696547FB487317
+                               7EDB0CF7208296307E8E4AAB90D741CD
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                          IV = 00000000
+               stream[0..63] = 8D25681FBDB33090E867C7E86945A600
+                               E9961928A0ED342E688862A238B55203
+                               E96736054E75CE893CB12D046C3F97C7
+                               73C22B71209494398B95C734A34E78AC
+            stream[192..255] = D0967DEC326708015403D787C49C9AB2
+                               0C1349ED14B080BD72A85C413EDFE094
+                               B9786630FC37A20E4E1194C8A13862CA
+                               D17D3FE7DD2919286C4C789564DC8938
+            stream[256..319] = 7EA195ACC488884B7CE26EF3206D84EF
+                               88BCBF61E119F1F4C222341829520754
+                               0C45C3D145E178319B7ED63EB1695741
+                               2C9C3C8C9FD6443E50253CBB40873E76
+            stream[448..511] = C787183ECA480C330E994588E7F84D65
+                               E48A011452C0983CAD37CC3E6F51634F
+                               0E93870BE99BA7DFCD5D383FF09A2B9A
+                               449B605CE6835C03F6F319B15176DB7D
+                  xor-digest = 428BEDFB242CD9B39E115DF7F32DE2DF
+                               A8C3794DA3816C2681E276E327164D5F
+                               C1835173C30E022073D1A150A6F42018
+                               444045B62273A46FD25228312CC8EC3D
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                          IV = 00000000
+               stream[0..63] = F668521BA3A78928B2C490506D5C8339
+                               C08D1BF500978B02225338023168010C
+                               BE555BE521D51D1E37690CA114240B3E
+                               C781F1998F5262857236EEF8DC3FE917
+            stream[192..255] = A856765DB93D6F7DE17774B0CD414C1D
+                               A0F4F7F6FD226AB8DBD16DF80BBE49CD
+                               B7EC5CF575575E09542229D54E5339E9
+                               B681D4978102C7BC60E22D16C8E44873
+            stream[256..319] = AB1E43C238AC403F07B47FA755D81912
+                               DDD67906C592458AE5177F587071B229
+                               630FB224FE1412F8167CC9D15AA0DE0F
+                               C1165B4458AD013A6CFF55E67FF3B3EC
+            stream[448..511] = AFAD771252441FB0A2B769477BF02001
+                               1C46FBF36915F5644864C92419F9E50F
+                               074D0EA340FEF61804E1C0F03A9E713A
+                               91EDDBE152092EF800E82F33826576B7
+                  xor-digest = 1327FAAF361233DEF7E91C3D24CD61C2
+                               C2FEE7B3CEDDCA933C90C25F6B4004DA
+                               3D5346DD8E0761D2BC66316D5035B0BA
+                               3F2388448D3B2AA6CFA675D8CB0D0BC3
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                          IV = 00000000
+               stream[0..63] = E9088F6AFBF663C677170E1954B7ADDC
+                               1407008BC320659E54E09D1CA2738D16
+                               28980E30D85ED7952A9E9E8D95365ADF
+                               8D6B71666A84A47A2F0D390DC6B278B0
+            stream[192..255] = F597D9D03B699529C18120969A10008E
+                               855A9062211B0AB8116AD19DE26236E6
+                               B60D409B3F83682DEA3E84814FCC847C
+                               BFB945F65FA2018D8E7CC2F454E02C3B
+            stream[256..319] = B79A86655830B6BF46194994869A406C
+                               7BD5ABB85D3E106E9E582531EF0E8FD7
+                               2632D89BF442DD32A8D6D8809B34F161
+                               601AFB93551AFE736148F3E9380FC46D
+            stream[448..511] = CCE004F4AA01AEAD970C69DD58C6AC3E
+                               7DA5E41FD23FCA2FCD8959D33C0DCD66
+                               AFE84D9D1A2E4F924734D26EAA5939C8
+                               4EE2156DD70C4535CC801C65D7619A3E
+                  xor-digest = 0079218762A2E5EFFFD71AE05E25FC49
+                               48F5AF1D95D81D83D483477F42D11D05
+                               3DFD62BFF9008F56CD0511681F354697
+                               7C6B35D97F10281930B0672FDF5E12E3
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                          IV = 00000000
+               stream[0..63] = 7A1793DE4C1AC97ADE854459C274BD19
+                               9047EACB9A0E39FBDA697CFBE439E652
+                               30A9B40B21BAF60DAEF8BD496919E7E6
+                               B202397AAD8BEBFEC2D126BDAA6EEC40
+            stream[192..255] = F86B9528B2991BAB7AA5B46CDA54E896
+                               FBB345897DF86A4416C3E191BD625C2C
+                               D5BD1A868C1D18817410C130CF209F84
+                               6EC66F99D24EA5F49FD4500F7373490B
+            stream[256..319] = 034EC1E31A5B2807BBD03E7F3C9ED9E5
+                               9C5653688357094B36BEAC7B2008CAEE
+                               8E58086C645D895A192FDBDEEED110EE
+                               88A0D2C7A60DBA467BE410D721C27534
+            stream[448..511] = F5C8DBC99FCAC1126A76EF26BAD59095
+                               12074004C995E580510E51E883C6E15F
+                               1CA10D2547D2B4DA7D05B9E4DF7B483D
+                               C35C32D9D941647DDE0A7A1ACDA34C25
+                  xor-digest = 04F7717E839BCC1093BA45DF6ABBFE29
+                               3EF26120BC5E8037482855E7AE0D9E07
+                               75620075803F6D12ADC011FE02D6412C
+                               89CE076F73404855DDB584E0BC34454B
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                          IV = 00000000
+               stream[0..63] = 232393557568131EE3F600034FECE95C
+                               5B488C932B2E58BA9E932D0BBDF6F2FF
+                               F1360C307B5F1DE2E4A9D20D7C5C4752
+                               65F23C77063961B476F814789BB536B2
+            stream[192..255] = 94FE6471D6B501AD3F18C1B59B8FABCB
+                               B00F19D71182C281BA34FE71254E16C8
+                               A06BAFFFB339DA2ED6E9C52A49506594
+                               2FE17EBA449447F3F7A6B4B0945FBCCE
+            stream[256..319] = B354E1408F2156059384C18491487F7E
+                               EFE6C5DA49E5C9F534608A835922D0F0
+                               D477705E6B2ADFD434BAE02353FFFEB2
+                               72F2F0317A9E904792F08FCEE2C067DB
+            stream[448..511] = F74F07635EA1866DD7C25165D66EE1D2
+                               CF93E1249F0382E2798578383FEDB7F8
+                               85F50D6A49AE91C1CE6C58F231C087D8
+                               D1CD6D105B68CF63F7BAD8602AEF46D8
+                  xor-digest = 33CACE30447F1603D727DB0FFA10B2DE
+                               EB16F2390C3CA0144594561984B26B69
+                               253C548619D1C7AC97EBE5BFF6C8DC15
+                               D550EE8446BAF52AC8247F98487FE2C9
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                          IV = 00000000
+               stream[0..63] = 969DC4F5292026A873AD8EFF61B2E2BC
+                               3E2DB9AB1BC67D1C0556B7DEE7A848DB
+                               4668109684A95EC9EAACA39C579E4B0F
+                               46D2F8AB97F33B6FA1241A6D7FDDAC5B
+            stream[192..255] = 25321C5C0A3037B042B43A27BB055696
+                               381E86BF661F7AB02415B1AD5E0E1006
+                               0A5398AA2E770DB33DB5B4781D68506F
+                               497BE28B233897CFB2C88E504583BEC1
+            stream[256..319] = A4BB499C11C906625628AF7432BF8864
+                               C913E0044A7C82867AF3B41E21B51573
+                               7FA2B8AEA87C163E51C4B9FA253A79D7
+                               3EB9D2A461F74928BE76FB52C73205B2
+            stream[448..511] = AD0050DBA2FC511769635AC264508C76
+                               3056F7C223D2D7889D88FDDF792580C9
+                               44AAAEB8393E5B793301997B83DEE824
+                               70287EBB5AC9A81F4E08258635D61CDC
+                  xor-digest = 872D7F117162F1C0B6DFC80E5D1C1E1A
+                               00E7B7B4869696DC226CDCE845BE4E72
+                               3F508FA4F300D7F814D37249C4678D7F
+                               5E367304B98724BDE42986A26C68403B
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                          IV = 00000000
+               stream[0..63] = 9BCD8D369D34E1F0F0A8FCF1B9D5C246
+                               FF91B68A2E0C3195B3DF493E9BD4D8F9
+                               42F0BA84343106D0111D1B25F6E3E893
+                               094A2725D9F83A6034C1C2205E456A33
+            stream[192..255] = 8C14E2626187B7202659052C48933315
+                               76AC5B2B49FF8367A4981020DDB43F85
+                               C92C518FFE266B1230F8616E25E1E436
+                               415E01F9A35839194B5EBB83A5384EB1
+            stream[256..319] = 5281BFAB1826461C3FAB3809C80EF5D2
+                               85ECBDD0F044580B5861A8790281B937
+                               9DD8F0781AE6535984A3D542D2C5E089
+                               D5866953F6A73DDA0E4CAA0A34384D23
+            stream[448..511] = 4A3BCE2ECDFE4E74D4C4CEA0DC69F0D1
+                               D56F04BD314CB91615EF10DDA7388354
+                               35066C7EADB61CF96769ECB90D829A65
+                               A4A15C96AD09FE42120192A8A61A724A
+                  xor-digest = 7E2843F5F0EC61E36E136CA83E9E82F1
+                               EC19B4686CD92B6CA7B52A30B4149AEE
+                               BAA1A47E2340C4A2EE3C4294255B719F
+                               274E511589C29C16171654FBEE89B66E
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                          IV = 00000000
+               stream[0..63] = 414F7D8C991A027AA85BD85650157790
+                               5BC8F1560CAF885E22D35D1A2034EC2B
+                               7629DF6B0A7E401F8BDD8608ECD0AF37
+                               A3AA9138FBF03F5EAC84C3E4CD12861C
+            stream[192..255] = A84139E1CCAAC57B77D9C17199268EB9
+                               1630B25F91E1FB9785E5DF827E88E17B
+                               0B2A7570EB2ACD34A9C176D37D0970BB
+                               FE7832B1C0CB078DC00822AE71F91730
+            stream[256..319] = 1DCEE963BA628EBBD22B58CEE20DAE80
+                               501AA55967F102834003480394DB4651
+                               C077EBD446D66FCB6F9C82CE1D7583E8
+                               F6895BEC05B95D094814E7B62F6A1C9E
+            stream[448..511] = CB00448D5FC7466690DFDEDF6443B6BA
+                               83C47188256EBDF01798D0580B79DCEC
+                               9B5D04DD3EF26551626C8C7541ED4148
+                               571A2A7923147904F27869A49D8AB01A
+                  xor-digest = DECAC377D641CD8D7FFE3AA57D45358E
+                               066EBFEA3D13D255EE1173A4C1797A52
+                               CFB3D1800A67B13FC9CD967C34F54B79
+                               857EA4205E21BE4EE0860A23DCC9AAB7
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                          IV = 00000000
+               stream[0..63] = 2363AA4C3053312189D611CB596B69D4
+                               34B4E1E0F276DB883D0400E9627B0B3B
+                               836B95A8AEB1F7F6034D827552EF2019
+                               D5696079A4A9A4903F46B19814DB280E
+            stream[192..255] = 8543E852F441BE6632ED127D05C9092A
+                               B575D1A3BFDDE2062684A0252B31ABC3
+                               EC4D3ACB983357CA51D90DEB8D1B550D
+                               82850CF266BE46D0E8C0C50E15E9CFD7
+            stream[256..319] = 15F98D063D166577EED5835061A6FCD1
+                               843F72D8CC58BCDFCE531998368CA4F1
+                               B3359E78B5A71754867CD87F7828AC77
+                               4A251D33FB8E65608DCF16EA74B8E016
+            stream[448..511] = 9A9C3D60B7109B40AABABB0868658CF9
+                               BDD2444AE2462D523C9FF3077071B24D
+                               88CEBDEE30E948A2B3E4EAD79366CF8B
+                               7E6C8AD99C447837A2348571DEAB0309
+                  xor-digest = 1A44287CABB9D367E155D0AD9FE4945D
+                               EFC6892B1D5791B26489DA6B3EB29095
+                               5D2AFC3739D663B0F561583669CC6B23
+                               D4FA8CC09ACB65AE6788388BF819A91C
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                          IV = 00000000
+               stream[0..63] = D58C58749C6DCDA610417C58CFEFD258
+                               BCA7EF8B5BFD0D719A73FCC8F40988A1
+                               D60B18933288F0673B4537AE8044C214
+                               2FB48EA201419E7E1C0125498CBD1490
+            stream[192..255] = 19769B67AE27F77C8FB97E6A99FC5622
+                               614FBE3A74D5E7AC216D2F1FCC591BEE
+                               37D10F2E15CB826B909883D3A63685F1
+                               28B58F56EA4F0D6DFC589E46CF219313
+            stream[256..319] = 61A8D40BA1353CC49DF729E5CB714D61
+                               DB4733B649364D8CF508BA03673E3A78
+                               A9354C4D34FF2A3961788834C4C79A46
+                               37E0B8C79FA06B2EC4D56B05C44E863C
+            stream[448..511] = 584E6B142532BDBB6119FEF6E22BD0EF
+                               538895F167384DE6D0BB452D2E865942
+                               599F5C2E987D732E92ABB4618407BC70
+                               4F30523855F641018E6B6F40BF2DB7E3
+                  xor-digest = AAEA04E71FAEDD6B3217BB73E38AC5B0
+                               03C65C0EFA5C1FFBD2BF9829D5DE660A
+                               BF75224F97BD826153B207169C02630A
+                               C5F0CBB5E9F3F459695D920A2B18056F
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                          IV = 00000000
+               stream[0..63] = 3A833F3B29FF143BECC9CFC0DDD311F0
+                               354531BF606658C56EF3A7A0649D813E
+                               E2C3D3A203146BF0E28BE7E2F5283DDE
+                               92D4C118EF65247F2977509D264F89B1
+            stream[192..255] = F73EFE7A192E4E3A506072F5F067E9CB
+                               966CC018E53B48721F6D2E9E389DA0EB
+                               6609CEEF5D14CD7703E92872995AF710
+                               76B936F466159E1C9072735717B2FF52
+            stream[256..319] = 469870055870BE35B90A12D6347E0F8C
+                               B4772AB5E7986A9BE9F84848C0A63B09
+                               F718ADA7D0454DE81F652E8951912E38
+                               6F70C7B22E30ACB42B877556800BF4A1
+            stream[448..511] = 1EFEED4353A1EDE3A1AC97ACB9B435CC
+                               D8565F51B06917A64E9D46E72F962876
+                               DF9EEB668A1CC4A7214B71C3CED3BA85
+                               521660E758C45A6FE4937ECB95BFF356
+                  xor-digest = 5927765CCE3419C793B3E31123A3F5E5
+                               112476ED18E92CE1F951F376CA241A2F
+                               7E129EB4758277AF2DC138E1BB0E5C24
+                               4EC107938B007E3838350E577F92A15B
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                          IV = 00000000
+               stream[0..63] = F3834FBCCD1A984D830603079B84BF1C
+                               E206E384291B02568A1B28382A8F3857
+                               ABC5330AF9D2A4C2CA3793C38BB93133
+                               3F2F2F002A4140F51F9FD46A485F9DCE
+            stream[192..255] = 2BB4418A91CEAB46A01E20C4D66A223C
+                               F481700D7943073915051ABE06A7B7C7
+                               A76B9B32E842D6D3A13A7DBA447FCCB2
+                               AD22B94EF0075D064B90A0F876B2CBB0
+            stream[256..319] = B7114E94739FD4EE34ACE32F18D37D75
+                               8691F8886FB56505D11E24AF5608AB7E
+                               B1FC3B138959BE51FD435713462049B4
+                               7EB1E55207ACCC666CE979862BFC281A
+            stream[448..511] = F77F62F0D64C1361603562425F90D109
+                               E06599E3EDAC1A63E9012F798B52C0C0
+                               8C25F401CD91CAC1F8920B23762513E2
+                               74C34E9223B24B2453EDD8D9483F33F9
+                  xor-digest = 5156D21FBE5469AB098977FB82CA1329
+                               296DD99F2E997EE007C48EE564F167D2
+                               B35BDD80608B1617BE8B050DB1573FC6
+                               CA9CE5B4B5C6A100A9C6AB4D1E800D63
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                          IV = 00000000
+               stream[0..63] = 3EA4FB22727BCE3BB35CDD6CFEE54DEE
+                               67930EA0082D162FD5DF1106A22A8648
+                               B0C747B8057D37E8DAE6E31A7C8FAF5D
+                               1EF70E53026546C33779F4ACB45A8112
+            stream[192..255] = 564261A1DCCC10D45EE18909A26424A6
+                               6C2BC4AC5662D4869927CD4E47BAD7F8
+                               7BBC61FD4F3A855CE095E27BC9A7BA0B
+                               DDF469CD050FEF369D9528650AC151C7
+            stream[256..319] = 2ACAABB71F5579CCE7CE685A490128C6
+                               7DD867FF711ECC632B99F2634EE0CD58
+                               4D0EADD0944F6D009438EE37EC180C58
+                               09863CBA2952E747C9F5FE72146AFAC2
+            stream[448..511] = FB1DE19260A57F15B17AF650E69D5647
+                               F08F0E44F22B06DAEBAE2BA656A2A52E
+                               191695BEB824AC8EFCF4615F1FDBD869
+                               6D061B3EEAE53829BB84C9C7510BD980
+                  xor-digest = 4163A798C0278C8643C15B716897D38D
+                               14300C828ED7924E1266573FF51E505B
+                               E06FB33644DAF63FEA3E65A894131332
+                               C240235C225CD7A11206660B90A2F5AF
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                          IV = 00000000
+               stream[0..63] = F00A4C98E4A14F573FFDA822368F84F8
+                               3F3A3441A3CD615B2716D5C241E34416
+                               ADF71A5F21636874F9008145F0EAE5F3
+                               4727DA78250D7B6627A991F908A278B4
+            stream[192..255] = 1D7BE59624223C3A896BD0C1B7663DDD
+                               1145399610A5D108FEED3A4153059ADD
+                               B1ACF99CD0DAB103764952C8862CDF83
+                               609699048A1F4B46D778203DB6B197CF
+            stream[256..319] = 5A4E1ACB711437598A83FDB2D40333C7
+                               76405A11B9B4919ACDA954779A576A0A
+                               9DA920D8A84C2079203AD9DC41C70FAE
+                               92A74ABE6011A0ADFE3C89E2F1325168
+            stream[448..511] = 354B22541C6345C4036EADF9BDE73DB6
+                               AE9F64BD9BA1C2D20E33095222D8BA5B
+                               DFA9D332E3861125FE9B09DBADE0B624
+                               22050316463789E0546ABE84739F8417
+                  xor-digest = B5F7A2ECEF3FAAAA53BFFD4A5CC30E1D
+                               3F5A2397012656D59C09E627ACBD3418
+                               ED0D016809C18C837C3D06329B037B86
+                               BFC915B208E6B7627F5BEA7F030E408C
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                          IV = 00000000
+               stream[0..63] = 4ECF12C3D9161F42E0997DBBBD1E1226
+                               067F62859BA9D4DEBF38E70E798AD08E
+                               5A1C1FD68DE029123815FE55E68EBF0D
+                               4F4B0170501E40EEB93BE5FE48E37D5E
+            stream[192..255] = 04744CBCF03F479073AC673C4E23BBBD
+                               D07A122308E13CFEDAB31D8020319029
+                               1981EB83F1727856C188928C77AF3FEB
+                               5FEEBFD9A94EE379E65D03D37E425BD8
+            stream[256..319] = A9BF2D8E2A5F1F977F6D206FCDA6C907
+                               9077EF0381AB4BE7AB370E57D58317BA
+                               C96E5162E5A12F4C88BF69D6025A4273
+                               B33BF67DD789393EF6F095F3040959B1
+            stream[448..511] = 06DB6C491B8055763A84AA71B80508A3
+                               31D67B05601E6FC2D473C8C3FA12A5AB
+                               538FECF89C5B3A8A23D5900778FBD5B3
+                               BD34CB7539E423149CAD08FB464E94F7
+                  xor-digest = 3FB39D5FCA6A456B7A775A6CA39A5702
+                               71A3E8ED8810DF49EA21D733E69615C3
+                               74E0A357FCADE80CF0B5730AACAA0758
+                               0CA8C50D458B6A6F7647E846D2D626CA
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                          IV = 00000000
+               stream[0..63] = 486DB0C01C6D73EEAA6455E7398367A5
+                               683D56345C6B22299E05D72310BBAB4C
+                               37502C3A5D807F7FFF3D2221EB5504DF
+                               4122F0DEE6D388A6034B5D9A62FF17EF
+            stream[192..255] = 053BCBE1E381A03C372E3C2C44E0435D
+                               DB8981465AEB2912988CE766E8CF29B8
+                               6EB4DF1BDF7E7B8F6C538CD603F5BB8A
+                               619510D9B0B8DBE9DF542E9225231328
+            stream[256..319] = 6751630708A36454DE478DA1D472A86F
+                               92ED0555037DC3DF7F270EDFCB70DB52
+                               D6EDBB2981A16F7D472C19EF52668C65
+                               8482AF01086017D90CDF7C2807CFA29D
+            stream[448..511] = FF7E9D038685D9CB7B573326ED6704E0
+                               0FD148CA25AD229481456FB72702D60C
+                               456701FD84855746540E9C3E26FF9CAB
+                               A2545612643A4C0518F0B55D93F4977E
+                  xor-digest = 48E7727263924CF37EA1A4B5592D4FDB
+                               5F6A0B704D23FB37FEE485811DE286E2
+                               B55ED8D9C4DD034119625A7996F12C26
+                               03E450C1CD6ADA9066B7841EDCA148D0
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 00000000
+               stream[0..63] = 9C40A388FF35FA3E3F24CD2735EEB564
+                               6A0C266AABC0867DB07BA4F1F40AEA66
+                               1BA13B48EE114E9E21B2221A04377A57
+                               C8339DF7B4EFADEA1112A06EC1B0A85F
+        stream[65472..65535] = 76E1EBAB53B9B590BD8CCB92A8FFE44E
+                               2EE82CC98182ECC94013E714F4B57D14
+                               723616083A34A7DE196D148A780B53B2
+                               0A6C7D194377051FDCA45054FDC90321
+        stream[65536..65599] = 90B51AF180EDE2F08414FCA094696343
+                               5DD772DBCB909ABC9A829540B59DA2D2
+                               071B2A8C3540BBB94B6D6615DD5C51AD
+                               54D3D1C07BDF02EE9E193CB72D4FFC97
+      stream[131008..131071] = 9797F14E317DEACA2BE0F9BE78C331E8
+                               CC7A1BAD3128483A9E33B13931708BD2
+                               B85E8FCC804F5F34FED7EF0E564DDFDC
+                               A3AE71DB99ED8D711EA32784FE58331F
+                  xor-digest = 42CE020F9181052A1A65B28FF70534B0
+                               3C5AB0D14ECB077F8588AA6D36782C9E
+                               BB8E814321C111011AF1A97637E0B94C
+                               E1D2374CC3B3D67191C6CE8C704A20E7
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 00000000
+               stream[0..63] = F7FE906C6146C1E3D267F18FB3ECCA67
+                               750483D00A9B64225296D863E62B8191
+                               28890370B17D66341AA2DCB5A03AFD84
+                               C83BCF65AB06D624737B00D622C32E1D
+        stream[65472..65535] = D6A3A4AD9003B92B5FDF238653D3FF20
+                               3A60D1447C155C5630718D91A0D98B76
+                               2E9F562CEF27079B4B0457D06B7930F3
+                               777358B1B60CE28F13690770B8E09143
+        stream[65536..65599] = 86DB40C891B94AB5D1B6E8C6B056F394
+                               4DD7D96FEE6C147CACF6C1434B9225BA
+                               8E190344529DD1B64C2FA7C7FB451637
+                               9B9F23D16FBEC12BFAD5B907AF3304E4
+      stream[131008..131071] = 8421888AFC70FB150785B7F06045A55E
+                               6BE35A77F38F06B0DC74138BA876D93E
+                               79A1F24DE88FF208A4FDE205B5FED4F9
+                               47918E4CF05A377E5CC802B04CACCB90
+                  xor-digest = 917E6E1B1EC6532290D1F6479FBC537E
+                               983006F67BB84B53A46AC552D21D901C
+                               04CD223F5E870417A1F3DE0571781ADF
+                               F7102FFCB50CA0EFA63A6C3C9C503CEC
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 00000000
+               stream[0..63] = 95D8A0DDFCFE15D58A5934C044BFBFDD
+                               DAEAF65951E92FE61EBC78AC915105C3
+                               8B4D1F2E2B3401B7816E2F8C798D5055
+                               663F6F3AAF9C2AE3D315825E0608C070
+        stream[65472..65535] = 8B90D10356BF0A50598C39A3B2322B2A
+                               51D97D83885BF2D520F21C5A0AED7A8F
+                               56089E2D9A39BE6036A4CFAA33C65139
+                               49A4F7CC3915613BF89161DD46A37B5D
+        stream[65536..65599] = D3B5C6960F4E022DAB9BB8432E16CAD9
+                               55E367E32AA9C5AA1F69946F2BB30CF4
+                               3760DFF83443B285E39E605A41369D0D
+                               B752BDAD400ACD443C848D73D4FA86E1
+      stream[131008..131071] = 608872BF50550B044B565BBF09910F28
+                               522FF0F5C398A7CD05C1DF787F26063B
+                               BCE08D097C16DA8BFAD7B18DA1060487
+                               72A15B068D11B0BADB5D5D258E3848DF
+                  xor-digest = 7AD6E7965B89D3450CFB5DD916A7FD72
+                               1260BC14D3DF97D7D82B84F175382D87
+                               0ABBC65D50150D2F23599ADA8F80204A
+                               F4828F5243CC642A36A089151558A475
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 00000000
+               stream[0..63] = 761F923E918031E964DE456A4F7599EE
+                               2E5E861191677EE9848AE2F54F843F11
+                               85FCF0E5FB6E4BABB5058CED0C8659E5
+                               04A5C04B9E37D34ECD5E1872072AABA4
+        stream[65472..65535] = 319C06085E9F3600B61B4B5EF33C38C6
+                               9AF504336AA35C1759EAA3A052EF3BB6
+                               1150C18F675F2C4EECAB1F70FF5ED8EA
+                               2CC8725BB810676A64E452858F829C16
+        stream[65536..65599] = F2EE659D3D59D0FC8B53CDEC2CAD94AA
+                               1B5B8D2AB0BA851EF557CE2099F4FD31
+                               06B25A96E6004BC59F86A125A544B33B
+                               F062C96F96756A636900A4CB50156DCB
+      stream[131008..131071] = 518964C154283B2A775FFDEE59796C98
+                               9D437C93D5475B8EAE5BA9FBE865430D
+                               89C2A0D738263F44670A01DDF9D87D51
+                               CED715AC982A0BF13CBBA73B8CE820AB
+                  xor-digest = 6172120C7380799A5F114A7912983BA8
+                               52E0A37564AC3F4B263CD2F340E63372
+                               6D3CDC28B0025B97B98880055CB3BB68
+                               3C494379013AADD13B3BF5A701BD4B29
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 80000000
+               stream[0..63] = B0E282B22F352DFDC07DD288B550DD15
+                               5CAFC905975486595522B8898C2568A5
+                               91E43B3591C8E73926C15C3DDA97B8EF
+                               436F7BF3D5646333DCCE88B09898B5AD
+            stream[192..255] = B2FDF8C8E028A2EA66BA9368EDD463C9
+                               6DEC5E37EF17015C2DBE2FC3F26D4A45
+                               4D5DF6D1D8FB7EE876CAD67C035CBDE6
+                               C8F1FBEC780CF4543E0E5475FBA3C23F
+            stream[256..319] = 9FFFDA707ACCD290DFD9977A00D466A5
+                               711C56C295262B4F526E456FBFF127C7
+                               44C1542733A4E1AF6184E1EA8F7D986A
+                               A7F7F7190F00D93C1843F6C2B5645B97
+            stream[448..511] = 729E3C64569443CFD8D5B41DDCF8F5E3
+                               A44530A63519E5CE67951BBB5D7C0679
+                               E0C1BE77DBBA04CAC68E2D60AF5478AC
+                               963C4BE1B3A3613AE0AF3C2AB0FE68D6
+                  xor-digest = BA0FAEB4F52072D4D76A74EAC480BBC6
+                               3182EA90AA942435543FC4D8F2CD909A
+                               E1CDC64501D262A3D842A08823CB2DFE
+                               C11519052363907EAC5602E5115A55C5
+
+Set 5, vector#  9:
+                         key = 00000000000000000000000000000000
+                          IV = 00400000
+               stream[0..63] = 5ABCA10CE344CBB506A18BA516AC4F61
+                               66473172D6F7BB52E729025D9CECB873
+                               85445B538226DBF0DFD1ACBA729CFBB5
+                               20DCB1B7217516BBD43B9E12E33824A2
+            stream[192..255] = 091D625CE6BAE1EC8E10BA64BAC45729
+                               71051D63C84EA210BF2A9F631900274B
+                               C1B4EA16EDA9295D15BEFC10BDD90B98
+                               358CBDB0943FCDC6B16DEEE7858B1D9F
+            stream[256..319] = 9665C89EFC92AB9995A25FC4DCA5463A
+                               86C9FC62A9B5D6A958CEE471A7F4B484
+                               6AF75AB77F9A02D0776CF7B90EE0D777
+                               C85EC0D33B43B5C0BCF580D7106E16F8
+            stream[448..511] = 4C5AD63A38EF0B2E47EBF74B6615BC32
+                               F08EE9DF29108E78946E12DA5A72985B
+                               6AA1449CEA2A7618E9EDC488FF3A32DE
+                               899FBDA283EED2369926E2D0793C4235
+                  xor-digest = FC132CE103259B41DB722CE1A742DA43
+                               029CF743B4470A301F32D1365C671560
+                               9147FA4A0044DA6A1D6732263C7C3B6C
+                               C0E45188319A4CEBDF117A8F263CB7F2
+
+Set 5, vector# 18:
+                         key = 00000000000000000000000000000000
+                          IV = 00002000
+               stream[0..63] = ADFD06EB5396BCC5CA50C9E9809301FD
+                               C1B0D78422F83A519C4A4F0DD6C5C25F
+                               61257633A09B28DFA9A529C6EDBCD51C
+                               4B3617E44DD64A4F47FAB053B482188C
+            stream[192..255] = E4CD4141E8194881AD8CFC356EC85D16
+                               2639495DA41463436395CAE8DB926EAF
+                               9CB638FF57D7A6EE407AC2A51DC8827F
+                               7E89B1012F3DBA476605482DB804D188
+            stream[256..319] = CE929FDE3CF836FCFDC844E861EAECD2
+                               863A3099B8E51B144613A5AE4F045CA8
+                               AC90CBF31E887BDF1CB0EFBCE323F164
+                               314D1C616D0A7E76C93F4E2F5707D9FA
+            stream[448..511] = AC1B87CF4389530164FD6269751C82EF
+                               34677A80FAFAA421BDD302E1B232A1DC
+                               8230068765D043934A105067FDE54461
+                               F1CC17DF0F136640A102C239F62471BB
+                  xor-digest = E3B0803237E83D167191A1876648B535
+                               BF5EED403AE8FF04CCD081836B3BEA09
+                               B76B6FA7DDE3AE55783C4CA9F261BC21
+                               82697EBC34D5C09C02BD10A9DE83C121
+
+Set 5, vector# 27:
+                         key = 00000000000000000000000000000000
+                          IV = 00000010
+               stream[0..63] = 4C800E3A471C52FD8B67DA887FD15B2E
+                               D4AF608D452C47A91A2C1FBAE3B7B194
+                               E840E8B7F42C50107EE861B84766078E
+                               DFB53DD3DC639BE0E0B0E2D72C46A3CA
+            stream[192..255] = F4FD50DBE7C698C6578D602D0573F2C8
+                               4A958DD411DF5353B7A430182E8FD924
+                               1413EE3325E0E7047CBF6A5E5AE334F3
+                               1AF4C6EC9D3B3582FC773672ED150F35
+            stream[256..319] = D18FCB41EE9D7456A31976F8B17DA6EA
+                               4B7FF5AAF5A5942BBB5B9154F2CDE72B
+                               6BE7B590B952B4725B4445EB8D05E2DD
+                               3AC2AEF3AA2CFA38456322929EE637A1
+            stream[448..511] = 87EE9E24F0D4A69CC05123420865500C
+                               D5DDA7AFEC43B1CF3643B5D03677E7D0
+                               E53186E8E1920A8C64B4142BE199B153
+                               003898E23DD2D666519FF17FFA33089F
+                  xor-digest = 520818FF08152DBACCCF1694EE609EBC
+                               9314C19829BA6D6792E85CA7F7A47349
+                               0A84A3634B3005C03A3F22AE4EA8107F
+                               0C65AD19CDB547B626915991DA3BAECF
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0D74DB42
+               stream[0..63] = 98622F94A7A39FFE32995E487A9D02CA
+                               DF72F9D3E78675C7931D4B6609A30769
+                               A45DF93314DA5CFF0D7A8B42800BC681
+                               5EEBA8C8A323449389519D07075EA658
+        stream[65472..65535] = 1FE3A6FE1E4F103B36422B76FB7121A1
+                               8D99D207192A0756E6CE15A796E6B970
+                               31FE2B107145AFEDD38FB4A3FD96D917
+                               81AB7C03DB235F6F8CC1DC37DB130D48
+        stream[65536..65599] = B8E686CF6B51E93D5C5088266DD9FE5D
+                               CD220E0C801D45FC9660AD5AE4B13F0D
+                               96A2B5604DE5BF69D21BBB2D7B163707
+                               8D0B6DC75523AE976DE098B9D910621D
+      stream[131008..131071] = E8217BCA0D3E1B007120BA60229D9A38
+                               EE18D0D08491E54324AEDA1BC26F98BA
+                               D1E738878BEA001756725B7695E481F7
+                               8BDEE839401FF9D623889AC074D74A5D
+                  xor-digest = 49ABF14EE94FEB5644ECB4F2CD9B569F
+                               83115EC3034A8AE5960278352A15CA6B
+                               849D58E0E96A7F0FF7A0EFB34BA0CE8D
+                               CB17573228378B57674EBD849ED8AEAE
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 167DE44B
+               stream[0..63] = C7A9D822E7A9554E090B8DA41FBD7382
+                               86C2A0C9479541C8DDD226795DD21936
+                               9FCB25B0C6F1262B701B55808C332CFB
+                               6BAE5C3A953047AE028D401ACC34EACC
+        stream[65472..65535] = 35ECC704787D55E0C854AD5DEE262D4E
+                               6FB7353DC3D9EF5903ED4C79B446241F
+                               32A4061D20683C12BED1E84E1579B41E
+                               EF4308AFC350FA554458FEB462818A30
+        stream[65536..65599] = B540E8E105FBCE98BFC8BDB857EF6DA1
+                               B2EDC5C74485326FE4FA9BEC7B86CD17
+                               E66470DE0093619C9101E793A97BAFA4
+                               A5922660C43F00322D76D10451342ACA
+      stream[131008..131071] = 4D3BBCC728663A4CF5C6B8380E316E38
+                               FAE036735F889EA37FD1B85BC4BE4A1E
+                               0E219D457C53A778749226F136C5D2B2
+                               1E22E1921DFFF9C40C76B526E46D3DD3
+                  xor-digest = 79E9986B91706BE8F5FE5C92B3C5472C
+                               CFE4FD2207837244AD00243D467E4FF5
+                               FC85D3E540A9EFD2BB81839372F26F70
+                               8F9D0612D7467F65A9B6D737C9D1E3BC
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 1F86ED54
+               stream[0..63] = 866CD04AA1C99037246FDA7F32CE2981
+                               3D11B64F3F7A0B28C52010D284F49525
+                               6ADAF65BA72EB2BE4A67F7360A9074A6
+                               CF270DB522DA6D7AF12B298912F7A8A6
+        stream[65472..65535] = 2549B5F66AB71B744D8AD39E3D7A93E9
+                               C4D7EC516615F080185EB698A4F07418
+                               CA564E4F1D27FE64DC07C91923FF1E99
+                               DF9EB4BFBCB95274F6453FEDFFB006F4
+        stream[65536..65599] = 9D15348564734E69913D29BA5F5B2A68
+                               2200F7FDC462CD7F5BEE071893F20CF6
+                               DB959888712ECCC79B963D7F6FE2A831
+                               F86108F520C504FEA7227013DB2DD8E0
+      stream[131008..131071] = C1085896E1803E8EC1E46928C7C072BE
+                               6A3577217BA8C66F8D0EDF4C8333C265
+                               DE6B5D55CC09603D1B46A2273D776EBE
+                               5C709F7F39AF274A9864E4F10E805A44
+                  xor-digest = A8A0CEA201827B0C6D590E0C3A8FC9DC
+                               F3FF8A8C98C14F543583C2249EC22275
+                               E2F5B3981BF4371805A193D0601D560F
+                               B9BEC3E5C88128F3856EF5B9F44B8CE2
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 288FF65D
+               stream[0..63] = 7B362685AB703B854BB27BBF3356FCE3
+                               A1D82B2D7A9E4980F1AA290760D83433
+                               A1B89E0976C734A70C97540E0ED3EDB6
+                               C1342E7A1CBD1AA9CC9866DAF44E6602
+        stream[65472..65535] = 42CADE14EBCE4BD010AE3AB188FB781A
+                               66BC6B48B5CE92598C39AD5DAC787126
+                               7C0AF9ED3B6000CF80E4401F358A5AE4
+                               900C7B10E1A2E9861EFC0247A55FC725
+        stream[65536..65599] = 7816D058DF6B55151CBC8914B3765E82
+                               C98E5D66B62FADFD69BA20A17700F89C
+                               70961CC1A5A4864BF0A0615A11506232
+                               A9D32707D912D659548C6B2942FDDFE9
+      stream[131008..131071] = 29C2155DEFE694E96FC0E115CBCA41B9
+                               A69D1827A3B2ACDB62C3AF59AF83884B
+                               544EA2EE39211415DC667B5CCEB457E9
+                               24B54A9674003F81C8493BA469C4E5B9
+                  xor-digest = 9D4DA8D4F687A749CBEE317956E60DA7
+                               9DA2614FA51288CCC4AA8A0A4D8DB2F0
+                               4CA77F8CAADA930FD773C9E1F09208D4
+                               FC9A96EB7CC1450ADF3266E2192F4D31
+
+
+
+End of test vectors
+
+Primitive Name: MICKEY-128-v2
+=============================
+Profile: ___H3
+Key size: 128 bits
+IV size: 64 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = E6887D450053C0D62F9EE5E4171DDC83
+                               BA2D1D3509704DA31CBEE6B3AC30D371
+                               6372B72D26B0A06BECE677999F213953
+                               DC79BFC1A3EBEEA7869758B4897DC9A0
+            stream[192..255] = F9065D5F308845FF49D4C2C1FADD0BF1
+                               ABC35E9627299BFDC6193B56B9A2B17C
+                               4FDD65F8A1CA878EF37B3C0B935C7723
+                               EA0155697782D008D8CB13F4838CFD7C
+            stream[256..319] = A535DF543C40D489A3BDBEE57ACF0244
+                               A700BEE6F517A02A60D3695CC0D7EC1D
+                               0E9ED382DD8DE3CE9A3824FDBD3188DB
+                               0CCCDA9D898BAD940DCC0C68B78CD4AB
+            stream[448..511] = EA400389389186C32509E4BCCEBA8F0A
+                               6DAC48E883E124BF95A376DADDB0A367
+                               9B240F4EA2377B5BED0FC688CA8F0CF4
+                               EF93B248609C2C0CBCC77C3EBF9BCDBB
+                  xor-digest = ABCC2ECAC0E3FB8442716B6B18268F05
+                               AC87ADD30E80FE1C093A325C8A221E6C
+                               EFBDD222D6192F5DCDD54AB9349518D7
+                               6BC0886B9F648F69E729A81DC420234F
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 13BA36B6B50DAF2D68287D9ABCE4B4F1
+                               880B670D6619231C9D7EDB008F092E0C
+                               B64C8FD77A01324E9DFF730892B0F809
+                               C0EA390A0A10E6C946F2EC4EE695C50D
+            stream[192..255] = F3A0976FD8B4EF86AF5ACD114036355C
+                               35225EFFC9B925086DFDF27210B8F8F5
+                               4ECDE789F2E94BE24696CCBDCCAB7BD0
+                               8EBC2BFBC22E5D7919BD674E958876A1
+            stream[256..319] = D88902D6F5D9B1AD1E0ABB269B7B4C13
+                               C061B05A334167DC5A3E896DB2C65EE1
+                               1D73688A6C9258C94654059CA74B3DA6
+                               2093B98E6FE07698B8D83EC62FF946D3
+            stream[448..511] = B9409DCF08B9D14CE36CD7DC4AA330C7
+                               BE76F465F34CD70E1F172BC75A5DD5ED
+                               AED63FFA553F47F2FFCF6307DE3ECFB9
+                               00DB77910AF551738806666002A10D35
+                  xor-digest = CD3511757980DE985E155BBFE972421E
+                               DE00E00559B369AA93F9F836077ACA0D
+                               7F8284034A32582E828F33FE7533937D
+                               6C85AE15E97C6A0D1B189B6BCFEB0D8C
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = CF035F78F8E4354CE01DC97C98BE5D9F
+                               49400DA85253ADBC98D5B8454D99287D
+                               B1311F942E6CBE824A8BFC38B3AEB6EE
+                               9B9CABCA9DBB4BE6F8E15C6FB6C8B36E
+            stream[192..255] = 60E6D51F3FAF1A10DBB79F24E5E57791
+                               A63EA9139092E020899703B8029B18B7
+                               A9549F5A531557EFB01494FDFDC1E08E
+                               AE54CE24210EABAD3DFDFBDE64365058
+            stream[256..319] = ECF5C1ED0A824EF4C77ECD173A9E092D
+                               4B706E54656260622F7A95A7EFBB7429
+                               7CBAB49898F1E290F7E05EC7014D924E
+                               C2D250233B8C1756F73B2FB7D3DBC051
+            stream[448..511] = E08D72F133FFE173D760452988574531
+                               387AAF1A19A93E1B029338BC0627E0D1
+                               F74DD16FD5131D97C398FDFB00A575BC
+                               DFA29789D8F371C19448A85A971DD020
+                  xor-digest = 4D053F2C605E553564FA6F0317131207
+                               56C88235377D65E957EA6E2645BD61EF
+                               9A784E0667A2D88C95CD4E96D166365F
+                               600C334B5340B39BD73119F15259CFF5
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 7F5C81DFFBD7810FBC6C3273F06209E8
+                               313CA24E8CA405F80A4FA5C6DC71AB0D
+                               E7D3265A8CE67642FB76F7078A6491FA
+                               FAEBEF3F8C88DF873AD6144F32FC83F1
+            stream[192..255] = 67687821C0B97857C03678B02E6539AA
+                               A877BBC835C899D09F67A5622485F37E
+                               E9DADD77DFC5AF02132130884F877CB4
+                               22EF27D5DEEC4C6CC71966806E2E5DF2
+            stream[256..319] = E48CF1978133FD4F38F398A8207F41B5
+                               5535C3D78B897A4A7E785785FCBA3AA9
+                               18B4C2731F687A4603152CF7307BD3F0
+                               8BCED11D7F5F78BAB33D14792A7FB9F1
+            stream[448..511] = 0D45DC12AD2BDC9384D7EBE64C7C94D6
+                               D7BDEF20F269F35D8594D8886469DC68
+                               F3B08B67EA2BF386F2C42240025C9830
+                               CD08E03340EF129141B5599C5D24D14B
+                  xor-digest = 380553049205E68119C6235B2E9EEF88
+                               06CE1CD5726C2BDB33E763EF29E0BA61
+                               F293DF105B96BDD4D8A4288E941E954E
+                               610C3D2167066E10449D694ABA8BFDB6
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 9CCA2987B686B7B98E016D4F179323B8
+                               6AC7DB772D7F580C81910193762EA669
+                               98D0A61245237B565AC1842E0A556BDB
+                               DEA31CCD4BC170ADFE8FD663EEBD0A7F
+            stream[192..255] = 69078333472B771AC48E7701D2F173B5
+                               3E0101168DFFEF2683F2FF79991BDB14
+                               292011B57C240399C5A5DD08A60FB47F
+                               600AFA8569DE011AC81BE54D0C899108
+            stream[256..319] = 5D9B5273155AAB7368B2AE033DB55FA5
+                               2814CE9708A0038C8D508972D3E53D2B
+                               E0145FA56D517BFA0C6F821A1B197AC1
+                               3F2F20734832E45ED2388986EAEB0DE3
+            stream[448..511] = D9EF6A6E14BE40B36B68A6289F24CFB1
+                               87821BA57E439A9D4B58D3DAB0AA770E
+                               0BE718629D0417270677DB5265AE3D24
+                               76F98DC35C8002EA5E5C30E73B2ABE6F
+                  xor-digest = BD43F9C41FD0C995F144DF7E62352407
+                               F7DBD604544A7879884504A0D935B80F
+                               07C6D0BA8A7E8439BE23953BF01D356E
+                               C66716BBED52C537E560F5148FE11298
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 73D363150C1DD7905EE4ADA4482B5168
+                               AFFA60B77A2DBB0351096D57FEF5F80A
+                               FBD958568042C36B701D3DC8FDBF2385
+                               65F53D1CCFB775A7BE4B39555A9EEF4F
+            stream[192..255] = 03E99642BFF00D2EFCAF2FD1D24D339A
+                               DA075B330919F09BC12F82A853EAF6EC
+                               E79799C9F9AB271F46CE2D173AB3EB9C
+                               24199E7BF0947FC5AE840799483A70B8
+            stream[256..319] = 19AC14C1A50D78BB0C7D2BE5AB52B813
+                               49512E057378AD967AD1132CE230F1ED
+                               7F5AFA779A5FF94432F4E3F6A245B4C1
+                               DC1949454731E9FBEFE1B0A0D4539718
+            stream[448..511] = A554F2373E55CB98C7E48BBEA5565890
+                               9DADE8AB22CBDFC09F7E8DF9049EB8D0
+                               41C71981D01A59CF8F0C2690CE62F8AF
+                               4D7BE4575DEF6E96120DAEA351D8662D
+                  xor-digest = 2295313D387B2001021A4922958682D5
+                               D47EB090F9B71C0C0F78D527393D7B8F
+                               F0E3CBC8C10F03FCEB2D0652C8373083
+                               B654C71FFB55BB5050284C9D6CC3B781
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = F60AC832A3A3C03D337B00F03BA5A5B8
+                               B1B7264037BBD0D1C502A1B32AD8B81D
+                               AB37544165CBFEFC6D3539CC9132BE74
+                               A05A2A2C52CA4322E4914B93C90C4801
+            stream[192..255] = 50D74E90D050BCDF5DA0B313A37366D9
+                               BED21F793254BFBAA1ED4139351C61B5
+                               05F1D052BB8DDBDAD719CEC63E8FE4C1
+                               ACC0E0AC096975AA93584CC860FD7D18
+            stream[256..319] = E4EA96F0DF02687968A0399B94E24007
+                               D5B1D4AE469A655F9769920A4616BCA9
+                               4620661A88621B76DB5FBB43AF76211B
+                               3AE5098C58A759082FBB1E6EA239732A
+            stream[448..511] = 08B8C51D5C53FFC1E178D16D29D85053
+                               D8B38641896E66F710F1E1BB61DC2864
+                               0D8A6B8D53B0234A4219047C9C2D7DE7
+                               885D40B0E0F7A57041E26129FF1D7017
+                  xor-digest = 13F361630095399CFBFECFA0B90B8A49
+                               AC75AE405289A33C4DF568970F98A5D2
+                               C3EC204108FB3903A819A096A4FC3F0D
+                               0F33F9FEA9DA240DE2915FD980F6F865
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 5AF1E91AA8FD3C02F16435CA09B62144
+                               9E28657920A810145A07ECA68A68C562
+                               56D7EC4F44D8E8D58B2CBDF68557875C
+                               DF03EFC0D8685A497FB7A4AD808FE390
+            stream[192..255] = FCB7FCF0C1FA3CC4B1BA15D11C5C7D96
+                               4F7BFFFB8AEBC65E45C010CBE46F055A
+                               666EB009DEF6C9C4EAB9365650945B54
+                               274C522857FAD1A683966557979CEBA6
+            stream[256..319] = D51BD4A70C3E3A19B9B3AE32E8D2140E
+                               5CB891D0E133FC892F76A06493129870
+                               31DCAB6CF51FE3078234044634E1DB38
+                               4E8E12DADDD65F48899C5B563E3DD3D2
+            stream[448..511] = 8BFA74108C4BA8B6660D8CF835703B6E
+                               4E8E7124F5823B21808F72CF71104085
+                               338C092D0A4D8637BBC4D55F81A8ECA9
+                               6D885E7FA4ABAFCB12A5EE57DC5B8207
+                  xor-digest = 06DAF035A3A51A0E3DA09EE51D52DD8D
+                               26D3D8031E34720B8AE61D474E4B05ED
+                               EAB5E943A06B6365DBE1A9419FCCE56C
+                               6A09F2AFEA9C7C7E50FC2D526859F26E
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 8302488BCB93647317FD604B822208C0
+                               C929BAB392AC1F73EE91F57A4BCA734D
+                               321707E90C0858B337E24F1D77929774
+                               C5C462CD4A606301B332D549689C374D
+            stream[192..255] = 42A94D76A5CA950CDCABCA94E9ACAEA1
+                               A83EC25734DAC0CEEB8E9AA43D22423A
+                               799FCC0490B6E90DF20E1726F78009EB
+                               A62E222AEFC19C24DD93E5E7DF5E5355
+            stream[256..319] = 0323153B38CC7B2FBD3B0894EFDDBF13
+                               A694B5E31BFE27B39A995884E04A2AD0
+                               A1B70E490D29660ECFDCE12966672B27
+                               F97A39856BA6FBE30E8CF88235955D07
+            stream[448..511] = B374607D83A79ECF86FB929693B23452
+                               D926184DB1B56ACD9A5A9C14F4FBDF60
+                               268EB46B20FDB4506A5C9E77E3141B27
+                               49749CDBD9F38B46332D9C41CCCC8C76
+                  xor-digest = E8D9EB83A91BEFE1571F507B4579F2D2
+                               4DB980313865BC84759204EA9631B07B
+                               BB6D1C0757E7EAB7384F345AE6A16974
+                               C44105CE147E80A08E81488C32ABB72E
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                          IV = 0000000000000000
+               stream[0..63] = 3FFC8D219FFD3D6A6DB85EBD083BA106
+                               798074824139F2322D5134F601F2A226
+                               5364548210AE428E965860800FE5FFDD
+                               967590EE461AE5FC1C958D0D60C0D84D
+            stream[192..255] = 123C3B417A2B45B66536056B92442F18
+                               ACAF2C4456D76EBC91CD27DA8D8DE7CD
+                               9F2BEA5292E47DC515BCBC26C6D52987
+                               305369E79E8ECE5E8E5B1022863C7AD3
+            stream[256..319] = 5FF6953FD1643FEB6CF91E69EB8A4190
+                               D813E620C3B926ED6295C41175915943
+                               5A8FBCF572FA9B0801A131451AFCDC22
+                               FAB99F9BE81A6D7C7AACF6E6147F634E
+            stream[448..511] = 4E97785EA27A466A38B0DDDFD7317FFB
+                               EB3D9ABCEB137205FAA4054EC0D1C3E9
+                               2972E2C7201EEBECCD9ADE453FD3F5FE
+                               A2DAF1A2E33A592CC16B1EC39080CE78
+                  xor-digest = 5CA9C50F8376F05FEF19103502EF8A49
+                               F799B5830B87C294C9FDA449C54993CB
+                               31D7957F5931165A1EB6F4D389F843AB
+                               463F16CD128BA6402869B2896A57FDDD
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                          IV = 0000000000000000
+               stream[0..63] = A6CFD108628AEDD7DCE68D148DB7E41E
+                               53EDC7571046C6592B3D90FA7CBCB8DE
+                               4A81FB49914FC954C9D177D6C49B0214
+                               E4F46B4A68FB1AF44D23F856845C1F9E
+            stream[192..255] = 3FE5118354C667110E6E469CAC47EAF6
+                               E8198FDEFB3A9962D32A7C6B5E4837CE
+                               CB7CA807F3E484CE17D5BECCD1EE81D8
+                               F7F24031AC021DD91711BAD70CB9B4BE
+            stream[256..319] = 3D7E37A0DE196E011B6C4B06DD7665E2
+                               E383A92DFF309368C8FE2DFFFC9777E6
+                               C2F6B1196DFE70E0C29AE8AE426F201B
+                               D3DE7699DF3436206F98DF89ABCCFFB3
+            stream[448..511] = 6D3AD630DD37D9A8053987BA5BC6A256
+                               DF4689A469623A84DD04882020E96DA6
+                               C287A0DEC2C133BF9C9D86FB5218FCB6
+                               93870D91068D76CF05BE3FDE440DA591
+                  xor-digest = A2E1D8F752B7D252E2C781683217F977
+                               CABADD413A9C7EE7945A6541EA13DB23
+                               1E4321B8FDEDC00C80E0ECBC4C9E40F1
+                               4C359FDCDE3F6A9DD8E60A8494D085D9
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                          IV = 0000000000000000
+               stream[0..63] = 7292F1312C8FA3256F61720C29777115
+                               CFE60D6F4B5A0651B7495510EEADF1FF
+                               869BAAE8D87AC5FCB0E94E33B8348A3A
+                               D455B839F943C00B7592FFF6021849E4
+            stream[192..255] = AB661199191824E12B11E2E52ADA5623
+                               23ABF09E05CE1A03F8F6B77790AF2FAA
+                               356F5156CC597C94D619A435CEF4536E
+                               804677A80F0AAEF79B5159D2ABB1384B
+            stream[256..319] = CEF7125FD5F999764218B4D4E79C8941
+                               53E522F90B9594B90FA892F173C83840
+                               E1FC53B8846ACEC795B69B2137A25D8D
+                               1DB907DF80EF9A7DF7E3263C02B26448
+            stream[448..511] = 2621CB524DE4C3D38FF3A20E4A1FD16A
+                               FAA769B79D3FD90C47D1B6A5C7C3ED3F
+                               C967453E98C4526313F7966F869E209D
+                               40133BEE82374B999F0409C6AF00AF26
+                  xor-digest = 9B13E295A0FAEBE0E0BF0F73882E2F69
+                               51B9623FA09ACA3AD8087423D402D67A
+                               4DC855DE90E228EBF41EF7C6357A1A57
+                               C89F1136D6A98C4766587314D2E3AA54
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                          IV = 0000000000000000
+               stream[0..63] = 34C5C616C29A5B76718EF92055AADCE5
+                               A90DCF0D6236E4E2BF5BEB961DBC2434
+                               F694812689B4DDCAB1A040D2C7EF3E32
+                               7D2E762862CEFF1A7C903170FCA861F3
+            stream[192..255] = D1EFD53DAE425A374E3B1D9B58EE8100
+                               7EF3EF72E5C8F9FC81F9868E27F50E4C
+                               B2883B0F05848E15AA4FD9527EF9916D
+                               2AEB832C995E6DD2FF431EA215574486
+            stream[256..319] = 162B0AAB9926CF3AC6A49954E9C75E3C
+                               E4D829234D1F9F27E2A7C906769F9C72
+                               5AD827C6170DBE22AC3E1691E45A2416
+                               A3C48406EB6C7218158B21D46F2797EB
+            stream[448..511] = A2D34B0F8179F3C14AD218E33A1DD0E7
+                               E8067A8705799F8B49C13C4F6B8F9B0F
+                               8FE8F7AD8BABBABE37FF9A4542656667
+                               2547C78CD182249A8A17673B40523238
+                  xor-digest = 831BCEB5C21275C373BF9048143170A4
+                               1ACF5F633310CCA9EF25C886C4FA966A
+                               422D30172B97D3AB72FF54315BA5B8D9
+                               7A17B1BFA1284C4A95DD7EC9819C7C59
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                          IV = 0000000000000000
+               stream[0..63] = 8C96A2A1AB379A77BD4E3FEF9D9EA08B
+                               90A877420A33016A449C723BA0D47596
+                               71097DD74F870E64576D6C0A454B35B7
+                               B74600881D6D56F71CE152439B92C3F9
+            stream[192..255] = 8C667BF29A3657718E99A676628463AE
+                               F57DABDD12669453F22B68D55DCBFBC6
+                               DE298FA3E777B67FBF60C841F5306547
+                               AE1E2C24E3D20691509B5D2B0CDBDF27
+            stream[256..319] = 7D964834C025CFEA1CAABFB0FAC7B3DA
+                               8FD2BDAACBD28CA7A7F7474898D4D7D1
+                               8E8FF8B1435C0BD40920E3BD0B806D12
+                               B2F893D146221C04450F9A952621993C
+            stream[448..511] = A071674848FE95DDA48C7D8654CC6363
+                               D9CBE4EAFB7C8BE8DCA5BE27AE503544
+                               BE0BB5CA28B16757AA5DEC8249D1FCA3
+                               8025D3A33C4D6EE687549CF55B6C229C
+                  xor-digest = 945CC28702A4F3ACF28393724BFDE5CA
+                               13CC9744F55EA70129183B1281766FDF
+                               4FA03908F98C1DABAD3BC18FECA7A9B9
+                               17452F1EF5411C62A0ED7C8307C25DF4
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                          IV = 0000000000000000
+               stream[0..63] = 6D488F1EB654F5B9DB97C453488D4849
+                               0DA8AAC3DDC72B46125EDF5CEC1277A7
+                               A5865823D8B9367E5DB564662BADC28C
+                               4F7979572C48525217CAD6F7F527A4D1
+            stream[192..255] = D6DA6B522C177465D6848580F2B3B45D
+                               1C3BECABF5F80B5B4667676E04CB316C
+                               0998580618938DCC901655193E7AF058
+                               112EF6BFD49C997025326065CE07DE04
+            stream[256..319] = F482987868AF5F55695DD3F326983D93
+                               BDD6FF8C5D65E5D7DD402CF5D9FC8F71
+                               DF78E8543C6D14950C61311C5DB74FF8
+                               0C156BAB009116DFBA31FADAFF97BC74
+            stream[448..511] = 20CB4188EF13B5F67275FAF6D2984F93
+                               E689C56F9AF3FCBC26AFFDA55D2B9377
+                               7F7FA720AD5E0A8969A66ABECA5EFE92
+                               09A9A217B43313840E302CB6BCF55558
+                  xor-digest = DD380F287EDC96058D40116D7C5EF7BA
+                               E772F2CAAE5BE09DE244DB3AA0C46E52
+                               3D501F887C00082DB550489A8D6D89F7
+                               EC719209A1FBA4DD0A3D154D629D1F96
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 360EEDB37EE5F8BDE4D1BE3BB9BE856C
+                               4FDAA39055AF18CD3D6526EA79F557A5
+                               24B6359E119CF998D4DC2D1EE68F8FC4
+                               CAEE79D83B8A715F713523794117557C
+            stream[192..255] = 85E2D49DF0D66BE470BAB4185A192A34
+                               F8FA127B4720287EBC131688C462DBA2
+                               24871102B088A52FAA966F28546A0947
+                               9B0604EC2675919490583746BDE59D45
+            stream[256..319] = 3EEDD1F32973B6C98665039524C2916C
+                               8CAC83F190B83DB028605DD4C5CD2B48
+                               1AA16BF8D29ED50F45422F924631A1D9
+                               C50C391C46593DDE91F664C780231DB0
+            stream[448..511] = 60B471AA2BD5C9589CE13B29455E4888
+                               53E5FB4F7BB5178BFE160C0909B04ED9
+                               8E2E0722B165FF39207C0F34824828D7
+                               4B59CE3C5D52643B0B3A8A33F2842511
+                  xor-digest = 38A2BAC1B10790331AC66D4284B6298E
+                               E6FD06E19E579DDFE69AAB5DABB901D4
+                               E9E8D92C636D04C91D1142AEF7A799CF
+                               7021285BC060408CE61FBC47176656EA
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                          IV = 0000000000000000
+               stream[0..63] = 85CF2E9D67E09DB760561A917554B1BA
+                               4F8A3146071A9839A57EA66EC93620F5
+                               4A5758CA2AD2F46C6A0C2AFC6C4B836A
+                               B3C53CF803A3933F9DD5B7E9D4B571E2
+            stream[192..255] = 38C82BDB49713FE42B21F3896AD2D571
+                               AEBDDC5A45787CB120FF820C77BEB495
+                               70F881D3AEAB175BAF0A5A0784E02C02
+                               C094BF121BBD6EFBDBF72D21C6176064
+            stream[256..319] = 6CB338DDCFB57F20FCDDEC124B9BE58A
+                               4E20F6C48B99ED04F05C6CE8EDEFC1CE
+                               4EA2E1029CEDD6F7CF5C38647D7E8C6C
+                               3B19BA46722907F45F1DFF178C3F048F
+            stream[448..511] = B33D4663754329154B1242E7EAE24B3A
+                               6908F9B83377380DDA04558E7F0EE215
+                               3018817AA8304073B752325796633BF5
+                               DAE711EC54CCBAB6F65E5D127106114F
+                  xor-digest = CCA1E9DBB31DA6C1FE383971D7348F5A
+                               04665FEF145B9F7D1805201298F079C9
+                               78B7BBE6687E88690AB152A9E5991544
+                               9B4B737B8E11EB32F72D3BC9696AD299
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                          IV = 0000000000000000
+               stream[0..63] = 2A059CF2F512A7E31D86A0F7873C1FEB
+                               E9F8BFEDD1746AF582808054F5F558CD
+                               0CA07BE1635F58D9DE8D9D6982D6CF5D
+                               477B5D88F7C684D8AA3C00340749EDD9
+            stream[192..255] = D654AA2FABAC613D57311F163AA199F3
+                               BF6FDC16365188D8A1403A478DC7A648
+                               70BE89715496C030D461D49E9055B695
+                               FD9A62AABD1C09FFC737067777DCD7BC
+            stream[256..319] = 94A3F9CB8B2025FBB427DD6B45E8F933
+                               4E438688081CCB498218D9916E8174F3
+                               4B22BBDFC3EB375251E52CACF128A7DA
+                               B4FAEAF5E4A63D99D788AE01722C7164
+            stream[448..511] = 68DA394EAF03F0E4A897FBA7CBC373A7
+                               5FD83AC4A1E4300875A6A919FCB66955
+                               BDE522DB97FDA2683A0C40F3AB5CFCE2
+                               085BE32D64AB4875105AD5A8AED4F790
+                  xor-digest = 019AA2972A1434888F0DBDE316F1FA5F
+                               866D414D1664C53F4E1DB1B01E1BF294
+                               E6BC628D39C81F881F27F5459F3E1808
+                               1BBD70DC07EA756531461520C1A21438
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 0000000000000000
+               stream[0..63] = 140234334E4780AE2C91D3814D7E1A79
+                               92A8A46C8E6970FBAEF6620B5913C9C2
+                               213B1445DD338E4335B8CC7FD3D13305
+                               A70EDBBBA84491CA8BEA05E50784C59C
+            stream[192..255] = EFE189BDCFC3041CDBB55E3E09C16005
+                               B2A15BFD63ABAB3071BC314BFBF5DB9F
+                               CEB19A87EE17D693F8F0A48AD36C831F
+                               B8849E42FF86BD2D451199BEBA2470B0
+            stream[256..319] = 002CE41A389DF29CDC5D1BF26A941B8B
+                               BA45D434BA220209DE0D7DF1A1662D30
+                               3A4760C3E40B0EE5A27D15FC2C77B391
+                               26910CDC11042B3C550CA8FA87B142DD
+            stream[448..511] = DAE56B2F57A845083C1D7CA6C2313DDD
+                               69001E4ADACFB71DB1EA60D2C31762C2
+                               501872B5E996218237A0480C9792EEEF
+                               44007DA19DB95A62D6F0A966D49C6A25
+                  xor-digest = 1543DFCFC775B6A5CDB4DE9EB3F6EB6F
+                               B09792DF837CF518BD0E8BD41CDA37EF
+                               4FD0AD5D274CF9546B599BC982629493
+                               189F384E679B76C43E4891AF0F3EF4B1
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                          IV = 0000000000000000
+               stream[0..63] = 94C933142B8E253E76469E0AD95A9256
+                               0E94CF96403D45A74BDAE15CB0B5DEF6
+                               CCAE658FFED46DF88A3BC19C95B04F76
+                               96AB1EBC7863BC11703C0A6FD25778EE
+            stream[192..255] = 7BA006DC1ADA716354A9894F5C7F3FDF
+                               98DFA197C2B1E7C90B42820A247F1CA7
+                               8BB1309D375C02E765CA2156952D2D58
+                               7AF3C0BB94B839013243A2DF6640471F
+            stream[256..319] = 56316AFB5EEDE848997D5E9E9971660A
+                               6E9F846A2A2260A17500D824E23213D2
+                               9A485E1809F6823616A50A6D31E88333
+                               9991A585CAFA89C45F54A1A0E32710CB
+            stream[448..511] = 1847474B5C29E5393B44F20192A3703F
+                               65F174FF2BB6F378BAADC460A35DE288
+                               A85A5EBACA71F59F19EFC8E88422B7A1
+                               E74BF3E3BB30D761E469794E5F644F09
+                  xor-digest = 8D52658B3EF356AA47EC7C48A89C650E
+                               8450DC718279E32BE0E02461B450EF34
+                               ADEDD4ED6E6D2EB6A9BF1514E1B36D4B
+                               705E1A8076D94D117B9085B83DDB9BC4
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 0000000000000000
+               stream[0..63] = 10E3A8A46857CE668C8836089BD692B2
+                               F0EAAACB42B0105A9C1B3D3E996813A7
+                               8C811C9381B80E40EDD11CCD19B94E2D
+                               AC42A3A8F9C176591E600B17FA404A63
+            stream[192..255] = 5A6638019B9E2D74DD9CCDCC7B570583
+                               4C44FF04071272B6884468685EEBC534
+                               BF8653BC669926ABAC223EA8D0DEE35F
+                               04FAE7D835193839E1D727967C3317EC
+            stream[256..319] = CF3C40C4AAFD382A51A512EC306B0C95
+                               050D4E703D80818E232C2A87ABFEF4C4
+                               A472402AB9D1342430D0BF1BA9DEF0E0
+                               3FE216DBF5CC757F1F7D79082C9D5847
+            stream[448..511] = CF16A671AF8FF3417A850919AEDA4688
+                               809D63E51BC8034BFBA4956D712147EC
+                               2C18EB033AFEBD50A156FC8E89A6157F
+                               57925A1D04A614845DA29BCC18CABE6E
+                  xor-digest = 1B5E4E99A093DE83C7EF0D00E97D792E
+                               63C981733F64F48343191AD6A068AF09
+                               F38225B96A0305F39833077F198E6AF5
+                               FA8FC41FE8E956EDD14FE83CE64137F3
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                          IV = 0000000000000000
+               stream[0..63] = 483FCA84A4D8A1828688E3FAD934BCDD
+                               0B8374314D956C329D2E53556DF6B13A
+                               F9D341DAE8DFEC2675F48563FDACD5FB
+                               E0ED7B75A0B90D34413660F670A07BFE
+            stream[192..255] = D86AE8DB7B30842B2EA81468A53794D8
+                               4CF484AE81C721A3C3294E4D5254E1AB
+                               E20D1FCF4841086709D4B568102D43D1
+                               B087D4A251BFCCD47FAAC4B97B2A9AB9
+            stream[256..319] = 39B1149C38F482FBDC42CA5109168B58
+                               EAACA9681779028FC1C0A919202F3634
+                               814E5E1BD3921A82067FA48814CF64E1
+                               21E4DF07EDE5A21ECDCFC8AF57B6788E
+            stream[448..511] = C672B3213251FA54C3165D0D68256800
+                               56502E60A90497E457907E12829F2E7C
+                               6ED951623A8BF9301FA8A88206CCF13B
+                               4EBE5E2D3F9B32CAE74AE6535A0F83E5
+                  xor-digest = 43D57D3F0F4A29FC46DF9A3003251B5F
+                               6561404CEC77E0EEDD21CE1DBCABE046
+                               65BE577A4988432519CE9B4DE28E2A2E
+                               C75873934BC3C8D8E0790E29F0C9F3C7
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 0000000000000000
+               stream[0..63] = 8F842A91E6DB9F5EB0FBDDCE0F89261E
+                               300B7D6081E1CC0E593565DC770923D1
+                               C67BC5317C185B07A7CCE964B135DE79
+                               984F6D19FD9B6BEE71A180364EC753A5
+            stream[192..255] = F373F7FD82CC1B0349057C3521212F3D
+                               AE8954286413EB27695055D8F1DC1CFD
+                               9564E92039985F0FB908280FF4D82935
+                               2E28150C598C8BE7998F460427EA54BE
+            stream[256..319] = 8025DE48CEA0F1001DD39EE49CD98AAD
+                               481487DAA543D19D39A6752E20A459D1
+                               7F541B6613DD2915D7C36A7E826093AC
+                               9DCEF6905A661E8AFEE00A2A22BC5EB6
+            stream[448..511] = 29B9A2D288FC2E2F78BD91C6B2928ABB
+                               DAA8C3CF09D910194E044446DDC134B6
+                               F0AF65DD22BF9A8AB147754EEE16F455
+                               7E8877C9593A706A439DD54E7AA32FEE
+                  xor-digest = 2E19363248915932FA84D910FA5AFC7F
+                               27EF7C5EEBD7A3C260EECDE73DA944FF
+                               1827278AE49387226ADBCDB1B91E7C6A
+                               F55DC2ACD2CF79760AAB3B51F00894F1
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                          IV = 0000000000000000
+               stream[0..63] = 8DEE8D52A42D9A971A51C7ABBA43490C
+                               73B3EA9A1A4220D8615A02CF0DAF2C0D
+                               6B82B95298294A3D9BDFC939E1E61363
+                               BF23232C1D94FC989D7E3D2D82ED063B
+            stream[192..255] = 31B5A09256791927B63362FAD09641B1
+                               85493F3E5D8864F6F203612C486394B4
+                               073703681DCC813B066BC6B144B6D615
+                               749C84C80EAFB48404BF4CDCF8170DAF
+            stream[256..319] = B611E6D58CBC67917751A224F7DAA03E
+                               28F141B809D304D08C854F805621C775
+                               8BC1718185B4311CD5E4E6C64245A004
+                               D7713D296647FC12F42A6C7A646CA20F
+            stream[448..511] = F3FEDE3C7D3137A79A00AB7DA34804D3
+                               B6E468F39354D4023EDC4E502C21B1CC
+                               2DDC291E890F05A007DB6173D7229299
+                               6014378D198E36B63D0515BC56141CED
+                  xor-digest = B35EECA1424B64F2C4F74BA9CADFEF97
+                               F3F99CFAA387E191E4BA7BB92D88941D
+                               16D08528FA52581A5DE9AE3AFA9F7213
+                               7E8A5F26A94ABCFADCB95854A3A91E97
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                          IV = 0000000000000000
+               stream[0..63] = 7C4563BB6D7088E164D55C388AADA06C
+                               885FCFABFCA4BC86EF2C1E8882C91EE3
+                               76EC37CC993B0961FB7D12D9205A5DE1
+                               22A88184324978ACA2D8FEEB0F64BB39
+            stream[192..255] = B18A96162D9A459126D8779B0B871055
+                               0DB5FBC7E328A70F56C757C717AF2801
+                               C29CD588C5F6FD7A8F1EDA5B016E05BE
+                               64F82038FB2960094626C0EEA07DE508
+            stream[256..319] = 5CD9B07083F8BDCF7EF1E718B11C63A4
+                               2E556993CF7FEC281F8F501F42AB30D7
+                               53DAD17E388704B527FFEA0A16770396
+                               E110C1EFAC0208A37EFEAFA6DA341ED8
+            stream[448..511] = 4AC5CDABD133D106E1F781B8F93B596D
+                               54BB200EAF06E70B55DE3DC1FF6C3A27
+                               38F1738062DC3ACF2761DAC8513F3106
+                               EDC4AA4961505EFD60164B9D5A67E8AA
+                  xor-digest = 3606EE1827FE644903023FB49BBD83A5
+                               59116005E32A3F5A594C64F829206834
+                               4D56DCFB8A1513E04A6C5E06757D50D2
+                               EAE4B447F51D5919D763A95BD8F7D7C0
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 0000000000000000
+               stream[0..63] = ABD784543A9739DB641E894C0D9ABB28
+                               F60FFF76F462CBDAA0C60E76A23DA74C
+                               E69403F448880C7F540885106380B9F5
+                               F1FD15E0814D1F64386B4DD781BCE570
+            stream[192..255] = A3C424288BF097D59FA2B339409BEC84
+                               A3B40F4DCE5101AC377CCE76AE249E20
+                               81804094DB0C744957AD8B8EDD37038D
+                               71A3C57944D91877044BE61C89969794
+            stream[256..319] = 97BD1ACFDCE7B185B577CC5984CCF198
+                               77DA63833FE4C1D4CD15FD4B2C06FC3C
+                               416E882243F27C1ACCDE68E869F7CE91
+                               003B971AE694512FD7C1C2990423ED08
+            stream[448..511] = 4CEE7545060D18782CB5D23AE78F9468
+                               1F9AE41DC9AA49C53D3A074CBBFDC6BC
+                               893044D9B4EF173A66D53E17BE0D1975
+                               07778490E564582348E770B891ECEBB0
+                  xor-digest = 171AF1589D7BC6E6382FD266BCDA2AFC
+                               8BC85DD51F190F37EBD405089138CAA4
+                               95FCDB7284AC32CFE97F989993AE32B4
+                               C329B02A08771CB020A681EB33333B7D
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                          IV = 0000000000000000
+               stream[0..63] = 7C4611A21107ABDA8AEB4F62E29D0B1D
+                               7B0BA79E916F4C2531BE60467B682717
+                               9101876F4A75122283890669438DC8D7
+                               E737D580CD26274CBF9620DCE18591FA
+            stream[192..255] = E477BFE280E798B99F573A8872D82DC3
+                               9F5612313BB6563C7CBB5C47BB7C4484
+                               A929A32A6573B3B50F4F735488FB1D69
+                               321D5980C0300D429F6003BBFD6DA5DD
+            stream[256..319] = 7A247CA454C73D852505BA1D513548C1
+                               4451D537BA229FA332073BB4D2D4E867
+                               A0F89D666EAD97F1A68475DAD98369CF
+                               05753EAF8AAB5722CFCF79C331359CAC
+            stream[448..511] = C5B34F78314E21E6D27C5744633D7F77
+                               1B6FED6B4ABA229D52A222E2D99CD255
+                               5F7EFC8EDAB78D341570D5E8047EF6E3
+                               074C1F6E6829478608631381CD8D21BC
+                  xor-digest = A21E7C1C9C781B0CD27535FE31071432
+                               167AA8EC82CE9EBA53CB83E6F5E1427A
+                               D0FF471F44E6CEA4CA3A902CC61FE1EE
+                               AA8256D169846D0579E5F645C3B4EE18
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 0000000000000000
+               stream[0..63] = 5379E8EA4C8F2C6CA123AED04E0CAEC1
+                               BB09170C219D6B25CC9523984D1BA48B
+                               D3A5E90CE701C419EDC5DF20D8E3F208
+                               A71427ED05BF330F6290B7791DB7C9EA
+            stream[192..255] = CEDA7611C3DF41245597A5634A5F0EB9
+                               16666EF543CCE0FCB8A51F6C3748A848
+                               5979E608EBBE59B24266C8E2D4FA1C9A
+                               0184AA50921D9B6D7EEAD2180B84772B
+            stream[256..319] = 7D55D2539FF8A16307E3C2BCC9C783D1
+                               4DB93C2D2393A19574AAB15475545E90
+                               F28A612100675499F53734730B829D43
+                               33FE63FCA316164527F3BCD9CF75B429
+            stream[448..511] = 1AAD97FE179F81C455F545FCB56E8F91
+                               CB653B1F597725F2B88BF21868630CB9
+                               7FD76D030BF79F6A9E271D6BA431356A
+                               C8C33006BBCA35C3DB86BAB806059D53
+                  xor-digest = 39505C19C4D2C94247F2D679A9617B00
+                               38FE6CCEA8B919AE756170F15A3DCA7B
+                               47F9FD0A413F5C4CC64174AE1EB36D57
+                               BAF36D57B5EF93374B260AC303901149
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                          IV = 0000000000000000
+               stream[0..63] = E7EACC12F3E08271E348C0A2ECC524BE
+                               0EF67B52DF9378279188A52400AF048D
+                               178844D300DB4289C9589936C8D666EC
+                               8BBED66890B1FC25960AE19CD06E94BE
+            stream[192..255] = F6054C714FEC55D96389EDB16C615C81
+                               CE240D1C3D06C526AEDB8C40B4A9207C
+                               5B865284AD3C6A4E70CA55DA8570B693
+                               680229485D1451CE03B6803A782158D4
+            stream[256..319] = C45C82E93875877303D0B4D884882EB4
+                               6435F014F8B0F850A6F042CA6782013C
+                               7286C74CE608674E4E63435D8F6CA119
+                               14EE2F14D91C1A4776D760436229FF19
+            stream[448..511] = AE54AC176158DAFB8DC80BDC2FEBBCAC
+                               1842DD95622C1F8AA33D1126DA79476E
+                               3885F5E4FE12D18ADDF0C873A34497D0
+                               C297A4C1A5645A604ADDE9890A67C7D4
+                  xor-digest = 88B51EF21BBA6713010EBFB8CFB0B459
+                               ECA161517CB875869BDBC5D1F654C96A
+                               0A82AE6371B2650E1CF0973CACFEB6E0
+                               61CB8F8CF4A4D5FEE7D6604A68DEA393
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 0000000000000000
+               stream[0..63] = C4B13180C3F1924C5762B6BB91A1315A
+                               C3553DCD168DA7F52422E2DC4025D688
+                               A3BBD453F8FD80C9105796B9B28F598B
+                               D2A24192C0100DD63FD029D5E95223EF
+            stream[192..255] = DE747550BEFFAB3C27F3EB999C6320DA
+                               F3CF8F93D0A0569B62AD82660B96B07A
+                               674385DCE270937BF79E9DEDE618DF15
+                               08A81C8545C474E0BFB15C9749E74893
+            stream[256..319] = 1BB084D0E57C6DAB7E4C685E1C33BD50
+                               E29A94820CA529B465594ADEDA76EE4D
+                               AE432BEE62D0C3E76D3DB279D49E1575
+                               9376CC27396FCD9B447D0E7D3982F10A
+            stream[448..511] = A56828453719A4BC2944BE3B56F31BFE
+                               B1D854B81AEBCCA1A979A0875DBD0919
+                               56E537A93EC7765AEF93AF7442C465FF
+                               B17E5E7A78B470CB9085153D5C8FD4EE
+                  xor-digest = B71BEDFEA820A5035967DC8F679C0B12
+                               4FEEBD40193650E461572BE219180B50
+                               02AA09757D06C65A69E7377364489C02
+                               D25E65C2A85986278F83E0C93E455D2D
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                          IV = 0000000000000000
+               stream[0..63] = CA94576DB438A30A014BE8F8838FABEE
+                               2EA3011EBABD15610CBB63018C53242F
+                               1A16D0D9E16C5CF816F375F176C29318
+                               D368D59B6DD24CBB01C74969B5234203
+            stream[192..255] = DD9F797F47692D92573B631E4523C299
+                               BEE27BF185D283D28697E12C6FCDF931
+                               79B430F6D25B07657ED5FDF671871966
+                               F13AD8E41455FD6EB091201C2E659321
+            stream[256..319] = 2B9E767641782839CB957C72D250426D
+                               D164C8368F777D08D29A48AB27A18360
+                               3CEE68EB851B435F0257B2F523D06BEB
+                               44EF3CC7A204C3BF89285A20AE2460B5
+            stream[448..511] = CAF6AB630F8F24F930D346920B8DD4DB
+                               0CC9578A1C208AE5286A57E97AE2BF92
+                               413688C1FF6B86CBAE38D6A310A419C8
+                               EF587673E7D86A6B57945EB25985FD69
+                  xor-digest = 5A7ED1DE15B4111FB203EA356D1B8D42
+                               D48CBF8AA2F03C41E8FC36370E767A96
+                               B88D710EA549C3CA75596E50EAC61E82
+                               669DF03ECF61658E66D265B462C9EAB0
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                          IV = 0000000000000000
+               stream[0..63] = C1644A70191480A9C49E8B2E9AF7C725
+                               25EC626C82D03E423DFFD7542CD0FCA1
+                               16AFE086D407A5EBBCAFB5531B382318
+                               7C66720F5C3D123E741EEEC3C8CEBEAA
+            stream[192..255] = ACEE3B5EF982C9EEFE90818AC9649EDD
+                               3CFC0FB2068598190A2CB09F410BBA35
+                               DE08C51AAE0B17C3EB0B1014415B4546
+                               036977DCBAC7B824BB1656B02B3F6089
+            stream[256..319] = BFD4EF9962FF58D513C72F8BABC4E354
+                               A6B262BB07DF99E7BFCDE0E826BBE1CB
+                               72D722A4CF5EE36E66EF4F39A2BE9351
+                               270B15E496AD6141836D88EA750EBDA4
+            stream[448..511] = 9E9539BADFF8E8B354FDEE61FF8DD519
+                               D3CB2FD0B1533341AD2BE07B0011D32F
+                               A38FFD5788E35697E33CF3D507491EF0
+                               8091C3835D62DCF392512A5E6BECE0E7
+                  xor-digest = 696014F6B803C90824ECE7ADAEC4D8D7
+                               D116D2E0C14F667600DEBB7E56314985
+                               06FBF99459B9529057057082F28A7531
+                               341F8494D2B0A6594C03EA900A52BC76
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                          IV = 0000000000000000
+               stream[0..63] = 80FB21CC246DEF01C0A7DC14E952A1B5
+                               1467FF893B84F69141A47B5E4193AFF8
+                               395D16E12728BA9C40FBF16AF51721F6
+                               1065BFA4EBB207CEFBC0966F4AB882F4
+            stream[192..255] = 5457C1A60EFC31AC7CE945AAD94E5473
+                               75B525C5F0F275634A5B111C9052B695
+                               84B0A2C8FFBE9DA516E6DFD990E8012B
+                               9F57789208C547F2924C42A2E6866C2A
+            stream[256..319] = BF5F6439D2730861E8808C705F282132
+                               1C762DF9C4274002E814BC11ECA5C9D3
+                               36EE45866E2B74C801A08656BB211884
+                               F034E1C79DC5B153E7CB8AE239148619
+            stream[448..511] = C144B63CF8E76D88640EDC783D7C2A55
+                               0968D388E58FFCBF13F1B1A2C3FD8C9C
+                               95BCD7008C683CE40E50C2E291832217
+                               E82582F5BECFA740F8040BD07CC114F5
+                  xor-digest = AC6967E81701A2227F79EB890C6EAAB0
+                               F73F95F066FF87BC13CF16B76D33039F
+                               D1B4CB4C79C554646BFB5C462B07088B
+                               A0816AFD83B2C13E2EA3051E57A19828
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 0000000000000000
+               stream[0..63] = CFC8BF638FE1F0205343EBB806EB4D32
+                               E40CEB360C6318B9A28D58740AB8FDCC
+                               1EF60B4056201A5A2AEA9605A3A847FA
+                               7634FC7D6C5454E41EA7A9B063F48CB7
+            stream[192..255] = 9DD247F308D6368C3B31C6F0E79C68C1
+                               7F07387E314DDA4BC9A7E6C6178BF53F
+                               5AC9C6BA7016836CEF576E5695BB9FB1
+                               964096372F3E0D14E37B0DFE6ADA5E97
+            stream[256..319] = 49D0D4D9510DFCD0C152A2DEF297BBDE
+                               8EF4F9294A21B64C463918B5A996CF6D
+                               AC065CDAED458C18C71A71A18C291FEC
+                               F69E4530E353E3FCB10B77B105926C07
+            stream[448..511] = 1CCB8B11B15E577A3D2C31687B97C685
+                               5A4119C9C8F57D3E7F223AF96DEE34A3
+                               3EB39B16B456D51D4B28CAD32013D64B
+                               CF1C94008B2E8A7A21E56186CD15D89F
+                  xor-digest = 13A571881314B005C4D76586D9520ED6
+                               0551F836742C6AD21E0597AE3449BD37
+                               26EDBBDAA5A8D023641941DAA4E50629
+                               B138E0E6D04A3E9FE999035ADDFD0329
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                          IV = 0000000000000000
+               stream[0..63] = D00A0AE4BF696A045F3993A905E1EDBD
+                               57E656A464A51DC1E889E2D89E79DA18
+                               C5D0DDEA9E7EE71694225144A2B3E051
+                               014911A410CEF8CE65B98B6C32E09179
+            stream[192..255] = 60821023BF43F061B2AB2452662BD183
+                               737BC42E3796F8800E1A8C6ABCD726EE
+                               71E4EE435CF4CC828D6368F656E05A6E
+                               3A35A1C2BA9D0D1BE438E6BE0DB45F3B
+            stream[256..319] = 6A5ECA2FFBC4987AA82196CAE4D321CB
+                               80EEFA1BA35CBC5D24B628C3414CA98B
+                               B53B0943944A7971CD3E5D82EE330D13
+                               7D151E534853C03247EB0F6E9F033AA9
+            stream[448..511] = 647605633692CB7D2959145C1E9DC54D
+                               CBF7BA7BC1C55CE4BE043EEEA199077C
+                               3BD3A5655B8E417053E0033BA721CC36
+                               9D07BFEB3ACEFF015B4E6622C82D2037
+                  xor-digest = 106B427A3811CFE5A1E1ACB91196E3FA
+                               6C2649BA75516F6CCD17044AD068E282
+                               1712D5FB01371E232D24EBDFF12CB85A
+                               8F09CA095CEA78F038EF927A7547A6A1
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 0000000000000000
+               stream[0..63] = CEF151343F474AB8C5DEFB3FD6A09F93
+                               9767673CA71208EB1893B118A7FBD881
+                               EF3DE28397AD0CDD9021F260066AC006
+                               118CD20D5B1B0F1E92E204F454AD1838
+            stream[192..255] = 5DBD249066F7EB05294B2E46B142F6E4
+                               0E7C4A2EDF035E8B3BE596B109F45868
+                               887AEAF0CF36E539C8DABEAA7A2FCCB9
+                               B8F2794D25A760A309C498308E8F3EC4
+            stream[256..319] = 9E76FDE8A7D0AF758DFD3BE43592C591
+                               CC8A90BE6E433F0025F446F8069ABD64
+                               9D998F5006DD5B0A3E38D8D646E34589
+                               D4ABB340590E59B5FFA36328EAB297A3
+            stream[448..511] = 960AC248F86A9F850DCAC7183A7B4572
+                               8A0C65CEE570CD33C376D4F49963CB8F
+                               380ECB94BB1FCCB109A83C6A427E6FDF
+                               F72BB4B39D8B634E1D1C6147CC4732F8
+                  xor-digest = 9C6E51278A2B98AA34ABA2DFF4B7A532
+                               6AEC4B946B99AC45073CD26FDC4E0B15
+                               5A8F3599313DF44A2F0619AB5867BA19
+                               93D091FA53E9307ED07A9514824AA137
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 0000000000000000
+               stream[0..63] = 162B75831A25E9702D101DEABA21928B
+                               E1589F0A74AD1DBC76E05CAEA637F339
+                               34AD57CB90A2FF9A8332AB2DAC9D0D11
+                               808BA1033E178F315212E99794A5C958
+            stream[192..255] = 88428D0D85D15A5539ECC31C70A112B3
+                               73214F49B1A196E6618414A1E4613A52
+                               345D44895FBF3527813BA75CD73FCB73
+                               8AD0C9FC3EDA9E08BF5146B4C172A8AE
+            stream[256..319] = FEBC5B5A447B2FC3B49E4DA9E6630146
+                               08426B1C0E60B91DC0A007B112A8C932
+                               21BA7BFD5484175B608CFA4F8E783B8F
+                               715BBCBBFE2674FCD6A583D1DDC9DC12
+            stream[448..511] = D83B20E31B542D185B8E5D8825324660
+                               CECC685CBD4AAA6B86632956F7837611
+                               E71CB10836465E89A0716EC0085FC0DD
+                               4F6278A8448F58D0CD1B7589491C6B2F
+                  xor-digest = E31C67E663410A28BB6C57381B1744BA
+                               D719AECAF66858B56A1E3C7BAA45BD57
+                               08D04CEDFCA378450E395F4797BD4626
+                               FD931FB51A1C140AD535C5D97B8C71A5
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 0000000000000000
+               stream[0..63] = 53855B63B1C0DD07A587CA7CFCCCB525
+                               195B8132ABF0C34B11EB426C1F69C357
+                               372D79E1EDAB28188E36EB2C674D1151
+                               ED32321B0C3BBEC8FA699D054218877C
+            stream[192..255] = D53D30FAD0F2B3905AEAEAF4F7B527F4
+                               A1EC09626D0DA811CB1DEE13F8270D52
+                               4A6FDD22E1F7478A5D724600627E9927
+                               95DE57D1F34989DD6F74E7C4942ED096
+            stream[256..319] = 13BF8A3A934C24A785EAD7869ED91B42
+                               88BAF783955BA695188139C54B8C7345
+                               BE91C17F608C467913211D4CCEF4CCBD
+                               D3448E4CB2A7326F8A767003BAED4F4B
+            stream[448..511] = 73D8C2958673CB6F713A2072002563CE
+                               F24D98574862958A7A2BB1393B1D2724
+                               EE987AA9B4AD9C443F33263D1F7948CA
+                               5C809399A8528132648FEC4000D97C60
+                  xor-digest = 83382D9F211C3CE3E7EFC6233DB4C123
+                               9CFFB54A1E36EC03E9DDF1C0115D9866
+                               D4C0F8B72E16B1A8055CC3220406736D
+                               84DB45720E078966960887F1990BA6D3
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 0000000000000000
+               stream[0..63] = 7CA556D623F7B07BF772B03FF04656E6
+                               C6462F34F3368A05A69FBF793BC48974
+                               22ADCED0596E7CF8A5083A6FD433F204
+                               EEDCF8989798206B9BC85412CCF814B9
+            stream[192..255] = B9B93B57E5308A0493DE7BC46795779F
+                               26C92402D8CAB1008DF56407FA96012F
+                               7E2A14AC87A8C716A83171504D26647A
+                               FC2C31AE86FF7132B4AB12593FE80958
+            stream[256..319] = 3F76FC641B8B40AF0DD7F65FC29CED44
+                               E134E302036D1E2475C69FCB32E3D2B6
+                               9CDEF3785A29E695D95A70A6C701A8F8
+                               2C075E1EC7CBFCB9ACB4689958FC592F
+            stream[448..511] = 9EE91E3F33C857C9FC7F47F44BC10AC2
+                               5661086DDC03C644021D8B0C5CF76727
+                               BA6FB7A58DC9178342F997B9C6822A59
+                               F3895E2905659C070EC697C9F2665DAC
+                  xor-digest = C733EEDA11A8A575BF225F1850E7E5E0
+                               AFF5A190FC37A40A04402B4458361BB4
+                               1CB0FDC70FC5000DADCCFCD3884F220A
+                               696545BF82C2A430CDCE712813E74D00
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 0000000000000000
+               stream[0..63] = 6DD4A5C369533D9C50A308DEFDBAAE52
+                               3C2A841B84EA1975FED47B53A5FACBAF
+                               9B6A209395CD578B4BB44E30FEE03737
+                               33393992FFD27D52C9A052E8D524F143
+            stream[192..255] = 94A174E5BEBCD779F787F9EBC6E1A77F
+                               CFE63A166BF2B595C0FCC90831E8E79F
+                               56497E38801B73FDA81566869D3BB943
+                               105363AA143E689BC1FBB8CFB43B77E3
+            stream[256..319] = 45DD4434759CA69DA87EFDB514B1DF78
+                               D3CE9C61AA8BEA46A9F240F5E772F033
+                               39815B81A8B0BDA48A8322F0F9B8538D
+                               40BCAC2C7CB87DAC481FCD7DE23B7CD3
+            stream[448..511] = EDA423AD5D00AE28594CF283AA249FF4
+                               ECC28F75051FCC207583A90932356873
+                               910B9766CC9234E3A4F8EA2B6708BC19
+                               AAB59172BC73ABA22A4C1E904672A869
+                  xor-digest = 7D7D4B294B8C0DC374C9F17169443533
+                               91D2EB1F8B1CCEB2F0D4FE2926CECB74
+                               3C0C4FF185B3D0309206DCB39C7DBEDD
+                               45B3F255E8CC0EDA71E836FA0119AFB5
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 0000000000000000
+               stream[0..63] = 77E91F6E2780E257FC98956F1F256031
+                               798BB8AD1FF50C706F03023E309CEDE6
+                               D2478E95E5B24F9464429A7A775D1659
+                               EF51E06F05D01A69CE1FC17A0351C776
+            stream[192..255] = 61B3FC7436860843641FA55D2B60E428
+                               CFEB4F45821208FB6B31551CD264CE73
+                               453B64BB909AEFAF7A0614CF7F9B71F0
+                               6E090F6F79C94EC2589AFE9BD58C173C
+            stream[256..319] = FB6686577162B7EE7A5AC452AFE7D84B
+                               79E3240BD8DE9F65AE71C85B63BB444D
+                               117146D630839D25A61062D0F407E1CA
+                               3AE19BD798DBDFC5518ADC3459D7FF7A
+            stream[448..511] = 905FD03936B115E48DF46A752E712E2E
+                               F94DFD6F89086C37F00B6E9C761CD6C3
+                               1A25F9B6A714AEDC8643CD232528513E
+                               E1B2A7A293EF250A39AF3F0BA979265F
+                  xor-digest = 29E515EF8BD7B5B0ECAF5F479326AABF
+                               3CBCACC9D011BB643E6CE23C4CB23FE2
+                               F51C8A82CD64B03042F155684C2EE45C
+                               6F5C76F7B240912AC15D03908518EC29
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 0000000000000000
+               stream[0..63] = 5F7EDEA149A56EF3764675EC8A5AA5D1
+                               54E846128173921C4A30DAE2F7274846
+                               A292CADFA1E715744DA45DEECE277FF6
+                               98FC6C30454AF56ED3F5AC1C4283D1C2
+            stream[192..255] = 22C9D6C7AE3995258E90083B5F1298FE
+                               5EC34955B5F9EE189C6073EF2EF47FDE
+                               532E45EEE4F6D1E34C9777F0960BAB05
+                               1A64389650780AE4CAED5F900875FD17
+            stream[256..319] = 689832467F8AFAF755D269F6CE35CF76
+                               5B68042D1D130250581DCD080E98BFC8
+                               92C65831BE55262E91BDE5088E467FF1
+                               1AE669CDE48B1267DA197C600810A372
+            stream[448..511] = 6F8F579C57A77CF29D07C51A97CA17B7
+                               638125B40B4DE9EE4A856A49BB41E2A2
+                               FDA29B17893F22E145CCB6C789837902
+                               13E22C6E0116014DB295F7C679FE2706
+                  xor-digest = BA6032500E39D7282B1C6E7F22109195
+                               57EAD3C5E37DDA00653B966F1F08628E
+                               FB9D553A0A2741DA81576795A2BAB23F
+                               02DC8ED5ABE16FE3F7F8E9F17467434D
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 0000000000000000
+               stream[0..63] = EC2378E60EE821607DBA6C7DBC5B0F07
+                               6B46F6243D7959A454E9C904BC553546
+                               6B413DC65129A844F989A1DE74B090C0
+                               3548F1EE8871C546129B7DA962C28EBF
+            stream[192..255] = 44CE9257B20E8FAF9F55902C47220005
+                               5003D41B847CF65D4A65D01D159A90B9
+                               0E3668C7AAF7D740C37D271A28EDF9F9
+                               2A08E1491325A89E1407BDC3B1E02E05
+            stream[256..319] = 4994E4692FB323ED793BB4EFB62166BC
+                               D51EB9E1033241EDD2A8DC5DA778F345
+                               1950165633CB0ED4EC58EBEE15555596
+                               0560B23A3F759DEACB589756CDD423D3
+            stream[448..511] = 098A24EE24817844E368865D472A2FEF
+                               34EEE979AE2BE2ED2614A80B6EA57D39
+                               EEF0812B4EDDCE18B405578F77108B2A
+                               785D46BDC30A797E1D78754740699A09
+                  xor-digest = 725FA72CCCA3DE0EA0D286580981FD58
+                               B53D2DBF611830945A478AF31B87CF24
+                               F8B842071E020D978E1692BCAC0AA86B
+                               15AE44017F0D6BCA5C5D7C6D235F293F
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 0000000000000000
+               stream[0..63] = 40A12D8CFEA70F7B512D9ABD1936C98D
+                               26FDC08796BB309681B39F307F048AA4
+                               B64D16682E0E776C6DDD7460381DDB7C
+                               CAE480164ADD072A6C541DAD869ABCA0
+            stream[192..255] = 2D302352F9426CE43C3F706E23CE4E7E
+                               C43D911A58A0C46248B72B46780A9F3B
+                               31546C09EE1086F300A65CC119D62CB0
+                               A131125FD46501C88F42E3C38B379521
+            stream[256..319] = 04C0B757C362C7986D5DB442DD7A42ED
+                               4B62B4AB22130AA2BF734F1C3AB3E5CD
+                               95DC47CEA9129E57E2B30DAAE8EE4065
+                               41F34A38F7316E55060A2AD5837E4C88
+            stream[448..511] = 3D6AC11FF5F29D276D61FC39F82416CF
+                               BF888DF19848AD67E6CCC940A12A71D9
+                               60DA6C57FADC1A87549156873C2A0836
+                               506A72831207A9F934774CF6B54FFF59
+                  xor-digest = 7F43D8BE91BE1B8C1758415569B0E40C
+                               0A660BF44C4EC4017744BBAA39BFCB9E
+                               69A43D06FD4F5B06079351FB398508D5
+                               4A0D589790591DE5F041550E276AEC63
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                          IV = 0000000000000000
+               stream[0..63] = CBCA9C6C7C9464F723F561EFB4157D25
+                               98F3D5EF4DE6B969DDFC3A541C4864AB
+                               9ADE85AFC2D40E5B4C2E77884A67C754
+                               CB8AE8620B36B69C125132599E30AC20
+            stream[192..255] = 42D34106BDFC941A520C1791DE6192DC
+                               FB4B55BACDD32611EDBBBCBE42C57794
+                               0E1A0AD2228ECC8C8928BC03B0BCA279
+                               742DEB27DA7FC14A3D60B9CEF00DAB31
+            stream[256..319] = 7E6DFEDFD587B1566BBB8DEFD28C7314
+                               1883D625C3A525C7A5C3720940C873FF
+                               10AD7E090AE94D3A5D7EF4D01C9B5323
+                               014D6764573400BCA613ADD978DD5BBA
+            stream[448..511] = F6D3694BCE476913DE403EDC428EC901
+                               15B2798763032E1DE7F46D910F80CF97
+                               BF896D409C853AFA6A68AC02EE37D21E
+                               7A00ED47865CB8B9B8021A376EC890CC
+                  xor-digest = 5280C4A95164AAA502B22419D5669A31
+                               AD5448693475261E392DCE1F7BBA3E3E
+                               91E3F30DA978AC431421796BDBC35071
+                               594873C141914AB02CB3E0B70C35A007
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                          IV = 0000000000000000
+               stream[0..63] = F7CB5BD41B7B845B645E6AB6E6FE8B61
+                               FAEE01DD3E389DC2DD15FD7434AC0789
+                               FC316FB8501157D0A69CCB0E191031FF
+                               DC808B476781F88DA85A4319C2B0E7C0
+            stream[192..255] = 314C682AE7308FADC96D75FD37548454
+                               DC5B55C846D68B7567C3A60E8F8572B5
+                               DF2F1764AE5D73663458EA5E7A62079B
+                               E8D58836F5F0DEDC539803A640B4647F
+            stream[256..319] = EDBF56B598AC5E0CA67198310284F605
+                               57508BD78A5FCF6D2224A359535277D6
+                               3BA3C477BDF57836D3D9EF106E6FF26F
+                               10DC514E7955812994E0A2BB24B3AF0E
+            stream[448..511] = 4452D189B2CA2D6BC00CBEB6ADEE0C2B
+                               6AD026E463AEBC00B42EE7EA1B4F8278
+                               587E00081FEA85E5473A495B1322A7F7
+                               E9ECE56058566E45ABFFDF92EF2AD054
+                  xor-digest = E9083EF70A55718C36AE108A98651EDB
+                               5D97B340CA2E7262FD01B227E61FAEDB
+                               12385B06F42E74B804939A01479C0CC9
+                               A344C7DC69A776D290417129D3DDB505
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                          IV = 0000000000000000
+               stream[0..63] = A7C1196D5980F749F7E90BF0788CAB59
+                               27FB8F0527320C818FFE1F73D54A8021
+                               AB26F1570E35600C7AFDD01F5BB73A55
+                               600080D830535B196BD3C48C37DE678D
+            stream[192..255] = 8D5C5A205A8AED154E836C53F0EE1F62
+                               E63828638E988ABBB38561430A5FD6A5
+                               1F52E89F5B0FDB7057993E567E20A935
+                               BE0471C184B4885633B18FEB38F51B72
+            stream[256..319] = 5E15C99F645A117D7D4E8F60D23CF951
+                               178423989CFFC27842D44941C3230A79
+                               936D9DBCB110840093518FD2FE9E779F
+                               1EE6AAE4AAF36013FF082F1D354F415C
+            stream[448..511] = A57B2BD5473F385C3BA67B308311D7B4
+                               0FF09C7E5270AA784B383F660B601A0E
+                               1F260540B7E71436C1150FF12C927D47
+                               643B242EFB447B011A9431657311C222
+                  xor-digest = 34FF1B33F5A241D5F5850DBF26A9EC3C
+                               6BF6F251328912EF09D75B42616EFE19
+                               DEFE1A7C2AD4E5397AC3669449D3647F
+                               1D2F224681EC92BC979FA9D8BD32C0DA
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                          IV = 0000000000000000
+               stream[0..63] = 205BA132B60C7B03B73D844E987D0F60
+                               797A1A65C0827DACC2956F0537674A43
+                               AFCDB0121A0FABC25E77F3AE8F8BB748
+                               FE7809EB6C12F29C4AA15ED0DA03F90A
+            stream[192..255] = 937989181178BAD80BBA9D98D42A0319
+                               C0F3D99AC27C041BE020379A164724D2
+                               908D94CD9E9219A9B493626F8B69E8E5
+                               3BD104E71B830A69FE44762C5154AF12
+            stream[256..319] = A93F96FAE4FAF9B5E2C73F6CA32A6B50
+                               D128A45CA51D498F284236C7BB703BAC
+                               D8517B3BCEC887519A28811B6612C890
+                               6DD017E59FC10370BC4FAB4C36E2A138
+            stream[448..511] = 65611E2AC20749C5E3FAB27AFC818C51
+                               61901BF2F832736DFF68EC327977A76F
+                               2779F65F69E619268D40C80D452B28C5
+                               3C8FC2BB6E5EBAB0CC79FD7A1CD7F60D
+                  xor-digest = 6D5272D0C539BAFEFB9BCA7CFF3CE856
+                               A040EDB057448EE55F915ADDF38EA0A8
+                               CE3E2F0F5B201D757C426EF46BD9715E
+                               454957202F26259568E25E63C834BD68
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                          IV = 0000000000000000
+               stream[0..63] = A5C66F7BF429B48F75B8E8A265EDA2DA
+                               3586E782160958731540EEF6C60EF853
+                               7E7AE4021204BB967DA3300B51C4F453
+                               6B302ABA86B46E7CDC81F6620DC3EB92
+            stream[192..255] = 56710B5D2516F5F478D2EEBB5A7D5405
+                               0E8AF153812FA011E95127CBDB2D63EF
+                               23AA349BE7A0779BEF7F7277DD0AEA9A
+                               B1A1D2A62DF34B580AC86A15C83F0008
+            stream[256..319] = F146BD3C0010AE095ABC4C999475A638
+                               4F2FB0AD3A8E783B5B6AEF15B27117B9
+                               A33A6DF67B133F1B0679B8E31C619B83
+                               D79E5B7D5D7C3E1261DE39C88F0B5DFB
+            stream[448..511] = 1F09C1260D827F515D5ECD455A6150F3
+                               FE2F21EF8C8A042A99295F614F20A329
+                               6672060D7EEAF4C395FA6F44FC0DAF2D
+                               4BF4FCF9ADC4992FAE98893D934E38A6
+                  xor-digest = 9A934034D3182AE67BFDE9563BBFEA53
+                               B18D979CAF91C30BDE24CE5B5189942B
+                               A3DCEF437345576C940E47D7D2DB0210
+                               799FD526ACD1BE3A73FE4429227DE718
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                          IV = 0000000000000000
+               stream[0..63] = 7E836570C94B5B058899CD818F9E401E
+                               BDA41617319D3AF36BD167F5B3A000FA
+                               459F28DAB7BF1E99AE0C80C1CC0D1C18
+                               B90A5212FA747C0AFD0BC4147EC8DF54
+            stream[192..255] = 85D6D17F27ECD74F8B3162B60CD8DB39
+                               D518855A4F544F67A7928EE0491280C0
+                               40F1C0B5F65B3001916CABD9DA3AFF4A
+                               53DA2F5F9609C8786928461BE242F0D0
+            stream[256..319] = ADDF5D137AE194A498CD7C9E2F68D963
+                               D8C3F14FBCA1C5A1C770CA0243D0CE21
+                               8CB0FCFDFAC28C123A3DAFED930944E7
+                               24D67BDBD5F605CF715211958719D8CC
+            stream[448..511] = 3B4E9D02597A0A1F6EE5CDA284439DEB
+                               4E609446DB796F37FC8EEE36D9DE20DD
+                               3C02AEFE34ACD873216778041C10188C
+                               626F0725DDD585CF6C8E63FC79726D45
+                  xor-digest = B0B46F0C47C9D14080F641F34B3776EE
+                               24C9DDCBAA7098CFF81EA615586EFDB9
+                               8693AF202828E297E534DDBFA318D523
+                               065FCC4E44B4A2E71737B629E5C175B1
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                          IV = 0000000000000000
+               stream[0..63] = 24F9AFAC586318DDA5C7C2935B4B619C
+                               8D7DE43DB397FB3798527126FC6BAA62
+                               244E65822226C7DCFE6E4939D2322AB7
+                               6FD439DF5FE02BB5A3BA69D047DD8421
+            stream[192..255] = A6523CE2EA9C9F6DA99007144A352348
+                               AA572A971A3AC2AC9DD826EF3497826D
+                               CFB33CBA2C8BAE35646EED8197BD15D5
+                               90C4BB95862BF4D1F458D4E513BF8826
+            stream[256..319] = 3442A3641DDA7B03D477F9CEC7DB7CA0
+                               E5C00EEF531D438088DE178D73110785
+                               5C7C0BCB05BA9954B4BAFF3C83283205
+                               C2DAA6CF37536DD4C450DF43DE917CA0
+            stream[448..511] = BDA0A2DACB1726FBAA01353A3A22E479
+                               F75467595EAB56B7288216F83C4D7638
+                               FBA0311A245E0A953006A54A8551E24B
+                               131660531F99A62FB3E0DC00A4CB32F5
+                  xor-digest = 88BCE2F25D84D70C4E449DE080C183AC
+                               B7D09B08A11EEF9497ED93BE51661CCC
+                               B9E484EE805173805A732AE46E8AB92B
+                               919737A0FFC7E140CE5AD9E1FC2FE358
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                          IV = 0000000000000000
+               stream[0..63] = 7D01379C383A3DCB52C61B75A4FABC79
+                               6EE567E51207FE6620D0753DD0DBE501
+                               C970D726353BB3C9688AA9D5C5EC22B2
+                               640A65F1DBFC0F3331DE0CEAEFCA97D9
+            stream[192..255] = A2BC058F5F28F2CED1C5016FAF6FC49D
+                               E07F4E7E25394FF0960D278622D52B38
+                               216989410FFA229C146D0209CFD7F61F
+                               46B883D0EBEC9FA0B65CE2E501D8FD38
+            stream[256..319] = 887DAE2FE4EE952670681573AB52506D
+                               50B31A0B311602882266AFA320CE349B
+                               F4E28BBD7EC55C7FF311EE3AA8A6A004
+                               83DF01F2C38A79B52DE0BEE5573BAC6E
+            stream[448..511] = 06249561CE838A4520D6A76A6DB67751
+                               0980D31C64A0261D2538F47A64223220
+                               1CEC3EAF9FD5B9828AE22684F49B82BD
+                               EDD4267C1B8706737F9BFEFC59456B64
+                  xor-digest = 586ECD2B1CEEDEAC838EC72B002863EC
+                               0C69BE774C6CF29402226304D6BBE683
+                               34BCE46920BA65BBBB3F5B066D2AAA76
+                               26D05E58D5070DF612681D10E3141AFE
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                          IV = 0000000000000000
+               stream[0..63] = 6257E2C83DFA55F8131CD247C2B54F95
+                               081AE1E7592B8E8E51C1E49442773130
+                               55E9B1C44105AFC96E49FE687619DE58
+                               B49AC1B4F82F18D03BBD7724F9126025
+            stream[192..255] = A1BDE0EB9E47E764E1A395A351ADCE45
+                               685CAD1B3F2B6C75E0BD6CEB7958936A
+                               E3F8C58B5DD73A3D99F04EFB61E971E6
+                               FDCFA712DD451BC4FB8C4DD9B6412A56
+            stream[256..319] = 1B25BF7488A86D892A50985420C93F26
+                               8FC7FF088C8C3C1F0EE670D71CE0FCED
+                               4D6E68F89F6D7D3956823F68FB20BDE3
+                               70D646EEB8813C6D489B46651988D7A4
+            stream[448..511] = CA997659D972EC6080C14438D6390275
+                               F0A9E15D3E21F7BCA9D367DDE53C0626
+                               385D74A486FEDA4FCB347B7E96617D8F
+                               48646BCCF288C46FC970A4DE3C6C0956
+                  xor-digest = 5A63CA465D0C99086D1A214B82708BE1
+                               B7FAFEE205DE328A212373C3CDC4B944
+                               943A106351CA9586543BCE7E08209A9E
+                               3961730D7EBE97E81CC69E69DA77BFEE
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                          IV = 0000000000000000
+               stream[0..63] = 12D55EF06C8C567ED38E2210685E9200
+                               F5CB3B9E36A441364E7E23C96404F647
+                               A7526821FD1C3CA45C70C5A5F322F0BB
+                               2D11BF04AFFDC56AC2CAF54DF6438709
+            stream[192..255] = 4DC2F84BAD85C51BA80A4C7933E3CC34
+                               1FDBDF7A347734FBC8F7EE05B728D922
+                               230FE5F51917763C6D1A99015893EC9B
+                               B1F4B90411BD7DCF9564190D7F0C607E
+            stream[256..319] = B1B0D951DBE960B9BB722E1DB1A603C4
+                               C92FF303E92809F2E4DDA4C3CBD66FAA
+                               B5751AB3DA1EA8B9DDA2791406A40D89
+                               BDBD9655BB0F025E550C7BF6F5E1D3FC
+            stream[448..511] = 16931A347061A046828110A245B252A1
+                               64A23016EDBE18ACB0A5D8B9888E7B52
+                               0DA3E4FCB083A9ABA0D2A7CB4CA18807
+                               625E65F0ACA2047E041A25A50D8DA66C
+                  xor-digest = A63A5025438B48093662270090C6B3D0
+                               8DA0BB7342BE4B78BD86587C5F798412
+                               9D186DD05543723BDCD0862C712BFBAE
+                               D74B0D506533011BAC34D9499CD02D3D
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                          IV = 0000000000000000
+               stream[0..63] = 6A6B4AA5129FFDF29F438BB1FD9A1A2A
+                               EF3BC511BACC5CA8DE94903BFCB118AB
+                               7131D5E032FAB598ED1C0B6252BA3599
+                               20CB3A4BDFE4DDCE970B9003A9CCDB9A
+            stream[192..255] = 0CC95E5E170FE5A4AE4256009233BB86
+                               F969EF1F606725D6C37D795B43D77B2B
+                               69C85D521490E7FC4A5A1E5775A78F9E
+                               BE25F10206FF071F00DEBC1CAF603464
+            stream[256..319] = 0C4AB53371866466F54AA8663E8266BB
+                               7879FD77513D7D091F82C7999B12DFD5
+                               23566A947711A9CAD15D6B073812A451
+                               5A65B27BF0F454FD0A01711C3B33698F
+            stream[448..511] = 9C3BC883D0D484AD5E9A0A5E00E647A2
+                               4B7550764383D56346BE7AEBFF6C4F08
+                               2627B99A12C9633F49051CA1E6391999
+                               C50F74DFE63F6BB41CB55DD4733E5628
+                  xor-digest = 851601B7B1AD39A901574A2D9F5D8A5B
+                               4E3E659899C7BA6ECFA98B2A9340BF3B
+                               41CB44950567FF9C287ED9C345F59C31
+                               53673FDCEA2E3B10E25D3112B99E1522
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                          IV = 0000000000000000
+               stream[0..63] = E2FFAF6F50B768335419AB08A9FF4AA8
+                               FC8F545447E9856EBCC889464320C473
+                               97B981F253434DE2B38AB6197861F94D
+                               CDD47311338967D75626EC6F7035386E
+            stream[192..255] = 5F5FE499D341A6C6BD5C8BD9D004CD58
+                               44FFA6CBA04793B22E256C0D1F98552E
+                               9F20559B316B1C1408ED56DC26A2377E
+                               A332AC0F9C37A77C10EA085A49CAA85C
+            stream[256..319] = 8131455C1EBCD5D2BB2F6C78BCA40B82
+                               3000D7AA770951538146995605B50CAE
+                               3D97202A38B4213C01AE18D79923A4D7
+                               83873918BF15C849BE0913CACE4263C0
+            stream[448..511] = 84167A91E07993A36D326D98EF0E4B60
+                               E51906591C87036C06C3CA6F3BAD1240
+                               024DE96D8663D22D69DCAD92ACF78895
+                               A1BED7EE9E018669F85980BC99E5FACE
+                  xor-digest = 969484CAABD0D9127FEE2748EAFB06D7
+                               CA9F9EA3203F161A0F9CC8A45622AEE2
+                               65CCD34B22EB59EEDBA27B64770ED123
+                               CCB104992A826739EED0E7347C724E3F
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                          IV = 0000000000000000
+               stream[0..63] = C7B0AD939CDB029395874AD153B7C91B
+                               9D6344F2833AFFE1C6901EB5E25956AA
+                               F36D2F28F7C27E17A9C05EB4C37F5419
+                               3C88B1F3335F27A3136C9516B4FB791E
+            stream[192..255] = 12B8E41BE1A9701900CB4D66E4B4C34D
+                               93396013412A9BAB8CBA92F78FB2D350
+                               FE6A712126F3AEEF01D7EE2FD48E8354
+                               D7EAFF7962A0BDA79C04B05C65AAE6F9
+            stream[256..319] = 18BE64D6779D58140CF433C548139AD0
+                               AA0451D01617E433CBA20982D30021D1
+                               51C076CC93ED3D007110052E9484898C
+                               5BC828952A1B58D27169E777F6847DFE
+            stream[448..511] = 3434BF096D035495B49E2A215413023A
+                               E2796913A04822327119F8A4A27CB326
+                               263652A8581598A9593141A3D84A1BAE
+                               6378676CB2E5ED38CFA7F9DD61976B09
+                  xor-digest = 68C7C58A78A760DC5962DD7C818659A4
+                               6C63B80AB79958ADE1CADDE4676ABC33
+                               270D1610A01A0BEAB75E37892C14EBBC
+                               66F0CDA5761FE175DD9E62FC84E2A47E
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                          IV = 0000000000000000
+               stream[0..63] = 508DE5B2E04AAE23D33C36400626748D
+                               66FD23AD959921A1E104E24FA07DFEBE
+                               629F2729D0D6727AB12A13D01BAEDDCA
+                               0AACED4B7376D73367F31D3CE105ED85
+            stream[192..255] = F4A7140A08594BC4A0F5C207A9ABFD54
+                               B984DC4B2D4BDE835A45B08A8D716B7E
+                               2CF0174483649B9E1016F2711207A9AA
+                               793485C7BC4636FA375EE9A632508E94
+            stream[256..319] = 96B8D9070CE626BB3048B150B34B5985
+                               04F129FCAE0FA0F4D1AF5113C6804B07
+                               8C841EB79D292A777137A2B3CF9CEB6C
+                               31257E78B2FD05BB3897588CDB6F38DF
+            stream[448..511] = 92F34BBBD6D61EC593BC022FB51DDD1D
+                               4A6DF0A6FA067FDE6B75CA4E3C2BB396
+                               00B01C296B176F28C8CEB65B16724053
+                               3F54AF0F411B9682CCAA2542CCF3E997
+                  xor-digest = 69A0360840D1EB8111BE2E65939B9D8C
+                               0958832A70B8E047F1CA243AD3D5AC2C
+                               C081743286B610BF43A531A80CA7822F
+                               8ABCE0A2D1FC26BE211BC91CAAB458E8
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                          IV = 0000000000000000
+               stream[0..63] = 57C705F076437123A016AAFA85D4E904
+                               6AB62A219B7D55C89EF0C0FC2F9EA907
+                               BCC21F2D47F5842EE4F626BB89D9EBAE
+                               29DD8410E12464187F5EEAF2E6D2A8FB
+            stream[192..255] = B76D811D115824C6312A4D7A14018E8E
+                               7751CD39108390A0239035077F71A0B1
+                               5309A64412B302CF5905272F66481058
+                               82DF262C2AF7DB711CCE615D8B7E1600
+            stream[256..319] = 83CDBC6DE39A036CFF1A46D0FEC8503D
+                               E7D581F57E9BDB3B7DDA26AD902FE49C
+                               DCF2017D9CD19580D9FCD07E3B01034B
+                               F58F540F33FAFD41113A5A705437AA60
+            stream[448..511] = F529FA6CC9BF6FEBCA8954329205D17E
+                               D1E01EB44590919AE7BEF119094747D9
+                               2474834A6B8D126C7F9C3062AAA06C11
+                               FC279E4F22E7BB59D0A93B7704D58B22
+                  xor-digest = BB005834CA12511E44E840706C0F6627
+                               2CD10782B2514FA84086F7D02BBCFB73
+                               6C837890AC18831D4451C5F610D60DDC
+                               D0DDC7F59A27D21C13D37CE6CEDB6F1D
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                          IV = 0000000000000000
+               stream[0..63] = 904B49718D5544D46A29BE29A828B3E9
+                               16C6C748687C966AA973FF7931FDACFA
+                               21C52C19937E8B63172679E320E4452C
+                               14005975A7C11C6EA698ABF1B2777CB5
+            stream[192..255] = 31F7C9B8896049284C367254DD23A2D4
+                               FF87F69ADE0084B6E5FCE4DF9D4509D2
+                               5F30E4920F91B54A74AE49EE78F5D921
+                               422967C42C8DCC4FA830FE1AEF1CDBF7
+            stream[256..319] = 757520A9F8041C9E7445A8381D98D988
+                               C4211CEAA62D858EBBB2A15D3A4AF821
+                               7A71204EA00561D1750FBD90E43EF355
+                               C0E7BB14A4F4547DB5EEB6E3334A3DF0
+            stream[448..511] = 0DC8C0D3916CEF975C26A6FA65CF15E6
+                               DFA71F8B012A67B1E31F8B399BA3471F
+                               3544C49690FC5FEA7C052DCDEA843DBE
+                               12A5D6CCE8469907E35464F38BA107A2
+                  xor-digest = BB94B04854E652AE7D71286D7D5C1B60
+                               E828F8B8027D6F03AD36F93B8C66E44A
+                               A3FEBEE067BA7855AA7033B082639179
+                               DA024A9F8B6CFC5DF64B20889167EBBC
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                          IV = 0000000000000000
+               stream[0..63] = B9BC21EAE414FFB169EA688A3F0D1548
+                               0ED0DE8DF376428D3CC5E1F6B23C727A
+                               BF2AE619A839772F0FC214F7804D88A4
+                               446FD64E8B569F53AEFBAB6CE81D8143
+            stream[192..255] = 2AA7DF2FAFAD1D44DBEE20A626F1911D
+                               78C6E6B921689C170F3CD80527284E4D
+                               5924A4BE19F4B2731A7FD3AA0162D448
+                               03D1455089E5563FC2E905ED38060817
+            stream[256..319] = BC2B4905CAD697CCDD3BC15F1A708ACA
+                               FDF9D98C032884C8B54163718FC55E04
+                               763DC8FF201CBA74F3B2FA2C1CA9764E
+                               3E3F528E04A0EEF236FD5964DB6498B6
+            stream[448..511] = 52C55CFB1AEBEACC33694F80CCA19F5D
+                               4F26DA702F27F5E7E241D2158F563EDC
+                               56466AD2C9E4C9A2FF705AACBD923B45
+                               3AE636CD36BC5221DD0C118344449E51
+                  xor-digest = 87508DA1455A8DB742E22280ACCE6AFE
+                               9924F0A3A2613F4F8D65DB5D891BA7ED
+                               0F23FDD2606BBE9336302FE7888FFCAB
+                               DC096716A1FB070A277CB35C185DDE4A
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                          IV = 0000000000000000
+               stream[0..63] = AC67A4C6ECAA8E068E79CE6A9BD84529
+                               1D93B668BB41F77E75B4F57F7623B897
+                               8C8B39254E52227D450D626DDB173E49
+                               AC882F6737E1D918964EFCA334567307
+            stream[192..255] = 89A731E7A7EFBF4FD78BD9AD180FB5F1
+                               69F200CC63A2BE615CB73DFD85B37331
+                               C114861CF060D784389AD703B7DA06AF
+                               275E9FE7BF81F0AEC7CEB4C7E508F842
+            stream[256..319] = CB1A50A0EC9CFD5783793BF012D49D6E
+                               EB2A36BA2D4B0A5296A8B2E2C5E9D3D2
+                               3EC995F2645735AA9D89F8B3C2406066
+                               D34BDE5137C5AFFF373455AA2E3DE497
+            stream[448..511] = A18B92F2596FA4B00A978766C427D58A
+                               6BBE67924571056979900C3A90D3D92B
+                               BDE762D92CD421DAFD477D18554D1E0E
+                               1E260AAC549BB992225C83255AA53641
+                  xor-digest = 5185231D0D75BD3E2F9A0ACE20EAB171
+                               2DBE6C5D6DF7F9EC6E1B1E7437906BB2
+                               DD7DF0CA1F293D4880A64BDF2AED81DC
+                               F90354981326C1AA77F7501C335162BC
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                          IV = 0000000000000000
+               stream[0..63] = 5FEAE246453ED15D69653B8D2B790FF0
+                               7B9CC4DEEE644F66E184305E9B04BF06
+                               01BB0AD2F52017662B847FB4AC475680
+                               E85991654609212AF3F60F30720804E8
+            stream[192..255] = C29A09B01E321A84ACA2680F2761AE2C
+                               0AC56BC3DA028D38436E1BD550A12063
+                               CC414410D5188F8FBD26EBEFA5C31701
+                               EA621F9521862B782A703801AAA0B6FC
+            stream[256..319] = BC8FFD5FC7A04184DB86CB8F548DCB8E
+                               924F3AA8568BD4AFBF184CFBEA95A4C1
+                               E07899EE8A914A66D2F778568DBB4037
+                               2E6067E359148DAD4D764EA95E7E0455
+            stream[448..511] = 8284B9A6018E6E77F73D414F16CD7DFA
+                               8758D017B2AEBD45B851D4474DCF0F71
+                               F4932A6C40C1F2C9D35BA34E7C3BB66B
+                               6FDE383A3C6F75F15F854697DBFE4BD8
+                  xor-digest = F670093370D9FFEB76F03D7067E7DBFE
+                               950166228ADC14C3477A3DB71826985A
+                               7552BC6D7C7D0B287A9954F309B01AF9
+                               0A0064B37902E9C85D31FED9F26E171B
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                          IV = 0000000000000000
+               stream[0..63] = 1510C49F16B770347AED3E5D79502260
+                               018D982B65C62ABC55D64522FBE252F5
+                               839E699A43BC682EC2A1514D6526D288
+                               9432D0FA1C83C7376A8A1DD9CF898713
+            stream[192..255] = F333EE1271C6F5FE7DC83B8053671133
+                               17F2ED95BEA2BD8B78C43BD3C71D0682
+                               9216BCAC44367D531757486ACE97425F
+                               310493ADF539B662F9393FE557B62110
+            stream[256..319] = 918735477CC320B75302B5F56A62EEDB
+                               E0FF6C4F0074B141B4CED006D0F3F8B9
+                               6ED6CBC305DEC3E91190342E30313D36
+                               03016E1823C01745F85601486FE03B18
+            stream[448..511] = 60071D563EAFB31D6492F71E37E64627
+                               F0716847EA67B9DEDC51141C29FB8E5E
+                               B26BDFF8CDEBCD646F4330372EAD2B8D
+                               A63F139D676CDE3C3CA1E9AEF9A3A11A
+                  xor-digest = C2D8046C1DC7312D8A123FA7DE24DCF2
+                               89FD94B30E12D037DE411AE83D19460B
+                               E95F3A9AC2C5A1DD1598D07B611476EA
+                               09EFDCB78608C9AB622AA9320B394C25
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                          IV = 0000000000000000
+               stream[0..63] = 68C65D4544A8F5ACACA8685A5A0919A2
+                               B4D065F607A38BB37E37BD1EE1036BD0
+                               CF1E310BD4E87247B4A88AD82931A8C9
+                               D5222470F7EABAE6E61BBEF9A98069C7
+            stream[192..255] = 23EC1C386060FA900C305D631E2F21F1
+                               D2D990CB831AE850184556606F53CB53
+                               36E02B17678BF76EDA3763A9A423F347
+                               E0F516549CE368F4C4E8AFBDBD6397A6
+            stream[256..319] = 53A1B9347F03240E1CBB0539D77ED278
+                               779ED9BDCCD09CEA13E3A7E602BC8997
+                               46CA38B0C544ECB1C8E4ED2E8C868443
+                               A95398F1B67C3679E1F73E6ECB58B8C3
+            stream[448..511] = 85AE48CB5D39177A393A52174476C7C6
+                               94FCD8612A59F76A0120046A43AE6F3F
+                               1CD27C5D95DE364A7C7EAF7D4D242927
+                               DABAB27476676EDE58D7C0B38FD6A2DA
+                  xor-digest = 8F1E0175CE7E441B4BB3F607B5FEB873
+                               E1B9B205E0ED7F79ABB2AF7C3FA23BE4
+                               AED43C2B14C23A8893442878922DA020
+                               CC12B9907982CD76F1F75CA8365D65D2
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                          IV = 0000000000000000
+               stream[0..63] = B4473AB249571E02AB4E18803EFB9775
+                               1A810319F557246B38B48D98C432B663
+                               BC8B084794CAD220FE83B92125D16BC9
+                               629FC2D280E2093EEC03B5029E7A237B
+            stream[192..255] = 8B3AC4BB7F30E0C0036B28A58262E2B8
+                               EC6CE2ACDD7ADE3210C18E1207402C41
+                               E5CA144012CC8BADF55DC7050FD6BB89
+                               A2EF6457D9B99DCEA77E4FBE8D54154A
+            stream[256..319] = 4E962AAC28E4F6AB881FF059019C734F
+                               EF61E48DC3D85BC1D162519DE439F997
+                               587C5A8610B7AAD94464B74C88FC46CE
+                               63E2EFBF3031B13093E041968CCA063D
+            stream[448..511] = 7F9842BC87D54CF8C2BB0B203F13C6F4
+                               B224789E22C11C3DFB350D3DAEE8D8D1
+                               56FE46473A984D36A52C14C2A3EDAD15
+                               841D04FD00582814BE5D6DF0F72E3C06
+                  xor-digest = 388CDD546EE62AAED24A17B88ACE7FD0
+                               2E3D5E2AF16865C81562EDAE9FF570BC
+                               E5182126354A29096B63C84FF3EC5687
+                               8CCF3E566C900F892AA2B75509E52220
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                          IV = 0000000000000000
+               stream[0..63] = 4EC9811F43B54EEFD179185FFB9C7467
+                               3765C376A98897B4957FBB1A3021202E
+                               A2C946D4821EF6595A4822FA858ECB1A
+                               414B8198F488D11BBA3E2CB170B2B6BB
+            stream[192..255] = 03069B6F1CDF4099BA9277C75AA7CEA6
+                               0FEFE7B6356D30A3B1ED5A6DDEFB5895
+                               BBD698F03E2016F38895746E41F3A2F7
+                               7598D9C64ED5E972B5F888EB5F1759F9
+            stream[256..319] = D1700E50DD148FE4F8BFFB92FDF92E07
+                               74EC895AFCCAA5D49A686052B24A366D
+                               8A705C0452370EE0BE55515EB54E82C2
+                               7B125B4DAC334FA4CB98A7ABE2C773E5
+            stream[448..511] = 7101A654CFF8E4FFCAEEEAABA251C898
+                               A561AFD2571C1611120917495ABF50E7
+                               6BEA3E2C0430175A4ED0F2CA4A9BDEC7
+                               F2F28DF15F8CFF82EC363453D14C0A35
+                  xor-digest = CEF88147F0937821E92DD111C15B787C
+                               74959E038D54CAB5910D8DF2276A2A60
+                               FA7C5F8ED9F195AC4DB99653DEAF93B9
+                               1F80864B58FF58A3A20F6F5F6FBE0425
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                          IV = 0000000000000000
+               stream[0..63] = AFAD29CB93914DC4A63CB2D46B7D326C
+                               7B6BEE9B9B6414F251844444C6E8F92B
+                               87206B0973AD56D6AE2A949E8D8F0DAE
+                               82D44CB420B8A904096393FAF6AF72CD
+            stream[192..255] = F2C7F1E8BAF50E1CA1926DA2A81BDEF0
+                               F5BF42580C3D96A2949CB39DBC88D1B7
+                               5265D87ECDCA5C2908E0BBC65A4D8299
+                               4A7AB95E17C4D3B21E714630440CD4EE
+            stream[256..319] = 2927E4B07C8FB7BE22E04C4F89C49918
+                               5D6BC8E3C8C453FB43B0EE354F6FA070
+                               A8ED952E925B0DC976570E2F0D47D622
+                               A9BA624C415526C8C293CB8D3F90799C
+            stream[448..511] = 94747B72603C18638F06085B8B219D36
+                               42B83084B402A4474DCD9C5CF92B8B2A
+                               6F553129B9A314E0CC88F87795F04B03
+                               AC3F6C439CB42F8159A14D75FF0ED9FB
+                  xor-digest = 6AE8306F09191D9A146408B742C91976
+                               6B02F117C5DD20189CBF61C543D73682
+                               173C4B7498AF13D8A954755E13EAF2E5
+                               B6AB671EB60028E5DCFBB4A18CA0F74C
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                          IV = 0000000000000000
+               stream[0..63] = 6DD35C4CD8EFD99BD29AE339AE3A852A
+                               FA2AFE220A2E4D48889452FADF79E561
+                               E14540F1EB742E9224BB3FAA2836F20A
+                               7B9603E0362AA34EA9D41757840EC44E
+            stream[192..255] = 267B05365766EFC2CFD590CDA1681274
+                               797961FB6559215299F6ED4BFFB6FE71
+                               B11D65E03F2384120CF971A6DEB2E84C
+                               4FFAC3E2C02DEAB08C897D32886EC131
+            stream[256..319] = AEA09F215E6BFF3D5913486CDAAAB003
+                               910B4DE88FA4260D886727A2B5A8E865
+                               C5375A9047DB0C0CC939F080D0EF1A07
+                               19D0F1A2EF542D5D46D6B2AE48BFFD75
+            stream[448..511] = 318F237423AFE381323BFC0A5CA15C1D
+                               0C65EA6B81506A2F5264295A292B03A5
+                               6A85D03985E349EE6C51E5F663CA3182
+                               BAF73E25A504364C11913719DACE8C84
+                  xor-digest = 3085648F7B279C826B2F94F2F8531D65
+                               CBFA327F98F550ED3D808E0C2AD13D70
+                               2D4994DC184F4649DA9DAFC33D4D3E17
+                               87027C8DDB92638AB47D77F704EF96EF
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                          IV = 0000000000000000
+               stream[0..63] = 826316D2655FFC00CE837171E12FB5DB
+                               C7AEA0F7E2649456728DBCFD729F2143
+                               731FA8E98E07EC4B26D06C6D54A2974B
+                               AD14FCCF03C6E37ADFCF06E6B5AC779B
+            stream[192..255] = 8CD377013403B5F037E5C583EAF3B2BE
+                               9E521A94724CA10AD236ADDD8C79FF3D
+                               D1DDD81F8915390F8F305314ECB26FA5
+                               82142FA90A002C16E77DDE5D48FAF8FC
+            stream[256..319] = D14C0DE5FA009DCCF651D58DF26A4FE4
+                               7788911692C3943D0DBC57C678FB55BC
+                               77B6342132D9A35442BC024A8A2C8B02
+                               9391355C8C7052A491D47BC4687A94A5
+            stream[448..511] = A8A13389A4EBE240925B08DBA2BA2A1E
+                               8442245472379E9CC84559EA7A9C0B93
+                               C977272AF028D8DB6A2EADECEA8BB042
+                               56F2E554D2543DB9CE40B5435C5E1A69
+                  xor-digest = F003722BDCE570EF81BFEBF57A18DBFD
+                               8D6B0902C9214F1D2D900FE2452FCBCF
+                               DB9905E31C737D3115ADCD2A20E7D178
+                               6563A245D753D6E54140CB581AF4DE9B
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                          IV = 0000000000000000
+               stream[0..63] = AC979A1CE2A0E6928906606085E8CC3D
+                               9113D7D91E4DFEF583476AEBA01521AC
+                               FE8A9026F870DDC1C2A46603573D211D
+                               7C007906D282B3EB6D88BB8ED0C1E8D3
+            stream[192..255] = 551BF30701AF87B8A97FD706C744EF9B
+                               E506007EE543A487B679183305D01F80
+                               0BA1128B58A33A8F3EA6745F932FEF5C
+                               C0D3C4331607370071CF6281DBB915BC
+            stream[256..319] = A8C9D003420390E4EA820809965C850D
+                               CA320BCDC62A3CB2B9C781ADC290DB30
+                               CD06255517485FF34AB9A939423218FF
+                               BE58FBE7DC8B8D7AB09A8150CD1A34F7
+            stream[448..511] = F2E938D659EDD245EF6FBD114A7C81A1
+                               01198B30E3273BF07ABD52B9798BB7AF
+                               A159C46F59F17C15A19DFB8C5397E620
+                               69E18204D38590BFBB8617DEC8A939BF
+                  xor-digest = 9C4501129A3728FCC40141140B4B67E3
+                               E9331093B93B33B6F52CC40C38F10153
+                               A501D21613233B1C2DEB720539806379
+                               77DBBF88B0E71E90790CB5BA55A48C9C
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                          IV = 0000000000000000
+               stream[0..63] = A31F0080FFD86724CC3CFB78FE3E4BC1
+                               BB09F60EC1A213D3CC1A214A91219F7B
+                               804053DFE81DA2407B65A55B3DAFBEEE
+                               F482F5A39ED91408ADB9742D5F90FF75
+            stream[192..255] = 1D56FCA523627EDDEC6C493D1CBC0409
+                               989541B75B0FE5CC614B721B7541B707
+                               EFCC0DD4ACDE33E4FC8C5A3C2D6F43DD
+                               045B7E91426C47664BEBA65858F94150
+            stream[256..319] = BE0AA6F442423A2C218D669C5F32237F
+                               1F38A1F6C8C41CCF18C233721D4F0856
+                               BD41C48CF3AD914ED016EF64FC82A533
+                               D34EE57C06E0D4DDCA1AD06AD471F21F
+            stream[448..511] = C8E38C63F607B89B6148FEED9B5781A1
+                               B1240B332C2348653B27ECFF17864701
+                               A56F8CA32D4EB3E837795E4D81B5A9B6
+                               212CB5D397951B063E61738BC463582B
+                  xor-digest = 1E3310869123274E859925B89AA88C5A
+                               10BEE53BAD38706C1FDAD26821F8EEBB
+                               B87C0D72521057F7179D58BE225F270B
+                               251AFED2F00AD70B67D8E83524267FCB
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                          IV = 0000000000000000
+               stream[0..63] = 530D15BB1E419F9DFA3089C769D4607D
+                               876BB393AA2E0D32CAEB60B330CDE474
+                               48F61257CB6A082B9AE10C0D0902EB36
+                               6D63267157AD747CFA6C0735240E54D3
+            stream[192..255] = 6CBE41812100F5A4897B5CD111409B42
+                               F17F7AAB08FBA2AE49914EEA8D37690C
+                               C6A6FCE4E6E9B5912C90A8D06E4DA847
+                               7DAF4ADDBD9417978E4CE5FC520414A4
+            stream[256..319] = 8CAC169D55BA933B4EB52D46E35F9856
+                               F64D886ED9AD8C66021560349B4028AD
+                               719D5ED5F0DE450B05E59E8983D3DA04
+                               6A25F0497D856BA72E18A11349F34DEC
+            stream[448..511] = 0A6F67C9956CAFE2EFD40AA1F6998ABB
+                               33D7007ED20E0D2FD7B370AFD0A1304F
+                               1B664AA94A499F308D98EF8ADC822ED6
+                               AA78C6BB3D0A91551812844FF144DFAD
+                  xor-digest = E03E1A15074F8F3EEDD49AEFBC12F180
+                               8A6337E0270504AFAEEFAA8160BE1DC3
+                               234F4936482C362BDD67228B0EEA1E08
+                               DBCA66A5E465557A7DD0A08C477C342F
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0000000000000000
+               stream[0..63] = DC99AB61AEB588F154ACCA8D653EFAB2
+                               914B9C2CF5931C772551EC560364F7F2
+                               79F58EE880AE10159AC45165BD6DC24A
+                               6B2A1E8B2200D22FB2FD33454A21EAED
+        stream[65472..65535] = 1C99E87DA97B3892C624FDF40D77213B
+                               2F0ED59DDCBC3B4C8FBC5643232DA089
+                               B2D43EFC4B7E88A49C53F09392C036B7
+                               70507F378AED2BD58140E25F8C1EB8E5
+        stream[65536..65599] = 6496D46590569E649620915EE8806E62
+                               9157B5878C481381DA78D780BF17E826
+                               D4687F47E7276A17E211FDF85B537E0B
+                               DC1A45EED2568F58D823818C52C17EFB
+      stream[131008..131071] = D93D5A53612996DCC07C3FFF09FA2628
+                               D440C2D2A6546F9A2A110995A20C516F
+                               C115A17B99857A5C1B6F0915FC6F713F
+                               EDA5A3CFF01D883BB67D82241F07511A
+                  xor-digest = 7878767E7299446949D45A35FE898123
+                               E71C70FA79BD22D27C81F636ABFD9E4E
+                               B296EDB1EA23C1B52780AEB81F1BC3CE
+                               2F1AACB6E837368EACB75D018EC52E99
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 0000000000000000
+               stream[0..63] = 5ED04FF8F1B87785DA7C6493E40F38DB
+                               694FF071E201856F58DAECC51F8E4F90
+                               604A8592E3F702C53460875D146FEFC7
+                               E4FD4053D7592BE386C8EFE8CEADF58B
+        stream[65472..65535] = 3A96AE0F9D4B0216BCE4F7CB3EA4FBE7
+                               4670BBCFA6B1D65B92C8BCCCF8C3490D
+                               A24CBF1B66F3E919ED6423B6642428B2
+                               92CAFA1A2711D77BC81CE0ECC69AF670
+        stream[65536..65599] = 6CC5169C9B6718F9D5F252C47AE6410C
+                               2ED03E04D7131F650A4DAD9420590593
+                               6497FFD15CD07C6FAD6BBCAC27256B8E
+                               EA740D0C3321812865EA749EF54376B0
+      stream[131008..131071] = 6055ED6E5663650B72BD4FE61C56BEF5
+                               45DD57D9335893A0E2779CBEB7E84169
+                               C6D3CDB06E701271FEEA6049B461C14F
+                               E4D4A41BDB457779C47F3F78B2F1D107
+                  xor-digest = 0056805F91285AED6E9D6CC20C2500CB
+                               46C74653048097A078132BBC8D26A64D
+                               3BA9528CB96B75F51391F55E673C9098
+                               5CED01AA5D04FA9D0C91F917FA79ACEC
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 0000000000000000
+               stream[0..63] = A50E0395F4B11427782EC3AA207197ED
+                               28B724BB7636EF0BFD23FBC470AB46AB
+                               033BFD6DAED57C4E96A8BF1C0DCB4FF9
+                               E306283C907A8E866CAE7A469233F474
+        stream[65472..65535] = EEAD4E23D066067960D4A7F81C4709D4
+                               BBFCB5733902A0179215BF668128C1BC
+                               BE67286EF4AAFC92B50926280C2EDC39
+                               015773DE09AE036C226316F34C9A033A
+        stream[65536..65599] = 9563990BEAB793C4FB597ED5A608F324
+                               1A92685123BF2D904D7D2CC3EEBE999B
+                               8FE71D478CAACF6B258714056C7AB3F3
+                               7F38128ADDC2161C45E66FE11F1C02C9
+      stream[131008..131071] = 52750B381574E224116D0F90132B2183
+                               7D4A8F06C254960FB640DB05C2FC32D5
+                               5B967941BEA73C3DB45FB4806076B70A
+                               E40717398F0A8720A5BC66DDBB6EFC94
+                  xor-digest = BD6C4C1AA56625B642BFC71CDE06471E
+                               B80AF3E8472743CCFAC20BE53760886A
+                               D1F36E9D55A4769173990C1CF155FADC
+                               A0D6457410B1B5F71CCFD032CFB4FAD7
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 0000000000000000
+               stream[0..63] = 76877197342E34583E06EE3E2009790E
+                               E045920CFD1E3CFF4363F3A1BF8C73E9
+                               274AFE3CEA0C7BF71C38EC1B9F99C34C
+                               831E55337F934BAA8071F5B9E2292F7F
+        stream[65472..65535] = 3C996517A813EE3EE08EB4DFCCFA030F
+                               72BFE7302D8BEEC52112C409CEBC6A5B
+                               56E736F408C93DE06A1BC94CF209CCC4
+                               25BADCAC4060AB056C4BF3969D42CFEC
+        stream[65536..65599] = 8397E6CFE768669F0F23DD62191D827C
+                               940E355AF529C17A42475D3688C47F88
+                               9F47CCCD4CB466092DACD740695BB994
+                               29DECE573F9420C13E482FC1C117559E
+      stream[131008..131071] = 22416C462CFF3F76118563C3F925D3C1
+                               3F59A9612564CACDC077362A6F894128
+                               28ECEBC0231392AA5B028AB0DE74EFF3
+                               3A3583E0F207FB891788EA57D9A4D529
+                  xor-digest = 1CC00EF619786EE8AC85C6E4BB97737E
+                               F896FD7D6A3CABD857FD110234948F60
+                               49ABC701F1CC4DB01F9855BB2329511C
+                               016DB4231C84B58BC1A168BAC165C9E0
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 8000000000000000
+               stream[0..63] = 77899F3E881C08122BC3D07878521FB9
+                               EA7A22156241F926250340D3B41338DA
+                               141485D891A883CACF2322B8B76D8D13
+                               6EFE8BE2AC7BAB862DCDF7629A1F4ACA
+            stream[192..255] = ABC7272C3E6C39FE5F13844F119ED50C
+                               B4B17E9E1009E267C82D476381579466
+                               A4EDDFD25D08402A9F55D2B335B47B6A
+                               CC8FF91A623077B37B9A9A85BEA31B70
+            stream[256..319] = DE572B19B2529D272DEDA7F503EBDD27
+                               AD7235EC3C228915462C62BDAA6C9A9D
+                               1A0E39AA921B7A2DADD6F6B7C317C2DE
+                               AC42CD6267175F690C907F84265D9BD0
+            stream[448..511] = D3B2E5F8E99CF99B8C53610BC125E3B4
+                               3910536EF4621AD2AE2B13416422A210
+                               C3A06E397D37B7935FE230C80F871A37
+                               7C40C62716FDE318CB4516C2409FD264
+                  xor-digest = A15B4419107796074B0FBA9986E651CB
+                               2263963EB244E25206019ED2EBDB7A28
+                               4CF8616723A4B7A26D6914B05F63F494
+                               AAB711119222DE7BD2A13F60336DB7A0
+
+Set 5, vector#  9:
+                         key = 00000000000000000000000000000000
+                          IV = 0040000000000000
+               stream[0..63] = 067874C7834E3B3E3CA79E27E94F8C24
+                               F0D7AF283E4898E124B11193146E6486
+                               C4E9804EA5BEE080D5FD301E470DB18A
+                               FEB5A6FEF8AC2449733A2ADB4E00001C
+            stream[192..255] = 6B3559325A5E2FFBD0992CDBEC97160E
+                               25898BE756B3964ACC07B569276B788C
+                               C42FC36A718857887E0D6DF905BA88A1
+                               81607E3CED3DFD1E4650FF704C3AADAE
+            stream[256..319] = A9EAD6EEAEB231147C8FF61CFEE62D3D
+                               4738E6C9F770B29CDA0B9F764FBD80B8
+                               88BDD680811E3E48B0C8A5036410E5A5
+                               B8EE7C8DDC22E546E8EFDE5334634701
+            stream[448..511] = E6BFA80F963564699768F4338F632436
+                               311696DE5720226319AC4646E0675BDE
+                               FA4B6EACA8B52F882A9EEFB65CED1352
+                               A5DBD680F60FDC20586FB743E3C49DB6
+                  xor-digest = BEB4BAD7538E3CE799739FC252D1A60D
+                               42C6DEAFC69E6F37F63BE461A2693EAE
+                               80D3158CC7A5CD67B99C09D996D5B06A
+                               0E7D790CCA85BFF3F5D27A86F0B36575
+
+Set 5, vector# 18:
+                         key = 00000000000000000000000000000000
+                          IV = 0000200000000000
+               stream[0..63] = 438BF00013066EA975D03ECF24EE45C2
+                               AB5F089904E3A86493D6CA541ADAC398
+                               6D267BAEF15D91D68F8849047767DDD0
+                               E22B5BF2CBF4DDB3BC352FE7FEFAA76E
+            stream[192..255] = 18E186989DC6A734A7CDE52F715AA527
+                               4556B71F9E1A503A2781431AD3C500B7
+                               6D15DD78E65E9CB278C775B51696BDBA
+                               589C5456AFADF689DEAEDACB3967F48F
+            stream[256..319] = E656436F672DCD4F6A5CAC4CEECAB570
+                               8DA80E9398D616165A561B8D19BD6C84
+                               171AB8BE9D1F74BCE3F2442EC4750BA1
+                               89233EF493EC4D4F3A8B38444C272E11
+            stream[448..511] = 06E264E0200AE5FE6D8CA6A47FBC4C50
+                               D3E98885203B4227F637CF434A0FF01A
+                               6F173E6374D041D7ED3289AAA6C34EDA
+                               8F6AB36BA53BC7A424FAAE57724B737B
+                  xor-digest = A9C9C12D7750F266689561A6132DBE8A
+                               1521D82D1C15FE21C90FE082B6DD9F93
+                               792A07672E0563A59E77B87145337BBB
+                               3ACB1A6FC3D6C05C56162B3E049F8551
+
+Set 5, vector# 27:
+                         key = 00000000000000000000000000000000
+                          IV = 0000001000000000
+               stream[0..63] = B9B4B4B2B5DC2517DD145F8081E3ED93
+                               BD1A06D57263EE63B2FBFF1E2F157A98
+                               72E4A92890AFF95BA8A13DE22885D89C
+                               343C7F4814AA6082E9AEA44534E0F050
+            stream[192..255] = 78A0AB2C8257099DD8DB3D772B5E6D12
+                               ACB74EEAA84C669F8554FA723F47F932
+                               10271D1CDFC637966C039A42F8475F06
+                               AB55BB9D702326864897D27F47386E11
+            stream[256..319] = 9EF080B9B0DB6BE917596CD73FCD5D58
+                               DE3250C7B8D2B6F23D86E32F494BF4FE
+                               879F404C215E17DE07E1C0E77346F172
+                               82F3B0E8DDEE5217A7B49F207CA60CAC
+            stream[448..511] = 68088721C3381094B5C9A23EBA50293C
+                               103C858DC464E4AB70DCBE529B848AC7
+                               377D1C022A195155027229CA6CC23F04
+                               C3A869BC9E8A81D35AC4967075C3EB50
+                  xor-digest = 5EA518A0F091EC901482BC8FE68F327A
+                               ECBE34D3935371D7D5366DB9E2647F0A
+                               0752810CE013706C01FF424CCCEA5238
+                               B3AD2127CD8EBAFAF85FE28FDCAF728A
+
+Set 5, vector# 36:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000008000000
+               stream[0..63] = B0C0681E6F413B4A8F76250EB48171A7
+                               E600CDDEA5FE07224B8F6317E6524C75
+                               C2769476E7453542A1443FD39116A26B
+                               CD3ECAB567EF1869E9BB2470CF901E70
+            stream[192..255] = BD3346B51488615BC0E93933AE1BE99A
+                               71F560D8CD6AE1D84CEBF81C4624B75B
+                               C26040316E182B443B97795B50E023B0
+                               4E1B63DB02EBBD4759198298548F42D2
+            stream[256..319] = 9731C8B4390C1DCC88CAF9FF6F81EFED
+                               23A6888F51C19378CA2FA982628C3199
+                               428B8ECC4C86E055F1C763DC2AE14D1E
+                               228456FA60FE273E6A371AFD911834D3
+            stream[448..511] = C98D4F237AEC4A4BF3A00A2B7B4F7ED0
+                               82AEB7D929E35DB0EA8C0243486EA7C7
+                               A16D9244188F66BD9526816537674941
+                               A4370285A18FBF6C60235B1634959DD0
+                  xor-digest = 735DA4C363DFD87997F3D69181867038
+                               FDB1FED6CA195CE1A4CF21798D38C97E
+                               E0BF1DD893B2436BB1F188E0EEE690DE
+                               E1A34C01626770C3113802A05E6A2C89
+
+Set 5, vector# 45:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000040000
+               stream[0..63] = FA0E3CF129826AE7C05BF4AFD4A4A1A4
+                               B5175F5F995DD194D4BEA42D924EAEE9
+                               0721CD2C03BDF0B5D141AAB497FD4A76
+                               716A929E274D4E2FEFB19C090DED560C
+            stream[192..255] = E88AC148A6FF3C2CDDEFD901E88F57A5
+                               BFDE385FAE27C51E3C58AD8C2482A739
+                               D26B7ADABFE8AF9BD0C1FE85B40086DF
+                               077A797578174B1538831EE02C2719D6
+            stream[256..319] = B2CF4EB317C6DAF554BE6C36525BAA64
+                               518DD58AA0B9F29A33398DC7C354272D
+                               4DAEB98F0F4ADBFB720ADA1F34021131
+                               B4BC633C4FA53CF41BBD3139CF32B307
+            stream[448..511] = 62C4D743432CE50067BE9C3402F913D6
+                               C6487B06CCD64E2AB1AD87958312DCCF
+                               D4DCF065D9D0DBA57174ED4CC95B32D4
+                               6A2CD09EAF4E2B82FB42FBF106C17F2A
+                  xor-digest = A097954CFCF01E5243AC572DC399879A
+                               0D664683F3136679E0E0D5C968254518
+                               7B3E7CEFD659F12E0394C2AEA1C18F7C
+                               D20E4683CB7F4089887F7078CDC506FF
+
+Set 5, vector# 54:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000000200
+               stream[0..63] = 9EB602945DA9A3FFEB7609838EA24A4C
+                               C33F5FB7AFDB362830EC785139DE079E
+                               FDE751A655E16206E92B98CF5DB2E887
+                               0BDBF5AF82156CA97C00447D005AC127
+            stream[192..255] = FAA09BC88471BF75FBC2954799F7C131
+                               E7F36825505A53F1002844CCB278BA6D
+                               69892854B2C0726522A46D5A728EE158
+                               426C9548E5DA55BD2B6E74D5EB88FA2F
+            stream[256..319] = 6F61D1BB362F808D8068649239EDB22A
+                               70C8A11BCC4059D5615C31ADF87BBF3F
+                               1A7E32DA384239B9A42EC71456895C56
+                               C88F4D2B22228DAB70EDF49D6125376A
+            stream[448..511] = A76277B8CCA4078C52B4CDA35178350E
+                               1D77F36B47294896E03200D68298E2A5
+                               5873B3C15E46C1D64E86907015CFE8D9
+                               2E91D009A7CE20B674B63BBC83F06C45
+                  xor-digest = 347A76EE12E7145DD16089CDE1C459B6
+                               2BA37724A921E2EE81D266964A6D168A
+                               477F76DAAA4557E9CEAD418DE2BE1250
+                               EF980768BE26BC0A49F709CADCC490F2
+
+Set 5, vector# 63:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000000001
+               stream[0..63] = 951A0726494E02FE51B362D4C10F6C1A
+                               1390F553AF1E2093E918339877419BFE
+                               A08BE5F437FAF0DC61A51BEADB9DD231
+                               94DB5B419E751532D262381B57740F4B
+            stream[192..255] = B207F04E998C6E25C8B2621033244D1D
+                               2EF949BC1238585F04C8FF7F735C7FC8
+                               060A235B2854FE3B5BA1422EAB3C1FD0
+                               6E085F810150FF34C968CC00E0C6475D
+            stream[256..319] = 02399E73068AA0E1C30F26C81EE2F3D0
+                               297E2982BFA8083D59ACC071702A0053
+                               267399F0CBBFA0436B8578945AF46350
+                               BF1ED53F2DAC31406732347CE31CEBC5
+            stream[448..511] = 28B00635EF8B25BA88D9B0F01112A196
+                               6AB66E49B68259B816703F32EE9023A7
+                               D4B93C809EC02AB14B110772E04D935A
+                               1535AF7DDCA6442E92E418A94783B6D0
+                  xor-digest = 1BD6A2D07AB7126180780DFD829A8AF6
+                               C9CBE1DBADD34D4313AF506E7CD84D9B
+                               16A1043ACD05AF911B3E9A04249D936A
+                               03B5843961349FF868E6447D512E266C
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0D74DB42A91077DE
+               stream[0..63] = 3CC61723224098C305B8F223FF049BDF
+                               B5C5AB732B7FEC667C291D946B0AD793
+                               D5E0C3F3044CA805A112DC45A33CB2F9
+                               CAD7AE3C1BD60BB0B2C3F6D7761E4976
+        stream[65472..65535] = F1B79C78389867F243F210A0CE97B245
+                               A784403D77D7C48496EE89CAB1D38718
+                               3D3472E57A1378415F9FC0C59854A3B8
+                               48DD76BD939E5E4F16AF2F6EA45FF932
+        stream[65536..65599] = 4B99AECB2ED1C16D8E88B8287B948C79
+                               B047C6110C8A262CF5662CF6BD1A1742
+                               4C5BCD6CBB05EB99B7F2F75DC4AEC17B
+                               DCD06EB0B8E085DBFDE59BE315F01F75
+      stream[131008..131071] = 7DFB356F7A7E6601A00F245315DE2EF3
+                               BCC332FAC98400CF8E37406DD2FEB13D
+                               94038EB9221AAF2E6D43DD2A95B79462
+                               018C2C090B799A7D7D2EFF5FA60AB749
+                  xor-digest = CD0AB8B78F552576FEF0C659F7FFEE80
+                               D34A9F80058DE3E6F20388E0EF803090
+                               8AE985BDBC2C884F3B7A9AA197EF2CE7
+                               E59DAC087093D52F5B5841BD0D68C787
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 167DE44BB21980E7
+               stream[0..63] = 7A6C24ACFA8247BFF612FFF5625DD832
+                               5B6111BA5190D4E01BA9C20680DE1C63
+                               59C3741C777BD6CFAFAEE36A1E6C10CC
+                               5533E0EC79D170DCAF8A28D978CDB9B0
+        stream[65472..65535] = A2CD2AE363426F86EAF6FB06C666C73C
+                               546D37566E7E9CA1EBFE7D5ABED1FC51
+                               218248E5FD8A70B96B4AED5E263BAD04
+                               B8785D0205B0FA327FD2D41088BAACBE
+        stream[65536..65599] = 734D763105388E414F17CDFC72E2BA77
+                               66BE9A274C22483EB39767B2E8A0D69D
+                               4F464EBEBC9D4DD59DF7B3AE1E7B3F26
+                               2481C10E730635CD96D52012285B5ACC
+      stream[131008..131071] = BAAA139079548D60DD93D8ABB21F3FE5
+                               D72FEA4A8F94A8EFFB7C3FA3C1835AFE
+                               BDCF8812D065B474E7A07DF8DE9552B2
+                               B6952ACAD8042E0D8627EF10B0B95A97
+                  xor-digest = D847ECB9C7142B21E853AD7989513CDB
+                               0F806C82570FF22941F3AD8F0D036345
+                               B283288142D3A65D2007F56155C4457E
+                               7D62006B9A19DC17F48F2037618DA943
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 1F86ED54BB2289F0
+               stream[0..63] = 90C6C74FE4DC69648DBF1D8D4DDEE0EF
+                               57B7E55564D48494352688696ED7080A
+                               01A0E69EFF24A579D183ADCD0039C3F5
+                               9015AE5354791917F1CCFEBD7C56130A
+        stream[65472..65535] = 25731F7BC5BE0A0DC8B57FB69EB4FA5E
+                               421E2E78A012AF6E055B7F04FAA2C5C2
+                               D67BEF6628E488669E20A5F902A6F5EC
+                               01F331BA0F41855B02EA1F0839EA0057
+        stream[65536..65599] = BEDB1CF6F076067657D0CD346541F60E
+                               6E82D7ADE831FAEB253C5A2FAE5300A2
+                               7F4B584CCBD420502BAE7E53E399D44E
+                               733400BE2DE5385D498B2631D6F682F8
+      stream[131008..131071] = 1E57E23393F8C02A7A48FD9C3B29538D
+                               CD0A56CFF64F7B61A37836871953FE62
+                               9165EBEFED1478B1797B41BA7D229E26
+                               A3300E6AC1A41D8BF47939F3CB266DB8
+                  xor-digest = A202CC8E2B5F2705C7E054AA1BB3185D
+                               976ADE290F65055C454AD7F3B2D59050
+                               8D08C0D58C4AB27718E36B6990E3AEF0
+                               7861C9FC04CB8CF8161AD7C8F0BC8794
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 288FF65DC42B92F9
+               stream[0..63] = 9AD88F70055F36860B81F088F68FE961
+                               D4780CC790D0D84569F0C7F301A6E4BC
+                               FBD61E960B40A7F937A127EE0F2A453A
+                               A6B2EEEDC01BFBC65DF27DAA0CD8523D
+        stream[65472..65535] = 5B12760DDF4A5C4DD24BB642907179A2
+                               B02AF7C91BA46CAC32C8AD006327AB8E
+                               D062904A1A11CA2B0B9418BECAFEFF28
+                               3BC82416A927149A5A452D460EADA099
+        stream[65536..65599] = 1C1CF4FCC461C79CDC6D3809C2A8831E
+                               091F590FDC48F07E394592CF09B65CE9
+                               4CD512A49FE5F5731EA0F116F08AD1A2
+                               129FE4546983CE81C0FFBB589D410C72
+      stream[131008..131071] = DF236EFA576DCC23DAADD540C5D5716B
+                               E5405EDCD767596696D771DBECAB965A
+                               BBCD1EC32224FFD4562AA4EB106DDBDD
+                               BAD0ED5C2EA3F259C43F14C447F3CAAE
+                  xor-digest = 6225B906E3294851D7AF8690712E02C8
+                               DF9A61C4E6832326A59D33EB6EBABDE8
+                               EE71E5FE93EB15721012C2888464852E
+                               E6F6E319B4BFFE9FE86574D27F4A36FE
+
+
+
+End of test vectors
+
+Primitive Name: MICKEY-128-v2
+=============================
+Profile: ___H3
+Key size: 128 bits
+IV size: 80 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = D9D38A6624FB5D7562660CECACCE0B63
+                               0C36D66F9E6CB4D29FCC993CC6019B6D
+                               4785AB511F8F71BB365F76283034DE2E
+                               758FC24EFF82AA8A6B24DA4B8D697BB0
+            stream[192..255] = FBA65449247DBB6603CF1CB650379BB0
+                               3B792098EB6EF6C508023A1EB6926A71
+                               DC7C14798F8649E70F376BBF6D8A2C30
+                               2A2541272A7F196CA2B6B211BA20679C
+            stream[256..319] = 5EB01EE00D27A16A756E5942C9753321
+                               F9BEBDCEE4949B34773B514F34B2486B
+                               44560EE12D5A7FB6533C47FE759E5C2D
+                               D565FEAF163D67356C70DF5E2458C3C9
+            stream[448..511] = 92C1061E2301FC14F840F910FF345882
+                               59EDC51EC27BD779980537109337B75C
+                               CA8F8970B7DBC0BB411B52475436D036
+                               00DD19D61DBD01987FBA1B04806C702A
+                  xor-digest = 14EF3B8AF19C0BBEFFDA54B9042EC86E
+                               2C9C8DDFD78A2ACCBB2E5178609B2139
+                               74B198CCE93E5C3653F7EACA5EE22942
+                               5EC6EDF265FA9178A2B57F61D80F5912
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 8308B6B40A632CA0B76FAB2DE1F5EAC1
+                               225CF2E476367FBD8BF54D83D767C62E
+                               68751D772E7BE03B9F63111329AF8DB9
+                               190EF7A4E2A59BD196044D4EE6F567AB
+            stream[192..255] = AB8EDB81AECDF651232FF57B19F6A363
+                               7F83A72B7AD0EF7DF9EE962F1D23914B
+                               C0D3DDB4AD40B1BE86151D13DB2543B4
+                               6555B2A942C5E46727C06804C700B5F7
+            stream[256..319] = 2869FB29F36B62C14CEBCD12558552F3
+                               5AC23A73C91FB8326D8D70F1FE468A40
+                               AEC2ABA497C8F046FD5ED0DCFC845B42
+                               906C951A8C0612031F9440AC88AB8F88
+            stream[448..511] = 9BF0798F6987C11EE5A7C3B53A74DC1C
+                               CAC2743E14744BE2427EB611722DFCE9
+                               A6D6D8D10DB2745C527900CFACDEDD22
+                               C38D1DB6944479C50F1C0C7043F25A23
+                  xor-digest = 6A47E031376A8BE4112BE4863164A471
+                               7ECEB3DE693BD4387DBBFA4B5A057D28
+                               56CE1405312A61226777F3100048AC98
+                               D187516714AF0AEE3CA7C1F1B22B0130
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 29D930E223D2D029A140F395F8A9E330
+                               6F8071B8C00B2E423AEE125FE1426B0A
+                               012667D77D2E5D2FC652E37A6B49D3B6
+                               19ABBB86D94E5BA3422ABC93E1ECDCAB
+            stream[192..255] = 78FE08B0BE4953C47DC1630642557C2E
+                               89DB5806E8E427E810DC0BAD990F13C3
+                               40786A32BF909EE6A7B217270225CCB0
+                               BD84461DF5D200DCA877FD727D0BBFA2
+            stream[256..319] = AA1AFDCB998F3645C21989DB9C170B89
+                               477A3E24FAA9C3DDF1DF62E4BEA9A062
+                               7AD028CFD6611CEF5676F68085B9680A
+                               FC0791DBA399BA1BAB2E296B44EFD4A2
+            stream[448..511] = 338BF80FBF0CDDC1AB3F066D1BF1043C
+                               7515A51BC370259F5738A942BD2ACE7F
+                               B9AFB9E694E61489716504132BF615C9
+                               545DAF03AD3CCD3F698D9D4307640BB1
+                  xor-digest = 5E1A7D565AA7606B742058D43640F9F4
+                               C6521170A0B0EEEA9F546C38CC534726
+                               A16DA53EA25FCDADDF83C856FAA24791
+                               C12B80AB345B249711DCC7A806AC742E
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = F14A3F8FB8B7B7A022D596AA23386AD7
+                               9544A580F5D4E15E3F8CF9ABC9401DFD
+                               7F5D8E0D0D39F1A3E8CE0F09FDDA659B
+                               00C33BDD6172AEB72F361487401FA3F0
+            stream[192..255] = 8AF46339A1F060DA423614A6B70EA86B
+                               32DA52453CB3967D4F721AEEBB7A9005
+                               2113AFEBDA3353F656402CD9A57949A4
+                               EC8D63A2AE9C0C8EFFB3FA0FF03772A9
+            stream[256..319] = 9C30001313F86C5BF344F0D3D1FAE41C
+                               DAD0E2E199B2842F27CFD670BE39BE1B
+                               2DAAA4D17E912EC95A75DDB3FB335E95
+                               AC056CE6CE381288BC4E252D4A9EE1C7
+            stream[448..511] = 3AAEB579AD56D26BB1F398900B3032DD
+                               5A0AE6BCB38E63CE840572FBBF158D50
+                               A73F1E59214467B7BC4548C7285CFD53
+                               3F9EEBE3BF8A86707560B4EFD8BE2DA0
+                  xor-digest = 670F6F49303F981139990A720E660F5C
+                               409375C885C007ADEB9EEF6ACB74B696
+                               685026EAA9046A923CC32BCAB49E405D
+                               248FC927A1F46160A66D26EDCAABC73F
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 6F4DFE085EDBEBEF2E62C0A6B3CD46E4
+                               32448A333EC850FC404B35AB3E03DFC6
+                               9190DAB0EA16734A36DFF1B599AB1C10
+                               2C1518F08807BB691B4102CAC363B480
+            stream[192..255] = B8B17934E333E664EABB98402C4E39E1
+                               07FD3988A762615A21B76CCCF28AF3DF
+                               64BF26FE09CC03407FF0B91E71ADA7D0
+                               C5C42E38AC35E1111D9D01448CF3B09C
+            stream[256..319] = BD1947B9E7942C9602B11B41FE5305E2
+                               E475229020D67F4E697B2CF4448180B9
+                               BBE87D40C4549A0C07CF1139F72B2CF8
+                               934CDDB43ED0220F67681CFD5377B17A
+            stream[448..511] = 84A9867F935C9AB3853881D8E940E7DF
+                               1D1F09DA7CED3D9A2FCBDA952A697CB7
+                               EC5964F5EC086EAF1F3013D7D09A58A8
+                               75F893550789535A24F1EF724BB58DCF
+                  xor-digest = 8F4DEFF7F2A123F2C3C1FA0BE6CCD211
+                               C9448A6538EA65549587F81C6F98CA2E
+                               CD89B002053BB1F0AE2B989428302DEC
+                               C277BB8A0240A32DC1E71030B013668A
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 808A1A614527F8D66F1D59730D681407
+                               BC26F49403A6D417BD2351D89FA7C5F9
+                               585716B1BA26FC7CAA51D80C6ADEE886
+                               705585B2F64A70640487238504F1AFCB
+            stream[192..255] = 46364909FE78B47093F306A426DF9AB3
+                               CC31A1E7081978ADFEEFF75A9B277ECD
+                               6FE8D1DA67F831DA6F4429038DCB0589
+                               53AE25E476AA0FEEF8980D850C465DA5
+            stream[256..319] = CCDAEB623C0B494C7122EF49B7549A0E
+                               3124DBB7C803BD261EEC93E903048F59
+                               7DDB0111822AB279815672421A0241D4
+                               D1DA17F4C5A45446B8C850338820ECF1
+            stream[448..511] = 91315F777E31A007BA95E114399DE034
+                               9149CB2B780BD629EB4BBFAB7EE6E51E
+                               4F4399EA2F33922A9492E8BEF2DB915E
+                               15EEDC5F386240581159AB11A3B19ED4
+                  xor-digest = DF2BFD03E738868223C3965B4E3A0084
+                               E0AF7653C515FA7C0ABAE543CCA5A01F
+                               E640B644E4427D9556B95EBC6E6E645E
+                               992B7544E744E16430B46958C7DC8BB5
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 6BE679AE79E4A07BCFF84421FEB02FF4
+                               303D3614ED344808CD0C688A5BB53C5B
+                               5F7CECE68AF802DD94EBF4B049E4BC4A
+                               5E49441D36F429CD335B741E09BF54D0
+            stream[192..255] = 33C591C22E73CC38E9F9CF8ADE94E410
+                               FEF4A1ED19C98258E2BF06DDF7FF4356
+                               FFD8003395FF5DAFDDFC941641B8B2A1
+                               DD6932B78DD4DA44255A914BF18D57F8
+            stream[256..319] = 7342F3EB81A8BAE824478AA3B328BF9E
+                               88FE9B8CA64BA235B8612DB0D58963F2
+                               0EAEF475C3766B48B67C7B813021C812
+                               4B8D3CD6FA094A0AF576AEDA4869FDC6
+            stream[448..511] = 637D9B358864AA7375F03BD20F326704
+                               B365C98AB5CCDE7CAFFA77D5EBE5FDEC
+                               516EC02F31F18D983CDABDCA7C4A0317
+                               677A1603FD7E986F2D98D15B32166546
+                  xor-digest = C0FF1514DDD5DB1FE6A43AEC2DD83D87
+                               FDBB94404C38AE18AE167F164B10BCE6
+                               1BBB780EE1732A8EF2F21CF3DFFD6397
+                               6E61F61F51C4586C8AA083627CF259C0
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 3111544173CC179F2B6118CCB1C64363
+                               285A527CD548FD2845C05DC321287A04
+                               50A330D74D21BFE118737336AA2B2869
+                               FAD39A9B84FEF7C06DC0DF057ACDFABE
+            stream[192..255] = 74D9E857B99417F5642C1B8D134B6148
+                               FD4A2AAA6631ED30AAADC474E4AC06BE
+                               D54A6C6574A9F24921D2F045E42FEB57
+                               2430E8512F7154C1B83DA86ED4255A16
+            stream[256..319] = 2FC702101D3A5AF072C7134C90917580
+                               3BDAE43BECDB599317A01DD22B36835B
+                               5C58EA68EAB846CC2E8430E8A61496A2
+                               829462F0EC669619451C436BBAC99C79
+            stream[448..511] = 71A4B0131FE830F8F27E455E31223AD2
+                               A1F4D700CD4AC64CCF6078EA11653036
+                               A63E8272FF0006C9D3E1F9D2E7B54C93
+                               F7CDA88EBE7FFEB76F42CD81F85C9950
+                  xor-digest = 9DDA6487E85647B4CC21E36FE11FFF0E
+                               F017BE012695CCC59DFFBEF10CE32745
+                               5CC4039C79B03A4183FA13FD77A2A3C0
+                               803AE08D03896CB503D6C6340DE7593A
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 0AC5DC039D1AC6089BD3148ECE3C9D39
+                               3704462B3F77BE083EA801AE39800BF1
+                               65247E0C0D7B3C3DC14CC367972797C0
+                               74C86F43629034250ACFD81C4380FE09
+            stream[192..255] = B8481F03BE6AEC532CD37DAF89D26BB6
+                               2217CAA40060E8D3B806A0C91BD67FE8
+                               422FA0BCD149A0700825E65CCA7B9753
+                               330D51B0F7E299FE93C0892AA093ED44
+            stream[256..319] = A51D67CD99C46737861EB3C25212A4D9
+                               18F192C043856BCB5D5454A9812723CB
+                               4433F9D3E88C05C1DC75306F767C137B
+                               A4CD3674BF5101ADF174AFFC2DCB8DBF
+            stream[448..511] = 32DA2961FDE9BB64B3009F00A4246387
+                               CD9593E7B97DCA05E9C8747D1740874E
+                               CD84863EFB090C7C8D302B5CF90A7D7B
+                               D38C4484F289BAC0FAF2D3CF53FF7E75
+                  xor-digest = 99A1078BC539BD8425A55BE1E3EE7592
+                               85A7A19D539BCD886086A4FDC8F3FCF6
+                               731AA9E9A39EA86EA503FAA127F23E02
+                               26E672F9410882085532CCD8B0D22211
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 34DBBBD5219EE8C1C857A89A71695B9D
+                               72DEA395CDC7E134290AD689811A1A8B
+                               BD80DB2EB59883A69F1CFE3E4968F8E9
+                               676A954D23F28941192CE4E97028414B
+            stream[192..255] = 76FC1BF3C7B03C2993376B5C526F0E1D
+                               AE0FC6BF1D4348A3761B6C411671DD3C
+                               78C1B2D9EF4CF5ED57DA1984C9078451
+                               1CBE42DF2B8100A60C4FBDC658338FB1
+            stream[256..319] = 7967AF06943832F8E322296DD28F10AE
+                               1154277BC45B9A044607B02E23AB262E
+                               ACD58DF4A8ED2CDF979A37C26936E975
+                               3D4B63412B3073EBFB15E766F7D3AD83
+            stream[448..511] = F2A8F281D82BB401BCD32E668E5CFEC6
+                               633F0D0D75AD42B0E15744B6F1DB5F86
+                               1D4118ACED2DE33CC709841D1792664F
+                               076A7D84C67A90AF1A828679DB24FB39
+                  xor-digest = 1B70FC9AFDD782B25EDE35A686AE800B
+                               2E0D88B7CA84931D8E29A1FD92EA08C5
+                               BDCA590B5FD5F1F92C3E5C8811D3E0E0
+                               DFC6C0D201992F3E0EEB245A6740EB78
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 131E1C8A69A917C9597AA50139A51705
+                               109644BEFDE3E5F6A06446A5D07625EC
+                               4B2109645309999F9F169797061C3405
+                               C82E269C3D71B4FBFBFFC9B0897F2F6A
+            stream[192..255] = 50286E62E652ABB443E9769CB903D4AE
+                               7BFBB8FA9C934861BE748F0827C4FD9D
+                               6798D8B857CE8DE79F90B9E9C64516D6
+                               110F81D5A512DDAC974744A96C260284
+            stream[256..319] = 8643419B2164B7EAFFA491CC3FF3CE34
+                               F0397EFAA504CBBE1634532EE71BBB16
+                               4ACC8274F967DA910168DF8FF2154B96
+                               62530F5513EDB675AA58385AD78D4101
+            stream[448..511] = FB82B9336E8EF7DC65452DFA694E9A43
+                               948B1EC0B815D84DD29074C563C81CA0
+                               E9154EC0709EC205F8ADF8A7CD88C9AA
+                               B95D13CBCEBAFC28299FC9D80EC8C916
+                  xor-digest = FC7F03D14ABA2E55C183B15A3D0628B2
+                               715AE88614B22BA05D1052F2862D1461
+                               2052BC49E561C4A3A940013EA2B0DAA4
+                               1611F8EA584706F581FE73FBEB5FEB21
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                          IV = 00000000000000000000
+               stream[0..63] = DE422F02F4402A02761D47A6FAD85532
+                               7C02F90817915545590D488B77A123AD
+                               60088E26CB540509D3A8598049A41D28
+                               61463D84F97EBDDF982F708487A980E9
+            stream[192..255] = 68F30C567584BAC669EF337D46DB2642
+                               4FF29C26D66BAA820AB1243407607A7E
+                               9556AEEF3E1272701E0083434E1BD72F
+                               576AB0A8A431A00BA1EF9EF12A3195CA
+            stream[256..319] = A2B841877598DDAE72C7A95C64B42B6A
+                               0CBB533D26C112EB4FFEBD877349ADA4
+                               96FD3A85D4FA156D0BC235B1EEF2145C
+                               C960418921BEF6767A849B8A07946388
+            stream[448..511] = 56ACCD89A9A9D40CEA11257F200BCC24
+                               52DA8FC05221CB9B8EC524EF0DA6498A
+                               4A644DC45BADDB11D484A05252F1FED9
+                               8F0E440035F2E8E48DE10D462359993A
+                  xor-digest = 75992F0EC4568E17B53A46E72B0EA884
+                               4491F546C049AAB4B7184A346AE2FC91
+                               44A653F6D92A10EBBD072AC110143A6F
+                               301BA786407D64F123A7A37B143D2B23
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                          IV = 00000000000000000000
+               stream[0..63] = 95538812542D53EA9372248966D2411B
+                               4A476D0235B2218CBEEDCC19907A65B5
+                               FA3D78DE6CF7F37C363A046E9E56DD29
+                               8221194514CD48A390689D6730B19FFE
+            stream[192..255] = F67B9876267828B8D2343B9D40B1F30F
+                               AD050BC3187E6AFF8BDBB1DB6688F2CD
+                               EC6720970C53D66D1FDA49CD9BAD066C
+                               C6FE67F7E6280695FD5B6FC24AEAC016
+            stream[256..319] = D75C48BA3F67C4FF0E29353C6270889F
+                               83E35B7128D21DA6EE77A8B91C65E617
+                               CB56D555804CF0F97FCF99D4FD405D74
+                               ABB9F46AF98C6C3753CBF7637FD9A3EF
+            stream[448..511] = 0CAAA9499018F734C786BD3EACF9F7D3
+                               755A941A5EB7D376C6944D7B3FD1A6F1
+                               FD2DC782A5777CE65400870E3EC66B2B
+                               9D001690D1BF2815C80B980F409B2619
+                  xor-digest = B9CBF21C2E2C4DFE8B1764B41B00A4BC
+                               8D76C82FE6A713D5D1831F3B33F61BB3
+                               E02EED4111C483FD33C8DFB6CFDEDB9D
+                               E5F8C168D3F0A36E7CE042B423EE6CF3
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                          IV = 00000000000000000000
+               stream[0..63] = F21EFBE4459DD5B50449E0A4C5286407
+                               692CB9CE970A8E812080DAD813DF87EF
+                               374529C405FC339A6A92B8DDFD3CE0A1
+                               BB6926C69687E0BA2C3A9001004AC8C2
+            stream[192..255] = 1B5C536E0D6341364D0A4C5511CE6A62
+                               4C4BDC8BBB7112C99A753B3A9175E608
+                               1B08AE347B1CCDDCB3926EB503050899
+                               EA73779E2AA0879A54BC669B477F0CD6
+            stream[256..319] = 5CEF072AB0E5E3A8F3F21C79C3BADC80
+                               951532130718FF6C509DBADDD7035C0D
+                               A661E31F2F7127364907F894374B052C
+                               C5123FF1196B0DB1163C35A3B6348C73
+            stream[448..511] = 8F03122C85BE953EC58EEF85028F318E
+                               E97E0D8041804D74C98485DE7E2E7976
+                               D55A7674C7D35E999675F379F71691D1
+                               EBA07AC3B63BC737BE106ABEBA7194DF
+                  xor-digest = 29728778A7A683F5B73213FD66D10158
+                               18411E7454F78CA2AA782318587B7916
+                               0B31C7CB78B35AD9611B6F64B8CDFB2F
+                               260BDBCCEAA744A98F8F45001561B719
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                          IV = 00000000000000000000
+               stream[0..63] = FA48347D1DD22B7E77AA8BE9FF04D029
+                               1CF5F33BBAECCB973E54A34588FB0E71
+                               F360586D45BBE5AA20F489ECF4DFCEB2
+                               0A2D0832944EDF339F951ECF21EA20DA
+            stream[192..255] = C4CD17F909450D82B6FE2402B8634EFA
+                               C90E8FA2596CEFC1A610F213A430D0CC
+                               66A97F212B255D0D2F2DA1FAD590214E
+                               B43D8893274453874899879D99BE516B
+            stream[256..319] = 44700BC6C882F4EEC43DC1E6CDD1916B
+                               965513C8D65E2C995A09D3D008074393
+                               D965D59210001FC7BED15DC5EC60BD20
+                               A289031432179DE40291A834EF4B268C
+            stream[448..511] = 6C30C15ED03B23F24004349738B7F9E2
+                               F689C4CAF108412CD0DDB632C298CCA2
+                               FA7BABCCD3CD29FFDA18CE7E0D1156C9
+                               40D8D6F3199B187FCE0AB52AECFE2AFB
+                  xor-digest = 88156EAA28B5CB78D4506603268E40E5
+                               E2A6A46BDABD4F722749DC9D62F74663
+                               5D064374A1D17175AB03609F09B2E0BB
+                               DD73B29A7CE9F9A2B2EEFCEF1E5E7E28
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000
+               stream[0..63] = 93EE16BB7456FFBDF4682C92FB55EFCF
+                               A97DE58E792B05057B6EBD7420ACA467
+                               0FBAD7EAFC5A7D05875D0F8D57140AEE
+                               A237A56AF99E023B1282BFE736788EE2
+            stream[192..255] = C66ACBF9B598A7BA5B3317301453B92E
+                               999B42E95541D5EB6489BC69C2E7F5C3
+                               CB2CDEFA372783EC02D08F30DF4CA0D5
+                               201A19B00852126CAC64C7F7F137A03C
+            stream[256..319] = 1DBFB025491EFD2419561DE622F6F2FF
+                               0E293B67B3950160C8F54E40D626FD17
+                               CA2D840FA11E35B3F40764ED3B567776
+                               EB81B8B146AD25622D9755E695E578DD
+            stream[448..511] = 0282CD37098C8267AAFB6615E286DB6A
+                               93E656BE8C6F617677FC9101C096F042
+                               0E59F2C032AF4A60DD8BCD446981B973
+                               3E57DD6C8CB82CC48AEA84B42E2DF5DB
+                  xor-digest = BDFC2B3A9C27B910CFA0FCE9EC0D8BE6
+                               0F6E0A318A5673D5CB3A87A55E6DE176
+                               E8571D24C22D85A9147BBBF44B2E26F6
+                               14F1A41E85539CBBB2D0FE5C1EE64F28
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                          IV = 00000000000000000000
+               stream[0..63] = 53FFC72CA7EC338C5976C874654EA29E
+                               9441D99A70AEF97E6C506179B3293A9B
+                               60F3631AAE92A41807ED3EF176A48CF0
+                               6D3331AB8F844966A688CA29709B2FFB
+            stream[192..255] = FB1B3DF3BEA89E11F1AF45C86865FC6B
+                               B3E0B2F51FDFF0FEF199C7D107172BE8
+                               9718B613BDD52C50C77CE109E53FCA38
+                               37A2BB2815C0EB17666542B8974F68E1
+            stream[256..319] = 0D7F2DAF4CEF3B9AB3A3B3BB838CD97A
+                               7AE6910F8F3DA65179121931A7F5BABB
+                               A0004A3D8B2DF7ABBE5336A1AACD2EBF
+                               FD033951C0DB8948DA7A011E22494EE0
+            stream[448..511] = FED118B634B3A7B6CFC92F78D322FE1E
+                               895D53D5D1D1CCCCF3E871E6458BE1DE
+                               A1D58F0B6792F48239E4BEA60FCAD892
+                               FC09C4194C9203D1A61ADC962D9CD832
+                  xor-digest = 72184870E1AD11F46E0EACFB7FC3726C
+                               9F2FAF603150CFB2B10DD18F6A3192AF
+                               02D115E6C8FC869039F3B6936E1DCFBD
+                               9BF15132D0A5E5B97400B409406EA08F
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                          IV = 00000000000000000000
+               stream[0..63] = 79BA35989367E79D71F2A91611127267
+                               6A66A2CEC9A343F89ABF9F7C6DD3ED3A
+                               0402B5784191EAFEA0C850A0C75B5A0A
+                               34BCA1B6092C036609EAA4C37900B277
+            stream[192..255] = EDD22A7895ECA3EFE81460F5B4F23A78
+                               E119AD9DC208F1E29A864B51560C19F0
+                               C6F996F9A2469F5DB06664CAC5F21DF9
+                               98FD48C9070ECD86F0953C55110A9C4C
+            stream[256..319] = 3A5E553264945363B46E67CEACD203D4
+                               F0D15083960E5623AD0DF44E66C6649E
+                               90A76F7BA5A76AD8ECBCB0519761B09C
+                               897D8DD221E0AF685C7EEF8059B950EF
+            stream[448..511] = 6F28EE357DD44121AFA23C7D334EF4DF
+                               F3740E2694ED8BA1F0714DC02E2AC6B5
+                               957D584E55204EA5CB346E0FF55C9C93
+                               9C70D1FD557C2E5E37F88DC4DD331E91
+                  xor-digest = 8ACE88D78B524B0BCBFDF9599107B72E
+                               8CA783665E600D69F6F621B6EE89B9EE
+                               94FC33C43FC637FE86D976F9C6CFBB66
+                               67D34A8F41B3E544B830EE9B39E94D7D
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 00000000000000000000
+               stream[0..63] = D4954A7EC3A0C03ABEFDEA57817C3D43
+                               4BDBD9B06B27E73DCA62354916523B6E
+                               46EF99569F17CF85FDF76E6B47B852C8
+                               F5A2EA17BCD2486ED8F0B45DAA07148A
+            stream[192..255] = 7E0C18F6D294F59791043770CBA65A0A
+                               03C7B0E888A2239D9CBE14D7D008D220
+                               C9307ECA13CCE21075C8FC98BCF485CE
+                               20EFC03AECC082714ECE82E3B3DA8B2E
+            stream[256..319] = BCA5E50BB1E81D44C2D9D00AB85B76C1
+                               3E5A06CC3BA0173B7009D62BF6E55063
+                               D84A1BB2F4DCDFF350D73C288E070EF4
+                               9ECB1E62AA0DDE18EDE20A41613D88CE
+            stream[448..511] = 7295E5711B8626D382EE17A079D504FC
+                               33B8D5C8C256A2FC11E8C4CFFEA04322
+                               001ED60D18B58BB67E36A340CA97DBFD
+                               9E23EF1D02A24C3808F71C9E47DCE5A4
+                  xor-digest = FF72D8C25658F4C54BFFAA1D1FCB86DA
+                               DACF50ACE12263C3565820A845E91FC8
+                               84122CC9332B25E590A81AC2A0120441
+                               44BA389C3CF5C0484B947482EE5D6461
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                          IV = 00000000000000000000
+               stream[0..63] = 61FBF23415752F4F539B07F859F602ED
+                               5BA9A28E110333186AB5DA47562117EF
+                               B611F07CA4241DD79445EF44429F8F45
+                               3F1690421DCAFF3743A99D35DB1C24EB
+            stream[192..255] = FD57A86E47C02E01732432E02EE83814
+                               5CD7F99DC8A54DAF12A58419D7CC20C0
+                               D88FAD64461164DDC5BC452A1AD34E60
+                               B38CBCAB82483544DD89BB54EB45C722
+            stream[256..319] = C0088BBE4F584B248623725DA7BB41FD
+                               7206BA1D39605E814E6C11EC7C7FBCB6
+                               743BE95586B4D355A297AE196102592A
+                               38BA120E270CBE400BC026A9EB3FE02A
+            stream[448..511] = CE8A1D92BD3A6378D624E0178AA24482
+                               C30160A1A365136B5B55C37295F7860A
+                               FD80A1FA4012DD2F633D1541AE75C200
+                               192F2A5D55C0EEA25177C5814F4CD027
+                  xor-digest = 9D6965A0F71C4AC485447DA29532A906
+                               19F1DB82D3617A4E0B62817A43FB2C1F
+                               87F29B8447ABDEBF2C8C7EF068EEEC8F
+                               E1FFCC30D5A9555B20371E5094D4EC4A
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 00000000000000000000
+               stream[0..63] = E941D0E238FF2DD9A76354FA2BFFD6EB
+                               52DD0B93F7394E9FE4EAB30F8B28F320
+                               B0D8A126BD5E78EC5EB4228E9CD762B3
+                               DE6B089EB0264A914D41760402458403
+            stream[192..255] = A1D70330D8AF03C6480553D4F2A807D3
+                               BCFE0069D97735BE21E9063835A09FE7
+                               25279C2C5CCDC7088FEEB0AE1B9DAC14
+                               E0F8DEA4889B1E1781FC79C359DAEE0D
+            stream[256..319] = E8CD96181098EDD934B775A66A6E0FFC
+                               3A148F7523D594B4C265B84639053628
+                               183C28EDA2A5B7FEFBD817561595DF48
+                               4CA5D0AE2445B73D5436F5135912E15A
+            stream[448..511] = 4A53DDE533583C2DBE8C33F025C20AC0
+                               88A63EE815FC2CA7FFF143E63DE5CD14
+                               4E72933B35F241B3448EEF89FDDA730F
+                               93EACADC2710D4AE02807BA0175D19D0
+                  xor-digest = 19A8041C4EF40E11D586ACC53652247F
+                               EF62D243D7A9B36D0DD4A07046ABA737
+                               5C1D907F3966C7DCB99221FC691A63C4
+                               92C1B2F1A5D18E8C6BC346B10D97BCF6
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                          IV = 00000000000000000000
+               stream[0..63] = 19032FF8B6BAC78041B9FA8C1106FF7F
+                               8BE8631C80AA292A2EF7BB7D434B1D02
+                               E5935E83EB005C019E2BA0578E5AE031
+                               17F1BEEE6149A97D52E1A71F61114D2C
+            stream[192..255] = 61C70E6422BD3571501C4ED602E499A7
+                               FD57A7E13C1F724B28624468659CF267
+                               009713D9E7277CA107B957648E5D3981
+                               E7B7A5D5D4DB4287CBE4A203AAA6B1D1
+            stream[256..319] = 89685D92FFFA8161B84B7D00998BBEBA
+                               3C0849DB61A24F842846BC013A4E28AC
+                               BE1C2F25AC09AE89CE26DA30E1E0FE8A
+                               3F6FE01AD1689CE0C28A4EF9D0D9938F
+            stream[448..511] = EDE4A21653976784438F24694A758515
+                               0BC608718FA179C29BC8BE0F2E1B8C46
+                               B17AC68C24EC4E61FAA81C8D11C23321
+                               ACEB47DC4CF69200CAE3311E9AB5AD98
+                  xor-digest = EAADE864BB8991795731F623DB647BB6
+                               13E70AF78896CDA391CBB5E5676B0AEB
+                               18BAE47DEEF69942E6C80E17624C00CC
+                               EE860C6C93D4A60AFAD55DCAB1CC85A3
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 00000000000000000000
+               stream[0..63] = 57B094D011028A739AC687E6F67658F1
+                               C8E189E27365D01CC7362B52066D114D
+                               5C4133543A0A247C9A6E0D61A4A1340A
+                               0A8A7171C13E0F7381F5B76DE854B802
+            stream[192..255] = B10DAACD33D10F3A953F4723F46F202A
+                               569DB560C2C4E026F9666515712FB34D
+                               D9BAB94028EFF6AB9C8ACE6A335428B2
+                               276DEA6F100F60DB189CB9F57EE3B85D
+            stream[256..319] = 852CD86B7F557888DF0AC07F399397AE
+                               A3C78D979BCFB6AAC184F87FCEB82A48
+                               EC09A6C710586928A50D77AD43C4C556
+                               0427C2DE30038A8BCFA742CA77C1CE91
+            stream[448..511] = CF5A075172CB3257D9D6B85BA328D083
+                               AA013BCA2B459F1B2582D8F2DCF7AF7A
+                               3D53A5255B049F40296CB715D60132D6
+                               371587F78AD41D57A224411BE0AC96AD
+                  xor-digest = 9166DFBE926ACCA3278E11299466B9A7
+                               280C46AB2B050364FEE8E5A67DFEB8AC
+                               CA9348E980AB8F7F54AAF0A8118E1037
+                               060834B4FE534EDBB00D04FA66226A23
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                          IV = 00000000000000000000
+               stream[0..63] = 5902BC3DA97E1B9602C4115697ABD95A
+                               968E1F1FA143EA29AA5762E5EE1AC2F0
+                               F6312D2036DA700A76D780659EEBB85C
+                               8CF9BCDFDC91877F83B5C56A1B58D23E
+            stream[192..255] = 17F7AEDDC919F1A55BF5926801D86B20
+                               5F2C19CB5641AA6335AE6B4E2094695F
+                               40879BEA4BE7D9B5B4B8E1A5C34D9FF8
+                               AEF20FF81DA27979D64088C47EB941C3
+            stream[256..319] = DA9796423665AD85C12759ABC2B72C7E
+                               8580176332CDC94DB4EC6899E4FD900C
+                               819A5AC9405F5B53BEB056E81620D50A
+                               AF6FE7C234FF4D5C8F8A7A3C915D2EEF
+            stream[448..511] = 6AD8AAF7F545E724FFF8E419B9B46B83
+                               3BFC4F9036D1466AF7038C17F5922C90
+                               4E00ECB68C46B90297EDD62473CDF2FC
+                               6E6D2AB8D0AAD55601E2C47A1C8C3DEB
+                  xor-digest = 0204A195916EA3E209FB31AC357A5EC4
+                               2C6BF8CEC5ECBD2FEB262C4442656EBD
+                               2BCFE0EFB9A276F2FB9BCD0FD1EF3308
+                               B62CD80DAC983A1AD35A078235767A5C
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                          IV = 00000000000000000000
+               stream[0..63] = 0E1A863907B43F8552C8384CB1841B51
+                               D037BB578A8EE0583458B1979EF6B63E
+                               DE209133040D5CBDF309F8984BF29D3D
+                               C5AF770EE6763722BE216ABC57A38A8D
+            stream[192..255] = CDBFBE5A506EB5B9DD88142EFA80FF76
+                               CF15834343E7548DEAFDD2B8B1FDB2AA
+                               A30462C40ED86AF3D6673F6AD13D8ABB
+                               4B65E85E77B949B3550AD777BC95F265
+            stream[256..319] = 04256F881CAB3BCD9E24113C80B167A7
+                               3118A2BE196F8A331CF7B3789D333E70
+                               01A74CB6E1F6C75169AC2C540AF57F94
+                               90CC0389639F729728CAE61302719604
+            stream[448..511] = 794819CF2BB35D8AA176E6CB5BB9E8AC
+                               B9167044E587675EB1C356FA2919AE2F
+                               309BACE5DCF4E4C6E0C68D900CAA59C2
+                               8EA1837EDE80540797CE67E911CF663C
+                  xor-digest = 21E1C4162A954D68ACD7206553F51205
+                               C01F846F09E58F1B94995AC4F6F30499
+                               5FC15667959B153E5A2B4A8C5B49C9E1
+                               47F0F26D5AB4FD09A9C402DF3F94D7F2
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 00000000000000000000
+               stream[0..63] = E4D91492638AB126E13339DB2C026CCA
+                               EE5E19A3249654499EE8462AD31B1F71
+                               85CBDDFD82B063FB24024E2F2DB2B4D0
+                               E1A98352AF40060B195A461F4ABF964B
+            stream[192..255] = B80F64F96A16D5C3B5569DD1375BC2F0
+                               1EB997B18BA1504C96ACF8262651F1F8
+                               EFA37F977E572CF01ACD3D57F2AD7026
+                               72AC2FA0CC59CEFDBECC1AE5C99F9ADF
+            stream[256..319] = 467AF668B6D1CC9CB8581A4060C6812A
+                               AE2EF6AABA88C46BE6D6E715E8CBD5D4
+                               151343EDE3B76A5B11224FE3DE3F3DF7
+                               95FA707556F85850E19C46445D00D77C
+            stream[448..511] = C9C2BD61C30E1E8A93F1728A51EF94E3
+                               30EC5A22E0877C1B81F6934983864BFA
+                               FDF12420394253CB15469639C1840A72
+                               BDC4BDEE465C6F0BC66185C653E3A518
+                  xor-digest = 87B094873DEC29F83AEA0AD7FEF111F2
+                               344A1344B7BD2EDB453A9412E2DBCD6C
+                               ED83B9677343D5CD68CEB2EA50D2B2B8
+                               F12E19F2F1CBAE101EF7ECDBDB5C191F
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                          IV = 00000000000000000000
+               stream[0..63] = 915E6B05C9FCBA937A61D9DBA6F2BF50
+                               943380E0898B0B57905A8D308D6D521B
+                               6E65E47FEC4E0A845AE7AD2BA73C058C
+                               0108FB5CA729BE17FC7CBD35303D9F54
+            stream[192..255] = 6994CD9E2311471D1B7C6B927FEA806B
+                               3DEA06DC2DF021CFD6E35F12C9B5A9B3
+                               B84234C6288881E8842E01C46FB3EB87
+                               BBFDEF6B49E68CA12F8A4E3A2A5E4252
+            stream[256..319] = 252AD9DC9252C455FFD1A509A274CB87
+                               AC46BEDFFCFF5C80A133E6205C97B9AA
+                               2A0159A031394CA254E8A71D8D5144D2
+                               E4DAE61130A94B4D8F3BE9D72EDA20F7
+            stream[448..511] = 1774B6CCA18EB83ED26F3D0439CF10B4
+                               A3D775777FFCEF4F74020CD00AA0E5E1
+                               F42CEB5496EDBB366FC73AA939EA91CA
+                               1393D0E68781D1752AEDB2074B4D1C02
+                  xor-digest = A501C688A8CF14B37603912B884D9CB2
+                               D9F91AC8224B66312F0DB5BB051A08A3
+                               46D8F9578C4A692E053A753294757CDF
+                               D355D3E68E2114FFB96E58AE036E1127
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 00000000000000000000
+               stream[0..63] = 02BF7D7FADF98CF15ECE5390A80FEFA2
+                               F5AAAE39362E531BBE55475970183AB1
+                               5C7BD6A67E4C5C311249B4430702F527
+                               FA613C06D2C13A830FA7CACC4955F9DE
+            stream[192..255] = DFF1C2DAC5AF41B40573A95BD967234E
+                               116512503846217825C773E4B16D2186
+                               A804AAA14615C36C493203EF82005E74
+                               97FE9DAF1EE8DA49F6B27EA216A095D7
+            stream[256..319] = 29DA6AAF65063A35D12CED9100FD0CFB
+                               AFD9A4E0C0648359C06C5CC79AE9A151
+                               42321C9985CB6BEA119C550A7504D77D
+                               5F68A493F98123625F32E805C3AE45A7
+            stream[448..511] = DBB450E408533FA4676060F9DB14993B
+                               F0403FB0D503E06B1DA63D4756DD8EAE
+                               719654C00CE758BC611839D11B586B73
+                               34796A859A8B28DE51068CCBF45DFA84
+                  xor-digest = 08E2D15F9F148B5CD4A949976D8CAFC8
+                               20FFD21C06AEC647B2BABACE817635C5
+                               6FAEEBAF1F18D6C4CC7DF6AD88E9C705
+                               AD42B0A9FE6476DD37C0A284AB8D69C6
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                          IV = 00000000000000000000
+               stream[0..63] = A0AAA4FC4B017411E8EC3114C8B1853E
+                               F5AD7B12EF7867CB7C561230E46AE294
+                               45A69A55373734C0084A99AFF3072D82
+                               75CE61764636978095BA554AA34DE934
+            stream[192..255] = 5E4C9140465ABF2DCE5D6DD350F61D02
+                               1F98C27105F37EC603476D61B2F612E7
+                               C66DE36A4FEEA9871E5BFEFFCD62BF1B
+                               28997B5FA620399AC27C18C7244E2A79
+            stream[256..319] = 460BF9B047ACA12BEA4EE43C41D3D52D
+                               65B1CA02DCFAE01B0286C78AC73D30D2
+                               08EDAF8028B062ED764A35F3B43A58D9
+                               8A14C24457380C18E0AEB9A68E349793
+            stream[448..511] = AB8F2C54234C9BC341D54E39E4F0D6E0
+                               A558C654AE8B0B09E211C8E05DA81078
+                               325E31181F840E3B6C0500357CC82037
+                               38B2F60F1C2FAAF4E109635206E868A1
+                  xor-digest = 7652E4B30962C86715FFEA261A5DF87A
+                               D4E87A28A304EEEA9F885E9B8F9C09D8
+                               6037DDEF0F8CC363050BB99EE00D037D
+                               478671DF0552BB6216D609DF25787BEA
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 00000000000000000000
+               stream[0..63] = 5BD91BF17887FA579EBB0755050643AC
+                               121FDCBA849FC36102622E41D80D2681
+                               BB6D4DBEEB3F4B75FD64FA459B8C95C3
+                               3210BC0ED427567A56EED96660187138
+            stream[192..255] = 726D611EE5526C4B6A027DCFCF4285D0
+                               E14A0781072701C7C937E418CB304658
+                               22A1325BCBB8B22BA08CC98BB82B9B4D
+                               9035E3746C75A0A00C09D6EB2DAAE0BB
+            stream[256..319] = 61360694AAF0D6949FBDA0B7C4A81752
+                               ED01E71926BFC6A8614349F9D7328BB4
+                               A280385F91A1CF012BA85E832D9FAEFA
+                               C572D6621956FD6291E3B736FBB6E9FC
+            stream[448..511] = F45C362299839D46F8420EEA0353A6F6
+                               436E04680830E6F7B21ADADCDA0743AF
+                               352669DB5FD09476F1B66C1E791D41C9
+                               9D6FB2CE4A21D02510B440757BCCB6F3
+                  xor-digest = A34CEB392A56847E25826D1845B27787
+                               01B9554DBF56A715816582D2F8CCA5F3
+                               17D02C942B14B88764B667D303451CF5
+                               51CB05376EC729C60A53A318DAA05C4F
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                          IV = 00000000000000000000
+               stream[0..63] = 044F249E4D5CFFB664C034A3665B4E4C
+                               C60DCD3189C340F5062F67AFCD25700C
+                               2E752E8673CE9D1E645C4626263D3764
+                               5528A3029BC23451801C6E0EEEB1AE45
+            stream[192..255] = 0350C5BD50B1AEFBD01A739114A31A50
+                               F0B4D20B97887E760574E048132390B5
+                               6F0E6693217192A9EF482AEFD6959F89
+                               80343CCF27D123AFEB7E332B3242D4A6
+            stream[256..319] = FAC1324A5985CA42C0F520F7D9715353
+                               E5C7DCFD2D80B482932968B70B6FBC5C
+                               29B5C264CAE189501083C13060CD3491
+                               15411EC97E2E25CD8F3BB106DC146324
+            stream[448..511] = 924DD71D1BF69595F0829D387EBC6A0A
+                               40558D9205756D10294D3E706F784EF8
+                               E7E4A09B4273FFD2C981070679BDF7DC
+                               7B0E5D88E6A9F0A19CC036B06E170957
+                  xor-digest = 20CBAE6C3A45965402C9A06B23BB6AD9
+                               2E037602D984378DF83DC7ED70B70362
+                               46849E19FB548BBA6975550EFEBF91E6
+                               9635048AE2499D8942D331F16B2BAA5E
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                          IV = 00000000000000000000
+               stream[0..63] = 524903104370B45F218CDD128C4DE383
+                               DD24129DAB62E84450F60978C5AE28E0
+                               A8B96889A66223343ADC11D656E9B6C3
+                               B2748291CB8CA71079F7B5A7238275EA
+            stream[192..255] = ECE65720727E670E9DF86FCF41C4E1A2
+                               610E562637888E40999879105187C401
+                               B5B34CFF1786EE0AA1C91F7C98DE1480
+                               5A2F85B2DE1C8F13B2C095A00641760C
+            stream[256..319] = DA857331465B4A797E5A895B541EED2E
+                               05C2810DE1A26C3EB9182320C1E48E21
+                               BE7A541B53C6607F487F12F742F13AA6
+                               31DB3DEAD561BE7B4F4C14F4C4A0ADD0
+            stream[448..511] = 4F9363AC4F7E882BCAA09A29FF0E2E3F
+                               916EFD291ABEF2B7F74939A1C7A1A47C
+                               5D826EEAC23E5DA8B2E86830CF5E7AC7
+                               25961E3660CA9AA26295E37BF9960E01
+                  xor-digest = 1C9C45F9DD2CD7C8F8558354DD1318F8
+                               825E3E84E3F1BFB7A8B570F96894156E
+                               DABD72C03DB1A58064BB7AFCEEF8107C
+                               EDDF33D97965487867B0F78D530E551D
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                          IV = 00000000000000000000
+               stream[0..63] = CCC2850BB6ADFF5900412BCE7C277C4A
+                               BC8BBF811D5029054D0AF93D22F4E08E
+                               B2CF63F65286BB3A298D6C6FF988807C
+                               E25D30AFDDD4E95EA822C5687C6E3985
+            stream[192..255] = 6BC028ED797912C2AC08633E8B7FC055
+                               AE4A690727A8EF537F9DD4E2FBC7757C
+                               7CE7B39BDF05DD7D2FF6D9A277B4FF23
+                               42164A6CA61765E4377BD9C7B45EB456
+            stream[256..319] = B5EA4E56163C921A5153DFFCE0CF608A
+                               C619D056368E565098AD3E1407C1A666
+                               8E45FE2E66C7A18D2C1F341E6AFA58E3
+                               AB25299C7C4D37375640039C274D3D48
+            stream[448..511] = AF503A3B466E77397D2BDCA3E5895571
+                               229F9ACA36678F6FBD161C0989AD4C9B
+                               D0A31EB539FB2E7901A9AF9469EF8528
+                               1554D2960E9117E8ADD80FAE77DDA1A9
+                  xor-digest = DC9B1E0C6CAF898C1B71EEE28B0ECAAC
+                               31DEE9E79B88B45B9EBAC31DE5B4D2CD
+                               E08950BA5C40EFF09073AEBC3D0064C6
+                               531F91BE8A62681D90BF14EDFC3BB4E5
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 00000000000000000000
+               stream[0..63] = 928D5985529C57589C2DD8F5F147C857
+                               CA4E0B6C5930D55B0911A84119D6FD85
+                               4FF86B5F847381AE8A89857F827AB0F7
+                               B075A2B1DFD652B3950C647DB3765238
+            stream[192..255] = 08D781AE960AD784CDCEC9E067852F94
+                               31E5ABB24644392739A0721131C65ABF
+                               BB7666D8AB1E79D51266D09441A51F67
+                               CAA0EC09E019B0CE971C67A5A067FEB4
+            stream[256..319] = 8E0E5DB0B05122645809F85546F83548
+                               66E7A748F4C34A70B3C8EC2FC8963526
+                               D65933196CF557B08C5E7804BFCE3C8A
+                               325AB3249DD90CF2DC6284A4AD87A635
+            stream[448..511] = DFAB52B53A5F2ED85BB822174FA033D3
+                               A571B80AC0B51C279D92462F2AC2728A
+                               F15A9D30B3FD22FF0CA8419E290C50D2
+                               06F5C5A13787E742FF0EE4E41A161D08
+                  xor-digest = FC1A47E550F183E0F74880BBA7A0D980
+                               6243249EF8966FB4205D81B1A2C7EAFB
+                               D5AD063AD04F95CB42ADA25438E495D4
+                               C50191C59C935F8A26C0CA3A2CCD5B78
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                          IV = 00000000000000000000
+               stream[0..63] = 0C7E44242C8F8950C15CFF3D317D0CEF
+                               EFC85F9B021489553546F85A07053BF5
+                               45C07504C4F19C48EC92DDC6CF7A24E6
+                               286FC1570CE8938769C3CE6AE75E064A
+            stream[192..255] = BBEF1446B83EABCED18B7A8D197FC8DD
+                               E954B96E9BB92BFC838CD637E02F4138
+                               559617F768B5D8F59AF926D401566112
+                               370AEBDBAAE831DB4818067CABF1C0CD
+            stream[256..319] = 008F4DF231404AF23DFD2A357795D507
+                               63EE550A5AF0D8FAFF52F61AD0E3929F
+                               CDF5E508B7006D09689F3882FB6527ED
+                               FE3A446B92345202F6D9F7BDD0C1CA25
+            stream[448..511] = 976CEA0B3C1D8B5805527E407A15D939
+                               29755355B4A5171D820DC7C13FC5B855
+                               75C5B3F5A9C5633DB9914049F4604B48
+                               DC8E1523BFCC95B5BF47A1911FFA5734
+                  xor-digest = A665988ADE6A52392C5EE6AEF40B6AC6
+                               F3C3386571C91A5B8CF0BBEFD43037E8
+                               1F61B67A4489526D2087E3DAEB3C5EEE
+                               6E763B4BF4619BB04941C6C724E5B9CD
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 00000000000000000000
+               stream[0..63] = FC431935D374716D95D83CD9CC24E27A
+                               96F4852229F3648859AD0A1A569FDFCA
+                               58C43CFBF479F6C81CD6712DACF031E0
+                               DDCE2F0C198EF498A7023ABB7E16A86C
+            stream[192..255] = 22457D7AF722FC470AF334F77A4AB626
+                               A30EBA3CC0A3E60D930B0A8109D74FF8
+                               CD8C64CA66B11E8C84CE1E3B8B52C808
+                               F47E4073771E35571EE9A85EA686AB9B
+            stream[256..319] = 58A58DFFC1624D394B9D4943FC6AF41E
+                               FD92064B16A572FC79A32279C1EC8D74
+                               0799CF32F1B174A2182C6370AB29E2B5
+                               C19CAE34C747A010D1BC09E27A75F2A2
+            stream[448..511] = 195171A48BA686BCF2CAEC553EC24A2D
+                               F6245C1D05D802B87742C9D843FB5C39
+                               2CA59B10F9875C46AA60A9596951D253
+                               B215F0DD1F84DDD4BA9E3B67075AAD09
+                  xor-digest = B649E4F6EF91D47E2236364B661A63E9
+                               9A306FC8DCA1361B643531999A5F43E7
+                               2DD09A646F7BF0C3848D647F2CB343A4
+                               33103B5E3D84FDB0976C76AF20C5C12A
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 00000000000000000000
+               stream[0..63] = 1D66E23B3E087A2203DFD56F0D2EECA8
+                               98B19700CDDF712819EE83C59B47C7C2
+                               C5CDE4B95AD597D7620988BB5619414E
+                               9A60AE15D72DD9CB95D66597D0772BDF
+            stream[192..255] = D877AA71AB74184BD5C40EDC02E90676
+                               DA93EB97C88A626070B6429400F926B5
+                               0A26E2FF29487FB0DFF8197C626E06EA
+                               F08A57FAE293223A39A02C2C12ACFFFA
+            stream[256..319] = 960969B32FB75FFC013626225F57C6EE
+                               9F7D3EECFD4500D8D109B1194AC43F57
+                               39BA71316C676962E698DDFA1A1A08C7
+                               AEA6166A3B4D6C1BD055CC70E1959160
+            stream[448..511] = BE6EDA644FAC2C4CFCCC88B2F4D43223
+                               525905CF508A75D55E6FFA0DA517EBDB
+                               089F9AFDCB6DFD995578D44C7BBBB7BB
+                               BB4CC86D4B3F1EACF00A4CC8C73E3410
+                  xor-digest = 023A5FCF6F9F51FF817A8B812848E1F7
+                               DBF07D43991F3564F6F5999BCEF2E13A
+                               3186E5038A6D210A75FA2D091C8D8A50
+                               F9A1792D28A02AABF822E0401C2F6DD2
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 00000000000000000000
+               stream[0..63] = D0EA3FC83A5FDDF7B288798423CCA00B
+                               5389A95E77434AE4E8898BDFBD076AA0
+                               7648271722BF928C3D8B29F011D1650B
+                               A97335E87E390E7B2051BBE83C9B1B8E
+            stream[192..255] = E84F17D162F27FCFC3CB4893F3F1166B
+                               B106CE0CC49B361EB07F66034EA17DA4
+                               F0746E643C26272EE1C02A1B46CDD09B
+                               668DB45A4C1FCBF7F37835725A34C8E1
+            stream[256..319] = DAC5E81B96AB1182E6EA413CC1E0B15E
+                               96204ABF4FA97A8AEBB3D5C7117B119B
+                               35AA61303FECF656AE9836F764C3667A
+                               AD787790CF3F8267E7C4AC5B99E90831
+            stream[448..511] = BD76D9A9B2FE3221968933EA7847D37B
+                               2CB406111E2426BA9362856A027A1682
+                               9F3E14412668B1A04F4A59C8F97939D4
+                               EDF07A8DEF652DBDF0CC0945007BCFBA
+                  xor-digest = B2CF06B1562B92BCD142DC3E91FE42D2
+                               F801B0C7F1DDDFACE0BBFD6B5E851E72
+                               78AB1CD4F8C253F0CC3F41E1BD287289
+                               78E5E145080D938271F2722951AEE6D1
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 00000000000000000000
+               stream[0..63] = 12AF896239F5F2DB651CDDA791471C9A
+                               6138F488703675EE318806BD7CA9101A
+                               14699098CFC9C170474D8ED51A9FA1D3
+                               2CEABBAB7BE00AEAD670CC27373CA5F9
+            stream[192..255] = 3EF33B1FA9917DE469F2569D8ADF76B3
+                               555A3EE2DF9D46465D918046B7DD6216
+                               36936EC0EB4FB0F200B1F276E38927C7
+                               2954C2A889D924B80FB1D313FA24A465
+            stream[256..319] = 4A427F783636669BD4E69E839FFC00DB
+                               CBF1DE0F7A61E2B61C9C4B6F133CE1A4
+                               22FA77CCF5D409B0294DACD8C1513A68
+                               4D59401D79FBD7DD93C96432316CAB63
+            stream[448..511] = 3640A109D371071675AA326EB6373078
+                               24387D39881A51F34B3ACDBBE5D24B5F
+                               6C2DC683EE5C6C386894A64FADCAFA40
+                               F173827FFCBC908B5374A5B53B5261F6
+                  xor-digest = EC7BE0D9774042F08CAA3066C87B10DF
+                               2E7A2E335E907A269B2101ABB260E68F
+                               AC5EC84C76D86B41695C67F4B8305857
+                               9758B745FF0F5DC6B7F81C1485F4C3F6
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 00000000000000000000
+               stream[0..63] = 0D79EC21F967B48DC4D0299BF213463E
+                               C3607D35286A83EF3BCBA74A0E084430
+                               61BE172EC973CC56EEB9065E82FA41F4
+                               9AD13B244FC4259DF275BCB963520D87
+            stream[192..255] = 96413F321A8C94F7E7BEB8FFDCDD7999
+                               C7A3C70F94E046041E0C4D3247CE6A56
+                               BD6BD3E04C26D21CCCB0C7E0ACF329CB
+                               641FE63EA9BDC28F0F44414F7088A28E
+            stream[256..319] = 1EA3E901749AE02AD2FEE01E04CCE68E
+                               5F356A1B44FFB7450A766E6C56C461E8
+                               1046E9D0E5D089F891096F097D5572ED
+                               5BA5EFD9794128AE91B18AA2CBB1FE35
+            stream[448..511] = 7D25F59CE583452D57B99D406C11B0B4
+                               1AA3592641C659C1A1A630A70CBF1A30
+                               D348A3F17C9F250EE241EF048FFCB7FF
+                               A81E4E33CB8C5B7EDBC546D7CE57E4DF
+                  xor-digest = 4E3468C6482BFBEEC0A4C47A3D4C4B1C
+                               ABDEF3F4FC70724531B9A50830337BFA
+                               19CB31A434CFEF66F17282CDEE2EF5B3
+                               67A364BD0B6A3AF4DA71C041FF5D7044
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 00000000000000000000
+               stream[0..63] = 8FFF28B95CCB4905ECAF36F0EADE8FC3
+                               2A2CB5F38AF6A909A772C700B574E562
+                               B9DAB459647D54253E2348873DDD800F
+                               6FAD8318009EEFE21B008CCB36F5C150
+            stream[192..255] = 35A2CE396BA415EA36116A009185A593
+                               FFB39FD0CBC881E0005781C7C0811193
+                               19E536AB5388D012E50DDA5B0A0C03EE
+                               C43CD864DC80DB85F0663E474B0E1788
+            stream[256..319] = E9C99136267B89CBBD6254A09665B0B4
+                               77BC677548B425293B8A2568F3976BCA
+                               E57308128FB85E3F5A2532E632F25883
+                               E5C9ADAEDF788226017064CA46B4A4DB
+            stream[448..511] = CA60EDD9F12D6E032637AF24188C6789
+                               DEED81E645317358255196B5AF5EF8E3
+                               94746071BB2543C9B211338AC50B4B39
+                               A19A829A211D7E731956665B3386D11D
+                  xor-digest = 47D1764119428C9D0194F3D66BC14DCF
+                               D99C6D17A9EB556F1AB18C9282FD6CE6
+                               7332FBFB6F4528217E902BBE99875241
+                               B6969DAD1A69C701658B454210F83F80
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 00000000000000000000
+               stream[0..63] = CD51E28C7E2404EA59C7AD9609042B86
+                               E4DA80F7E7F1D1344EBE0D255E473736
+                               D46758BA20D3EE93EB319705797E130E
+                               553E1CE6271FD0F1073936A7A51218DE
+            stream[192..255] = E6638C590173DA703123C9C42095ABCD
+                               9350ADBC438E6A0EE173377FE5B6FA06
+                               6838F018DC96D5F6F2A35B0115791CCC
+                               A98D0001914CDFA0A6397EBA4F34724F
+            stream[256..319] = 0273BE0D92F33AF0FAB1BDA2868F20E5
+                               680F3B9694AE6CF40883836FE8498B45
+                               0233320A2886D12FF9627362D8410234
+                               51F67C293D82E9A787C2C19C624F1B6C
+            stream[448..511] = 73F2BDD2C826BA6DE198F52BFBF15086
+                               E6B1477256E683AF08EDA50FC9490CE0
+                               252ACCDCDCA851D0A78CF73C8D58F703
+                               60CA126146C5280ACE617D95A57B617B
+                  xor-digest = F1D5E08648EE58504521B5B0954ECD4C
+                               1E3AB143DDA118246BA46F0FACA48557
+                               939A952EBDCE7D63C6CC51546238B30B
+                               C44A9C32D1FA3CFDFF1BB2904C910C3B
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 00000000000000000000
+               stream[0..63] = 5BDBCBD51C0BA12A3DC08C1B52989F6B
+                               59F9EA352C600134AC9FDEE515BA07BC
+                               06D10C8D94667B231ED54C7BE2A9AA2F
+                               D22316AB7D5CD44B9CF698CB591C2836
+            stream[192..255] = 27DA02BD3BDED7F409B4718FE1F95BD7
+                               5D0CEDAE6B1B1563D962892A4013F027
+                               0EA0669E6B9995CC89B488D3D3EFD91E
+                               1B616B13E41CBA5A33C177E7ED589184
+            stream[256..319] = C62B20DED5BF53758D6E6F0512154435
+                               F7C4061FA7A0FB21F5259BD84907909B
+                               AEA414177AAEF99CD08A025D43433A30
+                               9B0A670940284F83457F2EEDA89F2AD3
+            stream[448..511] = 470EA8E20102A160B160BA26DC0C6CA1
+                               05CDD7265D63224DE49C72696FC69F67
+                               E49CC3A938D7F20B64A5D5F6234E3C74
+                               B014C3D2E3273A389E50FCA82CAD225A
+                  xor-digest = 2CC893899139504172D677B1FBB11397
+                               B41FEA63E75D6ADAEACF8C98180814ED
+                               B0635BF7590773AF9B854DDDCDC79B11
+                               92177B14949978FC8326EEB5EF538540
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 00000000000000000000
+               stream[0..63] = 41387AE18A0D55719BACDD5CAEC0E1F8
+                               276CD2E7AA9A8F0D38699117AC13EA30
+                               66118D303C353FE43418327DE867A3BB
+                               7BB97CACAF156D937D325571E0565CD0
+            stream[192..255] = 96521463307B390C5595ED6901E9E4AD
+                               D2CB9053CF459E58096F92449B0B3049
+                               2BDB372DB4C28C7FFC15C7949A7E3701
+                               DB2443549F32EEC24627FB2869E508BA
+            stream[256..319] = 564D9FD97BEC67D2D59C44B58FE4E065
+                               257F4A087EF078453FFFBDEBEF96F74B
+                               B08AEF44CF05C21F9C11EEBAEC8F2049
+                               D8082D3909BABF8E71C3133D909DD065
+            stream[448..511] = FFDE26E49593B23FD5E4F8E726AD1A17
+                               D126A540DAAEEE7C7E59DCA11559FDF8
+                               98E219D994FCC264971A03CE8CF4442C
+                               DA2D242E5480EAF6561F50114AAB06E1
+                  xor-digest = C8D95EB8E5DD67C5D7DFA173F2846EB2
+                               34496615DC7F7B806C85F5A92AC8AFC9
+                               E6F33F5BDBD3588530DB5B180AAD23E6
+                               E8FD18DAFBE0081CB3324D07812576C3
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                          IV = 00000000000000000000
+               stream[0..63] = A15F6CFC64AA48A978C5E2D479DBDF35
+                               4C35C22F578B7BC67EE95C3395E753BF
+                               DE575F4AD60C778982BE5BA89A87CEB9
+                               200F969BE43182282ED00DFDFF7C4AA9
+            stream[192..255] = 3B088C052C41172A024E9FBD5246F0AA
+                               07A3EF911FC0BE76D3C472FFD3469657
+                               32B567C9A26773273FE5989F24989345
+                               0B3D568ABCD10930B503935F186938CF
+            stream[256..319] = 9310153EC7406DB39A0A90255190B86E
+                               0E2E0764904F74A70B871DB871BB099C
+                               C2E05777FDD6A4C0AE8C4B9094954BF9
+                               07D5BC31A16EE3A4C7CB2C8E67D8C705
+            stream[448..511] = 2C431D6DAA84CAFF6E64A5186DC1AFCF
+                               52D8F9C3432F6BAEDD935D034591108E
+                               0DECE2C4BFACFF424DF3F07209D1F4B5
+                               EF80BDAEB89821DDCBDA1C2D2F423E9D
+                  xor-digest = F61C37E8A3B6701B1DA51A873AE926E9
+                               AB1608BBB4D871E3CF074EC800769A92
+                               872EFE554796F45BFB5FF0123A4E15D8
+                               FF915C0D41E253BF1DB37395502D52EE
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                          IV = 00000000000000000000
+               stream[0..63] = B1FF1452F7B871F81B453B1DB26F0633
+                               7056308118B3815EF956202F2C1EF306
+                               BC124884018C01E13F98B7FC7CD4A881
+                               BA4E3C18F59CD86675FCC5215DF3D06B
+            stream[192..255] = 11A1B3CE41B4C80FC991078650C531D8
+                               F0C0A1DE24D641ECFD702E72C08A231F
+                               FC933941FE9E1B9439A3306702746EFD
+                               69B927CDA4CD5B3368A4C6E6D3286C34
+            stream[256..319] = 259399BFD75B69FAC2A34AC6B2FF5EA3
+                               61A29E1EBA083B9E05DC272D4875F467
+                               1A11364D543003EED24339B97808A1E0
+                               3F0EA4BC3E2438CF15D5A54B46F68766
+            stream[448..511] = 9C2B46280BC12AEFAA4652FFFF7FC7C9
+                               F5046C630F81E8DD8F69539737E1BECD
+                               B965301AAA9FC716BD05A7D2A7FBF842
+                               A16A411E58B54C2EAD835233EB310302
+                  xor-digest = EABF0C9231101AC7B1A245734579D3D1
+                               4FB16B2962109F7731FF70BA8B2478CF
+                               03202640CB3904BBB90808F880798399
+                               16E37095B6955A7B6C2B5A0B879277E5
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                          IV = 00000000000000000000
+               stream[0..63] = 8FBF284C44717727F5B5D91FFB0B3446
+                               51C5FE9F75CD3C4EBA5CD1AE953FEDBA
+                               20217D123A4ACC2FBFA3EE7DEB8094C5
+                               D406C8CCF5F09CB7C665A9D1AA38EB77
+            stream[192..255] = 84B8CD025AE56B6947D99EE5DD55CD45
+                               479FE050AC3A6B0E339416E530E490BD
+                               9317EA58FE01E7FC44F7C554A5CBA1D8
+                               0E7C108004987D526E7DF4DA428E0818
+            stream[256..319] = 309529088DD9AC4EA3143C1CC043C88E
+                               2F37857B8EDDD483C68D142059019D68
+                               49217CB89DD2DFD5CC7EAF32E579ABAF
+                               76180818198B8D749FDECBF0CA8D078D
+            stream[448..511] = 7AEEC3C033FBA5D2D9071C52B86236E9
+                               2DD72024321CCA9CC653F3F0F6B61A1E
+                               27BF126506BF3CA08ECEC3D33BCD835C
+                               A156C59F50A9EF69DA6A670AAEB5E735
+                  xor-digest = D810761247062334ED1CDB7EBE2855AB
+                               B67B9BDF22B648F11FD785D50C2E65B5
+                               DD5425E0A216482D1C3A33CB890857E4
+                               00970DA03F8EC88B1D260566CE4331C5
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                          IV = 00000000000000000000
+               stream[0..63] = 77163CC13BF2FD8CF792003AC0F79828
+                               0193CF8BB0AAD88990502FBE95DFEE3C
+                               0756372DEC881399F14CD61395F92577
+                               400573BF1B0CC188B49B81D492C96652
+            stream[192..255] = 839AAE05EB60E8A08189823D4D1C7025
+                               E6BC89F5133FBB73912DBE2C842AF78C
+                               097A6ED8EBAB75B784DAE53D64A8AB03
+                               A7CB5CC1118BC381B9FF4C8D81918269
+            stream[256..319] = 0E74B3EA14BF4480BCA82755F62200FF
+                               ED2B4DFE3963C51D37A64B0AC7B14D3C
+                               DAD1C6E4B6551E1C44D60E26806F3031
+                               8B855616D8FE63AAC1565E9298ACFA55
+            stream[448..511] = 33F2E66302818485335BB31E468326E8
+                               BD3DC54696B68F77B496644B6859DB23
+                               9E18D041C3582323E6AACBF7330AC1E6
+                               4AACBEC60CCD98E9A3EE128BE9FBF327
+                  xor-digest = 8104C53B1C3F96F5A9F5DE4E6095F557
+                               30BA6A371A8EE94E2FBD015FA1C5E78B
+                               8CB9B4965AB41B6F98A558294DB25646
+                               44A2005D677F17F4585166324EE4469B
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                          IV = 00000000000000000000
+               stream[0..63] = 819AA160DE83035888FF7840C7E47DB8
+                               254D695B01B3B199C4846A735F57549D
+                               9E8BC8B77D8712118F64582B5E96A80E
+                               CA4BC0721D3DC2D0C33CADD64488079F
+            stream[192..255] = 385E5B769253667102690FE85440553E
+                               03CC7030146F26D196CB4B474DEC5F9E
+                               95D84ED93156447B7278621BFCB15ADD
+                               3266E538213909DAEA8A6C155D491C04
+            stream[256..319] = 85BD1EE163E726B82759B6756D723BF5
+                               58FABDB00A378AF4A8BA61BF59D0DC24
+                               07114509547C0979DFF31D417AE25BCF
+                               C4773539FA5786A8BB751808CA7C813E
+            stream[448..511] = BE31C54BAACBCB4A4E4DC808FB42D211
+                               7DF2DAF8F91FF09A83C86FF73A9CFA46
+                               CE755B0A98E105469CFF1C6733F2966E
+                               B5E90C274EC1AD3EC9D8124657D44E4C
+                  xor-digest = 1B9F8100F978BE2F46ACB765B7A434A5
+                               69DE36A2D7D45CE8CD346DC9DBB164BD
+                               D834AB14E45580074401DDADD3DC7C75
+                               76CE7BEC963B17B85EEBB2A7BDDB875A
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                          IV = 00000000000000000000
+               stream[0..63] = 10A4F25444A1B8BFE9D87FBB8EEE5698
+                               65DD22D230A1632AD538E7E0AAAA199C
+                               A16F40FC794B0367D2AFFBA51E4B013E
+                               F26297293C6507085D7A0D48AEC6A468
+            stream[192..255] = F12549EAA40933C837AB3DA310AA1D16
+                               D0F3B9FBBD7E2C6C8D06146FEAC35C99
+                               2FA410628F0C84E6822205033AE1862E
+                               CC0139C2D89750DD7A9FEAC4C888E484
+            stream[256..319] = F85146AA727431B8596B676C646395D3
+                               688F29128390397B130202D3076A5D61
+                               969A9B548C71313FA9325C89004F7AF8
+                               05E6F64C97CCC92D45DB33E67BCFB32C
+            stream[448..511] = C6EC031CA748403DEABE5AF6794D92BD
+                               BC643F04C78CEF1116FF6027CCAC24EF
+                               A50BAE8957CA9858E73A8C30A4438E84
+                               E9315A73F4E94F8A42314B72CE7DAC1D
+                  xor-digest = 0286FC242FCB19E8962F9DBA9CF8B3A7
+                               F27BFFC29DDB425722AC522651E67D7F
+                               A74CC653EF1E2A3D4D1BDC5749859F02
+                               B4100E3F63DA4468C96A0091878F5683
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                          IV = 00000000000000000000
+               stream[0..63] = F1AF32E013D488E752395C1C921EF8F8
+                               AF70ACC62EFEA4271027CFAFFC35C029
+                               8D71EE137D9C0EE9D2402E6CE3D5DB86
+                               04950E822C5A5E1ACA93DD7FBD9A0C32
+            stream[192..255] = DA7910E37E484C183BFF39962EEA7D61
+                               FA4D6EE015076D9CBA3FBCD5C64DF727
+                               11B2F14E5BDC35FD1FA30F4ABBF81E7C
+                               DCEF99D4B98BF97EE9040797EEC188C8
+            stream[256..319] = 3BDE605F1125673B008F5A12B3CE1DC3
+                               1C50FEC335568CCD7AAF201BF621D1E8
+                               7FF111C102BAA204C70589D5551C0338
+                               F4DA83FEDBE5C0CA26CDAAB6DDAF2504
+            stream[448..511] = 26D7D52615F9042931C666529CD1BBFF
+                               34CDA30A0218268401369CA7588BCF6B
+                               639D310D1296877B66D7D1AD4F126E78
+                               C2333DE848290320494EE71103CE33EF
+                  xor-digest = 144A61BF5D0D4C3449C967DADC4C0824
+                               214E3724692869D2B16B2CCEF46DD0E1
+                               206D0A22CD66DB65B3CF5073C18E13B7
+                               89EDCF587E6C246DA9FB067D2F02CCB3
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                          IV = 00000000000000000000
+               stream[0..63] = 319EAC9D2FAB4B5A2429713AF9EBFF74
+                               478F809CB766D66C76AB3A29161341EA
+                               6B4E2B8373A8301A81837DFD395B88CF
+                               3313C5B7443250CFAAF25184195FA8CF
+            stream[192..255] = D948E0873A749324E1ED96812FC602A7
+                               C2491B634D5091FC90348D163158F414
+                               4D635727133F1F475B2D95E09E18AF1E
+                               653F08C60CD8E086A77E64563983D41F
+            stream[256..319] = AC7671F0990D5321CE5DF2D670EEBF1D
+                               65DDFE3805B22C53FD6235422404F0CB
+                               7AFFD3699C408EEBA4BB2806783F29EF
+                               F4CECB58D2C1D5755B57C99DEF97BACB
+            stream[448..511] = E2F72724BBB37C16B1CB7C371D65ADFF
+                               CD8E32B963E12930EEE6311530404648
+                               1A3CDAC5B53734F9310B26615A6E2B14
+                               7ACCA12DE52603EB0C8681640C57F871
+                  xor-digest = CEEE7E152222F1F7D59F68B6CC25500E
+                               02C55C5436A7F0340FBC565A8BAD9C4D
+                               0EED09F2FDFD6ABBEDDAD7C8A19AE0CE
+                               050AC9890D203E278E992A19C0CE784A
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                          IV = 00000000000000000000
+               stream[0..63] = BD84638A3DA18EBB658CFA2E96E994BF
+                               8510A2FA70918020E87229D96D209B8E
+                               26B305CD31A4D2F82AC3DED97B67716A
+                               631B3FF1B0A7C6D1DB7942748C9E841E
+            stream[192..255] = 287A159F15DF5519A63E3EED26DB027C
+                               4BA02C3982BC3FF86A04BE7FA6AEADC6
+                               7C34E55942007AC563B796C22A910C3D
+                               1EEB1E2F4E7CEEEF4F63B1DE2BD7DC74
+            stream[256..319] = 8694AC226BDCF178294E440BC3FE8DF9
+                               6614604D7E35D02327C7AE50E7CCF006
+                               8CEB75189C39FB2CEE517B509858BF80
+                               218C9818FB7033DAF4C6673998050C54
+            stream[448..511] = CBD32CAC74A51A9C56288A1B33EA84B6
+                               C91828C2FAD5CC66E2151FF0671588E3
+                               14188413B34F66BBEC47B5DF8E171D18
+                               858BC5FDFC5D590005939DE0B23A87CA
+                  xor-digest = D2B69AE8AEE5BC3A6121AA0B013B2963
+                               464F5DA635635DE2CADDF725E82530F6
+                               0B68672F03AE9A251CE2FC3A9FD31A5E
+                               FFD6019087023489142B4C64D955B7F7
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                          IV = 00000000000000000000
+               stream[0..63] = B86DDF7911F9474BE889F40F30F499C1
+                               63F164CB5E55964B1D18EAAC6D10180E
+                               01EA66A2389D1470E9ED2F141E2793E5
+                               3B71F8862CDD202F12B13CFD880862F3
+            stream[192..255] = 3ABBAF7468A330A20C435EB888EDD65C
+                               6EAB67EEB4D1B90A883168738B739D8C
+                               0F006B255225677269FF392B8112156C
+                               8F4EF132DEBF1C3E83F33BE5081B8292
+            stream[256..319] = 4F0DAC888430B88BED3A7BF23CA1F088
+                               D8EE976ABD49656A954C6EADF65F1955
+                               E312385D4063D13B7C09E5C4D48A155C
+                               932C8FF5BC7A54F7A8D175369E66087C
+            stream[448..511] = FC8DCAFDB942EF85D23F835602328E11
+                               8B637BE294CFFC944180B01A2E1818FF
+                               E1498E1D4B6F98959C2A4FEDC331CA27
+                               EC2386D1EB22060FF8A42E8C7F1D85A0
+                  xor-digest = D03380A8C2C5C09D9BD51CD2E9C7F4B6
+                               43EC30CDA95D7A0733597D4081F2D0AA
+                               2E2E25D2764D7356054BD8750DC6424C
+                               556F869A0291AAF31A0AEB3302987416
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                          IV = 00000000000000000000
+               stream[0..63] = 2CA8658658E76F2BBF1A5DDE09E9A078
+                               2A16DD5FDA6A433205FED3133F80B814
+                               98C03110B2BBBC7831FD5ABB55472983
+                               A664DCFDAF1004810C8B8A16FF82BD74
+            stream[192..255] = 5C48A223BBADD17F073E2CC80DD643BC
+                               4D596448EB331F5CCF07AAC953AB281E
+                               F11CA6B1153E0B7F67383D362A10408F
+                               D7EA5C48123DA4EDBF2309C84F9DE9CB
+            stream[256..319] = 86BCA702E64CCA4E4BF76993A5F5348F
+                               37882E08B0C3FC7B989841BB33A52262
+                               19B402BE0317EAEF8B42EF8730075466
+                               1E2BC61FCE07BF92B9C767C19CB0B57C
+            stream[448..511] = 6A9F4FBE6B128C3B58EF404C20D7E1F7
+                               30A0AFFFA4863E89D699C8AA65683B48
+                               82BED73D39432A15BF5D17BE542288F7
+                               A60D6C09F46EA8F13DA5689B285D0844
+                  xor-digest = 2123896F03F8B86849B13D9174E0D4EC
+                               06BFFC6C317123811ABA08B4CAD7ABAE
+                               AB255EDF892849EAE8503DD37F8D53EB
+                               CE1E4BC9D167B20999FDDBA52CE84B31
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                          IV = 00000000000000000000
+               stream[0..63] = 32EB7D9576C8579AE6081A06BB4174FB
+                               F97B48AA99B04A8F294698FF26AA50D6
+                               9AEEB0C007B5FD200C98FC223F512CE3
+                               2EDF02807D1DAAAF6CBF5D22AFC21956
+            stream[192..255] = 34F0D27C8D6D00CBDF5A219B1647953E
+                               CF0B1864356BAD00D23CB4EAEE111019
+                               30587C4529522D437EB3FBBDEFDBBB10
+                               2834A237DDA9F374EF5907978ACBCDF9
+            stream[256..319] = A644D671445F3FD76DF6808B805DF69A
+                               080359C3F826AFFD5CBF42A0D3EB0A53
+                               AFCDA83320A22B093140D2CCF354DDC4
+                               F3AB556B9320C64F6B43F5F3B0F264B1
+            stream[448..511] = F7DB535E4B2831EC330102438F593A35
+                               A3D04DF518B4AFBA00A640FBE2198D2C
+                               87642FDFA08C45CB4321885E00AD3F87
+                               63E431E3E601EE5833677B039483C659
+                  xor-digest = DB616DAF70673988F4165769B12AF9E1
+                               88AB0D393617B809AF07900B1C2D7046
+                               7474D4BE4C74DA143C9CBCA229F7360C
+                               203B850953EB43C2D5A603E3654BACF1
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                          IV = 00000000000000000000
+               stream[0..63] = A691D8AC845CC7410284856B6DB77250
+                               D23FF3A34A1B390B18E2967CF793C4E4
+                               EB64BCBBB737A14B497A64C13EAFA3C0
+                               AE65EDA0ED0304AD6D5194A747520ACB
+            stream[192..255] = 6DCF1E17EF62B16E66F6ED5396F8B2A7
+                               61E70C0E14CF10F9C28371E1065BBC80
+                               3270BBED373C00CAE0706738CA65CB31
+                               CED1FF5ABDBCED7E30A8F953E907C54E
+            stream[256..319] = E38789DC913E45C52D34FD47E507D511
+                               D15B809638ADC95C54FEB3B830E5BE89
+                               C0680FE0B83D4AC698C8C54FEB868CBE
+                               BCC5641473B10112B9C063F4BD5F09F9
+            stream[448..511] = C9EF8C4461E58703220D52F4C203A59D
+                               845DAEE1A30450DF5EDAE11ACA29144E
+                               B2B543CB34495CCD74419A1912439375
+                               F75E827A5D87D51749A6A99A79042BBB
+                  xor-digest = 614CEBB14A0FE6BBFEDD30AB33339BB4
+                               21EF8A62D3F4F95BAB044D0EA3B2AAE4
+                               243D91EE4A3D950FA273FB56AD8B288C
+                               8A3D508FA925C8D3DB78AEB58EEAC40C
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                          IV = 00000000000000000000
+               stream[0..63] = AC46E5CEC955EEF3D9EC59A52A04A0FA
+                               ECCEE966396B7CD8F8E7FF17A3609DD9
+                               EFAFCE26F9B27F7D2A1D59D6FA2704FF
+                               B0B6C502DBA4500018EE39BC45B32B65
+            stream[192..255] = 13A344AEC69CC15CC235B1461D9B4D62
+                               774F43DB0A631B3EC4B8F3DCD09CDE27
+                               886BE7FD0DEF4C34221AC4C0C304ECFF
+                               46322E381F324589AE2432EEBCF53B7D
+            stream[256..319] = 850A5FE0761272D6A2CB200DFC5F1F79
+                               CA87755843FEB03381B5C28BE9A55856
+                               A877803855A616C48EEAA2B15240CFE9
+                               87EEF311BC74C77966AF39BC2BB03BC3
+            stream[448..511] = 365905F78B38B374D51520C78F882206
+                               DC522D09E52AA7D4C6CEFD6007BD2BF3
+                               419C8952B4058595102A1A4F43ED78FC
+                               E56ED21AFEA3F9354CC740B568F68CC6
+                  xor-digest = A0A75FC0A9F7EC809A4BECCA7F929787
+                               3E136DBC0CD1BEF60F78C40065E480BD
+                               1AF146435417F170B7236B596C9D91C9
+                               386CBBFE5229A322605926CD14B24D2C
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                          IV = 00000000000000000000
+               stream[0..63] = 5597805E37257DC7C05A5EDDB4D6D883
+                               D2ACE810B3492BDA62A79406BFE47F1C
+                               E63E844F93046EB159D998ACF8D8E69C
+                               F48432327C6C2CEB5D3384B94E55D23B
+            stream[192..255] = B80C5D2A02CB5D55E5242466E61CD2D4
+                               2FD194E80CB012341B5D881255AA613B
+                               4880AA4C45083D9639A2AC6006B712DB
+                               8E982B498C5261D008CAF23E71707329
+            stream[256..319] = 7506BDF66733FF2712E79DBA14C20B74
+                               7507F2188595CF7C35EF91E544EC44EC
+                               89F2C36A8E9001D4151D2D4AE3A210F0
+                               BB85EF7D504EAF9873E3C903D7E55DD1
+            stream[448..511] = 4187827FB2ED802CCCC77E8734E7E71E
+                               A470EACD4DFB7A75F1DC44C8744688CF
+                               9C741478CDA01165EB54B79F87BF1F00
+                               487B79B29EA3294DA340AE7AA4F561C0
+                  xor-digest = 03F09627E7CAD3316DBBF706E10AD9CE
+                               C5F4B9A442A90FF198573F14174E09A5
+                               F891F9728336938026F7DE02044B3455
+                               7BB5A7DE90FD039E64329C37B8B0447B
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                          IV = 00000000000000000000
+               stream[0..63] = 4FFF570FB89795F23DF846FD01589343
+                               446CEA37D505487F2C15E18E269DE29D
+                               5DEDC357396AB7509FAC5E206B01F110
+                               D74EBC17CC742CC788C481BB786B1004
+            stream[192..255] = 5B2533E43C2DD0949381D5BC45177743
+                               D061A7900FDC6F6C83D6DEB6E85B9A97
+                               5174DA5F652761ACF6559321D45E1736
+                               E044B46325F6B92650AB81837DE8E2F3
+            stream[256..319] = 3350425C01D45D0E120ED81F33338C12
+                               462582D1259F06A70C902DDC9B8C272D
+                               459889D1C8BF827743D326594AE36054
+                               B7CBFBBA9B6D247A51B7D5305F565316
+            stream[448..511] = 19B3E922947ECC62D5FEC9D7C5338BC5
+                               9598F2D2B66DA3C1017DB865C42B9A0D
+                               2F41759C0EC2E1F86771A5F6ACD246D9
+                               8ECFEFE92CD4F3D2583C1E4D5DE70A7C
+                  xor-digest = B4C4A3399EEF59A5782A31115C374A96
+                               501E5D00E5D17CA7F92AABCE4860FB78
+                               0A102EC0BCF29A354E66A607C4ACA0A2
+                               747FF53410918039C5A4EAAF1F0E4308
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                          IV = 00000000000000000000
+               stream[0..63] = 757E5DE13D82294C4822AD18E0EB2F47
+                               016E7610239D0CE87CCDDE0F808AC3D3
+                               BD1F4F1A3F2B526EC0EE321CF3DDA6A3
+                               08AFF5F086D09955F6D449672910E65B
+            stream[192..255] = 008D71DAC8BFF1889BEED5BF2CE4D42A
+                               D771AB431291870192F5FF2C5AF1939F
+                               2355BAF0EC5FF9F3EACA2B5EB4F6ACB4
+                               49FBE3088B10F7E387C0DECE3D1E2A52
+            stream[256..319] = 6EA3A75D4C22196B5F04746D6AEA001A
+                               4B0B853C40CF2F9057F5B70D9A5DE64E
+                               4CA095AE5546B19D63E86345C1BF6971
+                               C7D348163DADDBE0406303D45F7211CB
+            stream[448..511] = D9170E608C4A9F6208F790B98F35B1EB
+                               F044290610F354184BD3F152127FAFAF
+                               789AC1953A6BA69ECE1608C14702CE59
+                               92AD4825BCE252B14C647F26675404A9
+                  xor-digest = E890DD33A58625B54A705508D33043A7
+                               48D6C7C8A644CC08FB62F41B6DB1DDB5
+                               55661C3B602243ED2C9D9C50B5050761
+                               8DA032A6B84A0759A56AF80FD46911A8
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                          IV = 00000000000000000000
+               stream[0..63] = 11AED49EB33AB4C8557219727870CA7E
+                               6A6E5E267C2EA832D35FEE065BCFB5AD
+                               1D7013B3961AE2F31CC2193B127B188E
+                               DDA263CF368954FA4B92553A62FEB651
+            stream[192..255] = F28E93E31E514AE982E63CDE07E235E7
+                               6041A80A3A34FCA17D021B24561E2DEE
+                               0050CC1E709B0DAEB662BB9D7CA1DF24
+                               54F93A64D02675E75A6EF133D0976374
+            stream[256..319] = 90EF1CC780C0522B8A66E321BCA3F164
+                               5127BA8FD065CECEBF4294E59BBE5EBE
+                               CE53B6F609F8CBEB2BABEFB05FAA952C
+                               CBE2B865FAA06CBEE6D78E03B714B8DB
+            stream[448..511] = 9B7A554D8AE957FFB852C3570902C90D
+                               D5AAB59B51578614C9227AB1765800DE
+                               1060B39CD8906FAC11820F24DC9866DF
+                               3F7AD7E25704DF056ADB4109925E89B8
+                  xor-digest = 4637C546B4C29CA45F3519949397C422
+                               21B4FA40A4451429185C2BA7C7F4C413
+                               79F71670DAA51C356150829CF93ABF1E
+                               FDE7A43E38D5C1539508939BBECA7415
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                          IV = 00000000000000000000
+               stream[0..63] = E48668805CC8DA2AFA607A7FF7D92658
+                               2C2C2A72666BC8AB77D7E7493CFF41D1
+                               EFF8300D8D06695FC87A964D25FEE00A
+                               A75816BD6C81E78E9D90634EF5B272D2
+            stream[192..255] = 244798F9B5664CFA405C9B8961EE95B7
+                               A0257A398C5C9A29393067F9D3F39BBF
+                               43BA5E0BF635304A3CAE0E12B5D23577
+                               4DD421E0FB08CD354D267C65788AFE9A
+            stream[256..319] = FAD8C7ACC1537BF95CA232178269DBE2
+                               0531B120654B45F92EF1D222C98984C1
+                               2C57B03F98BE53AEB473139A001D419D
+                               219D996F17F29B168227FEF3C8080C51
+            stream[448..511] = 42F7EDE461EDF5E57BF5C7B31E2B12CD
+                               9A44B832BB91587A6EAF19FD3455291D
+                               4031E2D13D61755963369B73EACC5CA8
+                               A88DC86768828B8679A8AFD59D9EE491
+                  xor-digest = 5EAA667B9EF79C96A1DA8221AE0F3EAB
+                               752DC79F1DD087EBF2B7B0FBA6627716
+                               02BF939301A8F0EA36A2BEB065FDA069
+                               1A6CA8737DEB94E3E57D772DFCA7BD9F
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                          IV = 00000000000000000000
+               stream[0..63] = 1948CE36F01498BBF1E73A82EABD899F
+                               BE7C1537D968C7183F671BE4B1F02F7D
+                               0E9C5154B427B551050C5E4BC904EC58
+                               087B6AD3566221F9CE802DF560EB0A07
+            stream[192..255] = C7259394651866F131EBBC6B0DC1F3A2
+                               C77226E71A8AC3BC069CEE5673AA6C4E
+                               273D3ED9FA43F20A38480F2935F6ECD1
+                               7950E83B38C3817303394421FF671A38
+            stream[256..319] = 6A07A6F4CAD37C851C5A21AEDC9D7B70
+                               1D3658D5DE5992F3500C0079EDD1D3D3
+                               3C7E22846F598D03EE3F3C29CC3168AD
+                               AE4A7D38ADDFD18F8DE8C583159D2D4A
+            stream[448..511] = 580F08306C0E78D1BC9D3463C9D431D2
+                               86AEB4C5EF8085874A3B6FF9F931DE2B
+                               F367F326686350CABB5DB80E72843D6F
+                               5E13020A55DCFDE5DBD2D9E5702869CB
+                  xor-digest = D68E33C4F6422CA3865C0ACF4BED6742
+                               3DD3D90C2055B8AE0F653C490D505610
+                               D65AB31F33F214003F646E977558628F
+                               BF8B12BD5C06EAFBC83AC10C64FB8540
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                          IV = 00000000000000000000
+               stream[0..63] = 8E967E5D5018799F24DC7DD84709F9DC
+                               E0B1E61782D82EF568C8167D1C401718
+                               0484066C7E4331C7D0749089AF21AB81
+                               A1D4514C79134233B271600B361C8500
+            stream[192..255] = C44E160935BC56559DD04F027BFEE7AC
+                               D83DA84FAF332C0163B38C63F18F11A8
+                               50D32E5C95E6D2AE96CFD473AF969C4A
+                               E6C48EEB5F2CCF3BA8FD1E7C449B6A24
+            stream[256..319] = 111E4FFF9F798E66999DFE4A4AA145BD
+                               0BFE3C6C2B0C754A307014F2A2B05AAF
+                               D6DE74303CC979936B8074B60A536221
+                               F0D5AA948EFD652F0C63863FF9BBE313
+            stream[448..511] = 09A646CA73EC2FFF8436296FFF710F69
+                               9FF39D0D2A9F740D949B2742A002B227
+                               F556DBE38A33DAD4994BB649734EF7C2
+                               FD677EA2786903FD6876743BDA7FBCAA
+                  xor-digest = CD2EA3412C08D1B18FE7D9A6DA9F7B99
+                               D6E3241A706342561FF5E854024DFCC0
+                               6F2F6360D92FFFF07B877EAD4354C89A
+                               2D90348C074655921E4BA3602B0FF1F4
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                          IV = 00000000000000000000
+               stream[0..63] = 6FE9C00ED73EFCF0E8DCE5DDC58C0143
+                               5FC6A7065B077280F16890CAD23C4472
+                               8A7046AFD55684A03557C80BFEE8D690
+                               63C65453AD476E91BC9D4D56DAD62A31
+            stream[192..255] = D134E6456BD22640126EC6376EACA2D3
+                               24AEF5433599452A7FBF27AF7C55C9BD
+                               D66372A09946A93E2D93B8A613BC1FD0
+                               06C2D267EBFDFC8A9D9261FC20D72F60
+            stream[256..319] = BABA67C13445C44BCCE680FCE48600F3
+                               254025D01CF7523217FB512AB70CBE5A
+                               496A9884BC6F6597BAF9F7A7E5DB68D0
+                               EEAC8875F992CE5D37390DB9A451A250
+            stream[448..511] = 3A655AAB6EC87CE6E3B49C84A726C7A0
+                               9840FA07F9D5C050E6D084B41A264B7F
+                               E5B1D55C4354ED7A83F49DEF195F75BE
+                               9EE49417E36EC7202B84CE78CE63FC01
+                  xor-digest = 660DAB462A13AE8B42B766B73704A5D9
+                               6134EEEFC18F34A04D92F0EF192DB98D
+                               A84B17CED3A3E51F04E4BDE8D39203D7
+                               392BACFC0A23DBBC1E5E5CCB30AEB18B
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                          IV = 00000000000000000000
+               stream[0..63] = 96E610862A237AE614FCE95CB4961D76
+                               1B828F0CE4B58B3F69D7D3C5DAB2962D
+                               D62702FCDB39E68237D89FB2CDF2ED1C
+                               D5D43B484BAFB3DFA0FC67E189E0946D
+            stream[192..255] = BE237AEF305E63ED5DDBAE6C10B1679B
+                               94128A832C875E0DFBA993713FBF2919
+                               01E1B26254F516F87FFE2825CD6777D8
+                               34D627E70BE37664BD69CA239E938C47
+            stream[256..319] = 775682DDC5FCB2014624AA2954FA906C
+                               515DBC381842FEFDA49D4ED04AB43CE4
+                               7F4BACF71DD47DB0484F6AA239D41AA5
+                               99677BC989651E92886DE7C816AA23D2
+            stream[448..511] = BA82E9D1EE5B038C6C9E25E11A8EBFD2
+                               EE604A9FD637928BC9CF654C63D87D78
+                               0885A0CCC4F90A0F70CB68AC693C62CC
+                               81365F815767D91D43BE5D9777FAEF50
+                  xor-digest = 90ECEE895604B068C0F2804344F4998F
+                               CFA5C9EAB913FA08DA48BCBC9C3CEEC2
+                               206B9B2C0A5733A1C46D2C6767685304
+                               1E297AAA4A91E06610DB330A3CC9412E
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                          IV = 00000000000000000000
+               stream[0..63] = 207A21CFE18CF5B22FE8482458D0567D
+                               ECCCADA92BD3CEACB82E92FD7594E235
+                               A679E1891F216CE71FE9E6E05715F750
+                               3BDB393270F92CC54DC4BE234A1DC932
+            stream[192..255] = 255A3CA2C87253E3CEFD8BDBD253BBD6
+                               7535E26100AAE71669B794639510CC20
+                               DA09BD6DB8EBE362C1D4D45199B2B2A3
+                               F20EF01BF4F3C5E81B73C9D3E20E03D2
+            stream[256..319] = 80B48CFD866F6AEF0285831587F64DE0
+                               F898D96089025B0986303D1D51D7B558
+                               A2B1F0A5F991E5E5F24B9DEB4772B199
+                               303EFEB75AD1325ED1162F91B9B92C87
+            stream[448..511] = 495EC94201F8DD0B6159BBD28812646F
+                               4A8C43E22BBA38197471324D954FCB9B
+                               A63E58BC987052F36261351259089554
+                               4FED94CD9859B39C40DFB498829378E6
+                  xor-digest = 3ED6C954159DAFDAC323D6BC24B4DD41
+                               9A865764484A655A65455C36CA9ED6FF
+                               29D22ACA495D0FDE0800137888C2E4B5
+                               5325DF98EAEDF81E0B5FCDD2BAB89AB6
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                          IV = 00000000000000000000
+               stream[0..63] = B4DB46D214BA8D786D2B8B406EE2B11A
+                               B69BE3BA6B3952C2A16EDCCD32FD61D0
+                               91C0337D04B2FBC9E40FA0C9D8E429E1
+                               313CE8D892EDD398AA1976F28662C59F
+            stream[192..255] = 54D8503F94F607D74E1E5EAAA1B2EB72
+                               1E6663B2BFF5B4BAB04A727B56199681
+                               93DEE47253E6E3386F4673196BC8E897
+                               516577CEAC02AF466D0E2DF9109A7C7C
+            stream[256..319] = 5C2E817FF4B35CD4979CDEDAE4C443DE
+                               9E85E86143D006A0DD76691AAF55E8E1
+                               087A0E23B91E32D13EC0542218D34FB8
+                               565CD048E46EF7AB19F4829913295932
+            stream[448..511] = DC9C7C573D0DE5CC59108386D299D480
+                               9A059C81CF38CF98ACCE35A33A82006D
+                               1EFF7E558C9F55691298C40F1F7AC149
+                               5E97DDC96CB1D0A8D999F2949FB30697
+                  xor-digest = 5823D36BE96323D783053AB2C1F09A78
+                               999B2827639EF3880820D307DD78686C
+                               DF00EA9E3D2CF5483A92BBE2CD8209CF
+                               C6DF36F681B50AB534CE5DD79BACDACE
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                          IV = 00000000000000000000
+               stream[0..63] = 68383FDC3F6DBF875F1BC30E87163FFD
+                               890ABF61725E32228B6FF6E1C8B2C391
+                               2DF7AD7F70F1C52B53A3D32979A827DE
+                               9AB7073D866915BDD675069680DC1933
+            stream[192..255] = F8E0860C3896D065068EC9ABFB394BC8
+                               1F6F1A9727175B85CAE637FC99E337AA
+                               CF8CA536B15601EC5D3CBE5C95DF45A8
+                               C64C28138E50EE0456E86E3BB8A82867
+            stream[256..319] = 666C337286C5611DEBF90F2857ADE300
+                               1A287F475B1CDA72F110D417FEE59873
+                               309B54D1848EF52DF8E52434070B15AC
+                               6286219ABF55166C2064990D528CDB44
+            stream[448..511] = 5BDF0F72F05CB93E8C1DDDC5FE6308B4
+                               0FB420B967E84E30E848B4963CFDAB99
+                               24B0FDD37EE6DE7854200BCE9A6F06AE
+                               89092EAEF2EE232B3642F4D1D22B43CF
+                  xor-digest = A879E54012F0FD57D74C7387B3777EF5
+                               9C47DA3B5E142871D537544386452F43
+                               41D0581059B81BCC15B91FC4C067DE54
+                               48F064B511AAEBB7F773923B7F428354
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                          IV = 00000000000000000000
+               stream[0..63] = 6CA2E9B7B21678E6AD2D5337B9B72DD9
+                               2359C704EE552E75975B85123C20F56D
+                               CA90E99F5D0277B74710002D15A75362
+                               4A63CF92850D088DD4D8F2BE08897D69
+            stream[192..255] = B07E9355649401FB38C71086E0007B34
+                               143D7B72A1D2072013931456B9D19B2D
+                               006D5484DC670605B0F4B5E28E11C03B
+                               0A17C8579D135C8326CCD90B23AD4BD3
+            stream[256..319] = 795C48FB0F5731C33584746C955F57F7
+                               3FAC3CEEBA1E93452AD3535B0FAB1FDF
+                               CE32998018D70E2D7A921DB7008CE91E
+                               5A5D9BB3A32279E5CB54F24B0148C962
+            stream[448..511] = 76559C3666FEAB7BD779033074A14C7C
+                               973FDC4C4F66BAFB27D1A6A331E5D1A2
+                               3E7F60A7B19BE30FA5BFDCDC523C8AFC
+                               E500A599004E76DBBE63B741228E44C5
+                  xor-digest = 22C77BB185B8346211A2BA324160BFA3
+                               B0CF243311C720EF7AE57A361044CB41
+                               811934A0879B01AD5FA0828D2B575219
+                               5138DA3FB6953806C32050F7D38F22C4
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                          IV = 00000000000000000000
+               stream[0..63] = 28D7E685BAC5DD5DA6BD1A72EFA3D383
+                               480A36F2323603B9CB1EBD8E5AC82E41
+                               3E3F475A4339C5269E66B9946A8310C2
+                               AADA13F1D8A6F2291F45ECA4BA39398F
+            stream[192..255] = 41DBBDEB346C6013E6C460A41310695D
+                               F4452FAF9429CF3AD1D48C3348C4DD51
+                               C4D9151E2058800CFDCA0FDB657F1580
+                               ED10A02E19A57E12C6E8A84C824C0084
+            stream[256..319] = 1F7F163BFB25918122F133B4A06FFDBA
+                               B4C744F70FB1BCAE86468E5323E0EA73
+                               EE2ECF2703DDA5EB496E56A8CBBB2652
+                               2A774E3D53F2CDDB9648D06AACBC99EB
+            stream[448..511] = F5566790C44344C957AA59D49D2DBC54
+                               B8FF96EB0CA11597B97926FE7B960924
+                               215145362BCD3A089DE248E179F2815A
+                               ED0A48E743E9977760342D4944C3589B
+                  xor-digest = D0055A4BA03982D6EB517DADB8492F8C
+                               3DFC066FD597778572CCFA3023CD5502
+                               69666A75328816D71982DC31D1334EEC
+                               0636FA6AC54AE15F2910FF845DE205D5
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                          IV = 00000000000000000000
+               stream[0..63] = 46604F84758E1FD15A20CFCF1F171C60
+                               39FDB0D6422ACC707939DD1829E47AAC
+                               03F43A1E6BD83E4166FC88CCBE01C29E
+                               43DD84E10530D021ABED7D3517E258B4
+            stream[192..255] = CA3D8039B6A31E47ED88181F9872E671
+                               2A36482B7251A0126F93A6EE6F4C595B
+                               EAE264DF3032127796AC4F517CADE08A
+                               03A2CD6877D7A9047C13623384275F84
+            stream[256..319] = 1ED5EFDC11F01342E3210F6EDD264639
+                               C64B0330E04F1E27282E2B7FD40A30EB
+                               DCF3C1F9D2EF1619257A410C25C6BC86
+                               7F74A7E837B42AC62449C274DFD77D60
+            stream[448..511] = 3F667B361CC5592509AFE551909E5B45
+                               329F3F2211928091A7893830C3DB7AEC
+                               A160A1C3D0224EB62749DC1856A50494
+                               03F3A262865342DD23296BB342716082
+                  xor-digest = 137C59F2E80CD53A784A1FDD455EFCC3
+                               A18E7A63234A9889B78945D3763C3C26
+                               345F0AC0A4071F503C9D7988EC47EB37
+                               D3EA5288634EDB1441E1BEB47F01E318
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 00000000000000000000
+               stream[0..63] = 0B40A5612049742D44B2F1B94E844980
+                               C6774B4001258EFE33C177F5B22D90FF
+                               D97DCAC9296E73FF8276CFEECF1B0898
+                               E2DF48992D2455B83C96A9E2EC6628D6
+        stream[65472..65535] = 9F7B08BA1D034774A17F8C7FB1826A71
+                               CE58D858B3C78ACA35706EAF08B42A7C
+                               21B195E8AB2A0251C3C1915456DCAA1E
+                               91607AB7B6B043CE011B410CBED5D93C
+        stream[65536..65599] = 6F51DD6CDD206E1A10C8293086AEA6E4
+                               0D0BCB1B0F708149752F008CDD6B357A
+                               3AC0CCE03521A2170F9CF00D865A2C7D
+                               E64F6C68B3596D882B650A1DDE586A9B
+      stream[131008..131071] = DEF9617356CF431E3898322A25B9016A
+                               6CF6EA633997684BD47CF22EA8B2DF45
+                               2F895C70E1BFF252D68C5F22592A3B79
+                               78A4D1217D03AA9298E7EF8287034EBF
+                  xor-digest = 278367076ECB5DC6AD98A1AA808CB74A
+                               AF84D8FFF0E48191DC5BE359A3ED6BE5
+                               E283680E1078654BEAA8007B66762C79
+                               7680DE836055222F8EA30D4CB0F03D4E
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 00000000000000000000
+               stream[0..63] = 26611B6C1A72EA54346710A0FA092172
+                               11DA2D331F9D98D17D8B35011BB6B032
+                               7D13BC7F662FFF7138E6BB2E6DA4CA21
+                               7B471795E89B30F2E4ABEC92964B6A2F
+        stream[65472..65535] = AA02F8F983E9A316B685BA26A64BB358
+                               5DCE94CE59E51280D63A428322C1C9E8
+                               4D2308851B2639AFBA7CCF6F1ADB31E7
+                               2F962743ADCFE641CD03B51886CEECF9
+        stream[65536..65599] = 03FD54EBFA8C6C6831A0AE122F388630
+                               F136D0EE1BAC7D7E7BCA31D6DC17D3A2
+                               E5A7136BB93EF79951A50CF332C48193
+                               A041DBB1A86EBCD95DB3D48E21960BF7
+      stream[131008..131071] = 4ECBBED60B3EE1A0463A0F7F2332F57C
+                               5C1E65FDEE280C5B29C559B0030A5AB9
+                               5D21279211B4CFF59235F3F0F11BA94E
+                               550E2067B47434BC8B7CCBC7B369219B
+                  xor-digest = 007E2FF66099D2123A5D3FAC1DEC193A
+                               692DB0441BBC3826AF0566187EB5CC0C
+                               AD69CEC2A9C58C3E032D3E136AE89AB0
+                               AC5655E394B3A5C22DCB7FDA2EA5BA01
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 00000000000000000000
+               stream[0..63] = 13AA0053E97D96453E6EC8CABC226223
+                               6FA3AE17D9C091B30FCC127CB85839C1
+                               47DFF994A6B6A1954DA772DFA570DA37
+                               3FFD1138D43F288E8E2C18E90D04416A
+        stream[65472..65535] = E5E456C4878CCEFD6D89B24C92D607F7
+                               18882A645D8F1EF19364405D874F720D
+                               1AD73B53FEFB09848EB972CF492B04C1
+                               0C0908B01F3DAD6E5C3A8D03F76FB356
+        stream[65536..65599] = D8BD4F7192FABCAD05A4FF12F07091C4
+                               E28B1E1D44B95AE5B44CA116F8811DB6
+                               4A73BDABAAB4A3232F8C512DF0B3014D
+                               CFC727E91E9D064A92D74107E8BA6714
+      stream[131008..131071] = 5504D5518BCE03850C58AE9EE5CF7668
+                               4AC7D10202064E250E797E560817DF9F
+                               DC52116966F3A000312427C003220B68
+                               197A0AE8FB50E8E209173D03FC84507D
+                  xor-digest = FBC5B425AB845DB8FE9368E899A2DB19
+                               FBF12EE96C60E53B5A15D81A542FDF07
+                               03DD9D53963EC67131A317D23883D290
+                               3CA369CDD949878A9E838A160AE325EB
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 00000000000000000000
+               stream[0..63] = 95ABB04CFE93069C7E51BA8CD38762CC
+                               CD981A747160FA9EE359DCE490A9F89F
+                               97FCC0DCDE794AD6E75F0C68FE38FA6C
+                               3F6F4F4D3096B37AA44EACF9DC0DE19D
+        stream[65472..65535] = B2D84ABBCA564A23149E1214EB667919
+                               C5785E99D96878AA1FA13A7B5A9CDE49
+                               E93FDA73444ADBB3BA9C7E5BC97451EF
+                               DB449558C0C58934C20504DC73DDAEB5
+        stream[65536..65599] = B4DCD0AA2F6C7074E1E1979953DA7D40
+                               CA249398C8FDF3F6933A3574376740E1
+                               83296CF12EDD61BA5354EC7829142592
+                               D7B8A107BB6B5E6F21BE062E6DA9FBE8
+      stream[131008..131071] = 7EFE1D31745096008EEBA373EB7050DA
+                               AC9BF1AE7391B776055533C7C290D61C
+                               BCD358F96754DA2D0AE3CB033C8704ED
+                               E1D735182A8E53CB3D45D89417FBCFAA
+                  xor-digest = D045C105F8945F4619B90AB36E8235B2
+                               580E0E1AB2DB68742D62D5B08D899665
+                               DEBEFFE576EDD5DCA9CEF8217C510DF6
+                               89097D330A821AE896D02FECEFA9FEE0
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 80000000000000000000
+               stream[0..63] = 12F5856BA2404CD0CFA76C4D57995495
+                               4413AE1D75153C76E3B72A77E1C9BC2C
+                               76E5C495561BE6F01E3598F0CAF98998
+                               2C95C97B68D33087972EC1621A1B64DC
+            stream[192..255] = 91BE4084B9F0232830FAB01B357991E1
+                               779C6C86D7366A068F993DFFCB547F92
+                               B7AA350EDC77EBF8E8BCEEA97652AC08
+                               A75151430B13EB8F43D236840E83BCF4
+            stream[256..319] = 8F9746EF31658E4F42B5961AB8AD1366
+                               2F3832A526E6F4C6D5ABAF8F7F5B4B7D
+                               7F96DFAB3F330E2F17E4344BE3E6E4F7
+                               1BD9986F3D2FA7A0054567F11E7EC672
+            stream[448..511] = A24DA76EBBC0C1386BCFBED672075EB2
+                               01CEED2A5EC3300D2C3ACDC744F9F347
+                               596B5435BA4A96ACFAB27A73A5A671C8
+                               A7A3D81BD207B7A690791CEB0C946B6B
+                  xor-digest = 9B14497A7AFE8472C4BC72250A122084
+                               F1D43040C1428AB06049C55A0D536C42
+                               8D2679400319E4E19D2A1BD2EA7A0769
+                               B3D77B60B354BF1476B0E582AB120031
+
+Set 5, vector#  9:
+                         key = 00000000000000000000000000000000
+                          IV = 00400000000000000000
+               stream[0..63] = 74C9AF0154EC5DD2EC2E91758DB9BE3D
+                               EE8577B8E68B51D08436629718EF7162
+                               3573C705B43F0E3BED39417F93B57007
+                               E9FFA3872E4117643C9DF1ED3942FEA5
+            stream[192..255] = 6171FB597B1DA852A9D838038946C484
+                               A18033EBA0C1754EEFD09156AA675823
+                               65B62AD96473CA303DCDD2931B733C5E
+                               30781CB29B0E62A6F024BE147059DBDF
+            stream[256..319] = 6E7443A0B4454448FDF38825470C0ED4
+                               96EB16F7DDAC96F6A901E705E9AB2EF8
+                               68343BF268EEB94324EDF51569AC3D16
+                               3E22DF26EF72FA63C99361F874E0C942
+            stream[448..511] = E28814F48417C03B3DE744FA3E524996
+                               6A6C24BE429CEFCAEF53B18E439CBC5B
+                               2D07BCC62EA559CE09CAB703FBEB7C3B
+                               E7531C7A33586F9475714889DFE4A49B
+                  xor-digest = AA096DE5BB5FDED7F2B73830B8330D14
+                               B2331A1905612405DFED7EA843ED05C7
+                               880BECD2D7DEC5635723FD0E36BCFA5E
+                               6805D80F81C49B695CFCBF047D6C7B36
+
+Set 5, vector# 18:
+                         key = 00000000000000000000000000000000
+                          IV = 00002000000000000000
+               stream[0..63] = 4CC56A49F8AC6E3FC856286D36ED8F84
+                               4C35ACCE41593294DBCF2BABC0F0DDF6
+                               24B7E8D572D44EED9B817BAD471F1F01
+                               A4EAE6B7C2DE8DD9DF1562902C75838D
+            stream[192..255] = 6E2AEACFF6620349681109EDC56E69F5
+                               577617F4A90C0866C38902BE98D11245
+                               B5C2F651C302E013CF3C02FD2C5A7410
+                               6B1B267BA19E97A7EADD06F717380891
+            stream[256..319] = CC92F338BC69879A1F31A237AC0E5310
+                               7BE7F9A2A36FBE81742F970C1BD80034
+                               1B0D2AC8AFD8D288CCED715ED9EABD6C
+                               13067FD5FA24DCD9C5A02F9E5118C02B
+            stream[448..511] = 57C002AF0997A03232343C639D8226A1
+                               A9E1E9030164E40157CD6892603CC477
+                               FAD8B649193C8811E173E02E15EA3B01
+                               1EB1720470661C1D484EA196F0C3D19F
+                  xor-digest = DFC6CA8E22B9B83A2A4A4C0D9F73463F
+                               60AE72986D009E70D17C7361CC31DEA2
+                               A2FB58D5A7A62730E44B836F0A1FE1D4
+                               DBBF088D4584F1FB0679DBE269D49AFE
+
+Set 5, vector# 27:
+                         key = 00000000000000000000000000000000
+                          IV = 00000010000000000000
+               stream[0..63] = BABC19F9C40AE610813DA710779ED2DB
+                               C76B9EC10B9F5B7302D4EE5650475B28
+                               559201CA033450468F2A06F0C1064837
+                               D516E25654D5C4DEDF68680C73959152
+            stream[192..255] = CEF94680D99D866366BA3D088A2CC00D
+                               A6CE84C8DEDBEF851E76DDD37BC91E9A
+                               6D4922B45C281317175D8CC693980163
+                               5B5B14D5AB2C81224BDC483F31F10088
+            stream[256..319] = B5B86B901256F7478C3FAD46F3A24DDE
+                               FEBBFA29A7FE761A599A906F3AB84572
+                               BA54D72E75E1F23279DC9B7019AA74D4
+                               10FEACEC3972F97A2B1A08F0B70ACB44
+            stream[448..511] = 93C2B22204C92133234CDA9193F6BEBC
+                               6ED67EF69018398400D5543ADB432505
+                               D6B69001A5EEA1FEF6C67CAB03C28FA7
+                               A5B825821DF2B94BB12585D102C9F55F
+                  xor-digest = 4366333AD41279DF5C3B7A31603AA4C2
+                               6A9EF9F06DA91C90961FC214EB1266CB
+                               5B67C58625CD11E3D18E4ECA2D657A61
+                               BC27F76E7038703077E331911E0728D5
+
+Set 5, vector# 36:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000080000000000
+               stream[0..63] = 17AF6F0C6DAD04B88BB4C8907979D4C8
+                               8D614394BABB79AB3BD63CB122F30B33
+                               31152C5C8B33E7B72C6DE0E4544901F5
+                               0D262E6A5882E0598FA0473FF39921FE
+            stream[192..255] = 1ACE9133BD327632D2C249A001541625
+                               84DB59B70FF1228679520D6FE3B7AA48
+                               072368BE879C2D9B27E8FE7CA8B8F5F3
+                               CC43469BE29C29333DA9A30AA796D0DD
+            stream[256..319] = C1E903AF60C5DC6768FFFFFA44818245
+                               5CB4C006670FE118D16667F552D31461
+                               CDADEACB2083B8F7AECF64C56805482F
+                               C0205774EE9CA579CA835547C503CBE2
+            stream[448..511] = 871370A80BF296DB5E46541BB0A10763
+                               B4BFE9E1B48940BD98D94C770D249FC1
+                               9161774D4CDAC0674F9F3A96560383E6
+                               40B70108F4E82C5FD476EE304FBC9BF4
+                  xor-digest = 620B8BB8D757DF413F29450739F338E1
+                               1E8B87BBE8B20D3503DA31857C43D080
+                               D524112522CAB97AA062D6BEA5B54F3A
+                               ACB4E7DB32CFB3C2A67258053C9A5AD1
+
+Set 5, vector# 45:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000400000000
+               stream[0..63] = 3AD2AB325925FD3591692D857EDCA5D3
+                               27B9F718F454B6EA61E13F24EAD2F797
+                               4F98A7829CD0002CA0D6719ECEF2AAC5
+                               DF80184EAFFF37A4337687FE683645D7
+            stream[192..255] = A724FCE37B757B61ED5311094B275A59
+                               C72E802BBE83BBE3D5F7D7825E4D3D01
+                               757C02E91D15F0023CAAE82C85CBAF98
+                               A24410944AF00410F07BC70CC7DB4A4F
+            stream[256..319] = 3A78E582FE4D7211E091178A6B512380
+                               587FB666ACF5845E8ADE488D8A737360
+                               9AB7B417E61525470B26634839A342E9
+                               8B3C7DF0931AE14458477C9A50234A03
+            stream[448..511] = 22EF25AC42AD410BA2873230B3B16045
+                               77F3D3BEBC7FF8509BF04CC4457847B7
+                               77F5EB0F04F2593BD888FC98A72B42BD
+                               232A5B64C7CB284D999FE224B74A47D1
+                  xor-digest = 395F415F2B2D338428C69FEFB6866810
+                               E4B830075175D1F6FA648FF75E7A51D0
+                               CA0A13A70189058585C32C24251433BF
+                               31977F1F41C98C5EB44F2BB4A1210C1A
+
+Set 5, vector# 54:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000002000000
+               stream[0..63] = A916F58376D391518A8787368DC40CE7
+                               0904737CCE8B6DC24E0A099D008159C9
+                               27655DB516666AC414029A2D5E1A3331
+                               A7A9913E1B92787290AFB25D970572D5
+            stream[192..255] = D506C700C98958903C640A6BF54CF181
+                               45DA63E1F20601EFDE29959EEA1CDE8B
+                               034635B77BD557C85F359A7D0B785465
+                               A5BE9B651E77E33DAD0D03865C09FBCC
+            stream[256..319] = 6B758FED7E160B99707C27EAA0B6843B
+                               A53040F21B5FB1999A4A51C525755A8A
+                               5C94E71C0D04917C3F0767B7299D2099
+                               3D609E9B4330123B7C53C7EBB579C412
+            stream[448..511] = 45BD4563DD69F6C53935512C93ADDFAE
+                               1E7BADAF4E64739D1962F8D4E62400AB
+                               368848471AE8D826F935FF1ED3E7C1EB
+                               F331297815230BC1239758D8D6E98F04
+                  xor-digest = A4B0D850D56387EAA28499279CC27F9C
+                               E29CEE373D6DB14DD638F8E7EA99F17E
+                               3DB7C3E1BF320C86FB7CF428CEA91889
+                               D032159CC32AD06B087576E41F9B3A49
+
+Set 5, vector# 63:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000010000
+               stream[0..63] = 6FC20897E3892A21291F9901EA6EDDC5
+                               90F3AF0F15740111AFD0CB14FC5A9555
+                               CD42F16578A50C77BCEF24B77619DBBB
+                               AD9C821DCF61F8C8DDB1B0880D4D9219
+            stream[192..255] = EDC32C05B8D259611094B14D001D5B39
+                               C0A3735D7A410D86B46EAB80EC30C704
+                               C289B318AD51BBF7D7A5A9E65F4956EE
+                               76E57DD4DCD74B523F8B291EA706E588
+            stream[256..319] = 63582CCC020C1CE5966BEE2E4B6BB065
+                               005A8523C8DACD9466B5DB1E1DEC6634
+                               4DDCE72F1BF89FE046EAA407D5154C36
+                               119551ECAFC525D6574981EF53EB778E
+            stream[448..511] = 5638088CEFDF5EEB1CFE8326B38D688A
+                               C5D1B7232E5760CFA7FEF3F85F442F3F
+                               A82061AA46B93A3D115F7B780640F44D
+                               429AC76E48362B0598DDD584F8FDAD0A
+                  xor-digest = 38D149C1BE4AE374A92451253D363152
+                               0DDFDAE2CC405221537178760CA5F6C6
+                               9E8828134E0AE7B188785B71A576ACCF
+                               FE78606EA9181CF37D707B4A03260F18
+
+Set 5, vector# 72:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000080
+               stream[0..63] = 04FAFB36B212BCFC05E5E91162575380
+                               711A51438533C9C6EE9FF800FBA85673
+                               49ED5D1472ACC116D69185BAC1564BC2
+                               646F794C476CB546981037FE982262F8
+            stream[192..255] = 27BC3A5152A61DD14F8734C3738182AB
+                               C5468A817A3A2B60748F1F9EE039D77A
+                               01A3A950A719D8291398D77D1A4DB80D
+                               06404BA799D707A91E3E7FF3564E74DA
+            stream[256..319] = 1D73F7134345B520B88AF07078FADBD3
+                               E40EB7990F77CB7B8836D63B0682CCA1
+                               2AB3A312136A2B0C02799D6B55876981
+                               EE3F9B9DDBD72D6779AD244E5DFF997C
+            stream[448..511] = 1D484DB9D3EC7B62F8E6E3660165D2D1
+                               942DB7B715E5EA0AF42AB3BA4AD21701
+                               843D4B9EC5C744281C1B6FB39D343088
+                               77D65E620B3387A9E174677CEF986E23
+                  xor-digest = 4C9115CB4433B3C9ACCA1B006EAFC93C
+                               F1F0F6D3D7DDFDABD9C889B782940711
+                               8E00B069EC33191832A920A53A5F85D0
+                               C907D56E4CCAD1028D04F68133D103A3
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0D74DB42A91077DE45AC
+               stream[0..63] = EA3B6B8206E9ED19F46DAC1B87B6F0E9
+                               E62F5CDC0EE54C841D8C70F4DD968485
+                               0FF39275579505AA8EA837AE6270A420
+                               063471775744071DF5A2A169E2A22A5F
+        stream[65472..65535] = 7E3E1689A6FC876136DD675B95B8C2BD
+                               7A7E53C0C8D714A6070F844F52D0D424
+                               4DB1CF8D26BA8F5D2FFE9E6DC6108F00
+                               9ECB637032EDBD1B396D59942BC51795
+        stream[65536..65599] = 43C8623C44141E9A9808C221ED45041C
+                               8919E8447A7DFD841407B969A0227D28
+                               DCFDF559D2915050CD7A35298E1490A3
+                               5B635DD14E202A622ED5D8E7EBA640F0
+      stream[131008..131071] = C21321EDAD8645A4BD074E287B776A53
+                               EF0332B775BDF60990798D2FA9AB31E9
+                               73965B57659DFC956DAF3B487E913CDF
+                               46FCE7A3E12A67118A429A328BAEFAE5
+                  xor-digest = 672956878733BAC37F9E326A5C8AF5BB
+                               4A62EA29BBC54C90FBCAA3170C9383C1
+                               DD629F82816117E5A0FE412A724E716E
+                               7728FD65E033AC8AAE218A04C57D9FD4
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 167DE44BB21980E74EB5
+               stream[0..63] = 03941F7607A0E96084F3A236759671F3
+                               2FEE0C977E4EB96C49B791F32A12744D
+                               0E15155D7A82C960CFE942336D92D723
+                               27BEE4675708D8103D976F19272C162F
+        stream[65472..65535] = E8ACF5F0DD56B9148EFD5315801F70D1
+                               A29075E14B9B370D23A037BB7E4A2039
+                               8B8827317CDC9960BD393F85620D8FED
+                               2C1F4CA982D566C688AD3D91DFBCF0E1
+        stream[65536..65599] = C7F6B1EFC4A873024F273D8BEAA80B30
+                               099566A2D1DD440C111A49C730DDE8A5
+                               708E52F9EE1A6CA162CD890C7B55BD0F
+                               50ADD7F2E1C474BFD5522F1A4AFAEECB
+      stream[131008..131071] = 929501A7BB80799DC1BFE4FEC3D68564
+                               D1156B6E25F00B8AFE6858385CA148EB
+                               78162849EC04494728155D63D91159FA
+                               B9ACE40DC7F97931A6745449A7A465F4
+                  xor-digest = 44745E9AE9F7203EB2EA0925E02B5396
+                               ECACAEFDEC5BDE8A40518121DBD308E4
+                               CF3D057F70D50ED7FD6189D46DCDE531
+                               CE51B1C0D8162340EF9F5311DDCB4E8F
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 1F86ED54BB2289F057BE
+               stream[0..63] = C4F9DD3DB49AE3E28A07472B2C6F64F4
+                               524EDEE76EC02CCD8EBC200B596DFB00
+                               E675975461EA15EC3455368E502BF021
+                               042A3212BAF0AF4B2D4024D0A21050D3
+        stream[65472..65535] = FC0927C8ED3A6381D8A3423FCF3513AB
+                               FF71C01F070A7E6EEBF38357210B745E
+                               D9ED9BE29E578497D61B487E4D709BC4
+                               AC38A868EF679CE13B911CEB23F06617
+        stream[65536..65599] = 426ACDC47AB6C7DF581048E6297C5172
+                               7BA74FB4D76A2FE214D6DA3D9C79CDF0
+                               4AD5D33B67DD9F22FCC49E35F810D336
+                               60A7AC52AC097F60B3A264407C0E2A46
+      stream[131008..131071] = B84020FB6D76BB885D8A0793EBD40519
+                               A7E4D568F4EF6738BFDFE0B2CC9EFA83
+                               D4C4B2F06C208439D2EE518C19AEB7F4
+                               37AB4D9C13C4D623655884CA8D6B34B2
+                  xor-digest = 82272352AD2BA7DA77EEE6DC3C0E2C1D
+                               E1282BD4281F47E721677C35AD42E049
+                               5A8F9DF0E85CD39787AFB382C93F357B
+                               39CFED67D31DF67B00F17876E9ED7D3D
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 288FF65DC42B92F960C7
+               stream[0..63] = 8693F576BA66F0FB74485C06460562B8
+                               892C2D641A2C86CA34005C74B5C089BA
+                               662079C0F37B90CDA36235ECDBB9266B
+                               4C0295A844E4BDB7BD8B71CC53D5BFFA
+        stream[65472..65535] = 635985ACC7F7E27843D43B14F9486AD7
+                               84C7C8DF500CFB5A37B724D798B54D29
+                               A778A81F82EA2D3FC1A3A0B836F5442C
+                               8FAF1315186EABE565CFC39F21D53244
+        stream[65536..65599] = BB433A310AE798D4D0B275B9DDBB0231
+                               E3089D6C599538019775146196931F8F
+                               C7DE1254B8777D3544A6C408DC882C1D
+                               683B5465E55FE7054583B21D05C791C1
+      stream[131008..131071] = D4EF1D4D6A75A117C8BDD54E50A30F65
+                               338D6BA75FBC14FF3DC4452EF2F682EA
+                               F983142E8D07A9CDFF242EFCF34B4A18
+                               3B5026675CE7B6E24690FE14FF12B2A6
+                  xor-digest = 2593172D00F13AAF64AFADD3089A233C
+                               F883C6EA096B49C90F4CFD656B952F76
+                               7BEDFE5A2FE43E499866FD526686B3A1
+                               682EDC6675C11128820609F1AC9B2339
+
+
+
+End of test vectors
+
+Primitive Name: MICKEY-128-v2
+=============================
+Profile: ___H3
+Key size: 128 bits
+IV size: 128 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 7CE05D0FA2FC7D9B4485C64D61EF1191
+                               528B12075409F8E877DBFBCE7CE3FD2E
+                               FB646DCDFBF8E5444C1AB310EAD7A15C
+                               E0D0DBCF516D346FD06C6814BF6DFC69
+            stream[192..255] = 63C3676500E1C7661F8EE17E08919FE5
+                               DE914B3E4B23123DB97EF531C0ACDD70
+                               15F745D847642F4F139CDD58F7ACD6CB
+                               15741A42372648F5F58975427DB7C08F
+            stream[256..319] = 86A4A8EB013AD583C0232A062208B1FE
+                               02D0F2C2F5F54420161B6DEE7F09DED8
+                               42D7906F9C30C54B0538791720E1EAC9
+                               EB51419AD4B1F76FB611B6CD12773CA3
+            stream[448..511] = 192139C4D64A63FD6B55EEB7BDD5BBA9
+                               3DDF79D23944698840153C9CE2AACAD9
+                               9832D62D28608597BA63E36C55562B8B
+                               D47691080B58F89D14C9A505F8C6E385
+                  xor-digest = 23441D3310A817BA286ED3E8F10C54F3
+                               93C567423336858A36746BF10DBCFA16
+                               D8CDB67C2E13F646EC2CEA9DA36F4DFB
+                               B34C6307BD5E16F69DCF19A2EEA4BFB9
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 2AD730F26BCA95E2C7EF64C0C6562155
+                               54BDDCCAA94583CA12F1C19EA05B7549
+                               F325454E9FB403114B029B31D19D807A
+                               ABCBFBEF7FB0D338BC8B8B86A091286D
+            stream[192..255] = EF0B19D71D9A6C5C4B4528334E679BC3
+                               40A5EC23CE61737DEBF8145791F04F4C
+                               028B10A8769B97A4E9B6BAFBBEFA03B6
+                               0AE3C9C7A978A30244BC2759F9123F30
+            stream[256..319] = FEA56694E06166956E72A3A49EB6F6D5
+                               B86D7D2E0142F60AA139814F0B83DCC4
+                               14CB402F58AD3D47881A03E74A42E5EF
+                               B7DB3D1F5C3A5AA0006F7FD186F5E225
+            stream[448..511] = 0823122D2873D914D5479A685CE22ADF
+                               59CDC2DCE69945D197F9596B1DB9619F
+                               3C8307E4DF32E625660F743E09E64FB3
+                               074F5E2132039B0F6E86FAE419C9F1C0
+                  xor-digest = DD044F5DD141238423BF30D4316AB8BE
+                               3DB64204888A1D24DC07648DD000A179
+                               E63B8676FC6E2EB9661C2488B5B24C30
+                               70DE89B6077C1F99822316238BC833C8
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = AF8E3042F8D31771AD4CA66DF182CED4
+                               53734A3B42E787033BD45164CB18D49E
+                               0D53DFFC636A13E70DFCD7FA3547A3B1
+                               C17FC940B33A8BEBB9D5A32A7CF2E8D7
+            stream[192..255] = 76AD6F309425BDB59601800D4D4A850E
+                               FB143AD197A47E636EC70152776D3508
+                               BE9DB6A185B3B926FEB1E4FD38F2A0E7
+                               7AB187F66227E230EB01B646E2EC5970
+            stream[256..319] = 6588018D3DB345C6162BFFB1B163BE7B
+                               44BF6DA5756FCC9543DD0995E6760E4F
+                               516414ADEA13CDC9485BA4DA6B544553
+                               66AEF817231656A83B7F24DAD07E0670
+            stream[448..511] = 3CD4A16FCDDC344AEE80D38C4DEEA1B5
+                               653F6F596513FA857D4C9796AC377336
+                               9B83361DF137DFD0C7B43B2561602C67
+                               E1AD2ABA83900F7049B403FAFF1BC7F9
+                  xor-digest = 6E767E2E7590B3E90FB5BADADD992B1F
+                               BB425C1438F6EA1CCA7670FBBF2367E7
+                               72195B53B9D39F79A7D2B4C280042BBC
+                               6D9A69A62CEDCC816C858EF553383358
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 5685A2DD807AE0EF15C63A8652A88705
+                               36EB5DEA3E02E583A6DC67534577BDBC
+                               2DC543D4F3FF3F51A21098AC31BA9FCB
+                               215999815602EDF8DE876E9559507BB2
+            stream[192..255] = E5187BD96B0F8EF724E794303DE85CCD
+                               6202998BCB8BF6F172112DF81E2187BF
+                               209A95D4A070EA83F8D34BD56EB92EB2
+                               DB073EF5FE42B870221C245D1A4E3682
+            stream[256..319] = 484DFE04FAD32B8853C6126D47A3040E
+                               462B6F592E09E7DE2C3C512357702CE3
+                               64D3B205860B6DB284CB0D9DCE4FD0DA
+                               1078FAEF1C772C67CA94C43BFED94143
+            stream[448..511] = 914D777C227CF7E5FBD52EEC8AA9F8C2
+                               E31C58497C962BF9F19302E1CF59841B
+                               AEA0D444036BB756B05A0544C8A53A3D
+                               01662A22781E7993A616D8CD2D4643CE
+                  xor-digest = EB52A5F8B0B0B73FB553CACC58BB938A
+                               03A3064F7E5C6A2AEFF928E8B1162E90
+                               B726DC53619ADD3797F6E773EE6E3399
+                               25C4EAC84C423565E0765B1FC187A6A9
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = BFBE645A1DF23FD107E6E60587F11586
+                               833AD769A2495E3D5D260FAA2A5EE851
+                               5BB005F087E8D9753DC54839CE618741
+                               18646036B2FE74EE9CD4D497569CBEE0
+            stream[192..255] = BEC0919BFD2C6DCCDC4402B09B4B77A0
+                               C8C89765AF9E090CAC485F0243197D5B
+                               A6156F3C52F6F2FFAD8B437FB37D6557
+                               D4AC3650F5D22F5FE557FC3D47EF291F
+            stream[256..319] = 9656BE778BB6BFA67E884440018C5DAA
+                               02F4CCFC605DE2C5F070FFF369BC4547
+                               6547892C003D3A4A50ED681BA39F1F37
+                               6427F451B8E2ED9A8650C589899E59C4
+            stream[448..511] = A221975A31ED6F908645EDE0C3A66F07
+                               33E934DF8D8327B462DDCAD924AA37B9
+                               28B27C8660B105CF82CE2DB247EBFD81
+                               8A1AA585B7E29BAFC048BA6CEC36F4CD
+                  xor-digest = DC5720650E07C43D7C248A6A1CE56526
+                               C59F6CB6332F1E881FABD2A848E0ED07
+                               770C98A2DC341EEF33F49B1C00436F39
+                               50A36680E8A12D9FFB6A26F5F2C9B5B8
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 4EC8CE2975A2EA0181C3E015FA5426AC
+                               C2C15FA988126E82A9287A4CFF13511C
+                               48A88A37079790E0B574A34E57BF217C
+                               3A67DCAD3B3362BC3B14F5345A09857C
+            stream[192..255] = 8795661861C5D9765B231C14DDB56E06
+                               FF04ABC164DF930FEEDACD502E7CFEEA
+                               B127974D2756109D9687E9F0176CD5B3
+                               59FBC3BD553C5D016DFFB341F351FE97
+            stream[256..319] = 476E0E382D2F1829601D21749EC6D198
+                               5AAAC2D53A8CFFA79D582AB065E30902
+                               B4FCF5031BF290BE99FA2634B67136C9
+                               596767334D8CA1FF6893F06112930DF2
+            stream[448..511] = A0E12253E70081C106108EB631D53A41
+                               62C53D5EE3EF48199472AF5B5AA97338
+                               86807B4E9F8BBD87B7F5AA03684480C3
+                               606AAF9DCD9A270AF88D46834C1E6243
+                  xor-digest = E0A56B350BD8FE9AC207742918785060
+                               8D2790973318BBEE589972F849D3422A
+                               B237B3C69FD2B631FE7E6ADF8822C234
+                               C5F2D33A83EEB84E452AF6B09B4940F7
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 07F090F00067030B60D3D51A2E02C3F9
+                               4C3B0671298D017C4632372E8949C9AD
+                               2DC031CBDBF155BB18D98475319B01EF
+                               F464B31FD06C82A9C976DF3FB5591890
+            stream[192..255] = 7249182E89782B1D43D722417B6649BB
+                               418D4627925ED3FDE0E18F85A71280CE
+                               303E386E9157EA23549C3B232EF9D559
+                               9FEEF904C8574358167CF67BFF0056FC
+            stream[256..319] = B23F61FE62C18AC266D9DF1F3C5A4D59
+                               F4D069EE1CC9B13F1FFA0067B59BEC96
+                               E6A7D9235DDA20866D8861565252A6D8
+                               1DC0F14560A1893FA14100D722FDB6B5
+            stream[448..511] = 1089F52C723BA05E079E6081637308E1
+                               137A97CC4C9535C11D170E72F00BD3AA
+                               F7F2703E451E76B58DBFD4EE003B8CB3
+                               143C8CD2BFE8F02C2365E3CE01172E67
+                  xor-digest = D256952A02325B1C9B3EEBE3D83EFA44
+                               7DE01035E58DA38C8D6D99E5792CF6FF
+                               99E519DE8C5DBDF15870E1AC03017903
+                               573BEC8DF51BBAF65A9D21BDC9F90B5D
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = D6844D0078D9BE1915D4C6C5A71C3AD6
+                               4ABE54181546277EEF6DA28959831A37
+                               7F10BE57110113102DC3808151D2A971
+                               52069306B687F6DE6C32DC5D9AF9D495
+            stream[192..255] = AB4F7A9ED558AD2D5DEA91D152539AF5
+                               20484D58391288AC9B4AEE8FB9946FEE
+                               05BFC204B32165B74BF42317FACB2F2D
+                               6997278B30F890950E693DC5E5D4E7AA
+            stream[256..319] = 54952AA33BE2A85D2135CB7D4052118C
+                               0A026E976A3AC6F3CF6CC7A8349897CA
+                               2393DDF07554CA96B9B7CC2C98CA0F7B
+                               945A095A310F80CE2743A0740590760A
+            stream[448..511] = 3FF6665B3725C525E09DCFDA385CF6DE
+                               F5765A18742D439307F00E7EFED5E3E1
+                               F232547DCDBDF4B5F8CE25084B30B517
+                               96574F0B945B2C7D66CD91B72A52BA01
+                  xor-digest = 74FCDC6D6525D0014A6322DEB4B05C63
+                               710EB285BE1D4DDCB3AB1FAB3292E85D
+                               BBE135F8ED11201790150849A85C580C
+                               785B09A263C51F4E9B0ECEB30132E671
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 24C9689092E869B1DAA4292EADC2F645
+                               4B212B4B5AE872765C2B3927BF4BAB12
+                               0727E0A13F40EE8AF5B89C31021A5FCC
+                               D94D9C0145DE5371CCCECA06FC92FEF9
+            stream[192..255] = ADC7D2D51746090720E206153D906FC0
+                               0040574833756349788BCEB536D13E4C
+                               F3C7D1D803350BD717CC12735CFD67CD
+                               279A4E81CE3E57992DA21261193EDEF0
+            stream[256..319] = 4CB9A50949D76992BFAE9A4D266BF222
+                               52B6C5553ABF8CBCC7CE5BE669D4CDBB
+                               24647268E64B7EA15626DD8314330EE8
+                               4E8F491F070E09E78E2FDB2FFB0F0D0C
+            stream[448..511] = E1F5CBB57E2A4A4BCBAA14C71D0C6665
+                               DD932FAE38104C0906F7F0D25F96458D
+                               FB64316581E48A1B59F789699E83C725
+                               233E000D054BEFB031673D190C03F985
+                  xor-digest = 586FE1D24363249C966D3E6C31C19A5A
+                               D94ED2E0D82AEA75F7F071119C3932BB
+                               D3A52726FBEE51372461023B066190D7
+                               C95F7432EA2ADEA05C52A46020947978
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 34777153F8FA7EF1009E392BB2AC015F
+                               AE2B5C46CAA4BBF9006769380056CB4D
+                               E50123E03E4E2F0E4B3EC4A1ABB760F4
+                               5258893650D0D03B399AD7696DA585B0
+            stream[192..255] = B7B71D91A82D6B00B3CD796A6A602AE7
+                               E574042EC018D5C485527A2BF101403B
+                               7D945C483B5F1AB5CEBA1511A7A6DB12
+                               F369D4F844948EAC032F311939035811
+            stream[256..319] = 762E64760FB706FEBB15C375D8E452A9
+                               B5923068AF8EC24C6A5457D83C136158
+                               0E036244994C4188E492184F3C265994
+                               6C52BC21D74B964CDE119398F5F70C20
+            stream[448..511] = 3CFF4E9D6D5FFCD094DF74F557FE13D7
+                               286C6AB1B44DED5308D872A97B8A4AF5
+                               F05A6D5F1CBD70A48715BCF87A55C991
+                               D25F4D3BE1E7103D0C25A6085A076FEF
+                  xor-digest = ABD861858345C66A59338DDC5E098479
+                               EDFB764793E36DFA420BCE14488E8C0C
+                               16BE4D77C2F9B99625CEE24B92DE9269
+                               73619BACB614820CC4DC439A89999040
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 07B2D82850A97D2A086973915FDBA7F1
+                               3D50AF1EA382CB5BA6B8536015F51C9C
+                               F2E23EECC62E62B90BDE777C90076192
+                               51395CB21742237D39F0F3EAFD79458D
+            stream[192..255] = AAFB12E6189E55FD73C5D7C9CA2EE9C5
+                               E56CC347253D671C72A1A7A3928572EF
+                               B9F62003FE1149066268BD6D3A4F7649
+                               351628879DD6554BFE5E56D8986891DE
+            stream[256..319] = D80EBF4B3E1EC58E4B642EB233C2A771
+                               0E43D77036A049B9D0B1F88BF4109CF0
+                               81787D21B182C85F3FD609F91A1AAB3F
+                               8136C5ED7A1007DA671B503ED6532309
+            stream[448..511] = 11BF18E1249BBEFC4FAEFD1AF3FF4553
+                               7BDA0573BFC6A84263C4D4DE0AE8F7E6
+                               1AFC886F6172CB80B769E062102CB081
+                               283E92394DDE1BC4C0AAD59A0BA70F8B
+                  xor-digest = 2EA46D9FF5376DB7EFDBD380A6694BAB
+                               B5898D75BF75C356A6320C33BCB4821C
+                               2F8CF026DEAB79175E9935D6B7DB2B1B
+                               238DB9D0215EC60D153BEDFA3C44AB7C
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 62AA0E38B3B7E03AB713C3B54DD7BE12
+                               39E26FA7BC6CF372EE3EAB37C094C14B
+                               7E8BF4EFAEECEC1FD8C0D04AA82FD867
+                               9EF91BAC0DBDF0C5391487649DF6E8B6
+            stream[192..255] = E234F65B7597F3F708B5274D75B3F367
+                               04A1762E6EEE344C48CAA4D021AFB2C7
+                               E3BBA1733F140A4D9D11F0AFD5538CDF
+                               F73D1E3A16C026B608F2207DD0CDB2C1
+            stream[256..319] = 2F4DEA8E53BE04E0E9E96BDF0F5C2826
+                               3435697E6ED8A669A9A86FDFF6C87EB4
+                               6754F540549B7B1A80E3EA6E1097A33B
+                               60DAE128A9CB8FA759971BAF3B4937CF
+            stream[448..511] = C94E2EF5AF6D8B86DB6B618488278DAB
+                               436A695B068D3DFD897589662A4C8C99
+                               77E861DEEC2C770642CA89A24E8543F5
+                               480EE698242398534360EBD3246C00BA
+                  xor-digest = 615B2108230F6487F801FE07781F173A
+                               C67E5C97C5317A292EDCFD6FD24FEC0B
+                               0F48BDE510D895B341E8C5D1F65C529D
+                               126A97F96F07DDA81C7D563B256E79F0
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 2A196EF49C332EC87EF3A38CD1231401
+                               C7EC967989DD2E74EBEBEADB3FCD539B
+                               7CA73F196DF6EB7036E7F70385E02EA7
+                               69B46973C1C0FF59B3EEC0B8AA4A0A79
+            stream[192..255] = 1B70A5C72FE4EBDE07C61CB70414B277
+                               795C5CA864AABE695B64097B2942B833
+                               0B9363B2AEC5732B96D6518337B6442E
+                               65E272EB895576E206DA9E23A1163720
+            stream[256..319] = 82299BE3A04F8069EC128428A7558405
+                               0924108A2BC50489725570F178816235
+                               A385B4B8599F3E71803AE170DC248BD8
+                               28D6C81EBAD744E3D4B7A19494955C3B
+            stream[448..511] = 848A2BFB73ABA4F9147DA5C320FE1B7E
+                               F9B9593D6A2171CB64AAB6AA14AF0AD1
+                               30E30F0E263ACF7DA9EFB3A0D0FAFB4C
+                               8C23A740E12CD4E9288BDE2B88384266
+                  xor-digest = 5666394D83684FBBF2ECEDD6E1ACD15B
+                               DDA69BC4796DA4EAD0B1C1E34EAAC7A8
+                               D005CC6DC9A6592F3E3E18AE37AA29A4
+                               7D6389ACAF60065DA37FC6888ACDA2CD
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 064414B7E30908F7C5CB0C5C56E01F30
+                               BBEFFF2283AE5F823BB51AE5EFAC82E6
+                               82ED62AD217B7CFE9F51FC18FA9C6CEA
+                               37A1CB8F1FCB3098D9BABA51FF5D18EB
+            stream[192..255] = F7B2824C497DC14360566B1C4188FB06
+                               5D89A14E349076879368EE131AB7C9B0
+                               9D1A762952BBD507A65C2691E39942B0
+                               51FA5FBDB7A6DF931CB2ADA73D04A0E6
+            stream[256..319] = 14B4C8FC68FD030BBDBA4C22D437853E
+                               DF9803EF2D1B6E51DA2A71DFF242D815
+                               9387799A137115B0A3F586931A1EB448
+                               1A7643EC0DE9F13C3AB553D9B7E051F1
+            stream[448..511] = C6D8D0FA7D3CA7EEC197A787EF0A467A
+                               63E717348F99E94C1D433052059C3794
+                               9820DB9EF0D70EEBBB09AAAD7227DC34
+                               B440CF249ECC2BE43814A932C79117BC
+                  xor-digest = CE29C1D149588A0ABF28456FA6AE8AB4
+                               A60ECA54BC3955C8239C09BF379BE151
+                               06B3F22FADCCEE11D7C8A88A04F00C80
+                               F3A9E958A31B361C90241897102A4E3E
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 28EB3072B61F3A809351B6EB9DA34C49
+                               EE8216F3055F60006C67205E17DBB32D
+                               EE86812A987392059F44142216C41C7B
+                               78150BF2EDE42E24DD1560B5A300BB0A
+            stream[192..255] = 27F8C4903E9234AB29DE45B7071AB722
+                               491D117815E990FD21D3D9E5D9E7C7AA
+                               0E1B80B64D532DC60F50E702B99C4F82
+                               65E70EB8231AFFD3F85959F048994D5E
+            stream[256..319] = 6F42CADE56A29EAF4EABD2B16246C9C3
+                               8B69A798186405496ED9267198082A9D
+                               5A9BBC9D3EA76C73D5577CD396554D5C
+                               0C9AB96894FE244C238D7B5515B8AF79
+            stream[448..511] = 6F19A8EB028CE992E3A689E78CA4AD92
+                               03733093931BCCD9E3902F6EED60DCD4
+                               821AB5CD059482854CD138E83D58E750
+                               9F1D29301264CDDBB465743476C2004F
+                  xor-digest = E0724E905B1270B4DF01A4DEC986DD8F
+                               7830FD699C9140748346F5B64190B0C3
+                               B4DC78146BC34DDD978A09B70121A404
+                               F82D54BE7D1836CBCF58591A4FB4D404
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = F0EE0A97D29BF33D2F9944F95E5583D5
+                               5329BD67BFD0CC590725078525829D08
+                               12223D70E91624A20575D351DEA02D20
+                               C505EAFA98E59D1A05EB3D490807CB6A
+            stream[192..255] = 07B8583BBA442137CC6846B2D1F54225
+                               A0E970AAF63687E2C41E0BCDA07FFF4A
+                               EF1606D82C45C84629859EFAD316E2C9
+                               445A8824048EBDC6A62F0207ED22FF22
+            stream[256..319] = C763746D38829B1BA8EDEFA23E0AD602
+                               B74355221AAE72A3FDD0918A000375ED
+                               613F10338EC7B5608B006C0BEBA32BF6
+                               441ECA1A76567512BBD8C7934A75CE49
+            stream[448..511] = D1F36E80E08C9291604B4455AFDA5E72
+                               C8B20836432326BB9A501FD61C31A897
+                               9075DCB5896DD2A36422DBCCE87AAB85
+                               79177BA887F22BDE69382696B82B2F2E
+                  xor-digest = F6322FE42D59E97493A2CEBB220F3867
+                               B0B9A7CB30D1555CE69E2C23BEA72101
+                               03B2437789DF38540C9FA6E945F83193
+                               DA0BF39F778E6420FEFA5F0527081AD5
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = C39A30E1FC1376FA9C3EE9A1797C3C94
+                               1A83AFDFCE2811844894F1CB8F25D696
+                               9D657A6F6CD4ECAF77B5D42ECAA578FD
+                               01884261D93525E7CB397208E5188B03
+            stream[192..255] = 5B155D3A5956CFD393509B10293A14C7
+                               4DB2EA0BF14EDD56E61457E684EB009C
+                               4FBA369A86230419CA2AD4D44A4701C2
+                               D18AB067593A66D95091A5ADA8BED12B
+            stream[256..319] = B2186137A1B722BD2E2EEF58E6221F7E
+                               E99E0C2F6F354CEF20EDA2D2E6A2B44B
+                               4C99016D5316362EB214256FB1B8AB9D
+                               07BE594E4B762143BE37D76B123D42F2
+            stream[448..511] = 996B8964E354BDFE665FAAA9AEBF9045
+                               137034600DA71E89A6C931056E6A4F75
+                               2705F4E917D0CC8BACD9465EE676D15B
+                               8559DA60F8672465409D74BB0E7F2E6E
+                  xor-digest = 5A08E99E465FB42E139618645BCD8D0D
+                               CABDF15CB2DBE7690BFDAD397D876F87
+                               BF373F3F9A310F3A74E658C106443A45
+                               FA4B21CB4EC1EB7E945F57F33314B5BA
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = B0721E876E7C6D57AA4C775D27BC06C8
+                               C17A1862C646B0F23A265BBB7265973F
+                               0E07BF6E11308C5A339836E624D459A4
+                               44CE5E288DB91751B96B6AF85AAB4A63
+            stream[192..255] = 68D1277AFEA554C06405E969A04197A4
+                               6E77886BC58679B7DF881A8139EA3E2E
+                               089B876C184E36690703B16993B9E517
+                               B59ED1171607C5DF35748EC4C418D91D
+            stream[256..319] = 121A9253F743F90CF4240A44B9357827
+                               E398ABE6C81EB9C2CEBD33FCEEDCFE34
+                               61978657C41D15B1212AE1036DC0895E
+                               3798E5476C3BBB32D4E77D285569DB65
+            stream[448..511] = 12A254F80192258E01E0CD6EC80AAF23
+                               D4A67F3951085CB63C7E38375B1005BB
+                               35070E788C2E352934FF4222CEA0AEAD
+                               5C601E1FDDCB9490B4861591B5265286
+                  xor-digest = C44FACBDBDF95A5A28D4140DDFE0AB71
+                               93CDC10C68F8BDFC93190C8FDA410F5B
+                               566003BDF94B5D3A301BC77E80AA2042
+                               182E598F4182C7306647133DEA00B282
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 581F6F0AB86BC1FF83F5E62A90795D8D
+                               10CBF6737167BB674B4EE1696D7C8B9C
+                               D1AFAA9111C621DCAE44F6C64F78B7E2
+                               D2393CF975A582974B06C144F92E4933
+            stream[192..255] = 3D9A0649F1232603C6C9CDE68516917B
+                               4BE5507ED8326CE6A2E40941DAAA8D4B
+                               CF7F666801992BC66A17B1DE92A8541A
+                               FA8109DDEFC039C3CBAFAE72EF027574
+            stream[256..319] = A64AE47A43F2B3E16C2427343136D410
+                               62D86B0DF8B9AFD8300D4103152C8C74
+                               6863458AA132B7B4B3A3402E01290D3D
+                               DC1168A691B33DD07EE15BC3D945506B
+            stream[448..511] = 3CEC959E63384960A34950AAF51DB9F1
+                               7ECC8D0F454BEC6BD025D3F5E651544F
+                               2D21782A2D04A0E3480D99BA499EC041
+                               35AECB586330EF43A4B07BAE0AF3E581
+                  xor-digest = 58539553FA17D42B0A3971910217D273
+                               385D7A66FE1DE3B7BCB4962674EC5DC8
+                               4A08973386EA2ACFEFE462E8898EFD09
+                               BB4EF9E983FA8CFFE21832D208B43591
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = F4E731059D1A91A046251945744DDB78
+                               188A0E1714063EF1F7947DC918BEF8D9
+                               E38E71C1F1AB596AD032E3E3589E748E
+                               D4BCAAE2DA5D05D18EB61CE054501C40
+            stream[192..255] = AC15B47C578AF81CEB16F13AF57A3375
+                               2BC5F6AA68F16356720072778D6D451C
+                               EA1902EB5A5CA1386996CCC434595D76
+                               72B4D8AE0467E00CA5C489EB9837A322
+            stream[256..319] = 4A5DCA177822E653178EF60988E2D5E2
+                               A2746D5FD2C6538E8EF1D10F7E62A4E3
+                               12A26EA93137E6FDBE0F298923422ABC
+                               FBA71034178321E7E48490AB51ACD00A
+            stream[448..511] = 94C8A897FFEE111165A27DB949F5057E
+                               F487C28453DE31233BB598B4191E3D37
+                               130E03A38D05BE41AE96AD18DB13866C
+                               3E3D6F3092D0D87F06E45B8B3B7A07C0
+                  xor-digest = 507CD2B905873635C12DDA0C02739960
+                               D4DCDC98529C1685D82224E1A9119A66
+                               6B9B6974DE025D5A0D425B05E8EBBC77
+                               36B8061C84BA4B1CEDE52662330E37F5
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 43511DF639F382F0093D7C31F8988C7F
+                               1481F9415A2904630D83A6C38D6066A6
+                               6CBBEE1CC94974730C081D54C2CDB61C
+                               67F1734A98890C28BA98793394E33D92
+            stream[192..255] = 3A0C81B1011DB0B849C976DEC93DB401
+                               56D94973A2F1798D51E131B9FFEAEA90
+                               7AD20B7300E2CB0A062C4EACAAA597EA
+                               461F3C8A47C706F23A8B514AE564263D
+            stream[256..319] = F074E883302EDAF22D48E606D090F169
+                               9731C6AEC84FB72FA9D51E6C13E9EFD0
+                               B33B8500BF19BC990B51AE63A8D9AB2F
+                               55D4DBF0E3A606F39995C8835DFD50E2
+            stream[448..511] = 9268829A81402ABB88BB86CE70E29F54
+                               F3E152726EA694B97799C61970E40613
+                               99F57E493E1242434474736EE6B36CB8
+                               1BBFEFB89F808F0ADEC38801FCB753D0
+                  xor-digest = 746C5DE76E486A2E1428D93F06A20207
+                               BE9DA64D4EFEEC748AB091EB268EBF7C
+                               23912FA09ABD7207B17B0BB72B8B495A
+                               331E5867979A749EB69D2F87E639FADC
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = C43F5C7A163AFE41CFCBDCB4A863E1D9
+                               5E8F27E6CCA1092812E4A1ADB2AF3DAF
+                               94D9FF5A539699F9A13CA6641C1CF29A
+                               4B1AA8B3DA3703A1D712F45C33BAC86C
+            stream[192..255] = 024F1D722D0D558CE63D1EBD7553DA4B
+                               C4D3B9C30E2AF6FF425BD683078A872A
+                               72063841756BCB4FBBF0150A46FE1496
+                               6F160C2B3434F9BB3B1D4AB77EBF3D2E
+            stream[256..319] = F1D30C1B0CB1EB5CF3567357F1EB5C95
+                               2E91C9DACFE1777B03C0DFB39CF47392
+                               4A39EF9BE8ABEAEEC136BEB6B74942B8
+                               62B6438B7DE4333CC8E0890A8D5B0B1F
+            stream[448..511] = F3578345454BA4C87AC9188DD77929C5
+                               10BC89F52966D88964C28A4781F394A9
+                               F325326758F8658A78DA711CC5A4EF54
+                               03FCD11259198BAE0A6370A358F4C903
+                  xor-digest = D0873400D2AEA7B3EE3F650BA9D45343
+                               3652E9D513D0300BEABA5A44009A17CC
+                               0F1821EB25C5A6AB6C8C1A4B87B017F7
+                               BBAA069427FEB85A08ACFAB277B22AE4
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 53FA80B19BBBBAA9EB601302B5AB5015
+                               D35FC935C98193E4B95880F8DCE0A368
+                               03CAC03CF491664613D7D114C2026E77
+                               49D4CFB033C9EC52EFB080DED0423DC0
+            stream[192..255] = 3DA2362617E85CEF6AE6C9138793CAF0
+                               FF0F4376BEC3DA9ECCF8079DD006A6F0
+                               747600D911B9C00D66A328DF7DF582B3
+                               82A183DE91751614C949815FDD04732C
+            stream[256..319] = A019D984E8BB368887FC600E74641E8A
+                               09C7C7B76FE4E359C96D74DD3D7A29E3
+                               857D322E099F8E0421FFCC3F884CBAB4
+                               057D00902FC874AE43C2BE11427F3331
+            stream[448..511] = 73A59782758C9FCCC68952C632D7CA96
+                               7876E99F3A4636ECAE2D40A4DE079D55
+                               E7B12BD2C79DC919808219E8490C0CD9
+                               CF1705FACE57901C9D6F9D6291AECEB5
+                  xor-digest = 8B69C5540B60D74B94260CA27BE48782
+                               899AF15226EABC2698CA85B8302D4515
+                               42B4213CE847EB31D56FE6BF3B9E25A8
+                               0031B19B4711309501D0CBCB388EB333
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 70351EF2F0E4C78991126E22D026171F
+                               97473F621B60A453131F8ACC4A7F4167
+                               9F66BCC36EA082A775E37D13DF698C07
+                               751E625224F817ACF30AC56EA7264C55
+            stream[192..255] = 8B387A9ABD1CFFA19E7648AE519B8B77
+                               587ADED4C8FFD3728EF509E041818EA5
+                               B85A0FB1E6B58DDBF096A1F96353E28B
+                               68450FC2CDD208F0580BE83C140CCDE2
+            stream[256..319] = D824F0ECD79FE82D3608A7FC3B875BB5
+                               97E1342E597CCAF3B4147E7D0199C924
+                               081DCFFA2CDFC288403E407A2F247285
+                               B2FE738F743203C0490835C49EE8DB31
+            stream[448..511] = E2354A6B4E9403126AAB960AB23BCB05
+                               20EA3689577234A8BE87FC4F684C1DA8
+                               5B7D4605E8DF3763EB438243D0BDDC49
+                               7083D8BD423AEB481CF92729F6B69D91
+                  xor-digest = 16D7ABB27C7E5509FC076A2F5E4B603E
+                               144370E3D354D5842907DC2B18B8BD70
+                               EB40D7475B97A1EBD002ED2D86D02672
+                               A52A46EB5066E0CF4F6F551CA31B1A87
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 8BC61BE3AE5CFEABC627F3D2E25504D8
+                               EAD27FD8C8A87B3469F558C7DF2FCF92
+                               B7D5E2291CDD352CEF7F26B782D178B6
+                               05EDABC5138C959AD5BECCEB950C947D
+            stream[192..255] = 3A2AEDAC76C2B4DE83C9B31D8F3B4788
+                               ACACCB0C0455250DB12DC8FBE788CFCF
+                               93BE05F7D62BCD8465D1DE4E670154D2
+                               8110A0DEEA4C2E1E65229EC8EAAEA554
+            stream[256..319] = 0EE477D396A987E10E4AE55BC690AABD
+                               280D77B73C7C5ECBB982536F366FC955
+                               61655F5CE9286C2711FD3B39510A601F
+                               C0926670BA04DB272DF186D1BD1EAD59
+            stream[448..511] = B302A8AB25CFEDBB013ECFAE4F52BE18
+                               3A4EB109F6B9943E01149CA9B84E5BB7
+                               5A7A77F35EF579F10248473157B73A6A
+                               05DF601ED76A7950C1AD4136AA774454
+                  xor-digest = 9AF1439D0C058039C1F1E35ADB7273F4
+                               3A616FAB1041EB6A165C38677DFE4A76
+                               80DC198C696A3907AC7029B720153A26
+                               7DC688FF98D25D1438D6A48BB60A71E9
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 575BCCADBB177BAB90A3569DBF2EC15E
+                               C5469C520CDFE98B403A0256BB81DCAF
+                               61C2435A35A93C753072DF4965672C69
+                               A711D2F1F814EDB4993171DE21BF1D15
+            stream[192..255] = 7A4DAF42029CAB324F5ED103D7E9753C
+                               CD70D1311D257BC1D71C34D0D9794F57
+                               3E13A095BFCC728BC8CC94895CFE61B7
+                               61FB40E1EAD86DA0340793D94713C00A
+            stream[256..319] = BDCD22BBBBB5C2BB92291CE12D125E3B
+                               6F89BDAD09CAF6BD0E102D2460157329
+                               8ECCE1450A960A57B6C380FB817FFAEA
+                               E2F46EE06B70F5F25F56A5C63EEF7EA3
+            stream[448..511] = F31E1C5638C924AC03A79E35DEDDB0FC
+                               A2C058CAB44A212F17D4EB33FF581DB8
+                               EAF214AC09F8E2B18083670C13FA90A4
+                               7918EC2ADA25B6C075F903C078852B17
+                  xor-digest = A9BC6625131D8940E1B101BD5A712787
+                               87BEC14605A4ABDF521DCC310243FA8A
+                               19005D7D2D85D56A6DE817AAD44B6308
+                               F6C20E4BD7DBC76001349493BE3B3A5A
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = A2A4CE4BCDFAB01DD5C85C266C69881D
+                               D78088B9E6B38785293055144E869D2E
+                               8F16312EFC1EBF054AB7488D29D988C1
+                               A805498440908F71982A2563BC87C4F5
+            stream[192..255] = 62760BFF3BDD04F10E2E861803496A91
+                               30DD2BC84DD6222372FA4AB27D8932E0
+                               7744B201C86856E05FAD8287E4C69711
+                               20B801E2F80656EEF80636716DE437F6
+            stream[256..319] = 94CB135E7C896CAC1DCBDC1F6D2C3FEB
+                               ADFB8302A69ACEF4B0147F665B6990A0
+                               4EAAACBD8EEA2B4BAB830BDDA207C876
+                               EF16FA5D8EA6D21EE735F425829CCE21
+            stream[448..511] = D4951133F46441A1523571E72A1C0072
+                               BA71BC818969CBF50340E7D048BFE6DF
+                               D963358E9091C49277F286712EECF3B9
+                               DD481DEDF27077B1640E0106ECBB9A51
+                  xor-digest = 002B5B25223863D0B2CF23BDB15BCC0E
+                               9D1FE214198B565B915FD7D690151FEB
+                               AA5F1D3D061D3A53E55BA9B7A390CAD0
+                               736DC43A911859C3FD230CF3028D2B1B
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 564476C944C8E14F1DA78089A14A5D4B
+                               A929353A40142520FAE02AB59322E369
+                               FB2D36141893B8A22D1ECC40DE248DEA
+                               94103937816E2A969D026C1158CBA6F7
+            stream[192..255] = 9BE063064711D5F08880A4C7BBFE3692
+                               B394EC76544100B92BB2236766596C2E
+                               139EC14120F1AD15540FDC9C4915B1F5
+                               5D48115EB2F7A387733D4BF0E63920E6
+            stream[256..319] = 47556CABFA827E14B26FA142B4A85B8F
+                               A1A900AEA60E22239F61854B66AA4AB7
+                               864D0794F9655EF6A02D0F67C95AD01F
+                               53B13FBA591B8BF8AEE403CDEC50AAC9
+            stream[448..511] = B51BF32B0F95DC83FE3A2037C8503324
+                               30440290D632A3B4DC3FF15627DD8CD6
+                               A69C61B5F0393ECF461F952878B03C45
+                               44DC1C54656A2406CC0DB4ECFCD9850C
+                  xor-digest = 0B0FA5CA11D28C459FE7BA2F40DD2C49
+                               DC9B4C32B73E268AF5401DF504B5BFD2
+                               3C58F04A8C66BC0F7BEA1E8B1669811A
+                               82E567543F18B240A214274A2829FF83
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 8020730839CBE0D9B57546EDB46C854F
+                               6BA83534F61D1B79BD05A0279346BBB0
+                               F40AD7B6CF5304E117F058A706A72B3B
+                               38260C2872466BBACF9726A722747EA4
+            stream[192..255] = DD08BB3B2EBD09147CE7D0E933BA002C
+                               0FD4714A8E75ACF79AF17005D1FA1686
+                               E733DE4B4917FABA4B6CEE4F09B0AF21
+                               2D1E172A60F03DB0FC94FBB77D7619B0
+            stream[256..319] = D8FB46AD6EB86F402BA6BC50D0EE411D
+                               2D7BB9C14CA1005D216CFBD680058AA1
+                               80119421C8ACBCD97EE1B3FE28E2DFF2
+                               828F4D625A04BE038913A12904241A5E
+            stream[448..511] = 450E0917749FDADD83C62C5C5F3AE987
+                               04AC29C455C958F85FD1F59499E8F139
+                               A1E3325013ACBF1EDB62C85B02C2AEE7
+                               3B104486AB1C09F68543C5A83DA1486F
+                  xor-digest = 00B1CF6FE145B9E396DC1F5E76EB66C4
+                               40320BF7DD3C7EB1BC86AEDF78C29173
+                               38B3A726DECA0A613672DA2B9E4A51C0
+                               7CC870FC7B6AECD623959409B9C5161A
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = AC94763B8747D84E169B257D9760D009
+                               090FA2C31E6CF593AC2CBB9994DAD7E3
+                               63E19F8F5DD05898DD9D578E18A0CD12
+                               216945867D1CF06265B967E35B75120A
+            stream[192..255] = C89D331E11B883D2DE1B62B37EE57C22
+                               F8098B450E3BEC83A6C7DC245DC2C89B
+                               62EC337A77EA505FECC743FB0E06BA16
+                               710C7CB87892953720FBB69776C38D92
+            stream[256..319] = 1F2E0F8492FFA99702E8B0ED9EFC5E8D
+                               4518D45CCC1CBB00F7E17F86D6E4ED0C
+                               3508B74B12FD2AA2D12A99216FE31D2F
+                               C843316DD7F561B45EC818F5A3F4BB12
+            stream[448..511] = 41B8BD9B8767A6A24EF399199C283B34
+                               780E4773643E5D678B704FCEC898A1A0
+                               3EFCECA31D0A1D9CED5BC7D4C67B4B5C
+                               FA8534D4B37D5D0E07765D128DD8DA31
+                  xor-digest = 86FB12434A4BB0A21690367224305299
+                               394FEB9757FBDFD67E2C14F0CD979A12
+                               78DC71FAC9E7C745317CA79CC8509BFE
+                               226A2B9BC5F59B8B5C061EFE6E44FA01
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 7A4A1703568552F48FAFD482A5D006DD
+                               25B365B2C60B2FE5F7E6647F241AFD19
+                               AC7785837298F2AAE58F1B524C444122
+                               FD25666490C7ABC045C1E7526677748D
+            stream[192..255] = 43BE3A292CDA19114BC4CC0B3F6DDCDC
+                               41C2259CD69115204424100CEC515023
+                               8DE14A09F69BC934D534511A49B9A784
+                               3F8C33546F4F6BF772EFBE47F3F14543
+            stream[256..319] = 579BFE853874CEA998B2D308F25034B0
+                               33380B2234CC47C6B37CCFFE21C254CB
+                               CB348BE1A153651195242E65B0B02443
+                               6393B4E0060A0673B240AD2AEB9DFF9E
+            stream[448..511] = FE8DCCC74ADA88D313B2139C2B6AB838
+                               C8EAA02CC93B872580ABB22139C2A0C8
+                               7E786683815DC3E7B2E4D2080371C55E
+                               ECF1AC3507D867DC9F2E17A1A0D85C3F
+                  xor-digest = 6B8A5B5C62ABDC1CE0300F7728F73364
+                               2245603655E34599FDF5937A4948A38A
+                               25156AC6987B3B9B816F52F4658C2C1B
+                               2CE726CF065B265AD15D6D6B3D02979E
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = F7B8C3FF6005F2D0C792A9F20B98CEC2
+                               8CDFE9513A8F56C2840AFDC8F25F8DE8
+                               D5454BEB6D6D6E3141F98475C422917E
+                               72FA2CA3510211CC3043AD3B8AF9DD3E
+            stream[192..255] = F4AD6670B085F9B56D09E3FA1D51B241
+                               12EAFF83461AB512359B0D6ABEEE19DD
+                               541CB028DB23F6FDBEA1955097F0BD5F
+                               6119A1F410AE28AF29A851E3C874EB95
+            stream[256..319] = 9F3FCBA10E39CA38BDDBC76D14E4B913
+                               C98C306EE8679EF440793E581E076E25
+                               A2344F498A1BAFDE8F8A7ED9F6224CCE
+                               EEB5BD6FE9105EC52D853C91335FCBA2
+            stream[448..511] = 0415F466E2F33EBBCC0A8DE9621801CA
+                               E1F4EAE240BBCBE6B5CEC12D6FEBF237
+                               012B15D2367E39405566311340547581
+                               665B7AF60337C0AC3F8C384068D73638
+                  xor-digest = 41647B3BD455B50E996A8835C27F9132
+                               39F3F1D26CC5B229ADE34EBA46173D02
+                               476C464C53301C33B7B470CBD55522CB
+                               530EAA55E3450250E95FC070C2DC01E3
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 784AF2890D10E3A7AD0B8DCD8615858E
+                               34916CF3E1281A91F96710D3C9AD29CE
+                               390C10E1805ED31DB83779AD6F8BF8D0
+                               D94295D5FE914CB466DB45670334BBBF
+            stream[192..255] = B5EE5B4CBF0A67D9BD6C9DFFCAD28FFB
+                               555B8C10F16B90B3E3991924F3656548
+                               89F1C4F93705C426232826395AAB7B96
+                               46CDD0EFB6FCBE8D4C132B17FA36CEE4
+            stream[256..319] = FFB88A9FF0E7FF3F0402CC3587A501FD
+                               FB85142D026FECDEAF781B6468EAB12E
+                               054F0392219C9FA3869E80A7FCA7B124
+                               AD519E2A143E48FB4EE3DE82A948C281
+            stream[448..511] = ACECD3A8B0C8736C024D1D6EC39CE535
+                               ED90864E49DB14EFF16C9BC273AC2842
+                               20C9D511CF1EE43CF3F2302834C14F69
+                               11716AB91EDAB49B36367641FEE60A02
+                  xor-digest = 6B4730FB661717AA81736097BAF15935
+                               1085A8DEAF7EEE06731B7A12DB8CF597
+                               2913FEA59B9227CB86C1906F9EA7548D
+                               499B5861EE41621D7F74D71195F88EBD
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 61ED7C4956BCCC0AF496DF3D75B87D80
+                               54A16EB429AD2DBAB9A4F207762E0B65
+                               2AA7AB37407FCDC9EBF66768A0075270
+                               E0F4303AF31E04160214173A4CDA5FB5
+            stream[192..255] = 26A46D0E7B97DD968EA1D5EDFA7C387B
+                               09A801B06CEEFD065B1D213FE748C295
+                               2C3FE4B867702D004A1024FE02DEA2C3
+                               D373EA6188742C4A2A92BEDD090BA7C2
+            stream[256..319] = 5FF00AB3220A7FF436721CDE995D772D
+                               03C4A6E616998FB71D59B4F0F4F8EEA8
+                               9AF6407C02AAE5C7F488D76A02B09B04
+                               86AFD04B26F7B8E4754E707FB625D14A
+            stream[448..511] = C12B68552DF5AE9B7B1E10B713C6D4EA
+                               C5862B28485F598A095D968D629853AA
+                               5BD88099A1EF064E797DCD5846B5085A
+                               1A8DEE4636B6B0614BAE3595DD7D6040
+                  xor-digest = 46F63D1642784FAB1F7C89F2201B85DB
+                               9B3C2B3FBD443FF173BD4D1CB48BE7F8
+                               D74935344942E82789E93ED49CC9DA60
+                               204B084E1FF489E2E28E74B2A2819B4E
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 26B7F80746DC17BD8885A1BE83036B87
+                               7333AA046B58B2FCAEB556C6DD95B031
+                               EE76160128ED99EAE66A4C6DD8330F03
+                               025A40E545C1871F3350CAE747288E29
+            stream[192..255] = 2B06809D7A16A5F08E90A68720E4F0A0
+                               972C0221A8E780ABF38B63EFBF01FA52
+                               59134235DBFAB9A9D90AF719249DB6E7
+                               70CA26EEBBC6B95B840DF46A694845DF
+            stream[256..319] = 0099E2BBE8CC67DAF38B42136173B8D6
+                               F88A43D3413E14029C4388AB777E99B4
+                               A7B8572C11B49645E9E64719FD5810B2
+                               7424A5B75D65368402B81FE2E9EFB7F7
+            stream[448..511] = 4781BAB7544912A2D8440E822F18CC7F
+                               F2CDC429AB716A8815B6C4372474E7C3
+                               B1300DCC4C118DAEA68270F8E24B9342
+                               8160E2F44BF7132ED890F1CAD84931F5
+                  xor-digest = 762C078409AF6E1FBA37F2B16A5234CF
+                               9948EDE116081D80783D97F7F98A027B
+                               D0260E5C19519E17A02A9CDE694709FF
+                               7B2EAD013A1907AFC552417E1B949059
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 4FA13E4BBE3EB154493C617648C57070
+                               B47527B4A869D89F375D6AA61A21368F
+                               3BA40E80835395356EF00832DAF5C2AD
+                               038D78CDFF161CD2C1D19A6AD4AA8B93
+            stream[192..255] = D676F57B97F9EEAE0989BA7937514805
+                               61ACC9C177486C78B328716282B5BE84
+                               3C61A4A7880B3C74FC4C529F1AA88BC2
+                               08F34E28977BBEF50890742781D786BB
+            stream[256..319] = 9E764AFADF1A58748525CF403628FF9A
+                               773EBFB153BDDB6455C59DCA72EAA02C
+                               D60A16356DDDD7F9BC299C01BC9772E0
+                               8CE90B14F5980040E43047BEA305F2EA
+            stream[448..511] = B699612E82B8CA4083DA89854EDFB783
+                               FEC03F707AD3D4AC948B9F4F7CE4DB4B
+                               921C8C6BAB3A26634A91E330026C5B9F
+                               6909481527BF7072E730DED3F3799D0E
+                  xor-digest = 32F294048CDCA2356F22E370CF841431
+                               DF1F1BA19B002A2DE7EEDC1ABFCB24A3
+                               3A1B754E3A8628AC6B36063BB231973C
+                               87F3E84921C224FCC8E1806B5F22FF1C
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 147501BE15BFCF0A563F80CFBBAD1BA8
+                               C6A240F749C45E1234EDC464F5BC3886
+                               47AD79E64EBBEDA943472C0DDFE61C00
+                               84FF3A3BEC1D7E49DCA13DF76568A419
+            stream[192..255] = 2E3B9DE0A1DC58D685171501A3E8BB16
+                               5E08FEA27EEB1B4F57D7AAA38A3DD77A
+                               BC972FAF6E169CE895E502359CAA818A
+                               D94A0BFF54EB5F7BE7463E82C02178AC
+            stream[256..319] = 3B940E1C4AAC401FC23B8FEB9A4E9F07
+                               B1CAF31C8EF18B916AF48DDDDB652FF8
+                               16AB2926B37ADB58323EAF9360FC7864
+                               92AE791BCAE2898D0B99E527400B9E00
+            stream[448..511] = D5AC6310202F02AF7C2172F8F146CD72
+                               30E95BFCC23EBF2C481E58E6014A3092
+                               6683D5841E3F19534819F970633737DD
+                               603D71FD53FA7E7D851802E7CDC3AB17
+                  xor-digest = 84C946D98B66DAB66356F8DA724AD58F
+                               B8EC712A5D75938A1CC7851FAEBD758F
+                               B880667B40F4479662120415557AB253
+                               CE192BBFED6EA1D56A5D6CBC176A338C
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 6F838559F2E1FF2920F28A953B76A444
+                               874FC97510A3523DFB8FC95073F58BB3
+                               8E0802070D4ECD7F377FF9EF2F5158CC
+                               D5A20AC73FC0C8D03D8A7ACD44AFA3E4
+            stream[192..255] = ED7AB1FE9269DE9DB663E0736DDCCF9F
+                               3A04D7F93BD4224C15391E8BFAE05302
+                               ED822E899BC77384938CD8CFF439E50B
+                               64426871C13C71D1DE5B2BA7C4EC13D3
+            stream[256..319] = CE0235B4C1AA0EF02CFEDD6B1FF69DC2
+                               F24088A6ED57677D924A88C0EBD22830
+                               9F4265B172908B6D76A5055B54D20F04
+                               0B6D1293466A5DA3C91F43034F77FB08
+            stream[448..511] = 72825D9D6D16F1829FEAD0532E907419
+                               70303E99FDABD43278F4C7A36CCC4900
+                               1F04C5AD78C83BB8631E3CA169B7C7E1
+                               3D6DE9830FC339B8F8C6CD265336A37A
+                  xor-digest = FD322C7B2751E877F466EC863A277745
+                               17449AFDFC2EAD6CF6A5B3740CC08DE4
+                               78CA2185DAEA09D68D82B82F68F95944
+                               7C0420B89896CF893EC62A697CA37957
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 19B0765EF7FE57F45CD2004D5A09308F
+                               35B4E1297BDABD07B8E493FAA9AFFAF8
+                               28A7BB1173F099C724A0BD96354F6487
+                               0856186B61F7E05854D6F118CB6BDC30
+            stream[192..255] = 08A5F7CA873AAB2022CD7ED5F305A12B
+                               714764544302F3841CBAB4854BB0532E
+                               EE1BDF50B67A1D32C1A3936671246550
+                               3A84585A8B6A6AC185A6D837D2033B53
+            stream[256..319] = 855132AD850010AE6A407283BBAA66C3
+                               10F3D70379E0298F12A67BB1D0618E8C
+                               6454F8E5DB398E3D773473E01EC7A41B
+                               22F0D513DE0033C416548E99FA968BC1
+            stream[448..511] = 98C2CF56462F0EC606E673765EC92C9C
+                               D4D0AEA50913283ACCFCFAB3F829E75D
+                               BCFB5AD96560A4ED199F9F5223134B8F
+                               72B1D2F63523716B108C82BF2BC8126D
+                  xor-digest = B4EC2A03CDCA82D2E66A1D06698B1789
+                               E44EDF2FFCC25058B583EA518B75677E
+                               34FAD73934988772631D02E2FED98DB6
+                               A12B55787D0BABE29FF16740D932577B
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = B991C7A9BCB652EC64949D2BD5E1B9A9
+                               A5B995E691143013454BD7C242A7ECD6
+                               9FE777FDA2DF797989087E49E46E75DA
+                               8982B7B8BEFA41C1FD27EE0FBF0170C5
+            stream[192..255] = 08E2DAFB169F3DC15757D6CFC2DAFC55
+                               1ACB1E281D6BA917FD604E5FFA557920
+                               20F4390D1CA0E893F781C695E13A9B71
+                               6859EE5779E4A55832D48F61F77C6AE8
+            stream[256..319] = DE3C57CF2140BD87944383D2405A05FF
+                               246FF0607A07F1AD6CE7F0EC6E25950F
+                               27F40E862F0903BBE4BE35F96EFA723B
+                               6892622D73ABA79BE39116B0AE0CD151
+            stream[448..511] = EAD353F020DBC4AD09A954C6F8ADCDB6
+                               7C3EFA7141318D5AB4CBC37F596F3DDA
+                               F7E6D63E56AA7079C93FB4306D2F7C1F
+                               82D6A81B6729CF517CF79F9CFAD7F466
+                  xor-digest = E3DC2A83D3A0C3733EFE0FCBAAF38522
+                               DD2E2873A0BB195B99E06FA588B6D452
+                               CB15668C9C2CD551FBB8242FE58826D9
+                               CAC9EA63211D445DC465D7D8E366883E
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 1E177665B1D8207EC27A11094E154FB9
+                               097F7083580BA0B0EA27B46E10182C08
+                               D51F4A9E878FBAD669B7FFBF243501E2
+                               C861F884EDBDE30B5788E6F9F547230E
+            stream[192..255] = 36748144BC8537182C4F151272DED6AA
+                               B81413672198B97A94574750E0DEDD07
+                               AEBE1856D9CD7CCD6AA36747B97581E3
+                               6725D42D4D73D56F487829D1A32A3ECB
+            stream[256..319] = 0DA618F70D81C5725B206BCB1CBC385F
+                               6AF998DBAB0946E1E5B064D3575FAA9C
+                               62DA03DF6F94628000B856AA55C26E68
+                               513837D9B2F9709C38A528C6C5B41F55
+            stream[448..511] = 60C4A260FB908C80FFE83C645E740016
+                               40D38A5800A6FAD4084DE62D79FCE3B8
+                               DE1D5E61AFBC4D98521EC8C1AA83CF3A
+                               357347E849F7680DFCFC915EA1E0DD9C
+                  xor-digest = 9E9EF674486B2EBF6E2480D0E79F836E
+                               373088B98D758F8B0E6780BC396FC1F7
+                               0EBE9DDD93433D60287D1C9AF5E87138
+                               97FB1DE8870E16D45A13BC7145A435CC
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 55D06A59BBCD9393691FF6EF6292F020
+                               E85EF911EE0B7CBB976230623EF60861
+                               3E3E8A9369BD1226D34381BADE1F2544
+                               036F857A2B6C9A4547C5299F6CC7F9F6
+            stream[192..255] = 92E32949A457B0307B4C567CE64C8710
+                               FB0B5877D90B2B7A8F8EB3F91F1ABB9C
+                               DB80CB4DE8FC397E8DE9B392C421B623
+                               6ED426A96DF2B4DF4BFBDF508942ACBA
+            stream[256..319] = 2383816B8992F8C4024DAA937867FA10
+                               A8CA22F486B6EFCF5B5B86788A3ACCF3
+                               F657DA83E17CE3B759F5CD4A3ED6BDE7
+                               4A6F51BE6427BBA2F5998C03EAA46CA0
+            stream[448..511] = C9CD2005DD394066FA42827533393192
+                               76D727FA2049F1F791A4208036B7F85B
+                               3304DF338A67E283A969F39D5466FFE9
+                               F726674E5DB82B9F4AF5940816BCB913
+                  xor-digest = E5FD228D7AE0C8BBA5B5AFA7BB87E532
+                               00787692A3F4F81C3A0746945D2BC851
+                               146F8644EA4361238FCDC4E881D481E8
+                               F93A80DC2F775472FEA04F03F64DC177
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 01DE9162FE460F850350526C9A139B63
+                               E5C0F6B0BA7E03B294CBD58A7166CB1E
+                               06741DDBB77FBEABE3AB863869A971CC
+                               044E8B96C6573474B56C89FE248F611E
+            stream[192..255] = 9982A32633E72815EC7590E0314EF2AB
+                               CEC7F35169768C459E64E4D4CBD99F58
+                               F87E247A8E133940B14D38007896393F
+                               DFDA9657E3EAA46FC9C80CEC7272F410
+            stream[256..319] = E5F3755FB173BAC5307B832112935D26
+                               3CB7A4D43090921FDFC7A2CE168B6DA8
+                               079E3CD7D53E3DA8B095C1112A3A9EF0
+                               D209FB4C7D0C5CCF9CD0504F12DACB95
+            stream[448..511] = 06F7F1C12B3DF859BF1D448FCF384AB1
+                               1E5D76E2E77EECED2D509A0E231A544F
+                               18654C1F7BF4304D58E581A218F32D8D
+                               627F3FFC2D6C13AE7432F614539252FC
+                  xor-digest = 5DD2251EE08A5C4E02D0612ACEF96CD1
+                               217CB0DAF88A985F1F984C5F0D087A4B
+                               15DA0A1CFE6A1D669DEDAFDEFBD9BFBD
+                               E38F7B6D4848F9A5FEB8167A353C5150
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = E02B1D1277A3448B8B74978BEDFE2C1D
+                               E6ECE8756FC2E7222EFE171390CACBA4
+                               CC32366DE63F810A27C549F572ACE95D
+                               A24EB9E24D782580E2C7B079F23491D2
+            stream[192..255] = DD2E9657A846993CAEDC840605A1B4C1
+                               FB60420F1287BAD2D0B962B805BB9F1B
+                               4599529722AB42AA89D59EFA5FD7386E
+                               A1DC90BF240497243AB7DD69E9CF7C23
+            stream[256..319] = C5339A7BD7F60A8FF6008BAC53415AFF
+                               2A70EBF48CA8814BDE96EC19647591BF
+                               AAEF3A0A4B424D6BFF19FA5CDCA79686
+                               8BC4AA96D637B19DDD3DED82E7E61F16
+            stream[448..511] = 03D7D3E1F789F0F9C4E551963096DC8D
+                               256604B1F83A768CA643E238A18556A8
+                               F0CD56FB791454FB39E84EB531E5270E
+                               2285352E4F4E44080E7AB61C184BBB45
+                  xor-digest = B2F0B2156EAB0EC1F7043172B238476C
+                               0E2A8E6B58CA0C44D96ECEF6769AD813
+                               645425125B58494B948612D193D462CD
+                               5CE49691C14D34E7D8B65C43FD608CD3
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = CA56D02C4CE8CE73D6D4C006EED71BD4
+                               5E4127655D6436243DFFA66725C88D85
+                               A226BCE37D9163B0A97359C1363A7208
+                               504D5ECE00D6F92865C7ABADD32DBB16
+            stream[192..255] = 7CC2DA30C0F9C7C3D6E2DB94E00231F2
+                               0A36EE7296CF88CC68C2BAED7954CD87
+                               CB0852FF292B4BA02AABFE47F18D9F29
+                               B9DE39B5E136676503E4DC8BAC24DC74
+            stream[256..319] = D7CFB806DC2FA4989542A1A060B7F4AA
+                               C10E79983A2CE9C5A61FB6A2342AC74B
+                               0913AF1665DC0EFCDB42053E852DA056
+                               39C0F807D6BADC29677007F117E839E9
+            stream[448..511] = E8DB019E1C1119A3EE71AED6BBACAE16
+                               C796BB2065B2A255D1AD4F2B368BF741
+                               6E41A0E64A4F20575D0DED930CFB63D5
+                               FD7EE395F7D2E66325DF8D374C184C2A
+                  xor-digest = 0ACDC5AE9A92FB81C7640BF8D1238B31
+                               FDC7F37E14418349FA0B356F33A5A2FF
+                               C29358AD7D3EB45CBAC9E0EA8E1D0416
+                               BA9E551EAD8BBEBD8F765FA0C84F98FF
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = B2702DDC4EF991B8EB5A86C1DF37007B
+                               770D9D313966D9FDEA81834E847843E0
+                               6B35372E4A24D47D3F467FA5EB62F56C
+                               03F8DAC380A44845A1804D7E87A80C73
+            stream[192..255] = 390B0F82F447D74A28B08B81FD19FBA2
+                               FFF14FDC8A690791218EA787C029F25C
+                               4AF18F8AE7A48773A6839995201EDD84
+                               CE63B4356D340AD0F499460E670165A1
+            stream[256..319] = F2F6AC06F53A010DCDF9DEE90B9484A0
+                               60F28A48FBE4206F6598F0F5C7BA3D86
+                               BC33E0AD0F2A806061C30FF2D2CC6CC8
+                               94692861560BBE3F14AD675018FBE81E
+            stream[448..511] = C49CE59A255D7FDB20C9642B4C718B04
+                               F6A1701E7070956CBF700EDDD4BA4411
+                               02B1F8243F863E7A31D4B9B35D1AA003
+                               3C3FCF7220046145CE9378AB0C1E7792
+                  xor-digest = E5516357DE9DDEA1AA6662E8D331549E
+                               F2D922E511F0C773A8719BC241717C02
+                               67363B27ADBA9E758B1E53231AB434B7
+                               8B27ADE3042ED282923B0FB295250ECF
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = F76AA16D690D98A136B1D08182CD7235
+                               DBD4E3F379C5BA72524F1C18B8DD6AEC
+                               4A6F673C790C77CBC454D59C12E7F21D
+                               D210B36D7E378F690A9EF160BE34BB0E
+            stream[192..255] = 60B79CA34134FD749644E96F35644920
+                               9CAF407C1982C8599D518C395A9DC34A
+                               AE6281C60CF896DD5DB32C1D77F6E237
+                               439B04F144C27176C080183DE68E482F
+            stream[256..319] = D33C5861A6671C4F9756A2AF25F9FB4D
+                               A7AEC2A63CBCD8B4FF2377DBE5666B84
+                               45B55F2F1C5195D69472D27BA5288726
+                               27C7861BC17F55DDD75023B77B229645
+            stream[448..511] = 5152CBDDA9710EE200F3B4C4B02E3881
+                               4D019EC99A9061E8FC4E457685B80EB4
+                               D313E3951F6C054EC525E930CDE7DF8F
+                               0F5C8A15A6639BDC7781F33B9EFCCEB0
+                  xor-digest = D73937380442F6DC2400ADB8D0B07B94
+                               553786419E69FB2151FBD2560FC21F78
+                               59F2AFBA8A82C5D74E63ECAA7471F9B5
+                               CA84D82271D1F67EC6A821F27D67C4B0
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = A4EF65023F273B63485E7012983A1EF4
+                               80A5DCF8F7D3493EF9B0C0C19069E72B
+                               6ED2035291ACE47D8FB8FFDD6091F055
+                               B0248D096C1E1B18048FC439839745F7
+            stream[192..255] = 44C89EFD5AA2CD0B3732BFCF95046A29
+                               2002DB9AD6E4668993A075390EDAFD08
+                               905678B69F737791C52999D8E6D54ED1
+                               EB781AC6E2469A45C2C5AF9F23473F3E
+            stream[256..319] = 5E99DDEF739E290FADB82BAAAB0CA034
+                               793078B2E54B1172420EC6A93C8A8277
+                               700E2F58D8B52194DD2FA5CC9106E0C9
+                               293309A13DD0A359ECF76316FD4FFBDB
+            stream[448..511] = 7295CC5FEC356D28D46EEBC4D59B299E
+                               8A5C2F859FFCCFF5B03D692020C34436
+                               EA3FC6484496ECF2A092B8FAE5E23E11
+                               568628617228B12F8F8EF3166B7A8E66
+                  xor-digest = 6482EEB57A30F23F0632BE59513AFE6F
+                               264A653F2EC7E791156B5BE4B435A1D6
+                               B8B7035CFC2C834D331FF046B4B8ED4F
+                               F42ED3FCE328818ABE55B4481768D987
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 9C172C4A0B97AF3777A2D6F941BA13CB
+                               8A51E2F21708180887CD655182F7419D
+                               1B1283AC611E7032EEFB397AFBB2434E
+                               BF5CBF1984C6E5F4E9E0BEBCC793338B
+            stream[192..255] = BC7D6648C73952EBCEA82C5F5644F9E4
+                               34F21709ED13737C2D6BAA2638B95B85
+                               CC217A307A621C9C9CB11EA72A907D99
+                               D4732ED78E769A60D0D5E7731F5C5FCC
+            stream[256..319] = 9F4E64482917622479B40796DC85137A
+                               A59A8CA76C218E52FB3DFF1C1F75F800
+                               02A3565B14F991DA1282D1DDB0A2C4C3
+                               44E395A01719F0781D88818982C11577
+            stream[448..511] = 29BE69693B27737478D0944B48BD3E0A
+                               7351D60AC7D57D00D72CFC00542B1C34
+                               F732CABF07DBC793EA4FF68526E2250E
+                               2CFF47F6E5083F762F776169175139A5
+                  xor-digest = 5DA2C1D97CE968BACB38E691CA222F45
+                               F35CCD95901FB12C5E98DA21CD48DEB1
+                               BB8FE7F634C4EE3172925B3F61539345
+                               DF3EFDA397BC2C57EE4A9C399C867B42
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 55BCBBBD647B42A28C6ED9BD1D20F448
+                               045AB838E50E1EAA60D71985D97EE8E2
+                               70ADEDB4839241E702B018CEED0CDE00
+                               9C88335E482E6FE6E82BF7BF6C3D0A51
+            stream[192..255] = 604CE74D66AC0D2029EF7145B8B2F587
+                               6B0686052A87FCCEFF80D9B68BADDA90
+                               BDA82E436F4CBF02D79D1F3831CA4E42
+                               92ECA435D4BD25D82CEBF7954817591C
+            stream[256..319] = 735D1B1A78403371563AA41F30A18DD4
+                               B43B32AF6E3D3D4B1B2431F35C4FCF13
+                               79EB3F1B2B8CA9A2EBC8B49EB31A3842
+                               FFD1F56ECD91069794FE690FD274CE5D
+            stream[448..511] = 7AFF90DA589D4FE83F5C73B8CEC8F5F5
+                               DCB9D0EE686C11FB2E6D4EE23F163822
+                               C73DD28D9B4B3233FCCBDAA7F2748E49
+                               96406EEC62C652B1BD234FADA109C87C
+                  xor-digest = 5C85A48710449DB660F0757AF6BCB12C
+                               F2993FE547276B38C362154127F62655
+                               3307F7B63FC036BD7E6A518C2C5F12D1
+                               69AC8D2F4D91EB50B53D781D96A95C51
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = AD129A664AE85ADD8D2194F3CCCB46AB
+                               8D91624612E6204B3ACF496A047293F8
+                               2DC71BA79A26D1E69F8F9B10D819FE87
+                               ECFF013B9AAD6E45ADCEC52A302037F6
+            stream[192..255] = A496D59B897FDE75ABFDB55712419C89
+                               EBEDBAC3FF2A468C0692DED374751721
+                               09BC6F5CFDD870BA6BEE3BD66CE8E265
+                               AC1634EF9E27F2C259E39BEBC48ECF88
+            stream[256..319] = F5E84584D8610DF1E3228496D07F3720
+                               2276D1F81A9E7E3FB35C52B7947FD267
+                               80955A8EF5767B8C3A907D060D7C45F4
+                               A328E133817BE87C61D5D61349E6287C
+            stream[448..511] = 64598260C65DC8A962CFA5499F08677D
+                               B50D03DEBC85C20B5FC46272C68466B6
+                               4DF5E58770C9B5FB331AB5E5D6D01336
+                               DBE00127447BDC2B0E5E1F4CB5B69EFC
+                  xor-digest = DF7B2A023DCA31539BB9DB9DE415DF3E
+                               5B8F0B3FE2CC0144650DB88F6561A910
+                               495E4AD2EF0D7FF31FD961903F79D6A7
+                               D937090CC6686864C9548ECBEC5702EF
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 85537B5A71BB85E0E00766D415C474C2
+                               EDE6F95366840183C646EA32B4F69D18
+                               1C38FD4D4E3712A023C05225EB621E25
+                               AF5AE0D922A03F1A080C9DD653CDD539
+            stream[192..255] = B7F600ACB8F2532A88D3E8451E2DA8DB
+                               95CF4B236D56A7E6027C439A2A027130
+                               F55BCB7FE389C49196E3DE1C09C43535
+                               585F00F180F0F1298F097746F5B1FDF4
+            stream[256..319] = 6CAB78A42E70BE5D6DC29533BC888F69
+                               BDED0DE2939E2173B10DE326D19C2D8B
+                               68AF92E34D16AC293EC8B2043C3DA699
+                               445A05B847C2B972836131CEFF56A578
+            stream[448..511] = 6D5845DFA3412581CCC74F76572D39B1
+                               BAC208893A3551A671938C064D7154AE
+                               90CF8FA02220884EFAF17EEFB6619CB0
+                               C6F7C28189AD9D12A480D8FA201B532D
+                  xor-digest = AC9F733AB67D759071425B194D3831F1
+                               2A06034C32356F78FCE5F19C2C79501A
+                               76C6B74611BC332AE015CF889273B16C
+                               F461AC216565232D041E7FE1F877301A
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 2FDD38D8E3B372F0AE2F8136C4A8A1C2
+                               1F82989810F7BF853E5FF8195E4D2533
+                               20FDD00CDE717D8F50993427DD5E677F
+                               7811A092BEB01C8545A952E8E686ECCB
+            stream[192..255] = 360EB9894D33331D2B5042CB7ADFE173
+                               32F22B7E3324CFC5C54CE45ED27526AD
+                               565043201EA8DE5E885A4A00306E599A
+                               14C37615E8D044A684687D814AE5475E
+            stream[256..319] = E2E61B0B59A45C556D3BABF974DE14BE
+                               CDAF070AC42A0AA3496F6B5E478E5977
+                               ED2CA11D7022DB3D9E43B81F91F9ACF3
+                               2CB88086D250050CFAE1EDA29E1EAAAE
+            stream[448..511] = CD41C9A2E7522BBCF5BAE892A47015FC
+                               0618E40060F91ED8B4FC7EFD94AA2D0B
+                               A0C6C3576ADA8CB2869263A579245411
+                               4D11DD583C659BEAF7F893B56C956C94
+                  xor-digest = A00367E7713983CA9136946F90308E75
+                               B487CD2D5F61F32EFC6FE5BB518E12E1
+                               14F5FCC988569A48107CD55B772C86A1
+                               A432229BE212BEED6925141C33FC1DCA
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 63BDDCBC94B129BF6132902782E3E73C
+                               D6CAA5CE44FA399FC9E866649ED77E8B
+                               A737CF3EF221651A13CBD906B327574C
+                               5553110049CC8A562C50F59525809DC2
+            stream[192..255] = 25A65EDC234C236E0E2A898C81AD1A8D
+                               D0A63052B0B766CB06BF50928AD4D85F
+                               E83FAF34FC425738F0DA4EB1B824A838
+                               A65AAA807085BE6BF2CD76A81E3D1BF0
+            stream[256..319] = 144EB4EDB4DF53C389984D1F20934858
+                               0B7434046572926BD116787AE52F3FB4
+                               49DA0752B9EA15C281A6ECEA86736446
+                               D5711BDADC6E63B515877E10E46B23BB
+            stream[448..511] = 18B2620B59A2B2BDCB96B9EEF4AAEC9F
+                               E418617E114BF0BBDCE396479A577702
+                               968AC4D28A77236DC3887E67C1BD3E05
+                               7282E7BABB1A0D50093ED321CC81DB5B
+                  xor-digest = 6BDDA363C7AEBAE09D1DC513365F1AD9
+                               90114CCC6378123EE1067A266FDBE3C7
+                               74CF7A5115B92CA05ED36B41E2536D4D
+                               B2497E9D30162C60430C43C9BE985787
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 2FC87EEB58D3CC8E74DCCE224A6B712A
+                               D6D7998441C18967998E11FCD058BF55
+                               B6808211F53906F488F35271CCBE2F99
+                               18CD4112DCE219B53FC5EB37D316BBD7
+            stream[192..255] = 23FDBDB44FE97BA46D6C0248D129F0A5
+                               3084353B29FC70FD6C205B185A9913FA
+                               BF250D302323B21ED947BD0FDF86C186
+                               21D0A7486232C1061E386C7F9788F461
+            stream[256..319] = F6B31F3234F52CA5FDEC0ED5173C4309
+                               1DECD5A308AD1AED4F2C1D7AE0EA2264
+                               4F7E3C4415802D8C5C82DA217400EC24
+                               4DBD21A26C7492B558FF8545BA72C184
+            stream[448..511] = D5171FAA0B6F11E490EC482D7E58A3B3
+                               93BB4D85DC01CD3097BFD63091F1B595
+                               567A1A2B639BDD46F0EDCA6152127EDD
+                               FF36810000BFFE78D96810EC4708A3A9
+                  xor-digest = CB81AFE15DB8CCF0769694E8D891C9AE
+                               2D48B9BD1C54143ADA92C3EA98A14F73
+                               51C8A9B3FB22C735759CF3B5302420BF
+                               09AEA81D95DF99A15778A4B80ED9BDBB
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 7D52C002653F2318B7244725245AFBE4
+                               5B82D21BE1CAB9EFFF6EED7C4390B9B2
+                               DE4E12245D3DCC4167F7AF18D7EFFD5C
+                               9D9FACC3A215A8E58224B49F971640D3
+            stream[192..255] = 4E31915F16AA1C2942E6B722100CAC7D
+                               6D06140FF0C24DD9ACE7DB598B091AD8
+                               B6AF57199AB93EAC201F05026C688B29
+                               24C0D977003F128EB5767D73835F22DE
+            stream[256..319] = 85DB206B625DA65194CDE03C80CE02DE
+                               6DF2CA02E4B4300E6C80A9E4E5DBC84C
+                               C50DBA0F551822B69E687B0981580E03
+                               2A3AD7E4CC766B4E41FD846CF7DD2EE2
+            stream[448..511] = 731B7F065D8BF4420A906889B64D96C3
+                               CFC3F7F6B9669317E4ECF6C52F4A9A31
+                               EA334F209FB22460F16B36855C3628BA
+                               1D5C70B886C0DF68AAB98DE3BFFBE5FD
+                  xor-digest = FAAB62B61AC2D41E94AB8089443B7A99
+                               8F6CF69D2839694ABB672E6490A8027F
+                               F40D516E46870C6E3B650A851608CC9A
+                               59D2DAFE6C8EBBC0797888BFCD3E94DD
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 6146D9C5BD90133BBC4119BA3A5F2959
+                               F90CC30DC7ED593F1E6AADED65AF41A2
+                               7FD630A9BB50E9FEEF24ECE237A2029B
+                               E217FAEB4CDBB75F0168874A5E36A852
+            stream[192..255] = C8B8BD5EA84A0A059D889FE5C6D8965F
+                               2F25865D36133A8A41A88AF0E0D7A6FB
+                               E5027A7CFC82AE0E72ED81278A8A9E14
+                               225805F755A4D5023CCD8DC398F7B0C5
+            stream[256..319] = B17219EFA4B4CB8A5807020FAC73F324
+                               BAD8DB177DBF4721B3B5A42D5D8497CD
+                               09463A61EF449AAC0A181F48130E1422
+                               A48C60E724EB58AA6A6E86A6E619DCD4
+            stream[448..511] = 23662A55F03AF55128A3EDFA176096B6
+                               750AD924BA4DA73453803CD68625AC1C
+                               61E607EF99CF377F32DD97926DBBAB03
+                               39DC8563AF655941AD5C9F0A314E09AE
+                  xor-digest = 7B7D77EBF3E03D16876251FC7E134B6C
+                               A48138737D7BE26A2D6961F6A98E2AFC
+                               F1920413E7B2BF0DB6920DBDD4BCE011
+                               34EF4843A38B7874B541830600CB4004
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 18C4DB4FE1BEE10DD4959D707739D30F
+                               09761CA9DE51EBEB9FD3CAE55D32E051
+                               31E2F4A82A0C6F9E1618F341F4D9A9BA
+                               7BC1A90072688E98B84BF0A3B9E47547
+            stream[192..255] = 66E6FA0CF978A7DC4C5F6121802F936B
+                               F74172F3771E65604847C1C74FF8D9F3
+                               0D54862AA5A924F8F610EB3816F5FE01
+                               04F9D797C98658FFA90DF1CF68C7EA44
+            stream[256..319] = 6CBD57891EA5A8BF075EEA9E96A13037
+                               7BD74133966355A1F4BD3EB7E89BB392
+                               CCEF5D6CACCE4AE5C4B49C838216ABC5
+                               1484DD72C9418F25C4EFB0C2669997A6
+            stream[448..511] = 8A0E9675E3A72D620515A09F3B69F584
+                               27641DED2F6FC731D4F59BF587858434
+                               7F10A59F1AB9470979EA740A36137F5C
+                               9F6755D6492DF5A68ADF7738D9F81AB0
+                  xor-digest = 26BC1E53BFA2DB3B3B2FCFD6D0EA35D0
+                               A5483F58F56195D8A560597F955DCF98
+                               4BD097EF63C4E156B068C3CA66539608
+                               ECBB71E0D3E0988BD3662069E6F589AF
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 3B47D22804B70989A5B4192A3AEDB045
+                               21906387113D5F75861A39A362EE93DC
+                               3B19CDEB0A23814CD149D3F50CF92900
+                               4658D4B4EF19BDB4C23C93152099566E
+            stream[192..255] = 40A1822F193817875BC575E4E7F0E9F2
+                               20B43AA3A757B159B51066EDA0B2871D
+                               06CB8940EC01B627F7AAB708BDB0BCD6
+                               C1EBC9306E5E4CDFB154FEDD7C0C8935
+            stream[256..319] = 925CEB2334C41FECA1F28DF90C789611
+                               F9572ECDDE8AA249DF7F3171B6CEC92C
+                               3BD2F63B9E95010429556164D8634A13
+                               690CB7E7FFF457E6583794AE80812BBE
+            stream[448..511] = AE1E585EF492B8E45F7807B2DDACD958
+                               8DB502F6003CB0AE06E927EF0EB04E3C
+                               17F445C95050F35D57A02C41A7D2D981
+                               E219858C3F89F4DFA80FD9F4F84DB25A
+                  xor-digest = F315494F1EF9FBA423E4316F634C3CD3
+                               A0BA9372946917A123F02E31A01F5862
+                               7534C47EDBA8F0CFF7BD6B85D5BD167E
+                               9ACC9E21F99391C62051671E4C7ED60F
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = D650136C17F638A5FDEE56FC010C2062
+                               49396159268E914DFC4BE500AAF5F738
+                               6C9EFDF39F813549D0D77B8B4D75C92B
+                               B5665FFD01BCA39E07B3EF1751771223
+            stream[192..255] = 2E877975E5FE335D3EF734DCE44A1865
+                               77BEB19AB49154947D0A94FE749F97E4
+                               A1D33707BA251FFAFCD3108B3E4CC824
+                               74C751B95DC00F2D58A09F2A77F28295
+            stream[256..319] = BACEA08AF695DD77AFEB9AEC63741D73
+                               3957C3608F9CEB3FF4431A586BBED72E
+                               659A0D0821F56B0549C87A0BFF06FB2E
+                               893B9A91CA085B72B453288ABC37C3EF
+            stream[448..511] = 507DCA1CE6430A7323E5B9A39F462911
+                               C096D32DBC10EE5237FD5DC304AC2873
+                               9CE5464FF781722507BFF1583F295404
+                               D73C067C0EFAADBDC8893982A537DBC3
+                  xor-digest = E20802D896D32A70B4229758B7AED7A3
+                               E0AEB8C0CE6132D3C2BFC9D531BCD856
+                               459510CBC39AC5BD15928456DF74C394
+                               09F7CB75A470469AFD39B4D988E2C9D1
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = F78DD373A9A7DE7587DFD3607778108B
+                               B18F9E7F500CC91254A7D549498BECEC
+                               A637D7140556FE27C3FDCB48FED35DE5
+                               B1E9BF61347A0333BA9C40F0AA1757B9
+            stream[192..255] = 68C83DC22A9AC7C16D8F38C695413F10
+                               E865DD7FCC3B444C615811B9BF0E16E4
+                               BBC7583C7DE2538536370FE42F348B97
+                               66CF08D506039BAA664E1DE3D4047522
+            stream[256..319] = 59968F4B35E1B0D79572A7D29928F1A9
+                               E37797C1F4DD0B7D6B68B23AD8E96F8D
+                               BF2DF4376CA7A1EFD41E123E6F60C897
+                               C862CD36D327CE8105376A51FB81AA91
+            stream[448..511] = 42DA90A682E3A42F46AC9A27357C1DE6
+                               A68C8BB2A0354782476E306B0209C82D
+                               0C45A489269974F1BE1B30134FAAF2B4
+                               FE7427A04EFA2C23BD5DB2D7C1678149
+                  xor-digest = 67FB385F51EDA9AFEBF4B37E82FF7B3A
+                               D5593DA41D6E452AF249E86A4CB85080
+                               BA584EE31A866BCDCA2C220E8417E66B
+                               0988590A760887EFCC09D0F6331E6979
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = B6ACB91CB885D3AD040B007F3D5D2049
+                               93ED21AC5FC43072AD0C0A882DAEC772
+                               7890D0FC5CE9131CFE87F669A339C40F
+                               104A944C619CB9321C8FDB9C1DDD06B4
+            stream[192..255] = F302382177C84BFFF8AE2C2345BA0F00
+                               61F85B2E9D0A497536FB8DFB2565ADDD
+                               E5286B33705BD1D354DD292D33298431
+                               6CD2F6A36E74524CAA92AA0B79BCA13E
+            stream[256..319] = F52D79C41245D1247F172DBAEE63495D
+                               A4BBBA98DCFB0E9B0A3B55109E77ABC5
+                               A1F6CC2DA8CA84A4CE6F0F79A27F3B41
+                               4039739B80D809FFD12E49EAD0BE12B1
+            stream[448..511] = C3CC769044801A0C2E236CA362BCF488
+                               EC4A90EF91AE9CC938705B461935529A
+                               1F55A6AD67289834DC02CCEFEEA83416
+                               F155C10FE8452417BD2C67921EC4F1F3
+                  xor-digest = BE220F791AE66E71ADA630FBF22FB4F8
+                               48A14CE9008264EE0879C4BFB9323127
+                               C76F41F6460068F0456F6A8AD11E4E31
+                               79119B1AE0932ACAB9E5E745EA4EFA46
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = F743B165939DF65B1CC120A6462FC018
+                               A13645B1234305DDDDE7499154A36286
+                               5D722CCC552D2B8E7F99579E252F03D6
+                               1BE2C333D983B5AF7E1C7FCA848ABE4A
+            stream[192..255] = 3834751033C5BC34DF46FCA6FC241063
+                               8FDD4C16CC627C3D2BB1CA910512E349
+                               4E0399CD539DC2D84EA85060BCDFD387
+                               10C218A455F1DD6EB6838C0B74B7CA23
+            stream[256..319] = E18D988F75399471A8E621A9C0C1E41C
+                               C84D5D9B765BB9AD6C8A73F050ED3232
+                               AB35A9C4272651F3F783F24D8BCD9F78
+                               4AC19B263B40930270775E6EFEC2F2B9
+            stream[448..511] = CF0FA23CBAB240E90844862EF5A2BA38
+                               88EBD193B207AACF27F0F9CB326BA08D
+                               1551C719F44FC1C1C67CEE5B96456A73
+                               3C299983D5D40F50A0FB46D427AE1F5E
+                  xor-digest = B83E47D267932A2C7A144D5EFA487DDF
+                               38F33AE6D77C554BCC2F0CC3C1E73F40
+                               A0EBF8E0CE1B338469E2FF9D28432D0C
+                               B3BD8EE84517E0E30394428768199646
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 91211A9429C7FEF40A5B475CDD9D96DD
+                               654BC208D88D18607C0B06A1CBBC2EC9
+                               E0B39311A3E12029AD3DA6CC8AF4F054
+                               11CA00EC66737F18D63D85E57C30C01E
+            stream[192..255] = BB8CF518B5DDAF84BB4BE6E620B61BFA
+                               2173202D7B4B5D956566C4FB44B8A911
+                               3A89A5A74190462208570154CC5D963E
+                               2E3E8E0C4FE958E9C632B62C865C6845
+            stream[256..319] = 520A56BCBCE3B445FE7E5EAA44A325E2
+                               33E34A5D75FC11602AB1A33B2533A7C7
+                               556F6094B1EEC9C1DCDF6051EF25154B
+                               95018AD69CFBA492B8309A0213A2F499
+            stream[448..511] = F6CCCEE4FD4F906476512FE90C5F75FD
+                               2A1ECC6A1DB176F378D6AEFC891A7CC0
+                               E99BE17C2E3635567517AC1E0AF40EE6
+                               06CEE9EC392DC1CCD31412ABD64FFDC7
+                  xor-digest = 302DD054967A0BE9E8400BAD9FC6FD6F
+                               F516C724B79421C30F7B9A016F688F88
+                               7AE804029070775BC9239BEA9DEF6545
+                               112CC4405C60F86EB6A50E2FF3F6425E
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = D26407A5EA2FBA96AB2B52E80D2EDA9C
+                               48D4FFB9AB38B995D723528B1BEFE93E
+                               ED101B0057ECC0FD2F55F51B36A09ED8
+                               0B886254738B6463AA4DEA3D785516A5
+            stream[192..255] = 878565586ACCAA19A54F12BBF2E65D96
+                               3882222310D2C8CFBACC32A6A8DDE8AE
+                               31B699665A563399B5232443EE67190A
+                               027A1CE3327F70085E6A6C3C3337B146
+            stream[256..319] = 1627F63BACE47246B4BC57F954AF8E4B
+                               C941A204C1BD2D1EAC9BC16505DB102F
+                               D6C665C30D313B3B7AC92D56196B6C25
+                               FD0C0D93BDC84FCE517A6829CEF50281
+            stream[448..511] = 37DB03B9851AACEDF7451B6FD57035C1
+                               59D226F3D6CA89FCFBFDF2C7AEDAF6B3
+                               95482117E291DB2D25DF82B7F81A5784
+                               BE4C0294FBAB2D504FD0555610DC307C
+                  xor-digest = 5E73D0736B662A4FECED5C1C07C8B6B5
+                               9C7D5EE8BBB000D7A750E2378BE708A5
+                               B7729831986171FDC063A860C472DDA5
+                               2B469655C08D41478C5733AE12604A5B
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 84A8E62207510241DE8053886B42EB26
+                               4F8B8795D99ECF321E59F65D886EE153
+                               3DF726E7CBFFE498683FC0D945CCCCCA
+                               517F578B24CCFFBEF082CBB4A970EFC0
+            stream[192..255] = FC0FF2F4C6B41A82F936E199A09A562B
+                               6A5E97887C577BB9EE6E4F7842ABD62B
+                               58EA7E613C92426416D31DFFF0CAFAF9
+                               B2AFEE4BCBB22279411AE8D559EFFF16
+            stream[256..319] = 7E0F5F23B7399663AA4094C2808E5F81
+                               0F07C0D121C2470E2C1B891EDF9C271A
+                               1EC234E863A89A849EE6E19C2F0D0805
+                               4DB5479289E33D73DCE95F9E119A365C
+            stream[448..511] = 69E0542D086677880198DC2D663FA621
+                               CB316B8F4C0CBFD31B4C05B744903869
+                               63A767EF34298524FFE62B5F0D892C32
+                               04B575391F20077F840186679B16DA3A
+                  xor-digest = BA2084AA4BF7C8FD74A49154A49E3FAE
+                               307AB7963C65AB5ADC4022C955C227B3
+                               2D93094081C59169EABC142366D1355A
+                               AD7B3DB311D1C8AB137355AF1F532470
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 646FD711EE9D59F0FA810C643122672A
+                               995E991B20CC30FFDE4DFCE374BE1B7A
+                               A9D95540C18A4ECCD470660785412B84
+                               304FE2A57EF77F49B3A899C0AE52DD2F
+            stream[192..255] = 1466AEF8F335472997765E68D9E68965
+                               181448F22C4E8AF3252121D67E221AB9
+                               0DF77C4200E36D767F0B9FAE96B94D40
+                               A439B30C92215A2B24FF70FB607B9E93
+            stream[256..319] = D0A5291FF26FF9EE63F7A45336B3430F
+                               C65F99C331D4F5FCAF57BDFCCF7257DB
+                               59EE8B11B25B3F1A4AD01AA52A704A4F
+                               415E99BDF78A1C004BBC8CC7C7CCBC59
+            stream[448..511] = 0119E01011AF7DA8D93A7B94D79AA4AF
+                               98F7E7A7DB56FE12947E7DC2D6FAE571
+                               FB5397F920CD20CE129103C392D460D9
+                               8CE42CB8F427755C45D95AF1B3CFF7B7
+                  xor-digest = DBB7F511DE218EFCE223FC27C0178D97
+                               31D5E5355CAB2A06A1E60D3EF9D59EF7
+                               01036E7225B2A7C4E327BECDECD3419F
+                               40A763D9C11D3695751444BA68A16EA2
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 30ABA13015B9826A5C8DA414817C7C6E
+                               CF89633BE1682E0E19CA735DE275136A
+                               E642A1DBC1C983D2564B932F8585CE25
+                               66F96FDC5DB1B2F149E0BDACAB39AE62
+            stream[192..255] = 72385FC987245C3DD6967CEDD8BDC6BC
+                               DD51A3758DF85B0F901883CB2DFFB186
+                               03D6D4FCC0A04E088B71DF21F076A472
+                               F5F351A0D4AE29A5B5647AAA1E4BE6EE
+            stream[256..319] = DCBC321BFDC9FD4520744AE50C8C482E
+                               15EBBA20F1F50D6A670ECD4C676339C2
+                               A3528ACD13C4EDA9338CDB97903086C3
+                               A5AD8E06938FDBAAC68CF0D12BD51180
+            stream[448..511] = 16B8293AA76EFB1B4AC3FCABB6570AFB
+                               E1A2D1E57632562B54E9E35C82FC8496
+                               1690210AB64B5D667A99D8BA1CB1A440
+                               FD4FC5DEC63067868516F1C92A53BB71
+                  xor-digest = F56C22314F7903B514F38009C45ED6CA
+                               03D76B6836C8BBA3E278678D29675F58
+                               49E488DC2990029992AAE86381332DC5
+                               F0DCAF53354775AB2B6E0018A5D1F6C2
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = C19E802E02F7606C0973AD0F1217FAFA
+                               C760D15DFBE5427048DE7B0D85F8466F
+                               0C20F4999B4B241B52CA24E1F642D233
+                               AF71135139360B86BEF9D005608E7C67
+            stream[192..255] = 36F5EBC6979DC098BB29488878541288
+                               E4D15BDCEE3D5A5B5A020EDA69AA00CD
+                               CC5EDF6BA4EBD0FA7FBA9921C7B04B8F
+                               0DAD78B7ABBDA75DB86ED8A33288E04B
+            stream[256..319] = 14E2A45F2F283EA3F89F54FF4D37085B
+                               4DEE60EF2EAF978393A43A045D2094AC
+                               3410E4400E6F80F39EC9E78B94291530
+                               191BF0069493E16F39011CA1AABBD687
+            stream[448..511] = 6752BBF78FAD4109B05E8BB9156F76E0
+                               DE8881933D30C065083339183976C74E
+                               4B6FBE5CA425E338A186D401CAF91CF4
+                               BAFA4FBE65A0B76B32B60E85AD00B064
+                  xor-digest = 8B02E90B5BCC42A6F4F5D9DB8321B49E
+                               83488162998A9C1405740FDBE05C2ECF
+                               191587E0ECF5CE12DDE3D22416ED860E
+                               40913A88DC64211752679395399A57C5
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 268085AF6C02540FE66C3A1E4F12756E
+                               7059560B1C934E1FFA077EF87E124766
+                               86FECE1603A9D6BC4CE31654116C8A57
+                               3E6FE9CAE02806979DABF5F04358D524
+            stream[192..255] = DF37C8B7AFB42862E108D69E4350211C
+                               97BD67D9E7F8FC282DD9D6EABB42E489
+                               DE6CB0AAE830E8C95D15E1A0FA234EA7
+                               82823636CF34BC372C649EE28029AFCA
+            stream[256..319] = 7038497CC8FFC6D3022BB3FC4A9F2BD6
+                               9DE121D06E7167F412DA2DAF2E6C1C64
+                               C5563631E9B86D4A3C2DDC66C68B91B2
+                               D221B182B1C660CC932943638071821D
+            stream[448..511] = 97E230A38EFAC53DB5CD14EFB69B271E
+                               4962A7D601E12EACF8D647380C5EFFFB
+                               7524B3FB4270C5A93E0DB53462F798E0
+                               DC581944056919DB71A9F51F16D1E844
+                  xor-digest = 9F7DC8D1D43D6DD9E58A99860546B133
+                               8674907D732BFF86AD4033F696F5C9DC
+                               73968502DE3AF08E66243A6E450DFD93
+                               0390CBF5DD67EC2886BFA852B2081DC0
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = A824F1EC9E6FA487AE05535117DAB431
+                               2A42653857A7F456D6340C3C9760826A
+                               4B4FC5F56969656B5C016DB024B12344
+                               712E7B31A5CB8C0DC0152963F7C4B068
+            stream[192..255] = 894D8ECF3531DF5872B3E86F1BB630B7
+                               FCDC7F2FAFB9191D425851AAF8B34857
+                               5E74AEB1897D63788BB6A211F20F8F25
+                               5CB9D0210B6EE416FA3E23DCA4F52603
+            stream[256..319] = E532E0362A60C5123C573A81EDF184FF
+                               18B2854E9271A31C27B61A77EA70C22B
+                               294C080A1AEF9596F253589C27F5EF67
+                               6F91C52A3F2960AC58171640F2709E93
+            stream[448..511] = 5D84841C86A9BFE45A8B55A832B818B9
+                               A838E2880A3B55AE35487F395259B188
+                               A740E20A1FB64D46957F3CB7C8468F6E
+                               E4294D9321AB173940EBC961255218EF
+                  xor-digest = 9DF49BE6779DF5021BFA02D5D417F8DF
+                               39975161C573313090FA3345A757C3C8
+                               7CEE4A15A6FD09E46B3432B3BDA98C52
+                               DF5EB762D414924790200406A65D1F68
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 04983829F12CC8054CC4F66A8FE8AFD5
+                               E6FB4A7A3BB84E544031CBE6CB0DDD07
+                               741C38A5055F41A9EAFEAA6A1091EADE
+                               C6D72F0A6CE6E559430941293F4CCAE4
+            stream[192..255] = 0BB7887102E54D41176B07F7D201D50A
+                               30067CA77DED4D3DC9F1CDE6435BAD2B
+                               D758F76D8523BA623FA336D5F9373818
+                               6EBA8F9BB9FB05FAE575056156355A86
+            stream[256..319] = 28F374E60336D3800116959AE09CE1BE
+                               C077AC45983D2F3DE461DF2CFB4E942B
+                               BED491F173D7246BD57E37C5A4E7E4A9
+                               A653E135D580EA0CD9EA9039A043B436
+            stream[448..511] = 6DE24579EDB52A5CEA083866029E06FE
+                               B5ED227255E627697550110E5222FFD2
+                               D5698662DC3A44A4335868DA5A4AAB79
+                               095B659AB087B3B1BEAF586605B77BE6
+                  xor-digest = 440C5D64A71B2D96D9F04860F05DD87A
+                               F743580D42A0571C993EF81B0C59425D
+                               77F15AA4ABE14DD3843A7BD9651BFC2F
+                               AB339F87157F2F99895F54DE7FEFAF43
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 661E3394A895F5A70E0AEDE8A1E6656C
+                               3E10592481FE413866A7B600FE445522
+                               71E74D9EC08A643B1EF2347FD08003FF
+                               5173182544BABE0A8B2083C67C9DEDCB
+            stream[192..255] = 0ADC24FE76CBA03C966D55F1F5036254
+                               9A25ADDBD5C6CEAA6519557A2B43D4F2
+                               D230E4CA5B766421F76E5BE9555251A5
+                               7C346B780C20E9957F2F61EAA738C9AC
+            stream[256..319] = BB5DEC699DA3082FE0208F6BD130E138
+                               479C9C25C8CB3C8586F50D3B20F87C11
+                               6D98708DAC48FC80A3E71563EE1C92C1
+                               484041D7367D34C35CF3102B09BB4AEC
+            stream[448..511] = 9DC2C8A99CA33048609D0F6A97A52796
+                               57B25A3A4017AF6ACB87372D9B9E2655
+                               86C571D45021CABC1E511A16CA1A0907
+                               91364C0B41140BFF40AD27B48AB13CE1
+                  xor-digest = 62809962F69AD7F5359D7AA74F0F19DB
+                               130D74651CCA1CC2F718BC456D7C6917
+                               AAF64AEF99A21AD5201EA4AC5AC49871
+                               A0A8BC83D45248028B0A44D27C96C46F
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = B77AE087B914A23B8FE0838F79E89DC9
+                               6B6C7AA118970FC69BECEEF41E54E4E9
+                               86D757A6BF858EFA4ED6520ED7B554A7
+                               40477016F22501B08033D570C528B448
+        stream[65472..65535] = 3CAA967FBAC58A90E552F571CAF3B655
+                               1319736A9303C3E9497725DCC04F0CD8
+                               92738AC4715B2F358A18B6837A3B3242
+                               5F2EB1D25A0183E280ABC05A16EAC8B5
+        stream[65536..65599] = 72BDF432D0938752431E723526DE9287
+                               24B67B3C7B6F1FF5E33406CB076B2FEB
+                               721C66D49BC3F1F8F8FA8F64A997CFBC
+                               765FA3649C4E6987E6ADF6AEE9B6F0CC
+      stream[131008..131071] = AAFEAB5AEE36ACC317657FE43F5FEB30
+                               1E025EC17623F9E192D6177A73EE3624
+                               603107072163856FC067467BF637AA65
+                               D8E942B5D5DF68B8533CE17612400387
+                  xor-digest = E47F529A1327D52F68C6C5EDC109C416
+                               C6F1D3A95193039FE433876B503FC9C7
+                               18AA1AFCCB9BD33A9680F560ED57268F
+                               EF5636AB318774073F586021260AB3B1
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 2347A325330710018BE087D38218FE7B
+                               557D268695286FC37EEAF0CB297242EB
+                               1E74589088CC44E8CC0D2CBBB8485CF9
+                               0CFD9BF1F4E99E934155519BF15690A7
+        stream[65472..65535] = C882FC5DF0725FCB578137EFE5720F1E
+                               D3A1D6308B0FE45F4B235237C3822F00
+                               29E3701DD4C4C5F9A9FD82EFBCBBAC55
+                               18B9EF24C7B90DD853CA32752EC0BBB8
+        stream[65536..65599] = CC3A298A990914EFF6FD56933AFBD624
+                               3CA0E7B2046E289FEC7C365A210F4290
+                               E22660BE247F32098D60AD43037AC91C
+                               1DA625EF43825E2F1706C6C8ED88519E
+      stream[131008..131071] = 423DC51BF4794B718DEF20A2BF86207B
+                               5B316FA4946361343604291227578423
+                               E51F2E8623F73147C87D61C3FF260A58
+                               875A5727D0D6BA575FCADD0E5B8782BF
+                  xor-digest = 7F161BD574EA5E27FD45F0AE99DD0CBC
+                               7A663987A9324A90F536ADC040858F78
+                               343A1644FDD36897C35718C062F80132
+                               3EB5C0F2E44FCDAC3249E2B5A73659DC
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = 5D9039854C7C037A182A327F9125F1E6
+                               8604D33238DF2BB007AEDCA8BAC9227B
+                               A2B5FF387A4DF7747F1ED9ED404A480F
+                               0AB41E637BB1FDAB0E53FACA150232EC
+        stream[65472..65535] = 9A070D5059EA063BEB7BFA1DBCCBB98A
+                               E358C483E25259840E5F22A59C65E208
+                               AFEEE44D9B9731B6445F4D2DFB93CA8C
+                               F486C94B452656925C7BD512B66F31B1
+        stream[65536..65599] = D3CB730909B9BACC76945D17AA8FFEA0
+                               C249D61916119E3601538505CB52B03C
+                               9714308DEDBA1719F85B9DFB77493525
+                               8747CC3425990055159C79FBAEA6620C
+      stream[131008..131071] = 6EC3182BF358178D87F9162C81AC8279
+                               E29564B7A1E908CE6532504F56A26258
+                               82D1E6874FB6AEB9927588445B42FD06
+                               A8B40FA61E0CC1809898AB8784D3FB78
+                  xor-digest = 0424FCBDB79337D5EA7EDE71C732FCD2
+                               7F0B9F2D96D2E63984BB9ECBBDD11A31
+                               B3FA90D8E9295A1E3305A9E2C44F05D6
+                               D2E8D1C1EB9760BC747D34B4FF2A4772
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 00000000000000000000000000000000
+               stream[0..63] = B35A72089C1AFD0F88525E9AACC753C7
+                               17ED50FD9B1C2E1FB921354C557ABCE8
+                               291FA38C0AAA17BE548FDB952BD22D7C
+                               7ABC27ACB3B11C9785E261D22F68BD4D
+        stream[65472..65535] = BBFF6B23687571BAB02FF23656D228F0
+                               5E1CB75021F36688659BF1C9622A22C6
+                               E9D3C342BA573752FF0AB318D4B9E5DB
+                               8DC3577E8FA15B952F20C410DF802878
+        stream[65536..65599] = 1156D37950033165CC8D00692FD0964F
+                               764FB15C540FA73C19629DC400FB01FD
+                               B8B392DB1412F4B0B2248523B5A35BA0
+                               610377AD3C79B73CF4092346D5684E8D
+      stream[131008..131071] = 772B4FD850CD56B6E35F62796E820F4A
+                               CCDEDAEA8CA7FDCEFF354A33B5C4C2C8
+                               A69B660BCA55FD0D67FA0C5A12EF4A42
+                               85D86012DEE9E467AC256B9F8519158C
+                  xor-digest = 3A87174E72D90C998F1B029816457286
+                               4E05CBD9D7FE6167E72CCEF5B5EE2ECB
+                               AEF3EFFC004D42114BBE71002478EB69
+                               2DF4F0A08E0670416C1B8699B82C96F1
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 80000000000000000000000000000000
+               stream[0..63] = 6FE13D681D2C79C1E46FC81767E51F99
+                               5583AF15B81210E654650D8A1F3E95A7
+                               F68CD7EAB3E026CF538938DE7ABD6C37
+                               11DBB139CAC7458A30F500CF75CDF4D7
+            stream[192..255] = 6292522C3BEC7F6888DEA579295FF8C2
+                               45279B28B4F0951D0E8128885664BC95
+                               22568A5C85CA83693A61BE13EF4FFA4C
+                               BAF4B374FA3DA370316E3292537AFEAA
+            stream[256..319] = E76BFC84A317AE859C950C1BD28C3046
+                               F6466AFD3C891C696B07F111E62A3792
+                               513FD517DAD11D2A826A89DB40288F0D
+                               DB6FC31148FF8A29DE4A3E004EFACCFA
+            stream[448..511] = B3ABC77902D2E4420253DE405348E654
+                               C2D253AFD4832568A45D8DCD37B669A1
+                               948614C65BF9049DB2852B5661DF6333
+                               7C4B60DBFA219273615C36F882A5B8DA
+                  xor-digest = 61F91E096C628474A8E5AA5E0D720F8D
+                               F0098D22982732EBACD619AF9F9D4D65
+                               F61E217C050212F5BEAEF1F395ECE188
+                               5FD2DF0EA11D589880FEE3F35A29F053
+
+Set 5, vector#  9:
+                         key = 00000000000000000000000000000000
+                          IV = 00400000000000000000000000000000
+               stream[0..63] = 18CA40897BAEB4C44381650FF173D992
+                               155FFDCFECBC7B234C2C4796937F36BF
+                               626A8840197A1B05DD2DCF212EFC237B
+                               921C9D35FB3D7C90686A8CCDED212A19
+            stream[192..255] = DAA025528054945937162C7CF80E54C4
+                               85D152CCA1756FCBC053CB61D4AB29B9
+                               7E41B2FA5614F134488B620657FDDC5F
+                               7D1B5C485917EAA8CC2D58200DAB8233
+            stream[256..319] = 7BB2186015306981567831C82009FCA3
+                               8BF9C0FF5DBC0A3670AC047C724E4436
+                               31E47AB730192803A0FF69E6E4F15B58
+                               8345A8E9C3F676C5994AFC919DD81350
+            stream[448..511] = 3E42612E38535F9D93B23E291E3BB945
+                               0C60B94B00131C633DE5316997EFAC53
+                               B61FBF81218374CD7E7AEC7D32124E78
+                               06AC93E573C6328B8AD7FAB42B235352
+                  xor-digest = FA283CF4EB1AF4DE383DDCA68F47BCD3
+                               8982C0CADA2CDAEECB6CF93AF59FB3FC
+                               81D087A7A9935E6D74B71FA68296DC9D
+                               4BA6305A2FA07AF896E7B9E93E127FAB
+
+Set 5, vector# 18:
+                         key = 00000000000000000000000000000000
+                          IV = 00002000000000000000000000000000
+               stream[0..63] = 3B5D3AAA85A8476AF59768B693E456D0
+                               9A85101B81B1898DBDCA5C78C94CD3E3
+                               2F898F0B7470DBD3495AEBE5A4F8B958
+                               AFA7EF8D147664F8EE71C12E558D5CA3
+            stream[192..255] = 0F96D22584DC8D5577B16015401DDABE
+                               796845A2B8D2107CBD7111247AB75BDE
+                               2BB9C59993826B5D39E9F3FE1D1A0940
+                               C48A3290337664E943E315BE81867B17
+            stream[256..319] = 011FEBD03425D439062F784963D9BAC4
+                               4A3F6950AD566762818319B390C58F97
+                               E9989094192CD33052E786B4F03CE19D
+                               9F1180EC163B79CE90AFABF76C8CC50D
+            stream[448..511] = 77C550A37E9BD9F57AA3B886EB7E559F
+                               18492E8197B481323C41E8DE71485AEE
+                               281C13B4DF8BEC903FB6DCD648401149
+                               164512EED4DC5E461EA9138366EB3865
+                  xor-digest = C47E62C5EF9E5C5BFBCF625101F168BE
+                               99630FCB59879114DB9B2393B431BF45
+                               111F0869479388223DEA4071B01875C1
+                               AEDBC0494B772FA8FDF08459D3250BA7
+
+Set 5, vector# 27:
+                         key = 00000000000000000000000000000000
+                          IV = 00000010000000000000000000000000
+               stream[0..63] = D1848B9EC269B25D0522699FBD9D3887
+                               97B45F31E94E0B7A97AB3458FA653C0F
+                               7E5BA8CB60FE55F3DA7E62C35927C7F6
+                               3E0B5F318F5D110B522D7AEA0762E093
+            stream[192..255] = E902E8828DF85DE61EF8AE1067F7865A
+                               EC1D7FCD30F58D7D15587250185B9BD8
+                               24761E0C8CBB71D62F1AC58CEE644D09
+                               30E7EA9DA84088900B4D629BAA45235B
+            stream[256..319] = D016B4A4C75A1498D5F65F2BD8A53E9D
+                               1F4905663A34E31CA06B5EE0A09D27ED
+                               7EB0A08F33FA585F76E967047A6D8C68
+                               DD113B870695CC3D5C9C3D3C3A276FF2
+            stream[448..511] = 7D5EA6C28886FC75A5BAD8B6ABC59301
+                               0C23CAEB66476AB0378734C31B64FDDB
+                               11C0D3B1FE881B0A62B22410188DA924
+                               7AD03F131372001127C20CD5F0C3B090
+                  xor-digest = 6494EF24A2F4D7BCE04A19D1E9B6B733
+                               CF4BB108D504CD1E25B870006C9CD8C4
+                               617E1DA6C258F01212E3D17EDB706A61
+                               759EA4B88BC198D06610F5642DF3FAD8
+
+Set 5, vector# 36:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000080000000000000000000000
+               stream[0..63] = 82E87DEDB592700BB9F9C96EC38EB05B
+                               98DC62CCAE06F5874558029A31139055
+                               D58D061596F1705F832C36A9CDD41B2E
+                               60FBCCC6CFA4FA58049531C148F47C1F
+            stream[192..255] = C3D9C94714BAA5395A3EAB9B8B3656EA
+                               D28C27DD1935A790D0ECD65D324483C4
+                               D87548CCEB23E25355F841A391433523
+                               9D16005C1D50E7ADA88F3151A562BBCA
+            stream[256..319] = 228CBBFE56E4B6C5238403B25652F321
+                               29BFEA9C7281911996C938AA2708E25A
+                               57F7A358BCCFE1F8FBB45056A349B88C
+                               62A7D754C71E09A257A6E406C88C8A16
+            stream[448..511] = 374CDEED3D028ADC08F60508419CBCFA
+                               18001A4B04CF94FEEF54057762340796
+                               DA05D45ABCBCCD07EEFFF9F5DF756F58
+                               CD063E7994DBDFAEF49BB75FD6D28A96
+                  xor-digest = A9654A43C41BCB32CA102EDE44CDF764
+                               769277FE6EB856133FB69E64DE45EE49
+                               BBD257EA9214D314E109C5474AB0D651
+                               89A657827A87416A54045CE766AAA6F1
+
+Set 5, vector# 45:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000400000000000000000000
+               stream[0..63] = 9016FC1948CDAFA27EF6CB1D8F449363
+                               11D7B68CAA4B92CC6627AAF56C3B5142
+                               71C26F78EA8CDFED0933E48193FFA295
+                               0B09E55FA408617E8B63DC8D7FF945DF
+            stream[192..255] = CB83D954505F42EF97A430A086EB2BA0
+                               E19EBF89DAB9DFB86928ADC13A085AA9
+                               F536BCD6ED2E25046777DBCB8CA3CF17
+                               CABDC83F001585DDFE47522B68EAB285
+            stream[256..319] = D9ADE719EBD71094D708C28C8345FD0E
+                               72865993D0D5624C78815A80A1A811F7
+                               2D334CDCBC0DC7AF2E9425C579A6B724
+                               F2A3E2D74500A893AAA3AF112256E1DE
+            stream[448..511] = 79C8A9FE7869D3AD56DF6D46E3ECD361
+                               A693903391D2BF3F5CB5E1CEC8667CF9
+                               0164170D6BAFC717D2E83E770B799BE5
+                               0DA0E14C217FA37581B4FD9E9B0DA2E4
+                  xor-digest = 83FE38FFFFA81CF7DEB37DFC703BFD26
+                               ECFAFB15567939C1A7829A7F2F5ABDDF
+                               1AA0428CB722B6BBF59846EA804DF525
+                               5FE3460F2F8E6F25B6C6C834168D74DD
+
+Set 5, vector# 54:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000002000000000000000000
+               stream[0..63] = B8C9A1CC88DF1686A51D151059F03CDF
+                               2DB2A40821E1C6A60EC6271A3CA5AD83
+                               53B1E01545298B3C3C73B2B2D4A96AEC
+                               737DD1F92C82158806B21964AFD43D8B
+            stream[192..255] = EB7730BA92848EAD21121B1D468D17FB
+                               4D47E86BA37A3854455555DEC357221F
+                               B913FA124FC5DDF7251019F2DC1C247A
+                               620307E391CEFB9C4C3916F84C3BA2AC
+            stream[256..319] = D3FDDB3FE47CF045A91C8D86BEA5D7F3
+                               3E9D2518EDC2B0A9AFE0FF6173AC3292
+                               D8E6E362C2A65E7069548E6058C1C723
+                               E3F64E269CAE27FBFCC47D9172AB8153
+            stream[448..511] = A2184D75AB7669AB4DD0431C5CC2BA63
+                               74BC2E39161F19106BDE69A98BEB6543
+                               F0989B01069A1941EEC6B3F61FFE1D0C
+                               0CDCBE60656D52A3807DEC82FA7071B0
+                  xor-digest = C654AD90EE81AC2C0EAC1C4162EAAD19
+                               B07EE0BDFA21A67AA7FD3053DB5B61A8
+                               B3FB1DCA15B52B9D62259E4E7212E941
+                               7D8AB84FF054513892AE80033E022BF2
+
+Set 5, vector# 63:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000010000000000000000
+               stream[0..63] = 6D0F5A3ABFB148444129D79EEAC852E3
+                               9B19909532B77B9E92C1F949F158AA17
+                               FE0B4DC178760D034486B56C4067F1C8
+                               E2BED4F798CAEE32F0C7155B7B646D98
+            stream[192..255] = E5B40B9941169A5321CCCA0F8CB14E9B
+                               47F10F94902BFDC7C65B5C17354418BE
+                               88D86FD6B5D4EA4C33677A79DF22EAFD
+                               DC19A0176F1966D19F69E96F5D7DAB5C
+            stream[256..319] = 1080FD348F5064DB619EA1FF910440C0
+                               2DBA9D624554FD600882EFBBE533799C
+                               8C24DE4407CF3AD4748EF7AC43E004A2
+                               932114DC661CC3BED3CEA8E34634782C
+            stream[448..511] = 1947CF5D399F6BECECD8D32E03BDFDE3
+                               3C848378C7CB7A6E982B9DC89B7D8044
+                               7108B32958E18AA213AD0988451EDC8F
+                               729CB5C5E773618ED710C532B2894BE1
+                  xor-digest = 3BC1E2C8F253CA76A37B6A331B95E185
+                               227FFB68DF2514CE9E4C69389BA13F72
+                               A8E615869BA8962D23761CD69CE4D8AB
+                               CA47D0ADAB58C933F31CCED78E525AAE
+
+Set 5, vector# 72:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000080000000000000
+               stream[0..63] = B1388329040AC77EC5612A037F625277
+                               9BEFB09EAF150508752F0C774EA28B19
+                               74A78BA2B52FCAB1454744E9A780F5CB
+                               FCFDB39B2B7E18B4F887012816EB98F6
+            stream[192..255] = 24A16B3B1B8F37FD0D94A285C05D6CF6
+                               8ECB927638E253CFB2DAAD04DB159353
+                               ABB6E739377F705A7D5FA5B5CF53E659
+                               BE7A78FE8182FC950D01ED79569ED6A7
+            stream[256..319] = 6EA21593A0404D12DD53466524672201
+                               0F937050B087C60D291FE1F696AD0B5F
+                               6E5AA8FC7C69DCA1A7C2F1FA3FAAB186
+                               5A3C5A5D241EEBE43087EE3AD05A95B0
+            stream[448..511] = 6C36BC8D72CCF31F551D2F308EB02CD5
+                               B93478FBB6D145619AC58AF369A56340
+                               7ECB85C0A3FA4A76161649802F400DA9
+                               146D68E3AF40057C870A9CF827BFC02A
+                  xor-digest = D1BB5532ED57EB0A3F75569BC54F4857
+                               7470E4508F8E0F9E268E6053A103CC94
+                               BC94AEEA92AA2CB7EC0E3E7867C06898
+                               36CE91266DF0B26E3CD8CF6847E7CEF1
+
+Set 5, vector# 81:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000400000000000
+               stream[0..63] = B76D2D9B0C70DBF1CA36923D740E488B
+                               6498D2308BD7BAA2B0F27FBBB83FCB99
+                               5B2F96B03252605D0AFE91D5FFE980E4
+                               43897DC7D0BB20C7A9903E6EAA5D97D8
+            stream[192..255] = AD020F84DC396C710FB1F53A29DE2C09
+                               3C38BB5A0EE640B113399B9B1EE82798
+                               80151D8B5341E694F566D61BDC90E7E1
+                               1754A2FD6AFF4319C9F87961A6DACDD2
+            stream[256..319] = 1047612C2579ABF64E71C472B4CEC5D1
+                               CB07F6DD07AF954CCBAA925C3FB9BD54
+                               18C2FDD8BCD3FFF13D2FDA186B3EE1CE
+                               56811A44F04E015F6B62A09540A34DE4
+            stream[448..511] = 5CA8205252BB0D9F32B330E114FEDD1D
+                               324F3A8437AE5DC68CBB70F96558834C
+                               B1B1417D25097D2475467E06C7ADFC2E
+                               A10FC7717DACA8C9682280A00382BA27
+                  xor-digest = A7B5301250C66E80574EBC0CA3D05B35
+                               2E8D894F0458D1CDA54FDE1344D0782A
+                               60AF1D0A0FC9DD2BB5777D121D27C4B4
+                               B9DC4C91B1DE1DCDC5562FF36689BA65
+
+Set 5, vector# 90:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000002000000000
+               stream[0..63] = FFC794328FDC6A08C5EB6CA12FF3569C
+                               E88682D0BD2C9E29823DDE2E6590DDBC
+                               7FD4871905B809F382D7BDE4E686508F
+                               8FDEBCC505A00505BFAB1AFFD1F21D79
+            stream[192..255] = 0B027816A7C9BA22262518EFFDCD6ECF
+                               679DA886A06E868AD68DDA4787062019
+                               A9BB3402CF66CB876821B86C946FDB9F
+                               F38E60A296785D0DCACC07FAA811E275
+            stream[256..319] = 43CA8EDD39FF569C4137B507250D72FE
+                               DF059E8182884BC247BCD8D50C2A4AF9
+                               C1D2841BD52D1C84FCAD04CF7E8CEAC9
+                               45E90D999F3DA75BBAF6EE248F7B7626
+            stream[448..511] = B70A8D25A88A0439E9A8CF5DB914485E
+                               F1B8BD6B8388D631B10E704B3113FFB5
+                               1F3FD400F000A4FD8778A23163A91AFB
+                               A42D9066DD63ADF0B2F1C41C5A639165
+                  xor-digest = 7C155411EB1F18146A4A4D4911A708EA
+                               B3B93B770D37A71721948E20EE283678
+                               380A8E9947E89E55FF7B7C1A54796F72
+                               262E876E296A38F24720DB01594FFB87
+
+Set 5, vector# 99:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000000010000000
+               stream[0..63] = B39313B89B7B49176504AC1AFE1AA6BC
+                               7DA62B8A3536DF8CF93E8A27E895A1FD
+                               F2C6855B924B65CB45F72C653B750B8C
+                               999A4248062902E9CB593D936FE37E73
+            stream[192..255] = 98E17E750085D76853452A1DDF510220
+                               CE6B3CAC34C9EEF46911DA93F7A5A3FA
+                               E11DB74FCDB07F1080139BDC2406FE7E
+                               6EB5E7D741F44472D8A713B2E73E3286
+            stream[256..319] = CFEF0950FF1CD9A2DC5102D8D134FB87
+                               2EE479CBE62185561DFC459815F20EE4
+                               AFE9A12DBD4E2B77C39EA347365EFB07
+                               4421B17A20DBF8482A62A27C562C038E
+            stream[448..511] = 902DF0D7C2B38DD0249FC3570C54B473
+                               C410E2AD903505E9E68089C504062554
+                               778E569AA146BB1DE6124FF796E48193
+                               27F5BCDD450E40E72FA57DDDDF60F505
+                  xor-digest = 045263994A8EE3C21D221A4FF0F552E4
+                               7754B36F135140A76FA271F0B25D7D19
+                               258A85F4D192BC6F7B74248FB0FBD38A
+                               8247F24E11CB6D97495ECEB74EEF485A
+
+Set 5, vector#108:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000000000080000
+               stream[0..63] = A0C1C0BE17D347D1F888F85DAF63E7BC
+                               0BB14F1A4B684FF54E36FA9199A453CE
+                               D65ECF54B7F390D6D202FEE9EFBA5CAB
+                               F88DF437C4755E3314CA370AE076504C
+            stream[192..255] = 6326AC605832C73E87DDB82E742C1400
+                               BEC3E426B7108B0F0579D4992BED7AC7
+                               AE02DC8F802D90D33FF69F149FD38F38
+                               ABBF5C5A43C57EF6E607BA5571F572CB
+            stream[256..319] = D6405E64B1BF08308093752FDC315C35
+                               7A29D690E65A057E7B2A599841C5ACC4
+                               8650277900DC4F21D20B1C3506A6490D
+                               EC3909637E0A37A7E986FD3AF84ADB8D
+            stream[448..511] = 2A737A38012C4EAE27EE5DE49D61BE4B
+                               22B630C0D9E7B95E71BB4C8B664E5AD9
+                               AC56758FCB0F2C3DF39F674090B12920
+                               4193CFA60AC0C64902FDB71ACA185CCF
+                  xor-digest = 3AF23039CC3F653C66E651A8D9FB8DD8
+                               9083C44DCF3949DA9AD8B272E2701F01
+                               617AC42314DF526C85C1699439475D47
+                               72F53E9B5A24A83DD4B3072B19590437
+
+Set 5, vector#117:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000000000000400
+               stream[0..63] = 519FD7FEE7422E8A773F627B2B5465E6
+                               7F974AB1396A0C9C687F2DBA0EED8C4F
+                               12D97FC7E433E8F6EB9920B28D373F5B
+                               F947C7CD61B0C4CC4A0850644B491F8C
+            stream[192..255] = 6AE62250517A9CDA927FD2C2F9543063
+                               5C561117E5F18F8B10950A18C9E4DBB1
+                               C0F588CD9CEA25EBCCEDBBDE75A3A804
+                               77042F1632A90090D58C7DAFDABF6DB7
+            stream[256..319] = A342648682EEAE7C169DEE117FAF0509
+                               C521D3CA19E89FEC24685B361791E567
+                               4BD1CA89681F1BBA1A9B8799AD9BB130
+                               FD4AA5C543C732BB3A4C43931AFAA43A
+            stream[448..511] = D00E7ADAA06219AE42B8E51EC9FF763B
+                               4D4ADC03E4E990A17BEA08604BB9EFA7
+                               672A36F4077D84648259F20A03F26940
+                               AD862BD4027CE768872C27882D928307
+                  xor-digest = FB76C85B56FA0C2BA7715986841979DD
+                               41320E6123A803E09398C3437EA3E0CE
+                               5542DDF6BBDF4704659B9B0F2F8C7FC6
+                               ABA25507AD8DB4B4FD3912C408719465
+
+Set 5, vector#126:
+                         key = 00000000000000000000000000000000
+                          IV = 00000000000000000000000000000002
+               stream[0..63] = B5D04AE8ABC254542B86F35E8DF8792D
+                               9A97EB24CF1CC7EBE78C71298C5DFD9C
+                               3D6B7A6F6A3724A8F942D9FA2802D7B5
+                               066AFA1B480351CEEF894522675AD760
+            stream[192..255] = 836DBF73E3EB0492F83A5CF0850423B7
+                               93455E8B6CF8CADAAD4772D9D2800EAE
+                               BF16C4870E7C1BD2A0280758E8457F02
+                               9A5B9E2B188F6EC7B31B6D6106159C05
+            stream[256..319] = 36E01B813E89C0197D5603EEF64A0BDA
+                               DAD596BDB0E88A25D78FE844D910CB59
+                               5C6FD7A58212C4D3ECBBB8A67DB185AB
+                               0A4E53A9597487E5745DCB810AD1A2AE
+            stream[448..511] = 2E70EB34C87D03ED5B3EA2E74870619D
+                               21D12DFD2C75B5EBD6F650FFB88DE997
+                               4B58BF54AB214EC90FE71F8803C730E1
+                               58D8BA81F60A4484E2D51F51EC6AC53C
+                  xor-digest = 9E0C91D6E448C4246C739577380C3496
+                               73C526217AD72E6CFAAEC8DE97E2E70C
+                               0800B0BE889AADEE470B516D4DFCCC16
+                               BA47FF92B44A104BDBECE6012FC6D756
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0D74DB42A91077DE45AC137AE148AF16
+               stream[0..63] = 723E5DC55C1EABD772D2A4A682DAAF54
+                               1F3FD32C4E8FD725167B2C51D0B60F08
+                               98BF65755BF24E2BE7D091DFE0199096
+                               EB66200B3AED2D60E89EAE1F4D7B6A60
+        stream[65472..65535] = 31017371CD2DF747982B15753205619D
+                               5F4AF1D9ABEEC9B962C79DB66B66AA98
+                               BEDA05470A2CC7D22033C115512C0644
+                               96E450526695E4876B8EC84506CE987D
+        stream[65536..65599] = 3CBB375933B307E4B14E18FE57950DDE
+                               0AA5FE7D36BEA1C51AC249A84FEA08E1
+                               509F54875A3DB686A8640B6C4C0CA191
+                               946100329D1E9E201BCB802ED58136EC
+      stream[131008..131071] = 26C2BA83537B09306AE854EFDF30A0D2
+                               C36A804E93823C57AD30FD0C02A9E491
+                               E25A97910ED9442A60D12A92C496A490
+                               65D826297F1574FAE43073ECF8DB6AA8
+                  xor-digest = EF1993C7F6C7458170E0688E62A4C4FF
+                               82F946851CE55332341B00154BF9F5A1
+                               45CC76ACED2A2B91389DDE83349C691D
+                               B55B53C90C9A4CD0FA9DC0A66DCF8A89
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 167DE44BB21980E74EB51C83EA51B81F
+               stream[0..63] = 3807E50C8223EF4A924C72BB79D6AFFB
+                               DE05A946CFDD35C3A6CD7C73FD6A4FD9
+                               1C26DA5B78572BDFA960416A7B421952
+                               D449B6B9F62BFD28A6CBBEC98BA6D66E
+        stream[65472..65535] = E39978BEAFCABB7078086EBE039489AE
+                               B496131CDD5EC95579EE6B6A7AD01E56
+                               68606CCACF4A85E8BF427CDD79C06F58
+                               6241CB6B8E80E7682822C7D0BD5C0B01
+        stream[65536..65599] = 025766C4544BC7FA2B0581CD23CB923B
+                               00194BF7A482B2212B73DDB29D2EBE4E
+                               2D58077A4D6A4007DD08C3AE9DE1668C
+                               819625E6EC622691462FE17FFFBC1ECF
+      stream[131008..131071] = DE73F95C65FBD1B445B5C19E869D66C0
+                               0D064D2262AF2A6E276378ADDE896093
+                               34CD91AF2B9F16D82398B677FED07E74
+                               7F3719FA4DD075E028760F2EE3B36B97
+                  xor-digest = C6AD6A41B479A3092CD7E0C5F9D2CAB4
+                               BE71F27E6D8075E2C68184DB78F42883
+                               C5FF0D5A4A0842236BCC399200C4D361
+                               F21CC50C07EEFCDFCB017CACC353BCD0
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 1F86ED54BB2289F057BE258CF35AC128
+               stream[0..63] = 6D91A896416B39FDCF7A88B2B3975061
+                               356FC5C0F9A551BEA526E88415914957
+                               A5E367A3BB51B4BA750D315052721D0E
+                               70430CDC0CE239DC439E85091FDF7A53
+        stream[65472..65535] = 1C93EBC433DE127E38A33474755E23B6
+                               0F8D80AE231BCFA4B63B1A5D0500A475
+                               4467548E8408DF362E62BC15355FEE88
+                               90A617732757D1214EC5A737F5463050
+        stream[65536..65599] = 3CAFAC303C7BE17D90D93C5D02B5B54B
+                               81D57B032A7D1FD172047BD86AAE8D61
+                               91301F1192682D9C3DDCF4E09B5D2DF5
+                               8F4E312E122D7FBF54A8237E4A5D6D56
+      stream[131008..131071] = B794B2243ABBD51E22F692C324F68658
+                               1B4A3AC37D834EDBBB68B43977E14CD0
+                               43365257077A80A476082510CC92494E
+                               0EA028F9243FD08CFDEF8845EDCAE517
+                  xor-digest = 70E5C789F52DDAF56169FF25BAA8F520
+                               6A49B59C5FA5E32A5EA0534873D4187B
+                               93D86AF3BC82980170A66C80D7642412
+                               2685A3D8D59E12EB33822C1883635211
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 288FF65DC42B92F960C72E95FC63CA31
+               stream[0..63] = 4D7A20DD0CB61B32C51AA173CBDE09BD
+                               5B849F204DC509DDBAB2006C681FB7AE
+                               194C244EEEA64A8B659011264B66B46D
+                               38AEA8AE002E28A131BF9744581892E0
+        stream[65472..65535] = B39839E3132BA23F1D976D2D5183C929
+                               754CB121B53BF42339B29C851D7CF19B
+                               A24F773A2F26171F25F05F49FE14A91E
+                               38C70859B357087F1759B52FA4A3AB31
+        stream[65536..65599] = C5ADB0B69B158BEABC61A71AB06A22EC
+                               8C7CF3F5BB3237D296DCCCC2F47619AD
+                               5CA2031EB7740C7171BB77B29F781822
+                               06092FEC70C9BBFD448D1A264B6A62C0
+      stream[131008..131071] = AAEDA02C3EEA6506A13C267863D080CF
+                               9898EC95D07995D9F3C4814F1B1BF6FA
+                               207EFD0E5595DA11D324B327637F8FB5
+                               CA73A6B2099F7B5A5DCC3A9BB2E596F9
+                  xor-digest = 1D86A187649189372ADC2418273CC9FC
+                               0FAD564F48E31C9DD58A3DBC0212FEB4
+                               C9E2686075DB743964260CC073E0AE67
+                               1B812989FA525C962D3D514F03E9F2B3
+
+
+
+End of test vectors
diff --git a/testvectors/grain-v1-verified.test-vectors b/testvectors/grain-v1-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
diff --git a/testvectors/salsa20-full-128-verified.test-vectors b/testvectors/salsa20-full-128-verified.test-vectors
new file mode 100644 (file)
index 0000000..7d3c02e
--- /dev/null
@@ -0,0 +1,2170 @@
+********************************************************************************
+*                          ECRYPT Stream Cipher Project                        *
+********************************************************************************
+
+Primitive Name: Salsa20
+=======================
+Profile: S3___
+Key size: 128 bits
+IV size: 64 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 4DFA5E481DA23EA09A31022050859936
+                               DA52FCEE218005164F267CB65F5CFD7F
+                               2B4F97E0FF16924A52DF269515110A07
+                               F9E460BC65EF95DA58F740B7D1DBB0AA
+            stream[192..255] = DA9C1581F429E0A00F7D67E23B730676
+                               783B262E8EB43A25F55FB90B3E753AEF
+                               8C6713EC66C51881111593CCB3E8CB8F
+                               8DE124080501EEEB389C4BCB6977CF95
+            stream[256..319] = 7D5789631EB4554400E1E025935DFA7B
+                               3E9039D61BDC58A8697D36815BF1985C
+                               EFDF7AE112E5BB81E37ECF0616CE7147
+                               FC08A93A367E08631F23C03B00A8DA2F
+            stream[448..511] = B375703739DACED4DD4059FD71C3C47F
+                               C2F9939670FAD4A46066ADCC6A564578
+                               3308B90FFB72BE04A6B147CBE38CC0C3
+                               B9267C296A92A7C69873F9F263BE9703
+                  xor-digest = F7A274D268316790A67EC058F45C0F2A
+                               067A99FCDE6236C0CEF8E056349FE54C
+                               5F13AC74D2539570FD34FEAB06C57205
+                               3949B59585742181A5A760223AFA22D4
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 0471076057830FB99202291177FBFE5D
+                               38C888944DF8917CAB82788B91B53D1C
+                               FB06D07A304B18BB763F888A61BB6B75
+                               5CD58BEC9C4CFB7569CB91862E79C459
+            stream[192..255] = D1D7E97556426E6CFC21312AE3811425
+                               9E5A6FB10DACBD88E4354B0472556935
+                               2B6DA5ACAFACD5E266F9575C2ED8E6F2
+                               EFE4B4D36114C3A623DD49F4794F865B
+            stream[256..319] = AF06FAA82C73291231E1BD916A773DE1
+                               52FD2126C40A10C3A6EB40F22834B8CC
+                               68BD5C6DBD7FC1EC8F34165C517C0B63
+                               9DB0C60506D3606906B8463AA0D0EC2F
+            stream[448..511] = AB3216F1216379EFD5EC589510B8FD35
+                               014D0AA0B613040BAE63ECAB90A9AF79
+                               661F8DA2F853A5204B0F8E72E9D9EB4D
+                               BA5A4690E73A4D25F61EE7295215140C
+                  xor-digest = B76A7991D5EE58FC51B9035E077E1315
+                               D81F131FA1F26CF22005C6C4F2412243
+                               C401A850AFEFAADC5B052435B51177C7
+                               0AE68CB9DF9B44681C2D8B7049D89333
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = BACFE4145E6D4182EA4A0F59D4076C7E
+                               83FFD17E7540E5B7DE70EEDDF9552006
+                               B291B214A43E127EED1DA1540F33716D
+                               83C3AD7D711CD03251B78B2568F2C844
+            stream[192..255] = 56824347D03D9084ECCF358A0AE410B9
+                               4F74AE7FAD9F73D2351E0A44DF127434
+                               3ADE372BDA2971189623FD1EAA4B723D
+                               76F5B9741A3DDC7E5B3E8ED4928EF421
+            stream[256..319] = 999F4E0F54C62F9211D4B1F1B79B227A
+                               FB3116C9CF9ADB9715DE856A8EB31084
+                               71AB40DFBF47B71389EF64C20E1FFDCF
+                               018790BCE8E9FDC46527FE1545D3A6EA
+            stream[448..511] = 76F1B87E93EB9FEFEC3AED69210FE4AB
+                               2ED577DECE01A75FD364CD1CD7DE1027
+                               5A002DDBC494EE8350E8EEC1D8D6925E
+                               FD6FE7EA7F610512F1F0A83C8949AEB1
+                  xor-digest = B9D233247408CD459A027430A23E6FCF
+                               3E9A3BAF0D0FC59E623F04D9C107D402
+                               880620C64A111318ECE60C22737BECA4
+                               21F7D3D004E7191ECE2C7075289B31BF
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 24F4E317B675336E68A8E2A3A04CA967
+                               AB96512ACBA2F832015E9BE03F08830F
+                               CF32E93D14FFBD2C901E982831ED8062
+                               21D7DC8C32BBC8E056F21BF9BDDC8020
+            stream[192..255] = E223DE7299E51C94623F8EAD3A6DB045
+                               4091EE2B54A498F98690D7D84DB7EFD5
+                               A2A8202435CAC1FB34C842AEECF643C6
+                               3054C424FAC5A632502CD3146278498A
+            stream[256..319] = 5A111014076A6D52E94C364BD7311B64
+                               411DE27872FC8641D92C9D811F2B5185
+                               94935F959D064A9BE806FAD06517819D
+                               2321B248E1F37E108E3412CE93FA8970
+            stream[448..511] = 8A9AB11BD5360D8C7F34887982B3F658
+                               6C34C1D6CB49100EA5D09A24C6B835D5
+                               77C1A1C776902D785CB5516D74E87480
+                               79878FDFDDF0126B1867E762546E4D72
+                  xor-digest = 0423874278AE11EF0A29B3E6E1A5BA41
+                               E43671636615E3F1F6215750E5A1749A
+                               CDFE0CEB74A11AC4862527C5849110C9
+                               A7A6F01E419372824BCAB90550340E81
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 9907DB5E2156427AD15B167BEB0AD445
+                               452478AFEE3CF71AE1ED8EAF43E001A1
+                               C8199AF9CFD88D2B782AA2F39845A26A
+                               7AC54E5BE15DB7BDFBF873E16BC05A1D
+            stream[192..255] = EBA0DCC03E9EB60AE1EE5EFE3647BE45
+                               6E66733AA5D6353447981184A05F0F0C
+                               B0AD1CB630C35DC253DE3FEBD10684CA
+                               DBA8B4B85E02B757DED0FEB1C31D71A3
+            stream[256..319] = BD24858A3DB0D9E552345A3C3ECC4C69
+                               BBAE4901016A944C0D7ECCAAB9027738
+                               975EEA6A4240D94DA183A74D649B789E
+                               24A0849E26DC367BDE4539ADCCF0CAD8
+            stream[448..511] = EE20675194FA404F54BAB7103F6821C1
+                               37EE2347560DC31D338B01026AB6E571
+                               65467215315F06360D85F3C5FE7A359E
+                               80CBFE735F75AA065BC18EFB2829457D
+                  xor-digest = 19B8E721CD10577375FC6D0E6DC39B05
+                               4E371860CE2AA310906EA7BAB28D737F
+                               2357B42E7DC1C48D597EA58B87602CE5
+                               C37EEDED2E0F4819938878AE7C50E151
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = A59CE982636F2C8C912B1E8105E2577D
+                               9C86861E61FA3BFF757D74CB9EDE6027
+                               D7D6DE775643FAF5F2C04971BDCB56E6
+                               BE8144366235AC5E01C1EDF8512AF78B
+            stream[192..255] = DF8F13F1059E54DEF681CD554439BAB7
+                               24CDE604BE5B77D85D2829B3EB137F4F
+                               2466BEADF4D5D54BA4DC36F1254BEC4F
+                               B2B367A59EA6DDAC005354949D573E68
+            stream[256..319] = B3F542ECBAD4ACA0A95B31D281B930E8
+                               021993DF5012E48A333316E712C4E19B
+                               58231AAE7C90C91C9CC135B12B490BE4
+                               2CF9C9A2727621CA81B2C3A081716F76
+            stream[448..511] = F64A6449F2F13030BE554DB00D24CD50
+                               A89F80CCFE97435EBF0C49EB08747BF7
+                               B2C89BE612629F231C1B3398D8B4CC3F
+                               35DBECD1CF1CFDFDECD481B72A51276A
+                  xor-digest = 4134A74A52EA89BF22E05A467E37E082
+                               15537896BE4D2BBDF29EA52A2303E64B
+                               D954A18928543C82B68A21E4B830A775
+                               CBA9D1176EBF8DB92938DF6E59117B74
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 7A8131B777F7FBFD33A06E396FF32D7D
+                               8C3CEEE9573F405F98BD6083FE57BAB6
+                               FC87D5F34522D2440F649741D9F87849
+                               BC8751EF432DEE5DCC6A88B34B6A1EA9
+            stream[192..255] = 6573F813310565DB22219984E0919445
+                               9E5BB8613237F012EBB8249666582ACA
+                               751ED59380199117DDB29A5298F95FF0
+                               65D271AB66CF6BC6CDE0EA5FC4D304EB
+            stream[256..319] = 0E65CB6944AFBD84F5B5D00F307402B8
+                               399BF02852ED2826EA9AA4A55FB56DF2
+                               A6B83F7F228947DFAB2E0B10EAAA09D7
+                               5A34F165ECB4D06CE6AB4796ABA3206A
+            stream[448..511] = 11F69B4D034B1D7213B9560FAE89FF2A
+                               53D9D0C9EAFCAA7F27E9D119DEEEA299
+                               AC8EC0EA0529846DAF90CF1D9BFBE406
+                               043FE03F1713F249084BDD32FD98CD72
+                  xor-digest = E9CFBD15B5F4AD02903851F46728F2DD
+                               5910273E7360F1571EF1442199143B6C
+                               28E5368A2E00E08ADAE73AF3489E0D6F
+                               0D8032984ADD139B6BF508A5EEE4434B
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = FE4DF972E982735FFAEC4D66F929403F
+                               7246FB5B2794118493DF068CD310DEB6
+                               3EEEF12344E221A2D163CC666F5685B5
+                               02F4883142FA867B0BA46BF17D011984
+            stream[192..255] = 4694F79AB2F3877BD590BA09B413F1BD
+                               F394C4D8F2C20F551AA5A07207433204
+                               C2BC3A3BA014886A08F4EC5E4D91CDD0
+                               1D7A039C5B815754198B2DBCE68D25EA
+            stream[256..319] = D1340204FB4544EFD5DAF28EDCC6FF03
+                               B39FBEE708CAEF6ABD3E2E3AB5738B32
+                               04EF38CACCC40B9FBD1E6F0206A2B564
+                               E2F9EA05E10B6DD061F6AB94374681C0
+            stream[448..511] = BB802FB53E11AFDC3104044D70448079
+                               41FDAEF1042E0D35972D80CE77B4D560
+                               083EB4113CDBC4AC56014D7FF94291DC
+                               9387CEF74A0E165042BC12373C6E020C
+                  xor-digest = FF021AEC5DC82F40BBF44CEA85287BCF
+                               D70F16F557F07B1BF970407051F71C41
+                               5B703A67CAF8E81CB22D9F09E0CBD247
+                               5E9859355A48FDA9F48E38E2748BE41B
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 8F8121BDD7B286465F03D64CA45A4A15
+                               4BDF44560419A40E0B482CED194C4B32
+                               4F2E9295C452B73B292BA7F55A692DEE
+                               A5129A49167BA7AABBEED26E39B25E7A
+            stream[192..255] = 7E4388EDBBA6EC5882E9CBF01CFA6786
+                               0F10F0A5109FCA7E865C3814EB007CC8
+                               9585C2653BDCE30F667CF95A2AA425D3
+                               5A531F558180EF3E32A9543AE50E8FD6
+            stream[256..319] = 527FF72879B1B809C027DFB7B39D02B3
+                               04D648CD8D70F4E0465615B334ED9E2D
+                               59703745467F1168A8033BA861841DC0
+                               0E7E1AB5E96469F6DA01B8973D0D414A
+            stream[448..511] = 82653E0949A5D8E32C4D0A81BBF96F6A
+                               7249D4D1E0DCDCC72B90565D9AF4D0AC
+                               461C1EAC85E254DD5E567A009EEB3897
+                               9A2FD1E4F32FAD15D177D766932190E1
+                  xor-digest = B2F239692CE50EECABD7A846AC333885
+                               43CFC1061F33420B6F205809F3965D89
+                               9C56C02D208DD3E9A1F0D5BBED8F5DAC
+                               B164FD005DF907002302F40ADB6665CC
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                          IV = 0000000000000000
+               stream[0..63] = 52FA8BD042682CD5AA21188EBF3B9E4A
+                               EE3BE38AE052C5B37730E52C6CEE33C9
+                               1B492F95A67F2F6C15425A8623C0C2AE
+                               7275FFD0FCF13A0A293A784289BEACB4
+            stream[192..255] = 5F43C508BA6F728D032841618F96B103
+                               19B094027E7719C28A8A8637D4B0C4D2
+                               25D602EA23B40D1541A3F8487F25B14A
+                               8CBD8D2001AC28EADFDC0325BA2C140E
+            stream[256..319] = 5C802C813FF09CAF632CA8832479F891
+                               FB1016F2F44EFA81B3C872E37468B818
+                               3EB32D8BD8917A858AEF47524FCC05D3
+                               688C551FC8A42C8D9F0509018706E40E
+            stream[448..511] = 4CDD40DC6E9C0E4F84810ABE712003F6
+                               4B23C6D0C88E61D1F303C3BBD89B58AA
+                               098B44B5CD82EDCFC618D324A41317AC
+                               6FED20C9A0C54A9ED1F4DA3BF2EC3C66
+                  xor-digest = B72D2FEE4BFBC0F65005EE2797B0608A
+                               7A6D9CD1114B67C0ADEC7B4B6D793182
+                               880777B0279E3DF27CBA820714629A96
+                               034E4C71F5356254A0116CF3E9F7EF5C
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                          IV = 0000000000000000
+               stream[0..63] = 6262315C736E88717E9627EECF4F6B55
+                               BD10D5960A9961D572EFC7CBDB9A1F01
+                               1733D3E17E4735BEFA16FE6B148F8661
+                               4C1E37065A48ACF287FFE65C9DC44A58
+            stream[192..255] = B43439584FB2FAF3B2937838D8000AC4
+                               CD4BC4E582212A7741A0192F71C1F11B
+                               58D7F779CA0E6E4B8BD58E00B50C3C53
+                               DAF843467064A2DBE2FAD6FF6F40ECD8
+            stream[256..319] = EE51EE875F6F1B8AF0334F509DF5692B
+                               9B43CC63A586C2380AF3AE490DCD6CFF
+                               7907BC3724AE3BBEAD79D436E6DADDB2
+                               2141B3BA46C9BEC0E01B9D4F7657B387
+            stream[448..511] = E5A4FE4A2FCA9A9ED779A9574283DC21
+                               C85216D54486D9B182300D0593B1E2B0
+                               10814F7066AEB955C057609CE9AF0D63
+                               F057E17B19F57FFB7287EB2067C43B8D
+                  xor-digest = 8866D8F9E6F423A7DF10C77625014AA5
+                               82C06CD861A88F40FB9CD1EBF0911188
+                               4344BEEA5A724E6FD8DB98BF4E6B9BEA
+                               5318FA62813D1B49A2D529FC00CB5777
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                          IV = 0000000000000000
+               stream[0..63] = 82FD629BD82C3BE22910951E2E41F8FE
+                               187E2BD198F6113AFF44B9B0689AA520
+                               C8CCE4E8D3FBA69EDE748BCF18397214
+                               F98D7ACF4424866A8670E98EBAB715A3
+            stream[192..255] = 342D80E30E2FE7A00B02FC62F7090CDD
+                               ECBDFD283D42A00423113196A87BEFD8
+                               B9E8AAF61C93F73CC6CBE9CC5AEC182F
+                               3948B7857F96B017F3477A2EEC3AEB3B
+            stream[256..319] = 8233712B6D3CCB572474BE200D67E540
+                               3FC62128D74CE5F790202C696BFFB7EE
+                               3CAD255324F87291273A7719278FA313
+                               1ABA12342692A2C0C58D27BA3725761B
+            stream[448..511] = 782600E7357AC69EA158C725B3E1E940
+                               51A0CB63D0D1B4B3DF5F5037E3E1DE45
+                               850578E9D513B90B8E5882D4DCA9F42B
+                               E32621F4DCC1C77B38F1B0AC1227C196
+                  xor-digest = F8AE82F9B77EF090AE0C72A5EAE21405
+                               68BEF0B354BCDF4BD39732CD86C63A82
+                               AFD27F58C459272B3E8A4B9B558D856F
+                               8475CF3A1AD99074822A836CFE520DC5
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                          IV = 0000000000000000
+               stream[0..63] = D244F87EB315A7EEF02CA314B440777E
+                               C6C44660020B43189693500F3279FA01
+                               7257BE0AB087B81F85FD55AAC5845189
+                               C66E259B5412C4BDFD0EBE805FC70C8A
+            stream[192..255] = 5A2D8D3E431FB40E60856F05C7976206
+                               42B35DAB0255764D986740699040702F
+                               6CDE058458E842CB6E1843EBD336D374
+                               23833EC01DFFF9086FEECAB8A165D29F
+            stream[256..319] = 443CEF4570C83517ED55C2F57058BB70
+                               294CC8D7342597E2CD850F6C02E355CA
+                               EB43C0A41F4BB74FFE9F6B0D25799140
+                               D03792D667601AD7954D21BD7C174C43
+            stream[448..511] = 959C8B16A0ADEC58B544BE33CCF03277
+                               E48C7916E333F549CDE16E2B4B6DCE2D
+                               8D76C50718C0E77BFBEB3A3CB3CA14BF
+                               40F65EBFAE1A5001EAB36E531414E87F
+                  xor-digest = 4DC82B00DC54141CC890348496115C68
+                               1DB10ABE8454FBD10B49EF951CD20C6F
+                               7FE8AAA10906E57CF05EE838F76C8B7A
+                               3F9E6BD6D21C49F1590C913026C71A3E
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                          IV = 0000000000000000
+               stream[0..63] = 44A74D35E73A7E7C37B009AE712783AC
+                               86ACE0C02CB175656AF79023D91C909E
+                               D2CB2F5C94BF8593DDC5E054D7EB726E
+                               0E867572AF954F88E05A4DAFD00CCF0A
+            stream[192..255] = FEC113A0255391D48A37CDF607AE1226
+                               86305DDAD4CF1294598F2336AB6A5A02
+                               9D927393454C2E014868137688C0417A
+                               2D31D0FE9540D7246FE2F84D6052DE40
+            stream[256..319] = 79C2F7431D69E54C0474D8160113F364
+                               8156A8963817C34AC9A9AD222543666E
+                               7EAF03AF4EE03271C3ECED262E7B4C66
+                               B0F618BAF3395423274DD1F73E2675E3
+            stream[448..511] = 75C1295C871B1100F27DAF19E5D5BF8D
+                               880B9A54CEFDF1561B4351A32898F3C2
+                               6A04AB1149C24FBFA2AC963388E64C43
+                               65D716BCE8330BC03FA178DBE5C1E6B0
+                  xor-digest = 65D58F845F973928ADF5803799901856
+                               A08952CF215154C52A5FF2DAD71E8B70
+                               3DE107E5531491666353F323E790EB02
+                               1B5EF66C13F43401F4F6A27F08CE11D5
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                          IV = 0000000000000000
+               stream[0..63] = E23A3638C836B1ACF7E27296E1F5A241
+                               3C4CC351EFEF65E3672E7C2FCD1FA105
+                               2D2C26778DB774B8FBA29ABED72D058E
+                               E35EBA376BA5BC3D84F8E44ABD5DC2CC
+            stream[192..255] = 2A8BEB3C372A6570F54EB429FA7F562D
+                               6EF14DF725861EDCE8132620EAA00D8B
+                               1DFEF653B64E9C328930904A0EEB0132
+                               B277BB3D9888431E1F28CDB0238DE685
+            stream[256..319] = CCBEB5CA57104B95BF7BA5B12C8B8553
+                               4CE9548F628CF53EF02C337D788BCE71
+                               D2D3D9C355E7D5EB75C56D079CB7D99D
+                               6AF0C8A86024B3AF5C2FC8A028413D93
+            stream[448..511] = D00A5FDCE01A334C37E75634A8037B49
+                               BEC06ACBD2243320E2CA41FB5619E6D8
+                               75AB2007310D4149379C91EF4E199805
+                               BE261E5C744F0DF21737E01243B7116F
+                  xor-digest = 2D72232A4485E0D2EEDC061939602077
+                               4C100C5424FF742B2868E3A68E67E165
+                               4C4711C54A34DA937359A26B8386AD20
+                               39EB2021DCFBB6A11603AF56225DE098
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 6513ADAECFEB124C1CBE6BDAEF690B4F
+                               FB00B0FCACE33CE806792BB414801998
+                               34BFB1CFDD095802C6E95E251002989A
+                               C22AE588D32AE79320D9BD7732E00338
+            stream[192..255] = 75E9D0493CA05D2820408719AFC75120
+                               692040118F76B8328AC279530D846670
+                               65E735C52ADD4BCFE07C9D93C0091790
+                               2B187D46A25924767F91A6B29C961859
+            stream[256..319] = 0E47D68F845B3D31E8B47F3BEA660E2E
+                               CA484C82F5E3AE00484D87410A1772D0
+                               FA3B88F8024C170B21E50E0989E94A26
+                               69C91973B3AE5781D305D8122791DA4C
+            stream[448..511] = CCBA51D3DB400E7EB780C0CCBD3D2B5B
+                               B9AAD82A75A1F746824EE5B9DAF7B794
+                               7A4B808DF48CE94830F6C9146860611D
+                               A649E735ED5ED6E3E3DFF7C218879D63
+                  xor-digest = 6D3937FFA13637648E477623277644AD
+                               AD3854E6B2B3E4D68155356F68B30490
+                               842B2AEA2E32239BE84E613C6CE1B9BD
+                               026094962CB1A6757AF5A13DDAF8252C
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                          IV = 0000000000000000
+               stream[0..63] = 169060CCB42BEA7BEE4D8012A02F3635
+                               EB7BCA12859FA159CD559094B3507DB8
+                               01735D1A1300102A9C9415546829CBD2
+                               021BA217B39B81D89C55B13D0C603359
+            stream[192..255] = 23EF24BB24195B9FD574823CD8A40C29
+                               D86BD35C191E2038779FF696C712B6D8
+                               2E7014DBE1AC5D527AF076C088C4A8D4
+                               4317958189F6EF54933A7E0816B5B916
+            stream[256..319] = D8F12ED8AFE9422B85E5CC9B8ADEC9D6
+                               CFABE8DBC1082BCCC02F5A7266AA074C
+                               A284E583A35837798CC0E69D4CE93765
+                               3B8CDD65CE414B89138615CCB165AD19
+            stream[448..511] = F70A0FF4ECD155E0F033604693A51E23
+                               63880E2ECF98699E7174AF7C2C6B0FC6
+                               59AE329599A3949272A37B9B2183A091
+                               0922A3F325AE124DCBDD735364055CEB
+                  xor-digest = 30209DD68D46E5A30034EF6DCE74FE1A
+                               B6C772AB22CD3D6C354A9C4607EF3F82
+                               900423D29FB65E07FFA3AEAD94E940D6
+                               E52E305A10D60936D34BD03B3F342AB1
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                          IV = 0000000000000000
+               stream[0..63] = 05835754A1333770BBA8262F8A84D0FD
+                               70ABF58CDB83A54172B0C07B6CCA5641
+                               060E3097D2B19F82E918CB697D0F347D
+                               C7DAE05C14355D09B61B47298FE89AEB
+            stream[192..255] = 5525C22F425949A5E51A4EAFA18F62C6
+                               E01A27EF78D79B073AEBEC436EC8183B
+                               C683CD3205CF80B795181DAFF3DC9848
+                               6644C6310F09D865A7A75EE6D5105F92
+            stream[256..319] = 2EE7A4F9C576EADE7EE325334212196C
+                               B7A61D6FA693238E6E2C8B53B900FF1A
+                               133A6E53F58AC89D6A695594CE03F775
+                               8DF9ABE981F23373B3680C7A4AD82680
+            stream[448..511] = CB7A0595F3A1B755E9070E8D3BACCF95
+                               74F881E4B9D91558E19317C4C254988F
+                               42184584E5538C63D964F8EF61D86B09
+                               D983998979BA3F44BAF527128D3E5393
+                  xor-digest = AD29013FD0A222EEBE65126380A26477
+                               BD86751B3B0A2B4922602E63E6ECDA52
+                               3BA789633BEE6CFF64436A8644CCD7E8
+                               F81B062187A9595A8D2507ED774FA5CD
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 0000000000000000
+               stream[0..63] = 72A8D26F2DF3B6713C2A053B3354DBA6
+                               C10743C7A8F19261CF0E7957905748DD
+                               D6D3333E2CBC6611B68C458D5CDBA2A2
+                               30AC5AB03D59E71FE9C993E7B8E7E09F
+            stream[192..255] = 7B6132DC5E2990B0049A5F7F357C9D99
+                               7733948018AE1D4F9DB999F4605FD78C
+                               B548D75AC4657D93A20AA451B8F35E0A
+                               3CD08880CCED7D4A508BA7FB49737C17
+            stream[256..319] = EF7A7448D019C76ED0B9C18B5B2867CF
+                               9AD84B789FB037E6B107B0A4615737B5
+                               C1C113F91462CDA0BCB9ADDC09E8EA6B
+                               99E4835FED25F5CC423EEFF56D851838
+            stream[448..511] = 6B75BDD0EC8D581CB7567426F0B92C9B
+                               B5057A89C3F604583DB700A46D6B8DE4
+                               1AF315AE99BB5C1B52C76272D1E262F9
+                               FC7022CE70B435C27AE443284F5F84C1
+                  xor-digest = 484F9FCB516547DD89AF46991B18F1DE
+                               C4C6CBC7D52735E00FC3201B4650151C
+                               3D4FB9C119442B368B28E3C68ED83F10
+                               D9DA2FDED7DEB8F04827FA91CCDBF65B
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                          IV = 0000000000000000
+               stream[0..63] = 76240D13C7E59CBD4183D162834A5D36
+                               37CD09EE4F5AFE9C28CFA9466A4089F6
+                               5C80C224A87F956459B173D720274D09
+                               C573FCD128498D810460FDA1BB50F934
+            stream[192..255] = 71AF115217F3B7F77A05B56E32AD0889
+                               BFA470B6DDC256D852C63B45688D7BC8
+                               DC610D347A2600D7769C67B28D1FA25F
+                               1AACFB8F9BB68BFE17357335D8FAC993
+            stream[256..319] = 6573CC1ADC0DE744F6694E5FBB59E5BF
+                               5939CE5D13793E2F683C7F2C7DD9A460
+                               575746688A0F17D419FE3E5F88654559
+                               7B6705E1390542B4F953D568025F5BB3
+            stream[448..511] = 809179FAD4AD9B5C355A09E99C8BE931
+                               4B9DF269F162C1317206EB3580CAE58A
+                               B93A408C23739EF9538730FE687C8DAC
+                               1CE95290BA4ACBC886153E63A613857B
+                  xor-digest = D1781DCE3EFB8B13740F016264051354
+                               F323C81A13D42CE75E67180849AC49FF
+                               A7EA95720696F86848A1A4B8506A95E3
+                               A61371DDE7F21167CC147173BFC4D78F
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 0000000000000000
+               stream[0..63] = 3117FD618A1E7821EA08CDED410C8A67
+                               BDD8F7BE3FCA9649BD3E297FD83A80AD
+                               814C8904C9D7A2DC0DCAA641CFFF502D
+                               78AFF1832D34C263C1938C1ADF01238F
+            stream[192..255] = 1E8CB540F19EC7AFCB366A25F74C0004
+                               B682E06129030617527BECD16E3E3E00
+                               27D818F035EDCDF56D8D4752AEF28BDB
+                               FA0D3B008235173475F5FA105B91BEED
+            stream[256..319] = 637C3B4566BBEBBE703E4BF1C978CCD2
+                               77AE3B8768DB97DF01983CDF3529B3EC
+                               6B1137CA6F231047C13EA38649D0058E
+                               BE5EF7B7BBA140F22338E382F1D6AB3F
+            stream[448..511] = D407259B6355C343D64A5130DA55C057
+                               E4AF722B70AC8A074262233677A457AF
+                               EAA34E7FD6F15959A4C781C4C978F7B3
+                               BC571BF66674F015A1EA5DB262E25BDC
+                  xor-digest = 1F64F78101768FF5067B9A918444EF70
+                               3FF06561E23B31C61BD43BCF86CFAD24
+                               9942F73DC8F40AE49B14874B08F2A527
+                               A53DF496F37D067F1168268D4A134740
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                          IV = 0000000000000000
+               stream[0..63] = 7FED83B9283449AD8EBFC935F5F36407
+                               5C9008ADE8626D350770E2DBD058F053
+                               F7E5300B088B1341EC54C2BEE72A520C
+                               35C673E79CC4ED0A6D8F4C15FBDD090B
+            stream[192..255] = D780206A2537106610D1C95BF7E9121B
+                               EDE1F0B8DFBE83CBC49C2C653DD187F7
+                               D84A2F4607BF99A96B3B84FB792340D4
+                               E67202FB74EC24F38955F345F21CF3DB
+            stream[256..319] = 6CA21C5DC289674C13CFD4FCBDEA8356
+                               0A90F53BB54F16DBF274F5CC56D7857C
+                               D3E3B06C81C70C828DC30DADEBD92F38
+                               BB8C24136F37797A647584BCEE68DF91
+            stream[448..511] = 471936CE9C84E131C4C5792B769654B8
+                               9644BFAFB1149130E580FD805A325B62
+                               8CDE5FAE0F5C7CFFEF0D931F8F517A92
+                               9E892D3789B74217A81BAEFE441E47ED
+                  xor-digest = 0073DA29855E96EA5C414B9BD2E1C0F4
+                               987D3F1EB1CA73C4AA10180B99A43774
+                               4857EB36586593B81088AADE5D89BBC6
+                               8FBD8B0D268080746D6BE38DBC9396CD
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 0000000000000000
+               stream[0..63] = C224F33B124D6692263733DFD5BF5271
+                               7D1FB45EC1CEDCA6BF92BA44C1EADA85
+                               F7B031BCC581A890FD275085C7AD1C3D
+                               652BCA5F4D7597DECDB2232318EABC32
+            stream[192..255] = 090325F54C0350AD446C19ABDCAEFF52
+                               EC57F5A13FB55FEDE4606CEC44EC658B
+                               BB13163481D2C84BF9409313F6470A0D
+                               A9803936094CC29A8DE7613CBFA77DD5
+            stream[256..319] = 1F66F5B70B9D12BC7092C1846498A2A0
+                               730AA8FA8DD97A757BBB878320CE6633
+                               E5BCC3A5090F3F75BE6E72DD1E8D95B0
+                               DE7DBFDD764E484E1FB854B68A7111C6
+            stream[448..511] = F8AE560041414BE888C7B5EB3082CC7C
+                               4DFBBA5FD103F522FBD95A7166B91DE6
+                               C78FB47413576EC83F0EDE6338C9EDDB
+                               81757B58C45CBD3A3E29E491DB1F04E2
+                  xor-digest = 542B2672401C5D1225CC704365753E33
+                               D0827A863C4897FFCE1B724CD10B2A0E
+                               8A4E4CDAB7357424FC6DC78440037240
+                               B8FD5299907A946CE77DAFA5322AB73D
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                          IV = 0000000000000000
+               stream[0..63] = 11BF31E22D7458C189092A1DE3A4905B
+                               A2FA36858907E3511FB63FDFF2C5C2A1
+                               5B651B2C2F1A3A43A718642152806967
+                               2B6BB0AEC10452F1DAA9FC73FF5A396A
+            stream[192..255] = D1E1619E4BD327D2A124FC52BC15B194
+                               0B05394ECE5926E1E1ADE7D3FC8C6E91
+                               E43889F6F9C1FD5C094F6CA25025AE4C
+                               CC4FDC1824936373DBEE16D62B81112D
+            stream[256..319] = F900E9B0665F84C939D5FE4946FA7B41
+                               E34F06058522A2DB49E210E3E5385E58
+                               97C24F6350C6CCA578285325CC16F558
+                               6DC662FFBEA41BAC68996BAAB9F32D1F
+            stream[448..511] = 40587ECAD15841F1BD1D236A61051574
+                               A974E15292F777ABDED64D2B761892BE
+                               F3DD69E479DE0D02CC73AF76E81E8A77
+                               F3CEE74180CB5685ACD4F0039DFFC3B0
+                  xor-digest = C3E5CC5C7CEA1B3885EB9CEF2D1FAF18
+                               E7DE1CFD7237F2D6D344F3DF7168A88E
+                               C88C1314CB6F5A3EAE1BC468B4FAD75E
+                               8A42BE8607705C9A7950302461AD9B3F
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                          IV = 0000000000000000
+               stream[0..63] = EBC464423EADEF13E845C595A9795A58
+                               5064F478A1C8582F07A4BA68E81329CB
+                               26A13C2EA0EFE9094B0A749FDB1CC6F9
+                               C2D293F0B395E14EB63075A39A2EDB4C
+            stream[192..255] = F4BBBBCE9C5869DE6BAF5FD4AE835DBE
+                               5B7F1752B2972086F3383E9D180C2FE5
+                               5618846B10EB68AC0EB0865E0B167C6D
+                               3A843B29336BC1100A4AB7E8A3369959
+            stream[256..319] = 3CEB39E3D740771BD49002EA8CD99851
+                               8A8C70772679ECAF2030583AED43F77F
+                               565FECDBEF333265A2E1CC42CB606980
+                               AEF3B24C436A12C85CBDC5EBD97A9177
+            stream[448..511] = EF651A98A98C4C2B61EA8E7A673F5D4F
+                               D832D1F9FD19EE4537B6FEC7D11C6B2F
+                               3EF5D764EEAD396A7A2E32662647BFC0
+                               7F02A557BA6EF046C8DE3781D74332B0
+                  xor-digest = 88A96FF895BF2A827FC26DB2BB75DC69
+                               8E8E1B7E231997AB2942E981EF1633EA
+                               061F6B323B99519828FB41A6F5CCC79C
+                               57F6DDDD34DEAB38514A54C4886626E5
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 0000000000000000
+               stream[0..63] = F40253BAA835152E1582646FD5BD3FED
+                               638EB3498C80BFB941644A7750BBA565
+                               3130CC97A937A2B27AFBB3E679BC42BE
+                               87F83723DC6F0D61DCE9DE8608AC62AA
+            stream[192..255] = A5A1CD35A230ED57ADB8FE16CD2D2EA6
+                               055C32D3E621A0FD6EB6717AA916D478
+                               57CD987C16E6112EDE60CCB0F7014642
+                               2788017A6812202362691FDA257E5856
+            stream[256..319] = 81F0D04A929DB4676F6A3E6C15049779
+                               C4EC9A12ACF80168D7E9AA1D6FA9C13E
+                               F2956CEE750A89103B48F22C06439C5C
+                               E9129996455FAE2D7775A1D8D39B00CE
+            stream[448..511] = 3F6D60A0951F0747B94E4DDE3CA4ED4C
+                               96694B7534CD9ED97B96FAAD3CF00D4A
+                               EF12919D410CD9777CD5F2F3F2BF160E
+                               BBA3561CC24345D9A09978C3253F6DCB
+                  xor-digest = 554F89BF1AD5602655B800DB9B3CCFFA
+                               1B267D57654DCF3FDDA81A59DF68B022
+                               555E63DE51E7A83668E7F1AE09EEB5B8
+                               748DEF8580B304199C4D117CF9A94E78
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                          IV = 0000000000000000
+               stream[0..63] = ED5FF13649F7D8EDFC783EFDF2F843B3
+                               68776B19390AF110BEF12EAC8EC58A2E
+                               8CDAB6EC9049FBDA23A615C536C3A313
+                               799E21668C248EC864D5D5D99DED80B3
+            stream[192..255] = 845ACE9B870CF9D77597201988552DE5
+                               3FD40D2C8AC51ABE1335F6A2D0035DF8
+                               B10CACAD851E000BAC6EA8831B2FBCFE
+                               B7C94787E41CC541BAC3D9D26DB4F19D
+            stream[256..319] = 981580764B81A4E12CA1F36634B59136
+                               5E4BDB6C12DE13F2F337E72E018029C5
+                               A0BECDA7B6723DD609D81A314CE39619
+                               0E82848893E5A44478B08340F90A73F3
+            stream[448..511] = 4CD3B072D5720E6C64C9476552D1CFF4
+                               D4EF68DCBD11E8D516F0C248F9250B57
+                               1990DD3AFC0AE8452896CCCC0BD0EFDF
+                               17B616691AB3DF9AF6A42EDCA54BF9CD
+                  xor-digest = 52D590BB5E396FCC2E00D9C51B3C0BF0
+                               73E123C7EE69B528B0F0F87B57DC6907
+                               F4B57FD5F5B10D602B1F723E9FDD5510
+                               AEC60CD0DD50ED4B60FA355859638C2C
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 0000000000000000
+               stream[0..63] = 78ED06021C5C7867D176DA2A96C4BBAA
+                               494F451F21875446393E9688205ED63D
+                               EA8ADEB1A2381201F576C5A541BC8887
+                               4078608CA8F2C2A6BDCDC1081DD254CC
+            stream[192..255] = C1747F85DB1E4FB3E29621015314E3CB
+                               261808FA6485E59057B60BE82851CFC9
+                               48966763AF97CB9869567B763C745457
+                               5022249DFE729BD5DEF41E6DBCC68128
+            stream[256..319] = 1EE4C7F63AF666D8EDB2564268ECD127
+                               B4D015CB59487FEAF87D0941D42D0F8A
+                               24BD353D4EF765FCCF07A3C3ACF71B90
+                               E03E8AEA9C3F467FE2DD36CEC00E5271
+            stream[448..511] = 7AFF4F3A284CC39E5EAF07BA6341F065
+                               671147CA0F073CEF2B992A7E21690C82
+                               71639ED678D6A675EBDAD48336584213
+                               15A2BA74754467CCCE128CCC62668D0D
+                  xor-digest = FB3FE601D4E58B0766F02FA15C332391
+                               3CD745E905AD74EA5DABA77BC25D282D
+                               D66D98204E101F06D60BA446A21331AF
+                               6DDEB70679DEF46B886EB8A75C916380
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                          IV = 0000000000000000
+               stream[0..63] = D935C93A8EBB90DB53A27BF9B41B3345
+                               23E1DFDE3BFFC09EA97EFB9376D38C7D
+                               6DC67AAB21EA3A5C07B6503F986F7E8D
+                               9E11B3150BF0D38F36C284ADB31FACF8
+            stream[192..255] = DA88C48115010D3CD5DC0640DED2E652
+                               0399AAFED73E573CBAF552C6FE06B1B3
+                               F3ADE3ADC19DA311B675A6D83FD48E38
+                               46825BD36EB88001AE1BD69439A0141C
+            stream[256..319] = 14EA210224DAF4FC5D647C78B6BFEF7D
+                               724DC56DCDF832B496DEAD31DD948DB1
+                               944E17AB2966973FD7CCB1BC9EC0335F
+                               35326D5834EE3B08833358C4C28F70DE
+            stream[448..511] = D5346E161C083E00E247414F44E0E737
+                               5B435F426B58D482A37694331D7C5DC9
+                               7D8953E6A852625282973ECCFD012D66
+                               4C0AFA5D481A59D7688FDB54C55CD04F
+                  xor-digest = BB5EAC1AB84C70857245294309C023C4
+                               B1A4199D16877BC847BCBB1B0A8D1B54
+                               4289D6C8BF27212AAFFD42021669BB24
+                               77A4F815FA01B3F7E88299240155265B
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 0000000000000000
+               stream[0..63] = 45A43A587C45607441CE3AE200467977
+                               88879C5B77FDB90B76F7D2DF27EE8D94
+                               28A5B5AF35E2AAE242E6577BEC92DA09
+                               29A6AFB3CB8F8496375C98085460AB95
+            stream[192..255] = 14AE0BA973AE19E6FD674413C276AB9D
+                               99AA0048822AFB6F0B68A2741FB5CE2F
+                               64F3D862106EF2BDE19B39209F75B92B
+                               DBE9015D63FDFD7B9E8A776291F4E831
+            stream[256..319] = C26FA1812FFC32EFF2954592A0E1E5B1
+                               26D5A2196624156E3DFD0481205B24D5
+                               613B0A75AF3CBC8BBE5911BE93125BD3
+                               D3C50C92910DBA05D80666632E5DF9EF
+            stream[448..511] = AD0DABE5AF74AB4F62B4699E0D667BBF
+                               01B4DCF0A45514554CAC4DFDE453EFF1
+                               E51BE5B74B37512C40E3608FB0E65A3F
+                               D4EAFA27A3BB0D6E1300C594CB0D1254
+                  xor-digest = 0F1A4B0994EE03B6C381FE4BB8E33C0E
+                               E47C395BB59922C5537EEBFD12549422
+                               0F743B93D867085E027E56623F795056
+                               08179A39FF52D4C00A45A5FB8F618C49
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                          IV = 0000000000000000
+               stream[0..63] = 09E15E82DFA9D821B8F68789978D0940
+                               48892C624167BA88AD767CAEFDE80E25
+                               F57467156B8054C8E88F3478A2897A20
+                               344C4B05665E7438AD1836BE86A07B83
+            stream[192..255] = 2D752E53C3FCA8D3CC4E760595D588A6
+                               B321F910B8F96459DBD42C6635063246
+                               60A527C66A53B406709262B0E42F11CB
+                               0AD2450A1FB2F48EA85C1B39D4408DB9
+            stream[256..319] = 1EC94A21BD2C0408D3E15104FA25D15D
+                               6E3E0D3F8070D84184D35B6302BF62AE
+                               A282E3640820CC09E1528B684B740018
+                               0598D6960EC92E4EC4C9E533E1BA06F1
+            stream[448..511] = D0AC302C5CC256351E24CFFD11F0BD8A
+                               0BE1277EDDCB3EE4D530E051712A710D
+                               F4513FD6438B7A355CCF4FEDA9A60F2A
+                               C375508F998C642E6C51724FE9462F7F
+                  xor-digest = B7F32B6FADB48BB8DA231BDBDC469723
+                               2BAE5F8F8345F9F14A991FF851CC3C64
+                               1DF4913A5C550FC898F95AC299ED8915
+                               5A434DC4B1E37D82EA137BB763F68BC7
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                          IV = 0000000000000000
+               stream[0..63] = EA869D49E7C75E07B551C24EBE351B4E
+                               7FD9CB26413E55A8A977B766650F81EF
+                               CA06E30107F76DC97EA9147FFA7CA66A
+                               FD4D4DA538CDA1C27E8D948CC406FB89
+            stream[192..255] = 436A8EC10421116CD03BF95A4DAAE630
+                               1BB8C724B3D481099C70B26109971CCE
+                               ACBCE35C8EE98BBB0CD553B5C4181125
+                               00262C7EA10FAAC8BA9A30A04222D8E2
+            stream[256..319] = 47487A34DE325E79838475B1757D5D29
+                               3C931F9E57579FCA5E04A40E4A0A38CF
+                               D1614F9CEF75F024FFF5D972BD671DC9
+                               FB2A80F64E8A2D82C3BAA5DDFD1E6821
+            stream[448..511] = 3FDCAD4E7B069391FAB74C836D58DE23
+                               95B27FFAE47D633912AE97E7E3E60264
+                               CA0DC540D33122320311C5CFC9E26D63
+                               2753AC45B6A8E81AC816F5CA3BBDB1D6
+                  xor-digest = E30E770C75C94EE022BEA6B95241E5D7
+                               163D7C55AAF20FE7150768CEE6E11037
+                               42902FA4F928CDCF31335944DCDEBADD
+                               E36FE089D2EB93677E9DF75234E1B3C8
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                          IV = 0000000000000000
+               stream[0..63] = 7B3AA4599561C9059739C7D18D342CF2
+                               E73B3B9E1E85D38EDB41AEFADD81BF24
+                               1580885078CA10D338598D18B3E4B693
+                               155D12D362D533494BA48142AB068F68
+            stream[192..255] = D27864FC30D5FD278A9FB83FADADFD2F
+                               E72CE78A2563C031791D55FF31CF5946
+                               4BE7422C81968A70E040164603DC0B0A
+                               EEE93AC497CC0B770779CE6058BE80CF
+            stream[256..319] = 4C5A87029660B65782FD616F48CFD600
+                               6DFB158682DC80E085E52163BE2947E2
+                               70A0FD74DC8DC2F5920E59F28E225280
+                               FAC96BA78B8007E3D0DF6EF7BF835993
+            stream[448..511] = F5A2ECD04452358970E4F8914FC08E82
+                               926ECFF33D9FC0977F10241E7A50E528
+                               996A7FB71F79FC30BF881AF6BA19016D
+                               DC077ED22C58DC57E2BDBDA1020B30B2
+                  xor-digest = 8C9995B52F4AC9CA25E5C956850FFE90
+                               D396530617298D89659C2F863995FB06
+                               0B65ADFED6AA977EDBB4FC2F6774335E
+                               9DEBC61E05E92718A340F79368E74273
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 0000000000000000
+               stream[0..63] = 9776A232A31A22E2F10D203A2A1B60B9
+                               D28D64D6D0BF32C8CCA1BBF6B57B1482
+                               BCC9FCF7BBE0F8B61C4BF64C540474BC
+                               F1F9C1C808CCBE6693668632A4E8653B
+            stream[192..255] = 5C746D64A3195079079028D74CE029A8
+                               7F72B30B34B6C7459998847C42F2E44D
+                               843CF196229EED471B6BBDBA63BE3B52
+                               9B8AF4B5846EB0AB008261E161707B76
+            stream[256..319] = F780FE5204AC188A680F41068A9F5018
+                               2D9154D6D5F1886034C270A8C3AF61DF
+                               945381B7ADCA546E153DBF0E6EA2DDDA
+                               4EDA3E7F7CF4E2043C5E20AF659282B4
+            stream[448..511] = 71D24CD8B4A70554906A32A5EFDFA8B8
+                               34C324E6F35240257A0A27485103616D
+                               D41C8F4108D1FC76AB72AF166100AB17
+                               212492A72099ACF6F9EB53AC50BD8B8B
+                  xor-digest = B2217FF55077D373B735C1A7D8B784F5
+                               187AF2F028FE906F85B938277CAC918C
+                               E87BEA508AFF86B9071F2B7E4F88A3B1
+                               F3323151C9DF441FE6F266CF8F01A0B9
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                          IV = 0000000000000000
+               stream[0..63] = 62DF49A919AF1367D2AAF1EB608DE1FD
+                               F8B93C2026389CEBE93FA389C6F28458
+                               48EBBE70B3A3C8E79061D78E9ED24ED9
+                               AA7BB6C1D726AA060AEFC4FFE70F0169
+            stream[192..255] = E7A4DF0D61453F612FB558D1FAE198AA
+                               B1979F91E1792C99423E0C5733459365
+                               70915B60210F1F9CA8845120E6372659
+                               B02A179A4D679E8EDDDDF8843ABAB7A4
+            stream[256..319] = C9501A02DD6AFB536BD2045917B016B8
+                               3C5150A7232E945A53B4A61F90C5D0FB
+                               6E6AC45182CBF428772049B32C825D1C
+                               33290DBEEC9EF3FE69F5EF4FAC95E9B1
+            stream[448..511] = B8D487CDD057282A0DDF21CE3F421E2A
+                               C9696CD36416FA900D12A20199FE0018
+                               86C904AB629194AECCC28E59A54A1357
+                               47B7537D4E017B66538E5B1E83F88367
+                  xor-digest = 4EB0E761F6BD6A738DC295C0B1B737FC
+                               FDB2A68FF50EB198D699CC71141EC6EB
+                               54434D40B592A65F2F5C50B6027D4F52
+                               9307969E1D74028FF4BD6A44CEAA121C
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 0000000000000000
+               stream[0..63] = 6F703F3FF0A49665AC70CD9675902EE7
+                               8C60FF8BEB931011FC89B0F28D6E176A
+                               9AD4D494693187CB5DB08FF727477AE6
+                               4B2EF7383E76F19731B9E23186212720
+            stream[192..255] = AD26886ABF6AD6E0CA4E305E468DA1B3
+                               69F0ADD3E14364C8A95BD78C5F2762B7
+                               2915264A022AD11B3C6D312B5F6526E0
+                               183D581B57973AFB824945BFB78CEB8F
+            stream[256..319] = FE29F08A5C157B87C600CE4458F274C9
+                               86451983FE5AE561DF56139FF33755D7
+                               1100286068A32559B169D8C2161E215D
+                               BC32FAEA11B652284795C144CF3E693E
+            stream[448..511] = 7974578366C3E999028FA8318D82AAAA
+                               8ED3FD4DFB111CBF0F529C251BA91DC6
+                               ACFA9795C90C954CEA287D23AD979028
+                               E974393B4C3ABA251BCB6CECCD09210E
+                  xor-digest = 88BE85838404EA4F0FFDD192C43E3B93
+                               329C4A4919234D116E4393EA26110022
+                               BED2B427EC719178E6F1A9B9B08BEF5B
+                               F2FE4A9CC869CB6BD2D989F750EDA78F
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 0000000000000000
+               stream[0..63] = 61900F2EF2BEA2F59971C82CDFB52F27
+                               9D81B444833FF02DD0178A53A8BFB9E1
+                               FF3B8D7EC799A7FBB60EADE8B1630C12
+                               1059AA3E756702FEF9EEE7F233AFC79F
+            stream[192..255] = D27E0784038D1B13833ACD396413FF10
+                               D35F3C5C04A710FC58313EEBC1113B2C
+                               FA20CBD1AEA4433C6650F16E7C3B6830
+                               2E5F6B58D8E4F26D91F19FE981DEF939
+            stream[256..319] = B658FB693E80CE50E3F64B910B660BEB
+                               142B4C4B61466424A9884D22EB80B8B4
+                               0C26BEA869118ED068DCC83F9E4C68F1
+                               7A3597D0FE0E36700D01B4252EE0010E
+            stream[448..511] = 9FC658A20D3107A34680CC75EB3F76D6
+                               A2150490E9F6A3428C9AD57F2A252385
+                               C956B01C31C978E219BE351A534DB23B
+                               99908DACC6726196742D0B7E1D88472C
+                  xor-digest = DA74A6EC8D54723B1797751F786CB1B5
+                               17995EBF297A034AF744EEF86833CC5B
+                               A3DCBDB4D3FAB47F5BA37463CEC80F45
+                               DAE1A48FBB80148A39CA789BAE09D39F
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 0000000000000000
+               stream[0..63] = 42D1C40F11588014006445E81C8219C4
+                               370E55E06731E09514956834B2047EE2
+                               8A9DAECC7EB25F34A311CC8EA28EDCD2
+                               4A539160A0D8FDAA1A26E9F0CDFE0BE3
+            stream[192..255] = 976201744266DEABBA3BFE206295F40E
+                               8D9D169475C11659ADA3F6F25F11CEF8
+                               CD6B851B1F72CD3E7D6F0ABAF8FB929D
+                               DB7CF0C7B128B4E4C2C977297B2C5FC9
+            stream[256..319] = D3601C4CD44BBEEFD5DAD1BDFF12C190
+                               A5F0B0CE95C019972863F4309CE566DE
+                               62BECB0C5F43360A9A09EB5BAB87CF13
+                               E7AB42D71D5E1229AF88667D95E8C96F
+            stream[448..511] = 69EAA4BAAAA795BCF3B96E79C931A1F2
+                               D2DD16A242714358B106F38C1234A5BB
+                               D269E68A03539EFAFA79455ADBE1B984
+                               E9766B0720947E1365FDF076F73639CD
+                  xor-digest = 54E422EB1EB2DBDB338798E0D352A87A
+                               D5F5A28BC5F77E1B42913E6500723A93
+                               6D4019D703DC93A1DF7C65AB74F1FC1A
+                               4D38C519A8338B73A435FC7491DFC769
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 0000000000000000
+               stream[0..63] = 9C09F353BF5ED33EDEF88D73985A14DB
+                               C1390F08236461F08FDCAF9A7699FD7C
+                               4C602BE458B3437CEB1464F451ED021A
+                               0E1C906BA59C73A8BA745979AF213E35
+            stream[192..255] = 437E3C1DE32B0DB2F0A57E41A7282670
+                               AC223D9FD958D111A8B45A70A1F863E2
+                               989A97386758D44060F6BFFF5434C908
+                               88B4BB4EDAE6528AAADC7B81B8C7BEA3
+            stream[256..319] = 94007100350C946B6D12B7C6A2FD1215
+                               682C867257C12C74E343B79E3DE79A78
+                               2D74663347D8E633D8BE9D288A2A64A8
+                               55C71B4496587ADECCB4F30706BB4BD9
+            stream[448..511] = 585D0C2DB901F4004846ADBAA754BCA8
+                               2B66A94C9AF06C914E3751243B87581A
+                               FAE281312A492DBEE8D6BB64DD748F44
+                               5EF88F82AB44CBA33D767678914BDE77
+                  xor-digest = BB97F09B9FCEC06B6124310BBDD1E9CE
+                               8D3793F62FF1337F520DE2A90FE2592A
+                               F2636DFA20466FDAA9329443ACC0E9A5
+                               0492621AF5790CAE5642E6F7D9AF400D
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 0000000000000000
+               stream[0..63] = 4965F30797EE95156A0C141D2ACA5232
+                               04DD7C0F89C6B3F5A2AC1C59B8CF0DA4
+                               01B3906A6A3C94DA1F1E0046BD895052
+                               CB9E95F667407B4EE9E579D7A2C91861
+            stream[192..255] = 8EDF23D6C8B062593C6F32360BF271B7
+                               ACEC1A4F7B66BF964DFB6C0BD93217BB
+                               C5FACC720B286E93D3E9B31FA8C4C762
+                               DF1F8A3836A8FD8ACBA384B8093E0817
+            stream[256..319] = 44FA82E9E469170BA6E5E8833117DAE9
+                               E65401105C5F9FEA0AF682E53A627B4A
+                               4A621B63F7CE5265D3DFADFBFD4A2B6C
+                               2B40D2249EB0385D959F9FE73B37D67D
+            stream[448..511] = 828BA57593BC4C2ACB0E8E4B8266C1CC
+                               095CE9A761FB68FC57D7A2FCFF768EFB
+                               39629D3378549FEE08CCF48A4A4DC2DD
+                               17E72A1454B7FA82E2ACF90B4B8370A7
+                  xor-digest = 8A365EE7E7BC9198EC88A39F5047431D
+                               1632CBB0D1E812957595E7A0763DFA46
+                               953070863838812A9504F7A376078FEA
+                               9444B27E15FC043AE2D375D37DB1C6C3
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 0000000000000000
+               stream[0..63] = 5C7BA38DF4789D45C75FCC71EC9E5751
+                               B3A60AD62367952C6A87C0657D6DB3E7
+                               1053AC73E75FF4B66177B3325B1BBE69
+                               AEE30AD5867D68B660603FE4F0BF8AA6
+            stream[192..255] = B9C7460E3B6C313BA17F7AE115FC6A8A
+                               499943C70BE40B8EF9842C8A934061E1
+                               E9CB9B4ED3503165C528CA6E0CF2622B
+                               B1F16D24657BDAEDB9BA8F9E193B65EB
+            stream[256..319] = 406CD92883E991057DFD80BC8201067F
+                               35700264A4DFC28CF23EE32573DCB420
+                               91FEF27548613999E5C5463E840FE957
+                               60CF80CC5A05A74DE49E7724273C9EA6
+            stream[448..511] = F13D615B49786D74B6591BA6887A7669
+                               136F34B69D31412D4A9CB90234DAFCC4
+                               1551743113701EF6191A577C7DB72E2C
+                               B723C738317848F7CC917E1510F02791
+                  xor-digest = B31C13C287692760C2710CC4812A4CD3
+                               535248839E0B5220185BE58BBCE6A70D
+                               629E0749D40D9E79F698FFAFF7B9C530
+                               06419AAAD9AC1FAC2286F66DEC96AEB3
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 0000000000000000
+               stream[0..63] = 5B06F5B01529B8C57B73A410A61DD757
+                               FE5810970AA0CBFAD3404F17E7C7B645
+                               9DD7F615913A0EF2DCC91AFC57FA660D
+                               6C7352B537C65CD090F1DE51C1036AB5
+            stream[192..255] = 0F613F9E9F03199DF0D0A5C5BE253CDF
+                               138903876DE7F7B0F40B2F840F322F27
+                               0C0618D05ABB1F013D8744B231555A8E
+                               CB14A9E9C9AF39EDA91D36700F1C25B3
+            stream[256..319] = 4D9FAB87C56867A687A03BF3EDCC224A
+                               C54D04450AB6F78A642715AF62CF5192
+                               15E2CDF5338E45554B852B6FB552BCAF
+                               5C599BDF9FA679962F038976CDA2DEFA
+            stream[448..511] = E0F80A9BF168EB523FD9D48F19CA96A1
+                               8F89C1CF11A3ED6EC8AEAB99082DE99B
+                               E46DE2FB23BE4A305F185CF3A8EA377C
+                               CA1EF46FD3192D03DCAE13B79960FEF4
+                  xor-digest = AB020EA09B2573D7106EAA1D177F2E4A
+                               1F8E2237AD1481F9923DDF973A79CFC2
+                               1A0B8CDDD22D3D78C488D0CC9BE8FAA8
+                               C74F0F2CFE619B7D7EA5B2E697E23372
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 0000000000000000
+               stream[0..63] = E7BC9C13F83F51E8855E83B81AF1FFB9
+                               676300ABAB85986B0B44441DDEFAB83B
+                               8569C4732D8D991696BD7B6694C6CB20
+                               872A2D4542192BE81AA7FF8C1634FC61
+            stream[192..255] = 0B429A2957CBD422E94012B49C443CBC
+                               2E13EFDE3B867C6018BABFDE9ED3B803
+                               6A913C770D77C60DCD91F23E03B3A576
+                               66847B1CACFCBCFF57D9F2A2BAD6131D
+            stream[256..319] = EA2CBD32269BB804DD2D641452DC09F9
+                               64CB2BCD714180E94609C1209A8C26D1
+                               256067F1B86AA4F886BB3602CF96B4DD
+                               7039F0326CD24D7C2D69DE22D9E24624
+            stream[448..511] = CA0DD398EA7E543F1F680BF83E2B773B
+                               BB5B0A931DEADDEC0884F7B823FC686E
+                               71D7E4C033C65B03B292426CE4E1A7A8
+                               A9D037303E6D1F0F45FDFB0FFE322F93
+                  xor-digest = 0D67BC1CFE545A6AE2F51A7FB2F32FC6
+                               2E08707F9CBF2E08245E4594E9DB2A7E
+                               CBB6AB7190831C3D7D8F9D606231668E
+                               447C4EA29D69B4344952A97A77CC71CB
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 0000000000000000
+               stream[0..63] = C93DA97CB6851BCB95ABFAF547C20DF8
+                               A54836178971F748CF6D49AEF3C9CE8C
+                               E7D284571D871EFD51B6A897AF698CD8
+                               F2B050B6EB21A1A58A9FC77200B1A032
+            stream[192..255] = 5B4144FD0C46CEE4348B598EEF76D16B
+                               1A71CBF85F4D9926402133846136C59F
+                               BE577B8B7EB8D6A67A48358573C06876
+                               6AC76A308A14154E2FA9BD9DCA8842E6
+            stream[256..319] = 3BF67A79DF6FE3C32DA7A53CD0D37237
+                               16A99BF7D168A25C93C29DF2945D9BCB
+                               F78B669195411BD86D3F890A462734AB
+                               10F488E9952334D7242E51AC6D886D60
+            stream[448..511] = 65629AA9654930681578EEC971A48D83
+                               90FBF82469A385B8BCF28B2C1E9F13CE
+                               FC06F54335B4D5DE011F3DCE2B94D38F
+                               1A04871E273FCD2A8FA32C0E08710E69
+                  xor-digest = E308FAEC064EC30CA1BEA7C2A02E95F4
+                               ABCBF7D7762557BE9872726F9020162F
+                               9B4EA11F621426EED6297C947BB3FAC2
+                               69A8D0F38672EFBD72FDCCBEB8475221
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                          IV = 0000000000000000
+               stream[0..63] = 2DD5C3F7BA2B20F76802410C68868889
+                               5AD8C1BD4EA6C9B140FB9B90E21049BF
+                               583F527970EBC1A4C4C5AF117A5940D9
+                               2B98895B1902F02BF6E9BEF8D6B4CCBE
+            stream[192..255] = AB56CC2C5BFFEF174BBE28C48A17039E
+                               CB795F4C2541E2F4AE5C69CA7FC2DED4
+                               D39B2C7B936ACD5C2ECD4719FD6A3188
+                               323A14490281CBE8DAC48E4664FF3D3B
+            stream[256..319] = 9A18E827C33633E932FC431D697F0775
+                               B4C5B0AD26D1ACD5A643E3A01A065821
+                               42A43F48E5D3D9A91858887310D39969
+                               D65E7DB788AFE27D03CD985641967357
+            stream[448..511] = 752357191E8041ABB8B5761FAF9CB9D7
+                               3072E10B4A3ED8C6ADA2B05CBBAC298F
+                               2ED6448360F63A51E073DE02338DBAF2
+                               A8384157329BC31A1036BBB4CBFEE660
+                  xor-digest = F3BCF4D6381742839C5627050D4B227F
+                               EB1ECCC527BF605C4CB9D6FB0618F419
+                               B51846707550BBEEE381E44A50A406D0
+                               20C8433D08B19C98EFC867ED9897EDBB
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                          IV = 0000000000000000
+               stream[0..63] = 0F8DB5661F92FB1E7C760741430E15BB
+                               36CD93850A901F88C40AB5D03C3C5FCE
+                               71E8F16E239795862BEC37F63490335B
+                               B13CD83F86225C8257AB682341C2D357
+            stream[192..255] = 002734084DF7F9D6613508E587A4DD42
+                               1D317B45A6918B48E007F53BEB3685A9
+                               235E5F2A7FACC41461B1C22DC55BF82B
+                               54468C8523508167AAF83ABBFC39C67B
+            stream[256..319] = 3C9F43ED10724681186AC02ACFEC1A3A
+                               090E6C9AC1D1BC92A5DBF407664EBCF4
+                               563676257518554C90656AC1D4F167B8
+                               B0D3839EB8C9E9B127665DCE0B1FD78C
+            stream[448..511] = 46B7C56E7ED713AAB757B24056AF58C6
+                               AD3C86270CFEAE4AADB35F0DB2D96932
+                               1A38388D00ED9C2AD3A3F6D8BE0DE7F7
+                               ADA068F67525A0996DE5E4DF490DF700
+                  xor-digest = FDAEDE318DDD9EE44670318D51E812A2
+                               F9B6EAEB18B9EBDC0FB76D95CD0AE8C9
+                               5792F6EA71332404798505D947B89B04
+                               1D56FAD3B0D92BEC06428EC5A841EB82
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                          IV = 0000000000000000
+               stream[0..63] = 4B135E9A5C9D54E6E019B5A2B48B9E6E
+                               17F6E6667B9D43BC3F892AD6ED64C584
+                               4FE52F75BD67F5C01523EE026A385108
+                               3FBA5AC0B6080CE3E6A2F5A65808B0AC
+            stream[192..255] = E45A7A605BCFBBE77E781BBE78C270C5
+                               AC7DAD21F015E90517672F1553724DDA
+                               12692D23EC7E0B420A93D249C4383566
+                               22D45809034A1A92B3DE34AEB4421168
+            stream[256..319] = 14DEA7F82A4D3C1796C3911ABC2EFE9D
+                               C9EB79C42F72691F8CB8C353ECBCC0DC
+                               6159EC13DFC08442F99F0F68355D704E
+                               5649D8B34836B5D2C46F8999CD570B17
+            stream[448..511] = CA6A357766527EA439B56C970E2E089C
+                               30C94E62CB07D7FE1B1403540C2DA9A6
+                               362732811EF811C9D04ED4880DC0038D
+                               5FDCE22BDE2668CD75107D7926EC98B5
+                  xor-digest = DE518E6B67BAEC2A516CCAB0475341C4
+                               BCC652ABE49ECCAA64E87248441A8F72
+                               7BE173CACEBF8895B07DE8DDD28F1EE8
+                               AA739855F1E6DB70765AB1B55BC3B1ED
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                          IV = 0000000000000000
+               stream[0..63] = E04A423EF2E928DCA81E10541980CDE5
+                               C8054CC3CF437025B629C13677D41167
+                               21123EE13F889A991C03A2E5ADC0B12B
+                               9BBC63CB60A23543445919AF49EBC829
+            stream[192..255] = F6E1D7DBD22E05430EBFBEA15E751C83
+                               76B4743681DE6AC3E257A3C3C1F9EC6A
+                               63D0A04BF3A07F64E6B167A49CD3FDAA
+                               B89A05E438B1847E0DC6E9108A8D4C71
+            stream[256..319] = FC2B2A1A96CF2C73A8901D334462ED56
+                               D57ABD985E4F2210D7366456D2D1CDF3
+                               F99DFDB271348D00C7E3F51E6738218D
+                               9CD0DDEFF12341F295E762C50A50D228
+            stream[448..511] = 1F324485CC29D2EAEC7B31AE7664E8D2
+                               C97517A378A9B8184F50801524867D37
+                               6652416A0CA96EE64DDF26138DB5C58A
+                               3B22EF9037E74A9685162EE3DB174A0E
+                  xor-digest = 697048C59621DBC7D47B6BE93A5060C4
+                               B2DFBDB1E7E444F1FC292C06C12974D1
+                               26EA9C8FD09C63945E4D9107CD0A1AC5
+                               7161CA8C7CFEF55CB60E52666C705EC6
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                          IV = 0000000000000000
+               stream[0..63] = 361A977EEB47543EC9400647C0C16978
+                               4C852F268B34C5B163BCA81CFC5E746F
+                               10CDB464A4B1365F3F44364331568DB2
+                               C4707BF81AA0E0B3AB585B9CE6621E64
+            stream[192..255] = E0F8B9826B20AEEC540EABA9D12AB8EB
+                               636C979B38DE75B87102C9B441876C39
+                               C2A5FD54E3B7AB28BE342E377A328895
+                               6C1A2645B6B76E8B1E21F871699F627E
+            stream[256..319] = 850464EEED2251D2B5E2FE6AE2C11663
+                               E63A02E30F59186172D625CFF2A646FA
+                               CB85DC275C7CA2AF1B61B95F22A5554F
+                               BAD63C0DCC4B5B333A29D270B6366AEF
+            stream[448..511] = 4387292615C564C860AE78460BBEC30D
+                               ECDFBCD60AD2430280E3927353CEBC21
+                               DF53F7FD16858EF7542946442A26A1C3
+                               DA4CEFF5C4B781AD6210388B7905D2C7
+                  xor-digest = 2FADEF81A5C4051CAC55E16C68CC6EEF
+                               CEE2D4966BAE782E3D885CAA2271EFBB
+                               E33F9313FD00632DC73441823713A487
+                               94C21E812E30A1DD4B2AE858A27E7C88
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                          IV = 0000000000000000
+               stream[0..63] = 9F25D8BD7FBC7102A61CB590CC69D1C7
+                               2B31425F11A685B80EAC771178030AF0
+                               52802311ED605FF07E81AD7AAC79B6A8
+                               1B24113DB5B4F927E6481E3F2D750AB2
+            stream[192..255] = DAEF37444CB2B068124E074BAD188195
+                               3D61D5BA3BFBF37B21BC47935D74820E
+                               9187086CEF67EB86C88DDD62C48B9089
+                               A9381750DC55EA4736232AE3EDB9BFFE
+            stream[256..319] = B6C621F00A573B60571990A95A4FEC4A
+                               C2CA889C70D662BB4FF54C8FAAE0B7C4
+                               5B8EC5414AE0F080B68E2943ABF76EA2
+                               ABB83F9F93EF94CB3CFE9A4CEED337CD
+            stream[448..511] = 6F17EAE9346878BB98C97F6C81DD2E41
+                               5FDEB54305FE2DF74AFC65627C376359
+                               FB2E7841FF75744A715DF952851C1CBC
+                               DD241BADF37B3618E0097B3A084E1B54
+                  xor-digest = 8D1890B66A56552BE334B3472344F53D
+                               D2782D4ABB4514D0F5B761436C997402
+                               02A4B1244A1A7F485EFDB52C0065263F
+                               EE5A7D7DFC2BB754304CE9B2724119EB
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                          IV = 0000000000000000
+               stream[0..63] = 3466360F26B76484D0C4FD63965E5561
+                               8BDBFDB2213D8CA5A72F2FE6E0A13548
+                               D06E87C8A6EEA392FE52D3F5E0F6559D
+                               331828E96A07D99C6C0A42EFC24BA96D
+            stream[192..255] = AB7184066D8E0AB537BB24D777088BC4
+                               41E00481834B5DD5F6297D6F221532BC
+                               56F638A8C84D42F322767D3D1E11A3C6
+                               5085A8CA239A4FDD1CDF2AC72C1E354F
+            stream[256..319] = 55F29F112B07544EDA3EBB5892DBB91E
+                               46F8CBC905D0681D8E7109DF816ABFB8
+                               AE6A0F9833CDF34A29F25D67A60D3633
+                               8A10346FEBE72CCF238D8670C9F2B59C
+            stream[448..511] = 0657453B7806D9EA777FFFBE05028C76
+                               DCFF718BC9B6402A3CAEC3BCCB7231E6
+                               D3DDB00D5A9637E1E714F47221FFCC11
+                               B1425D9653F7D777292B146556A89787
+                  xor-digest = C2A8D317E3B1CB884A2C3B07F11FD388
+                               33282A9FBD1F6AF5C33CBE1E18D99B64
+                               99A241EA83A56605BC6B99259FBAAED4
+                               BDDA788B08CAAA93D2E00C6B5392ECF0
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                          IV = 0000000000000000
+               stream[0..63] = 40AD59C99464D95702727406E4C82C85
+                               7FA48911319A3FCC231DC91C990E19D4
+                               D9D5972B6A6F21BD12C118365ECAABC8
+                               9F9C3B63FFF77D8EA3C55B2322B57D0E
+            stream[192..255] = DBF23042C787DDF6FFCE32A792E39DF9
+                               E0332B0A2A2F2A5F96A14F51FAAB7C27
+                               14E07C3ADCA32D0DE5F8968870C7F0E8
+                               1FE263352C1283965F8C210FC25DE713
+            stream[256..319] = 455E3D1F5F44697DA562CC6BF77B9309
+                               9C4AFAB9F7F300B44AD9783A9622BD54
+                               3EFDB027D8E71236B52BEE57DD2FB3EE
+                               1F5B9022AB96A59AE7DF50E6933B3209
+            stream[448..511] = F11D47D8C57BBF862E0D6238BC0BF6A5
+                               2500A62BB037B3A33E87525259B8E547
+                               35F664FCEDF11BA2C0F3AEB9C944BCE7
+                               7FFD26D604674DF8905A73CB7E230A4F
+                  xor-digest = F021DE2B24C80A48DE6F7F807F1EF2F8
+                               13D72A77E7BFC12515F9F5755CEFF64C
+                               B5829CA780627A7920F3963E28005677
+                               B85A56017A6F5A403DA49F8F8B71581D
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                          IV = 0000000000000000
+               stream[0..63] = D8B1A4CB2A5A8DE1F798254A41F61DD4
+                               FB1226A1B4C62FD70E87B6ED7D57902A
+                               69642E7E21A71C6DC6D5430DCE89F16F
+                               CCC9AAD48743974473753A6FF7663FD9
+            stream[192..255] = D4BA9BC857F74A28CACC734844849C3E
+                               DCB9FB952023C97E80F5BFA445178CAB
+                               92B4D9AA8A6D4E79B81993B831C73765
+                               10E74E30E7E68AD3188F8817DA8243F2
+            stream[256..319] = B7039E6F6C4D5D7F750ED014E6501188
+                               17994F0D3C31B071CC16932A412E627D
+                               2486CCB9E43FCA79039D3E0F63577406
+                               F5B6420F5587CF9DAC40118AA6F170A8
+            stream[448..511] = 1ABA14E7E9E6BA4821774CBC2B63F410
+                               381E4D661F82BAB1B182005B6D42900D
+                               C658C6224F959E05095BC8081920C8AD
+                               11148D4F8BD746B3F0059E15C47B9414
+                  xor-digest = AD0620EB4E71605CDEA447A02E638F0C
+                               2A0096EA666010761DB03CFC85629680
+                               44D213B15EC69E1E5811EEBE7C96B616
+                               6BE36E42B16F9F4BE0CC71B456C1FCA1
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                          IV = 0000000000000000
+               stream[0..63] = 235E55E2759C6781BBB947133EDD4D91
+                               C9746E7E4B2E5EF833A92BE6086C57C6
+                               729655D4C4253EC17ACF359012E80175
+                               7E7A6EB0F713DEC40491266604B83311
+            stream[192..255] = 247BEAAC4A785EF1A55B469A1AEE8530
+                               27B2D37C74B8DA58A8B92F1360968513
+                               C0296585E6745E727C34FFCE80F5C72F
+                               850B999721E3BF1B6C3A019DBEE464C1
+            stream[256..319] = E7DDB25678BF6EECA2DA2390C9F333EB
+                               61CD899DD823E7C19474643A4DA31335
+                               2556E44A9C0006C8D54B1FD0313D574A
+                               08B86138394BA1194E140A62A96D7F01
+            stream[448..511] = DB417F9C1D9FD49FC96DB5E981F0C3F8
+                               484E3BDC559473963D12D982FEA287A3
+                               9A36D69DDBBCF1CA2C9FB7F4B2B37F3D
+                               A755838A67C48822F4C1E82E65A07151
+                  xor-digest = 119D1DDC7C95982B6B035FD4A4D8C5C9
+                               FD2518FFBC69C3C6A7F600174A391614
+                               6287F19BDDDAB385D2C6A39C593935F2
+                               88B2F3E8895B9519EC71BA453319CC1F
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                          IV = 0000000000000000
+               stream[0..63] = F27A0A59FA3D1274D934EACCFA0038AF
+                               C3B866D2BFA4A8BA81D698DBCA5B65D5
+                               2F3A1AC9855BEEEB3B41C510F7489E35
+                               AB22CB4444816208C282C461FF16A7BC
+            stream[192..255] = 522594154A2E4843083ABCA886102DA8
+                               14500C5AADAAB0C8FB40381B1D750F9D
+                               A9A1831D8000B30BD1EFA854DC903D63
+                               D53CD80A10D642E332DFFC9523792150
+            stream[256..319] = 5D092D8E8DDA6C878A3CFBC1EC8DD13F
+                               2A1B073916097AEC4C3E56A229D8E282
+                               DDB656DAD60DBC7DF44DF124B19920FC
+                               C27FCADB1782F1B73E0A78C161270700
+            stream[448..511] = 8F75BF72995AD23E9ADFEA351F26E42B
+                               E2BE8D67FB810ABCBD5FAE552DC10D1E
+                               281D94D5239A4EA311784D7AC7A764FA
+                               88C7FD7789E803D11E65DD6AC0F9E563
+                  xor-digest = 55AC113CC018689601F39AA80FA4FA26
+                               EE655D40F315C6B694FFAE74A09D382B
+                               62A4E7C60F75167361871A82561FFAC4
+                               53BFED061D6B01672008308C92D241FF
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                          IV = 0000000000000000
+               stream[0..63] = 654037B9120AEB60BD08CC07FFEC5985
+                               C914DAD04CD1277312B4264582A4D85A
+                               4CB7B6CC0EB8AD16475AD8AE99888BC3
+                               FDE6A5B744851C5FC77EAB50CFAD021D
+            stream[192..255] = E52D332CD0DE31F44CDCAB6C71BD38C9
+                               4417870829D3E2CFDAC40137D066EA48
+                               2786F146137491B8B9BC05675C4F88A8
+                               B58686E18D63BE71B6FEFEF8E46D0273
+            stream[256..319] = 28959548CE505007768B1AA6867D2C00
+                               9F969675D6E6D54496F0CC1DC8DD1AFB
+                               A739E8565323749EAA7B03387922C50B
+                               982CB8BC7D602B9B19C05CD2B87324F9
+            stream[448..511] = D420AEC936801FEE65E7D6542B37C919
+                               0E7DB10A5934D3617066BEA8CC80B8EA
+                               AAFC82F2860FA760776418B4FF148DFD
+                               58F21D322909E7BF0EC19010A168FAF7
+                  xor-digest = 5BAFB9BEA29B3658A5BBF649E09455B7
+                               0FB262AB938B65FE71652A0662FF0FB5
+                               14C35AF438A72A6122AC1AA8591477AE
+                               AEB78214C63E41255E87230481D1A793
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                          IV = 0000000000000000
+               stream[0..63] = 0DB7EA55A79C045818C29E99D8A4B664
+                               33E4C77DF532D71BA720BD5D82629F12
+                               76EF0BF93E636A6F71F91B947DFA7CAA
+                               A1B0512AA531603197B86ABA2B0829D1
+            stream[192..255] = A62EAFD63CED0D5CE9763609697E78A7
+                               59A797868B94869EC54B44887D907F01
+                               542028DEDDF420496DE84B5DA9C6A401
+                               2C3D39DF6D46CE90DD45AF10FA0F8AAF
+            stream[256..319] = 7C2AD3F01023BC8E49C5B36AFE7E67DC
+                               A26CCD504C222BD6AF467D4C6B07B792
+                               61E9714FDD1E35C31DA4B44DB8D4FC05
+                               69F885F880E63B5ABB6BA0BFEE2CE80C
+            stream[448..511] = 066D3C8D46F45891430A85852FF53744
+                               8EBDD6CE8A799CCF7EAF88425FBD60D3
+                               2A1741B39CC3C73371C2C9A36544D3C3
+                               B0F02D2596ACC61C60A6671F112F185E
+                  xor-digest = 6EE5BF7E194B03A7DDC92FC74A398FF8
+                               22471FEF6DD399426F7372E445E1EE36
+                               5ED7164CD09120A79CCF03D0A2A309DC
+                               5932441B64DDC6FDC9E183DA9F825106
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                          IV = 0000000000000000
+               stream[0..63] = 3FE4BD60364BAB4F323DB8097EC189E2
+                               A43ACD0F5FFA5D65D8BDB0D79588AA9D
+                               86669E143FD5915C31F7283F1180FCAB
+                               CDCB64B680F2B63BFBA2AF3FC9836307
+            stream[192..255] = F1788B6CA473D314F6310675FC716252
+                               8285A538B4C1BE58D45C97349C8A3605
+                               7774A4F0E057311EEA0D41DFDF131D47
+                               32E2EAACA1AB09233F8124668881E580
+            stream[256..319] = FEF434B35F024801A77400B31BD0E735
+                               22BEC7D10D8BF8743F991322C660B4FD
+                               2CEE5A9FDE0D614DE8919487CBD5C6D1
+                               3FEB55C254F96094378C72D8316A8936
+            stream[448..511] = 338FD71531C8D07732FD7F9145BBC368
+                               932E3F3E4C72D2200A4F780AF7B2C3AA
+                               91C1ED44DBEAA9A2F1B3C64DCE8DCD27
+                               B307A4104D5C755693D848BEA2C2D23B
+                  xor-digest = 7ABF3C4E6E8CCAC05AA336DF2156E195
+                               7DFDAD45995FF6268B9708DAED9C2097
+                               F8F0F2A0EE5FBF4A7B511ED2E8E56179
+                               93E915E9BAABA30D758A9691E9D8578A
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                          IV = 0000000000000000
+               stream[0..63] = 062187DAA84742580D76E1D55EE4DE2E
+                               3B0C454F383CFDDE567A008E4E8DAA3C
+                               E645D5BEDA64A23F0522D8C15E6DA0AD
+                               88421577A78F2A4466BD0BFA243DA160
+            stream[192..255] = 4CC379C5CF66AA9FB0850E50ED8CC58B
+                               72E8441361904449DAABF04D3C464DE4
+                               D56B22210B4336113DAA1A19E1E15339
+                               F047DA5A55379C0E1FE448A20BC10266
+            stream[256..319] = BD2C0F58DBD757240AEB55E06D5526FE
+                               7088123CE2F7386699C3E2780F5C3F86
+                               374B7CB9505299D639B89D7C717BA8A2
+                               AEED0C529F22F8C5006913D1BE647275
+            stream[448..511] = 54D61231409D85E46023ED5EFF8FDC1F
+                               7A83CACDDB82DD8D1FA7CDEA0E088A61
+                               D02BCE7FA7EC3B73B66953DA467BE4B9
+                               12EBE2A46B56A8BF0D925A919B7B22E3
+                  xor-digest = 9F569A8133067D1D4651BAE70DB3FE20
+                               1649A1DA469C7D7C0B0DF16968285BF4
+                               ED0F36ED1CF9F213B2EC4BFF83D455FF
+                               C8B19E82DAE61408141F221C255DDFAB
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                          IV = 0000000000000000
+               stream[0..63] = 1A74C21E0C929282548AD36F5D6AD360
+                               E3A9100933D871388F34DAFB286471AE
+                               D6ACC48B470476DC5C2BB593F59DC17E
+                               F772F56922391BF23A0B2E80D65FA193
+            stream[192..255] = B9C8DAC399EF111DE678A9BD8EC24F34
+                               0F6F785B19984328B13F78072666955A
+                               B837C4E51AC95C36ECBEFFC07D9B37F2
+                               EE9981E8CF49FD5BA0EADDE2CA37CC8D
+            stream[256..319] = 3B0283B5A95280B58CEC0A8D65328A7A
+                               8F3655A4B39ECBE88C6322E93011E13C
+                               FF0A370844851F4C5605504E8266B301
+                               DD9B915CA8DCD72E169AEA2033296D7F
+            stream[448..511] = 4F9CA1676901DDC313D4EE17B815F6B5
+                               AC11AF03BF02517FB3B10E9302FCBF67
+                               C284B5C7612BBE7249365BCAC07FD4C2
+                               C7AE78F3FDA1880B2DAA20E4EC70F93B
+                  xor-digest = 9B9EA936FD4385D3516304BEFC44BC6D
+                               5B60C97925B52CE269F2843496DEBD33
+                               5A07ADA2EC87BA27E306CFFB884935D7
+                               74EE317C7307740B884095278D1DB0C2
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                          IV = 0000000000000000
+               stream[0..63] = 0281FB6B767A90231AB6A19EB1E4FB76
+                               A041063FE23AC835797DFA178CC2D7C2
+                               8DFAD591D2EAF26A985332F8DC74537D
+                               F7E0A5F26946BCF7D70B6C3D9DD859D2
+            stream[192..255] = 088ED6D7AB26EEC97518EBF387B0644F
+                               D22266E578F141A7218F94AE2EE5885A
+                               67A9FA304F6880A781EE05C1251A7EAD
+                               4C3025D833B59739C68D3D7F3A844148
+            stream[256..319] = 6B48D13EC0EB1CD0CDAC5D5E09DC7BE4
+                               AE02BE4283DDC7FA68E802A31508E6EA
+                               7197E5AC10805FDEB6824AEEF8178BAA
+                               45D7E419CF9237155D379B38F994EF98
+            stream[448..511] = 7E71823935822D048B67103FF56A709A
+                               25517DCE5CFBB807B496EEF79EFFBCD1
+                               0D23BAD02758814F593B2CD4AC062699
+                               AEC02B25A7E0D1BAE598AFDBE4333FE7
+                  xor-digest = 0D4802AF0B0F92FFF2F80FE65FE5D1FB
+                               DFEF122231028FE36CC164D1D39185A1
+                               869AD43D08C6E1C9F8A9113CE2CEF0A0
+                               22629C6FAC1C27E6DDF2A46C52293681
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                          IV = 0000000000000000
+               stream[0..63] = D4ACE9BF4A76822D685E93E7F77F2A79
+                               46A76E3BF0910854C960331A41835D40
+                               902BC1CF3F8A30D4C8391087EC3A03D8
+                               81E4734A5B830EFD55DA84159879D97F
+            stream[192..255] = 5BD8BB7ED009652150E62CF6A17503BA
+                               E55A9F4ECD45B5E2C60DB74E9AE6C8BF
+                               44C71000912442E24ED2816243A7794D
+                               5B1203A246E40BE02F285294399388B1
+            stream[256..319] = 55433BDEA349E8849D7DF899193F029A
+                               9F09405D7AFE842CB2C79F0E55C88913
+                               B0776825D8D036A69DDDCD6AFCA6588F
+                               69F0946A86D32C3585F3813B8CCB56AF
+            stream[448..511] = 0B67F00FA0BB7D1ED5E4B46A68794864
+                               5239422656F77EF2AFEA34FFF98DA7A8
+                               90970F09137AF0FABD754C296DD3C6F2
+                               7539BC3AE78FFA6CDCCC75E944660BB4
+                  xor-digest = 9D6D8BAB5F6EDB5450EA2D5751741351
+                               199ED720B0572410FD698C99F2E0DB92
+                               C0E62E68AEE0CC6CDB6EA8898BFD29E8
+                               E106470DE4E5C66F94FE0258A2D24CA3
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                          IV = 0000000000000000
+               stream[0..63] = 92A067C3724F662120C25FAF4B9EC419
+                               C392D98E5CB8C5EE5842C1D5C704DE87
+                               8C8C68C55BA83D63C5DEEC24CFF7230D
+                               3F6FBF6E49520C20CFE422798C676A47
+            stream[192..255] = 133C9A30B917C583D84FB0AAC2C63B5F
+                               6758AC8C2951196E9460ADBE3417D914
+                               90F0A195DC5682F984069506CA75DC1D
+                               79A7AE1DCDF9E0219D4E6A005BA72EDD
+            stream[256..319] = 091D38749503B63238B1E3260855B76C
+                               5CFE9D012265FB7F58EB8CAA76B45645
+                               9C54F051274DDAE06BEC6D7EB8B9FF59
+                               5302D9D68F2AF1057581D5EE97CCEEDD
+            stream[448..511] = 3FCCB960792B7136768BBA4C3D69C597
+                               88F04602C10848A7BCBED112F860998D
+                               9E9A788998D1DC760F7ECF40597446D8
+                               F39CD4D4013F472BB125DE6A43E9799D
+                  xor-digest = 12464226235C1DDDAFA37DF12F3A0444
+                               42C0EEE521DBB7B3239C86ADB61AD6A0
+                               A418D3804252DC3658A3AE82473023A8
+                               D190E1EDB1DAFA3CF566573511CF8F19
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                          IV = 0000000000000000
+               stream[0..63] = AC3DE1B9F6DF6D6117B671A639BF0761
+                               24A0A6D293B107554E9D662A8BFC3F34
+                               17C59437C981A0FDF9853EDF5B9C38FE
+                               74072C8B78FE5EBA6B8B970FE0CE8F1F
+            stream[192..255] = 23112BD4E7F978D15F8B16F6EDB130D7
+                               2F377233C463D710F302B9D7844C8A47
+                               FB2DFDD60235572859B7AF100149C87F
+                               6ED6CE2344CDF917D3E94700B05E2EEF
+            stream[256..319] = E8DDFE8916B97519B6FCC881AEDDB42F
+                               39EC77F64CAB75210B15FBE104B02FC8
+                               02A775C681E79086D0802A49CE6212F1
+                               77BF925D10425F7AD199AB06BD4D9802
+            stream[448..511] = F9D681342E65348868500712C2CA8481
+                               D08B7176A751EF880014391A54680992
+                               6597B10E85761664558F34DA486D3D44
+                               54829C2D337BBA3483E62F2D72A0A521
+                  xor-digest = 75BEFA10DACA457FFE4753A13543F996
+                               4CF17E6941318C931575A0865B1C86C1
+                               2EE5E031EFD125A3D56C4B7846C19484
+                               507CC551C5CB558533E288BA0D2C14F1
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                          IV = 0000000000000000
+               stream[0..63] = 21BD228837BFB3ACB2DFC2B6556002B6
+                               A0D63A8A0637533947615E61FE567471
+                               B26506B3D3B23F3FDB90DFAC6515961D
+                               0F07FD3D9E25B5F31B07E29657E000BF
+            stream[192..255] = 2CF15E4DC1192CA86AA3B3F64841D8C5
+                               CD7067696674B6D6AB36533284DA3ABF
+                               D96DD87830AE8FA723457BE53CB3404B
+                               7A0DCBB4AF48A40FC946C5DEB7BD3A59
+            stream[256..319] = E3B15D2A87F61C2CE8F37DCEB896B5CA
+                               28D1DA6A3A71704309C0175BB6116911
+                               9D5CBE34FC8F052961FF15F2C8F06CD6
+                               F8E889694E2C69E918DD29C33F125D31
+            stream[448..511] = CCD1C951D6339694972E902166A13033
+                               A1B0C07313DC5927FE9FB3910625332C
+                               4F0C96A8896E3FC26EFF2AF9484D28B8
+                               CB36FF4883634B40C2891FA53B6620B1
+                  xor-digest = 1E6FA2DF675C21D1AA9819BA05D3C96D
+                               3463D6F0758286BBB41A63F8748B94C8
+                               B652C60C5D4655E8436F2379CA7088B4
+                               9625667F386BC5A2F25FD0BFB0088FAA
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                          IV = 0000000000000000
+               stream[0..63] = 7943AD4AA5F62E08E1AE450E84CFF27D
+                               E3B204A2BCA315B981906D5A13F68AB0
+                               34D3396EA8A41001AF49834368805B37
+                               D5380FB14821E3F7F4B44231784306F3
+            stream[192..255] = 415F5381C9A58A29045E77A1E91E6726
+                               DFCEBC71E4F52B36DBD7432D158F2ADB
+                               31CF5F52D8456952C09B45A16B289B7A
+                               32687716B8EDFF0B1E5D0FC16DCCFA88
+            stream[256..319] = CE317CB853E2AFA22392D4B8AE345A91
+                               0807F8DE3A14A820CDA771C2F2F3629A
+                               65A1CC7A54DDEC182E29B4DACEA5FBFA
+                               4FAC8F54338C7B854CD58ABA74A2ACFF
+            stream[448..511] = 5804F61C5C07EC3C2D37DF746E4C96A1
+                               AD5E004C2585F3F401CB3AF62CB975F8
+                               64375BE3A7117079810418B07DABCCEE
+                               61B6EC98EA4F28B0D88941CB6BE2B9D2
+                  xor-digest = 9DBDBD0C3B340F294B1EB42CAD3111F0
+                               A5CF6A0B6206976022C6A2D6303A235B
+                               717542C25397879A27480D67AC5A245D
+                               0C58334CD801764A948060CA6F99E2D6
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                          IV = 0000000000000000
+               stream[0..63] = A4FB9A02500A1F86145956E16D04975E
+                               2A1F9D2283D8AD55C17A9BD6E0C8B561
+                               6658132B8928F908FEC7C6D08DBFBC55
+                               73449F28AA0EF2884E3A7637233E45CD
+            stream[192..255] = 74D169573560C14692BBE2498FDA0ED7
+                               866A11EE4F26BB5B2E9E2559F089B35E
+                               C9972634C5A969DD16EB4341782C6C29
+                               FBBF4D11ECB4133D1F9CA576963973EB
+            stream[256..319] = D28966E675759B82EDE324ABA1121B82
+                               EAB964AB3E10F0FE9DF3FCC04AFC8386
+                               3A43FD6B7FC0AD592C93B80BE99207CB
+                               A8A55DDEA56DD811AAD3560B9A26DE82
+            stream[448..511] = E362A817CCD304126E214D7A0C8E9EB9
+                               3B33EB15DE324DDDFB5C870EA22279C7
+                               8E28EFF95974C2B935FC9F1BF531D372
+                               EF7244D2CC620CEBDE5D8096AD7926B3
+                  xor-digest = 3DD73F824FD1D9CB55B7E37C9C8A55C7
+                               EBB0866564AEA680BBBD431554D89E81
+                               FF280B563D5991438CEA5C183C607ADC
+                               23CC72CDE3A4D2CEB27B81ED8E5C9215
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                          IV = 0000000000000000
+               stream[0..63] = FF879F406EAF43FABC6BE563ADA47C27
+                               872647F244C7FAE428E4130F17B47138
+                               0E1E1CD06C50309760FDEE0BC91C31D0
+                               CA797E07B173C6202D2916EEBA9B6D1C
+            stream[192..255] = 61E724B288AECF393483371C1BE653F3
+                               7BBA313D220173A43459F0BCE195E45C
+                               49B3B5FB1B0539DE43B5B4F2960D8E6E
+                               5BC81DAF07E9EFBB760881441FA8823B
+            stream[256..319] = F77AC22945ECD60EBCAF4BA19A59B078
+                               B3C3BC36D1DDA6B9969B458C2019D68E
+                               FD04D75DDC6041BBCD69747651D2DA7F
+                               BED721081F8147367585CABB1C50CF0C
+            stream[448..511] = 7475DCD3545B810445AFCA0C0AFA93A9
+                               11EA99991A5D639AB32DDF69AA21C45A
+                               53DCB998FDAE5F9A82EC8501123EAE3D
+                               99351C43311F8430DB3D230E12DA77D2
+                  xor-digest = A61CDBCF6F79213D2A789543B0EA3D8A
+                               22BA4FB8118C1D40AE56EC8238861566
+                               20CED8AA76FFE917C1E52060F91EE73B
+                               C75E913D072C50B3D939E04F69493553
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                          IV = 0000000000000000
+               stream[0..63] = 2B4C4185E2FDFAE75DABFF32632FB5D9
+                               823359F15E2D17FF74FAC844E5016A4A
+                               64C2C47498A15029FBEB6E4893381E65
+                               6D2A2B9712524827B151C6E67D990388
+            stream[192..255] = D870A94C4856EF818C5D93B2187F09C7
+                               32E4491103B8A49B14CDC118F1607E2D
+                               8443740F20220DF076B981D90436E9C3
+                               09282C1CEAAE6375002AD1CA9CCF720C
+            stream[256..319] = 5091AE53E13948DAE57F6B0BE95B8F46
+                               A1F53553767B98F9799A0F0AC468AEB3
+                               40C20E23FA1A8CAE7387CEA127A7A0F3
+                               635667BF028DE15179093B706306B99C
+            stream[448..511] = 02323B1FA2C863D3B4A89CFC143013A6
+                               EEA8265BBD1B8FE243DEA2F4B19A5726
+                               593564E7E7021FD042F58077A5821C2F
+                               415BC38D6DD2BE29A5400E4B1D65B2A2
+                  xor-digest = 9B29085D13B4992B077E3A878A5918B5
+                               92C98C8A83956EC20EFE673A24C48C91
+                               5D8DB1A4A66F62F1A3E7D6ADF6DC8845
+                               DD7A6D43F9DBF6C1EA21639060469AD6
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                          IV = 0000000000000000
+               stream[0..63] = 9A5509AB6D2AB05C7DBA61B0CC9DD844
+                               B352A293E7D96B5C0066ACDB548DB857
+                               0459E989B83AF10A2C48E9C00E02671F
+                               436B39C174494787D1ECEB3417C3A533
+            stream[192..255] = 8A913EBA25B4D5B485E67F97E83E10E0
+                               B858780D482A6840C88E7981F59DC51F
+                               2A86109E9CD526FCFA5DBF30D4AB5753
+                               51027E5A1C923A00007260CE7948C53D
+            stream[256..319] = 0A901AB3EBC2B0E4CBC154821FB7A0E7
+                               2682EC9876144C4DC9E05098B6EFCCCB
+                               90E2F03837553C579CDD0A647D6A6963
+                               50000CA57628B1E48E96242226A92ECC
+            stream[448..511] = 9CDB39B79A464F2CCA3637F04EBAEA35
+                               7A229FC6A9BA5B83171A0A8945B6F117
+                               56EBC9F4201D0BA09C39F97767213046
+                               32AA6A68ADE5B90268AEE335E13B1D39
+                  xor-digest = 695757EDF4992CE9E1C088D62CAB18A3
+                               8F56EE71F1F4866E88D1A02E07CB89B9
+                               133F0B02A23BA39622E84E19DACDF323
+                               97F29E50151F78524B717093131A10B1
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                          IV = 0000000000000000
+               stream[0..63] = 37EDAFA4F5EDC64EBF5F74E543493A53
+                               93353DE345A70467A9EC9F61EEFE0ED4
+                               532914B3EA6C2D889DA9E22D45A7DD32
+                               1EA5F1F6978A7B2E2A15D705DE700CE4
+            stream[192..255] = C415739777C22430DAB2037F6287E516
+                               B1CE142111456D8919E8CD19C2B2D30D
+                               8A1B662C26137F20F87C2802A2F3E66D
+                               8CEB9D3C1B4368195856249A379BD880
+            stream[256..319] = 0381733EC9B2073F9E4E995447118411
+                               2D99B23FA4A87B4025C6AF955E93E0D5
+                               7DD37011E1624175F970BDA7D625224B
+                               AB0F021E6453DBA894A5074C447D24BC
+            stream[448..511] = F9D45C7E0E7A26F2E7E2C07F68AF1191
+                               CC699964C01654522924A98D6790A946
+                               A04CD9586455D5A537CBA4D10B3C2718
+                               745C24875156483FE662B11E0634EAEA
+                  xor-digest = E0FE8129B73BCADA14FB385E6D3DB22D
+                               84C9755D63E93141202576FB5B2D3647
+                               D47B2F6378BC8567E4416976443FAE76
+                               3C2B5FA46F2670C301A5B22802513D2D
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                          IV = 0000000000000000
+               stream[0..63] = B935A7B6D798932D879795A182E7C194
+                               BECEFF32522C2F3FFF55A5C6D32A91D2
+                               BA9F144DB280ABA7BA8A7921AFA3BD82
+                               CA742DDBEAF8AF72299936E9C2FEA59E
+            stream[192..255] = 6F32248B6EF4CDAE06864B6477893440
+                               F0E0217421D7081D1F0DA197B5263674
+                               0E9BDD59068BEDE48BF52C43446C12CD
+                               4F10ED22BFDDFA915FA0FB1A73F9139C
+            stream[256..319] = BF01A4ED868EF9080DF80689E589897C
+                               021DCA18073F9291E1D158DC26266556
+                               728DD130629D3760F541439147F4C1CA
+                               279FB98040E9FCE50998E42D6259DE1F
+            stream[448..511] = 0F2B116CD687C91FBA1EDEAD586411E9
+                               66D9EA1076863EC3FDFC254DD5C93ED6
+                               AE1B01982F63A8EB13D839B2510AD02C
+                               DE24210D97A7FA9623CAC00F4C5A1107
+                  xor-digest = C6970385CA89CDFCACA9E90DA2A2FE99
+                               58EF83B9BF04DBE7A3B3437503688831
+                               05FF6665D9F91D4DBBBCAF31B555ED3D
+                               D07C3AC824281730BF834693C596AD54
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                          IV = 0000000000000000
+               stream[0..63] = 09D36BFFDDCD3ADC8EB0ABEEB3794CE1
+                               FFBDED9CFC315D21A53C221B27722FE3
+                               F10E20D47DDCFD3CCDE9C1BAAF01F551
+                               1D3F14F88BF741A7F6578C3BC9024B2B
+            stream[192..255] = 552502A1B2D0F29806DE512F3314FC8E
+                               19518E35D9DB1EBC9034EA46E5815AB9
+                               DF0F403E997E676BF47C0116D5E9B817
+                               26B99D65AA4315F1E5906F6E39B1297E
+            stream[256..319] = 6BF351A501E8D1B4BAF4BFD04726DC4F
+                               50200463DCC13FF3BE93E6C4D4304CE0
+                               9E6A1CEA41BFB93D6DBAD713298F79CF
+                               F6F5BB81F456E33A3396D02F2E33BDC5
+            stream[448..511] = 715F8FFB2BC25CD89E46B706EF871207
+                               EFE736AA3CB961B06E7B439E8E4F76E2
+                               944AF7BD49EEC47B4A2FD716D191E858
+                               59C74FD0B4A505ACE9F80EEB39403A1F
+                  xor-digest = D51B519D78CDBC8DF5CB1CEA5EBBA6E4
+                               6530535D84CBF1696EBF238D3F7AA4A1
+                               D2F1EF5FF092DB57943E28501C64CFF0
+                               4619197ED4A3D82EEEB2B2E9648D7494
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0000000000000000
+               stream[0..63] = BE4EF3D2FAC6C4C3D822CE67436A407C
+                               C237981D31A65190B51053D13A19C89F
+                               C90ACB45C8684058733EDD259869C58E
+                               EF760862BEFBBCA0F6E675FD1FA25C27
+        stream[65472..65535] = F5666B7BD1F4BC8134E0E45CDB69876D
+                               1D0ADAE6E3C17BFBFE4BCE02461169C5
+                               4B787C6EF602AF92BEBBD66321E0CAF0
+                               44E1ADA8CCB9F9FACFC4C1031948352E
+        stream[65536..65599] = 292EEB202F1E3A353D9DC6188C5DB434
+                               14C9EF3F479DF988125EC39B30C014A8
+                               09683084FBCDD5271165B1B1BF54DAB4
+                               40577D864CD186867876F7FDA5C79653
+      stream[131008..131071] = C012E8E03878A6E7D236FEC001A9F895
+                               B4F58B2AF2F3D237A944D93273F5F3B5
+                               45B1220A6A2C732FC85E7632921F2D36
+                               6B3290C7B0A73FB61D49BC7616FC02B8
+                  xor-digest = 196D1A0977F0585B23367497D449E11D
+                               E328ECD944BC133F786348C9591B35B7
+                               189CDDD934757ED8F18FBC984DA377A8
+                               07147F1A6A9A8759FD2A062FD76D275E
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 0000000000000000
+               stream[0..63] = BA1A48247B8C44AAF12F5645D65FF7F4
+                               E4D7C404EE0CBB691355FAEB82D03B99
+                               AD0FDFC20A1E593973E5B8F0264F7FB0
+                               538292A4C8FE8218A1DA3EB7B71EEA64
+        stream[65472..65535] = 03A24E89D69D5E1DA98B0367CF626F33
+                               D558B1208AB120B6B1778BFF640F56DA
+                               715FE1B681D8CC0F305D6645B439BA81
+                               D3C446A428B31BB18E9DA1E2A900B0FD
+        stream[65536..65599] = 6A28ADD4F926759CEBB0AFC5D5DA5243
+                               1F2E7ECBBD1E9DEAF368137E35F1AFBD
+                               65852214FA06310C3175FCF364810F62
+                               7E3703E9AC5458A8B681EB03CEECD872
+      stream[131008..131071] = E8D8AB5E245B9A83A77B30F19E3706F0
+                               37272E42F9C6CD7E8156C923535EF119
+                               B633E896E97C404C6D87565EEA08EB7F
+                               F6319FF3E631B6CDD18C53EE92CCEEA0
+                  xor-digest = 2BD4F834BC7B3C128E291B2BCE7DA0A5
+                               BA1A17E2785093B7F32B7D605AE63276
+                               F8256998EC1E0B5A7FD2D66EE9B0B705
+                               E49435EDF8BACE1BE770738A403B8F14
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 0000000000000000
+               stream[0..63] = 8313F4A86F697AAC985182862E4FC623
+                               3511C46B6DAEEDB94B63461111CB4768
+                               72F1BC3B4E8EE80A4ADE7D1A8CD49C17
+                               1D3A550D3F39B7775734225579B8B60A
+        stream[65472..65535] = 6AFA6F539C0F3B0B9DEB0235E7EB2E14
+                               B111615D4FBC5BF7FFE75E160DEDA3D9
+                               932125469AEC00539ECE8FCF8067CB0F
+                               B542C2064267BEA7D9AD6365314D5C2C
+        stream[65536..65599] = 296F2B5D22F5C96DA78304F5800E0C87
+                               C56BC1BACD7A85D35CFECE17427393E1
+                               611975CC040D27DF6A5FABC89ADDE328
+                               AE8E9CB4F64CFA0CB38FE525E39BDFE4
+      stream[131008..131071] = 86C8139FD7CED7B5432E16911469C7A5
+                               6BDD8567E8A8993BA9FA1394348C2283
+                               F2DF5F56E207D52A1DA070ABF7B516CF
+                               2A03C6CD42D6EA2C217EC02DF8DDCA9C
+                  xor-digest = DEEBF1FCF222519E26EC6556EA449080
+                               92923B357CB88D1A1C1B03341F5C6A98
+                               4C70E9DB735377615C0476D46DA9897B
+                               48127A0D224241E79FE8CF51B005EF93
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 0000000000000000
+               stream[0..63] = 62765613D127804ECD0F82D208D70156
+                               3B1685EEF67945DAE2900307CDB14EA6
+                               2474A439D8BAE8005493455471E7BCB9
+                               DB75F0596F3FB47E65B94DC909FDE140
+        stream[65472..65535] = 00A0D5B2CE7B95E142D21B57B187C29C
+                               19B101CD063196D9B32A3075FB5D54A2
+                               0D3CE57CBEC6CA684CB0E5306D5E21E5
+                               657F35B8FB419A0251EA5CD94113E23B
+        stream[65536..65599] = AAC2D29404A015047DEFB4F11460958D
+                               A989141026FE9325F15954363FC78898
+                               D4A20F6870F4D2B124590973F6956096
+                               940E2324F7C63384A85BACF53F7755E3
+      stream[131008..131071] = 0A543607FE352336ACFEDFE6B74359E0
+                               B26B19FD45A8938C6C0A6DB68A137749
+                               5B65211558D0CB9ECA9DA2C0E50702B6
+                               88B2DEC53AAA2FBF11BD149F4F445696
+                  xor-digest = D124AA942DC1D54D5B9B4BC6804F9990
+                               543EAF31FF441F0CD16B961C817EA4A7
+                               6AF71F678BBB482052B2BA767B4F9265
+                               B65C3D839D182D093B560AEB09184C0C
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000000000000000
+                          IV = 8000000000000000
+               stream[0..63] = B66C1E4446DD9557E578E223B0B76801
+                               7B23B267BB0234AE4626BF443F219776
+                               436FB19FD0E8866FCD0DE9A9538F4A09
+                               CA9AC0732E30BCF98E4F13E4B9E201D9
+            stream[192..255] = 462920041C5543954D6230C531042B99
+                               9A289542FEB3C129C5286E1A4B4CF118
+                               7447959785434BEF0D05C6EC8950E469
+                               BBA6647571DDD049C72D81AC8B75D027
+            stream[256..319] = DD84E3F631ADDC4450B9813729BD8E7C
+                               C8909A1E023EE539F12646CFEC03239A
+                               68F3008F171CDAE514D20BCD584DFD44
+                               CBF25C05D028E51870729E4087AA025B
+            stream[448..511] = 5AC8474899B9E28211CC7137BD0DF290
+                               D3E926EB32D8F9C92D0FB1DE4DBE452D
+                               E3800E554B348E8A3D1B9C59B9C77B09
+                               0B8E3A0BDAC520E97650195846198E9D
+                  xor-digest = 104639D9F65C879F7DFF8A82A94C130C
+                               D6C727B3BC8127943ACDF0AB7AD6D28B
+                               F2ADF50D81F50C53D0FDFE15803854C7
+                               D67F6C9B4752275696E370A467A4C1F8
+
+Set 5, vector#  9:
+                         key = 00000000000000000000000000000000
+                          IV = 0040000000000000
+               stream[0..63] = 1A643637B9A9D868F66237163E2C7D97
+                               6CEDC2ED0E18C98916614C6C0D435B44
+                               8105B355AE1937A3F718733CE1526231
+                               6FA3243A27C9E93D29745C1B4DE6C17B
+            stream[192..255] = CDDB6BD210D7E92FBFDD18B22A03D66C
+                               C695A93F34FB033DC14605536EEEA06F
+                               FC4F1E4BACFCD6EB9DA65E36C46B26A9
+                               3F60EAA9EC43307E2EA5C7A68558C01A
+            stream[256..319] = 5FC02B90B39F3E90B8AEC15776F2A94F
+                               D8C26B140F798C93E1759957F99C613B
+                               8B4177A7B877D80A9B9C76C2B84E21A6
+                               DF803F0DB651E1D0C88FB3743A79938F
+            stream[448..511] = B4BC18F7279AC64BB6140A586F45AC96
+                               E549C0CA497F59B875C614DE605A8BFF
+                               63AB3F1E00DAEAE7A5CC7A7796E9BACC
+                               DD469E9100EABCD6E69301EA59C4B76A
+                  xor-digest = 4EF8F9A7D50D7ABEC1A104565E9E20BF
+                               35FACFDD5600B0360E3ECBDE626CC693
+                               4A52173415C05BA5EE681D649CB60D18
+                               6970CF18BC028AF829054903FDEB37BA
+
+Set 5, vector# 18:
+                         key = 00000000000000000000000000000000
+                          IV = 0000200000000000
+               stream[0..63] = 94B7B07E184BC24A0904290B2601FC3A
+                               C70BEAD7B1FC3294360ED4EF16813453
+                               0B4D1F3F28A3C3B248B2E914A8DCBD53
+                               26A240C9BB361A8A93D023725BDCD4E3
+            stream[192..255] = 27C7A2C4EAA1E2E8798CA71EA50B7E5A
+                               CD9FC82263D11781EFC16142CFD21A63
+                               4DB2B860B54A9979AFA187CE0667D176
+                               23FC91EC1E5E6C31A8089628AC76F9F0
+            stream[256..319] = C2CD243516E5919D6C5C478469260813
+                               ABE8E6F54BE8E11D48FEC043CDADA19B
+                               EFE9CB0C22A9BB30B98E4CFCF1A55EF1
+                               263B209CE15FEAEF8237CFAF7E5286D6
+            stream[448..511] = 84489BD680FB11E5CAA0F5535ABA86DC
+                               FF30AC031CEFED9897F2528035977726
+                               70E1E164FA06A28DD9BAF625B576166A
+                               4C4BF4CADD003D5DF2B0E6D9142DD8B3
+                  xor-digest = 783AD910F37369EFB54DD9A00D54CDB7
+                               2EEAF2693C121B13344025E08DF874AC
+                               4BBC08B8FA916B423B0F4667A6D1BAEC
+                               3016B999FF9FAB317161422E4FF925AB
+
+Set 5, vector# 27:
+                         key = 00000000000000000000000000000000
+                          IV = 0000001000000000
+               stream[0..63] = 2E6C8BE7DD335292EE9152641B0E4EFB
+                               43D27434E4BE70EAC4CAFAE5C38B2E5B
+                               06E70B9966F4EDD9B4C4589E18E61F05
+                               B78E7849B6496F33E2FCA3FC8360824C
+            stream[192..255] = 1006D6A04165A951C7EE31EEB0F6C32B
+                               D0B089683C001942886FCEF9E700D15A
+                               DB117652735C546D30177DC14FA68708
+                               D591C3254C05B84BF0DCBC3105F06A6F
+            stream[256..319] = 2196ADA05BED2BD097A43E4C5BE6C940
+                               4A353689939DCB9C4F82278BDB0EB505
+                               F70FFD9921B46645EDDFCF47405FD3E6
+                               7CAE732B367A0B0F2B57A503161FA5DE
+            stream[448..511] = 4A3504DAC25F59489C769090D822E89E
+                               1338AC73F22DB2614B43D640525EF996
+                               9D6B7E3900ADCBE056AB818E0FF708E3
+                               B0A8E63531F252C384DD3DE7318EA866
+                  xor-digest = 33533F81725EA5444E0642A07A334AE5
+                               AC3DD16214F6FE196A60A4343AFA5026
+                               E1602E84D3E672EEDB9FB5BB6F44C023
+                               66C28BD8E3CF673BB34F438CF82561E2
+
+Set 5, vector# 36:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000008000000
+               stream[0..63] = 1D3FD8BAF2A13BCD2A49B50F8DFB0522
+                               8E366B4FD2ECD6973DFF116289D7E0AF
+                               55EFB875345204B5FCE27A1C6DF79531
+                               B3175647526BF5C028C454BADEFBECD6
+            stream[192..255] = F639D0D23CC5817501517216ADA14241
+                               D08495F17CDEAFB883CE619A3255EC3F
+                               EAADFA224CF354C425A74D3DDAAA0C86
+                               E44016238C142B36944EF53A1EC7DF92
+            stream[256..319] = 9CAE4D4639696A188E08BC1B01774608
+                               5D18418F82DC90742BB6D172414ACC13
+                               A4721B018B2CC002CB6E6FFE4A4E252C
+                               C4BF5DE975684C8805036F4C76660DC8
+            stream[448..511] = CB2A2CB3136F5CC71FD95A4A242B15E5
+                               1C8E3BAE52FEC9C1B591B86DFDDC2442
+                               353DF500B2B9868A6C609655FC1A3E03
+                               347608D12D3923457EEEB34960F4DB31
+                  xor-digest = D623CA4753D2197E68B87B1ACBD84CC9
+                               A056EC02F83D7E399CE2C4ACCF7934A5
+                               A0CAE68FC0EB88098AA39DA88881C7B2
+                               4C137195F32DA5CA86631CB84A6BC3B2
+
+Set 5, vector# 45:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000040000
+               stream[0..63] = 2DCAD75F5621A673A471FDE8728FACF6
+                               D3146C10A0903DE12FBDCE134CC0F11B
+                               2D2ABBDBADFA19303E264011A1B9EFEC
+                               AB4DFBC37E3D0F090D6B069505525D3A
+            stream[192..255] = 02C401ACF6D160CC1D80E11CB4F3038A
+                               4C5B61C995CD94E15D7F95A0A18C49D5
+                               DA265F6D88D68A39B55DB3505039D13E
+                               AB9DEBD408CE7A79C375FD3FEBEF86C8
+            stream[256..319] = 83D92AF769F5BF1FA894613D3DF447EB
+                               D461CFFC0CA3A9843E8441EC91DEBC67
+                               BE9162EABC5607A6D3FCAD4426EF4F9F
+                               3B42CEC8C287C194B2211DEA4549D5D5
+            stream[448..511] = D3F86930112EAFC7AA430444693BAE77
+                               3F014D0798CAF3652A3432460F326DA8
+                               8E82BE1E08C220B5FCBCE238B982E37D
+                               1E60DCBF1747D437D42DB21ADF5EECF2
+                  xor-digest = 0BF26BADEFCB5BB32C43410920FF5E0F
+                               2720E8BB1C94DD5D04F0853F298C3ABA
+                               8FF670AF163C5D24BCAF13AD0A04196A
+                               2B89E82CF88846C77C77A097E234010F
+
+Set 5, vector# 54:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000000200
+               stream[0..63] = D8E137C510CDBB1C788677F44F3D3F2E
+                               4C19FCEB51E7C2ECBDB175E933F44625
+                               C7B0168E446CCCA900B9DB12D53E89E1
+                               B917A69BDB888935B3B795D743D0D0E6
+            stream[192..255] = E168F81B5BFB769F3380690D423E251E
+                               0F4BEEBE0B02F19AFFADBD94212B8063
+                               D77A665FD53F8F1A1CC682599C74F415
+                               3642EC7DADA034403A90E1E5DA40C896
+            stream[256..319] = 574774CFB8452E82777371616E0AC224
+                               E29939E725B99EA8CFB4A9BF459A70D6
+                               AB1991E85E06905ACCDA8D1911F82835
+                               9C4FD7614A55C1E30171934412D46B3E
+            stream[448..511] = 21FE9B1F82E865CC305F04FA2C69EA97
+                               6D90A41590A3BD242337D87D28E3041D
+                               3D0F74CA24A74453CB679FDFFEE45AA6
+                               3B2DDE513D3F9E28E86346D9A4114CD7
+                  xor-digest = 3E25D50331D9840FBD4F8B0FD10A9D64
+                               6A5E8E0ADE57CCDECF346B2973631740
+                               382139165B0E0E78A53E4B6CAABE6517
+                               BF02B7B2905F9A64A60F412CA78E6929
+
+Set 5, vector# 63:
+                         key = 00000000000000000000000000000000
+                          IV = 0000000000000001
+               stream[0..63] = 42DCF10EA1BCBA82C88DDCDF905C9C78
+                               42A78AE57117F09CE51517C0C70063CF
+                               1F6BC955EF8806300972BD5FC715B0ED
+                               38A111610A81EBA855BB5CD1AEA0D74E
+            stream[192..255] = 261E70245994E208CDF3E868A19E26D3
+                               B74DBFCB6416DE95E202228F18E56622
+                               521759F43A9A71EB5F8F705932B0448B
+                               42987CEC39A4DF03E62D2C24501B4BDE
+            stream[256..319] = 9E433A4BF223AA0126807E8041179CC4
+                               760516D3537109F72124E3534A24EA7D
+                               B225C60063190FD57FF8595D60B2A8B4
+                               AE37384BB4FCD5B65234EE4FB0A1EBEA
+            stream[448..511] = 3F9803DD763449758F008D77C8940F8A
+                               FB755833ED080A10513D800BA3A83B1C
+                               028A53AED0A65177C58B116E574745D0
+                               F28506A9DACD6F8A3D81613E00B12FDB
+                  xor-digest = C0CA35A30730FCE3A6B08FD9707EBD1C
+                               8154F54266696A99430BCA8B9F94FDD1
+                               A78CCB43CB67C58EFF3B171A38597F12
+                               AA6A424088C062B97613691B7D12CDE6
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                          IV = 0D74DB42A91077DE
+               stream[0..63] = 05E1E7BEB697D999656BF37C1B978806
+                               735D0B903A6007BD329927EFBE1B0E2A
+                               8137C1AE291493AA83A821755BEE0B06
+                               CD14855A67E46703EBF8F3114B584CBA
+        stream[65472..65535] = 1A70A37B1C9CA11CD3BF988D3EE4612D
+                               15F1A08D683FCCC6558ECF2089388B8E
+                               555E7619BF82EE71348F4F8D0D2AE464
+                               339D66BFC3A003BF229C0FC0AB6AE1C6
+        stream[65536..65599] = 4ED220425F7DDB0C843232FB03A7B1C7
+                               616A50076FB056D3580DB13D2C295973
+                               D289CC335C8BC75DD87F121E85BB9981
+                               66C2EF415F3F7A297E9E1BEE767F84E2
+      stream[131008..131071] = E121F8377E5146BFAE5AEC9F422F474F
+                               D3E9C685D32744A76D8B307A682FCA1B
+                               6BF790B5B51073E114732D3786B985FD
+                               4F45162488FEEB04C8F26E27E0F6B5CD
+                  xor-digest = 620BB4C2ED20F4152F0F86053D3F5595
+                               8E1FBA48F5D86B25C8F31559F3158072
+                               6E7ED8525D0B9EA5264BF97750713476
+                               1EF65FE195274AFBF000938C03BA59A7
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                          IV = 167DE44BB21980E7
+               stream[0..63] = EF5236C33EEEC2E337296AB237F99F56
+                               A48639744788E128BC05275D4873B9F0
+                               FAFDA8FAF24F0A61C2903373F3DE3E45
+                               9928CD6F2172EA6CDBE7B0FBF45D3DAD
+        stream[65472..65535] = 29412152F2750DC2F951EC969B4E9587
+                               DCD2A23DAADCBC20677DDFE89096C883
+                               E65721FC8F7BFC2D0D1FD6143D8504CB
+                               7340E06FE324CE3445081D3B7B72F3B3
+        stream[65536..65599] = 49BFE800381794D264028A2E32D318E7
+                               F6FD9B377ED3A12274CE21D40CCEF04D
+                               55791AF99849989C21D00E7D4E7B9FF4
+                               D46AABC44AED676B5C69CF32BE386205
+      stream[131008..131071] = C3E16260DD666D8D8FBF1529D0E8151A
+                               931663D75FA0046132E4AD78D8BE7F8D
+                               7F41AAEFDE58BA80B962B8B68762CDF3
+                               E4B06E05D73D22CC33F1E1592D5116F4
+                  xor-digest = 10879B33D24115E4774C71711B563B67
+                               CCD891E3825EDB58E182EC92648AE51C
+                               DDC29A6A776C0AB3182DDDA1E180D55D
+                               FAB024A3121BE45ECA59FF1A3715434C
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                          IV = 1F86ED54BB2289F0
+               stream[0..63] = 8B354C8F8384D5591EA0FF23E7960472
+                               B494D04B2F787FC87B6569CB9021562F
+                               F5B1287A4D89FB316B69971E9B861A10
+                               9CF9204572E3DE7EAB4991F4C7975427
+        stream[65472..65535] = B8B26382B081B45E135DF7F8C468ACEA
+                               56EB33EC38F292E3246F5A90233DDDC1
+                               CD977E0996641C3FA4BB42E7438EE04D
+                               8C275C57A69EEA872A440FC6EE39DB21
+        stream[65536..65599] = C0BA18C9F84D6A2E10D2CCCC041D736A
+                               943592BB626D2832A9A6CCC1005DDB9E
+                               A1694370FF15BD486B77629BB363C3B1
+                               21811BCCFB18537502712A63061157D8
+      stream[131008..131071] = 870355A6A03D4BC9038EA0CB2F4B8006
+                               B42D70914FBFF76A80D2567BE8404B03
+                               C1124BCE2FD863CE7438A5680D23C5E1
+                               F8ED3C8A6DB656BFF7B060B8A8966E09
+                  xor-digest = 888FA87DB4EC690A180EF022AF6615F0
+                               677DB73B6A9E0CFACEBBB5B2A8816B2A
+                               D0338A812E03F4DFB26AF9D66160348C
+                               B9EE72B63B2866E8281A2DB793A3A68E
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                          IV = 288FF65DC42B92F9
+               stream[0..63] = 71DAEE5142D0728B41B6597933EBF467
+                               E43279E30978677078941602629CBF68
+                               B73D6BD2C95F118D2B3E6EC955DABB6D
+                               C61C4143BC9A9B32B99DBE6866166DC0
+        stream[65472..65535] = 906258725DDD0323D8E3098CBDAD6B7F
+                               941682A4745E4A42B3DC6EDEE565E6D9
+                               C65630610CDB14B5F110425F5A6DBF18
+                               70856183FA5B91FC177DFA721C5D6BF0
+        stream[65536..65599] = 09033D9EBB07648F92858913E220FC52
+                               8A10125919C891CCF8051153229B958B
+                               A9236CADF56A0F328707F7E9D5F76CCB
+                               CAF5E46A7BB9675655A426ED377D660E
+      stream[131008..131071] = F9876CA5B5136805445520CDA425508A
+                               E0E36DE975DE381F80E77D951D885801
+                               CEB354E4F45A2ED5F51DD61CE0994227
+                               7F493452E0768B2624FACA4D9E0F7BE4
+                  xor-digest = 0F4039E538DAB20139A4FEDCF07C00C4
+                               5D81FD259D0C64A29799A6EE2FF2FA8B
+                               480A8A3CC7C7027A6CE0A197C4432295
+                               5E4D4B00C94BF5B751E61B891F3FD906
+
+
+
+End of test vectors
+
diff --git a/testvectors/salsa20-full-256-verified.test-vectors b/testvectors/salsa20-full-256-verified.test-vectors
new file mode 100644 (file)
index 0000000..5b6c031
--- /dev/null
@@ -0,0 +1,2608 @@
+********************************************************************************
+*                          ECRYPT Stream Cipher Project                        *
+********************************************************************************
+
+Primitive Name: Salsa20
+=======================
+Profile: S3___
+Key size: 256 bits
+IV size: 64 bits
+
+Test vectors -- set 1
+=====================
+
+(stream is generated by encrypting 512 zero bytes)
+
+Set 1, vector#  0:
+                         key = 80000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = E3BE8FDD8BECA2E3EA8EF9475B29A6E7
+                               003951E1097A5C38D23B7A5FAD9F6844
+                               B22C97559E2723C7CBBD3FE4FC8D9A07
+                               44652A83E72A9C461876AF4D7EF1A117
+            stream[192..255] = 57BE81F47B17D9AE7C4FF15429A73E10
+                               ACF250ED3A90A93C711308A74C6216A9
+                               ED84CD126DA7F28E8ABF8BB63517E1CA
+                               98E712F4FB2E1A6AED9FDC73291FAA17
+            stream[256..319] = 958211C4BA2EBD5838C635EDB81F513A
+                               91A294E194F1C039AEEC657DCE40AA7E
+                               7C0AF57CACEFA40C9F14B71A4B3456A6
+                               3E162EC7D8D10B8FFB1810D71001B618
+            stream[448..511] = 696AFCFD0CDDCC83C7E77F11A649D79A
+                               CDC3354E9635FF137E929933A0BD6F53
+                               77EFA105A3A4266B7C0D089D08F1E855
+                               CC32B15B93784A36E56A76CC64BC8477
+                  xor-digest = 50EC2485637DB19C6E795E9C73938280
+                               6F6DB320FE3D0444D56707D7B456457F
+                               3DB3E8D7065AF375A225A70951C8AB74
+                               4EC4D595E85225F08E2BC03FE1C42567
+
+Set 1, vector#  9:
+                         key = 00400000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 01F191C3A1F2CC6EBED78095A05E062E
+                               1228154AF6BAE80A0E1A61DF2AE15FBC
+                               C37286440F66780761413F23B0C2C9E4
+                               678C628C5E7FB48C6EC1D82D47117D9F
+            stream[192..255] = 86D6F824D58012A14A19858CFE137D76
+                               8E77597B96A4285D6B65D88A7F1A8778
+                               4BF1A3E44FC9D3525DDC784F5D99BA22
+                               2712420181CABAB00C4B91AAEDFF521C
+            stream[256..319] = 287A9DB3C4EEDCC96055251B73ED361B
+                               A727C2F326EF6944F9449FB7A3DDC396
+                               A88D9D0D853FADE365F82789D57F9B40
+                               10F963BC498F176A93FD51723FCD4D55
+            stream[448..511] = E0D62E2E3B37FDD906C934FAA35D5E8A
+                               89A517DD0F24CF33DE8495C5FF24F4B1
+                               476B3E826A1C90D74507C3991CEF4067
+                               E316A04B97AEFFA5E9D1F33CB0609B9E
+                  xor-digest = 44936C5AE8EA99630920CEC7C0FE9E8E
+                               A6C5166366D543D3A6FCCE3EAE9B0DF6
+                               28C61B62CABD61B44F5610440C6798E9
+                               3B820711202105D120398ECB96C0C102
+
+Set 1, vector# 18:
+                         key = 00002000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = C29BA0DA9EBEBFACDEBBDD1D16E5F598
+                               7E1CB12E9083D437EAAAA4BA0CDC909E
+                               53D052AC387D86ACDA8D956BA9E6F654
+                               3065F6912A7DF710B4B57F27809BAFE3
+            stream[192..255] = 77DE29C19136852CC5DF78B5903CAC7B
+                               8C91345350CF97529D90F18055ECB75A
+                               C86A922B2BD3BD1DE3E2FB6DF9153166
+                               09BDBAB298B37EA0C5ECD917788E2216
+            stream[256..319] = 1985A31AA8484383B885418C78210D0E
+                               84CBC7070A2ED22DCAAC6A739EAD5881
+                               8E5F7755BE3BF0723A27DC69612F18DC
+                               8BF9709077D22B78A365CE6131744651
+            stream[448..511] = 9618FCA736A8ECA00BD1194FC9855085
+                               526ECD47A8DE1F8DB298AD49FCE935EA
+                               63B548597092ABAD6338F41AF87586A7
+                               0505F2537902B81F55E53599DABA84CC
+                  xor-digest = C442D7538E8129F048E38EA1A6FFA5F8
+                               29F5B54D26A01DB1C0FA1B2E07418FB1
+                               872C5D96CDC250746C26BD803903E28D
+                               7DEC66DED9AB7DE6797C502B3D1B246D
+
+Set 1, vector# 27:
+                         key = 00000010000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = FF852567EB72687DC56C122D61B2FB2A
+                               4FB9E8E8DA62313B618D10F8E0DA521B
+                               176E879CD78E641043F0FA4A22211566
+                               429B7C68EC645FF5E44B2505D61A2D71
+            stream[192..255] = E5B040B199C3DFC8DB1F41C74C798AE2
+                               62105477AEB1CE761D6FFF1CAB15AA1A
+                               7B7CE26B9CCE6DC33FD4522BF8F73E70
+                               B843D67FC06FA2258F9709DB14FBD54C
+            stream[256..319] = 55706075E5FED81E2205994609868EFC
+                               383B3E4CC295C4214356BA41FC72BFE5
+                               4E6936FE6684EAF93C5973DDCD8E8F23
+                               767B82D783953F89AF4E808C90BEEABD
+            stream[448..511] = 7ECE71883742EE852C94F01AD85EA1A6
+                               76CC7CBC6EDFCF1BAE751455A923FAAC
+                               806BB72E6A982EC7A38F112445E25EB6
+                               BC5B49C5E6C22DC8748DEE0942F6E8B2
+                  xor-digest = 0058982850C947A63750238409A95FFF
+                               CA5A559990EF1A60F038ADAAF965DD6B
+                               3931693C24AF075CC27663683B7B15D1
+                               0F7A4B6BD1AD61F35D67A7E632ADBF2D
+
+Set 1, vector# 36:
+                         key = 00000000080000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = AF6E2EE1D5021675A92F02C764AFD94A
+                               F3097F53532FC965EB861D6D12A3A012
+                               ABA683A5281238CE76E3AF3944736752
+                               AD86A5FD16E7DAFAF241ECFB0ADBBDFE
+            stream[192..255] = 19444E6D7C3D8BEC0957C3E785E1EEFD
+                               56B857F21CF8D325A4285F8DEF5078FF
+                               7B7EFB5E3B20F6E0906265B6F7580A04
+                               9CEC5DF1872DCCB54081054C0FC15514
+            stream[256..319] = 7EB544ADBF57D042E3A6753B13C65843
+                               0399764CF90D007E48DAFE3DA1FE3F90
+                               8EF4BFA6AF96DCD54197DA0D3A10FA35
+                               6A374DA08B9A84044E70EC70ED050D46
+            stream[448..511] = 57224DA912C62801DB393D5E3F4EDFF7
+                               D61BA895F88C7391FE5C943B88CC4642
+                               0D11C3F1884B628F03C04A3C10F03FFB
+                               CFC652D066BFD8DBF52DA2A72B9B9AC5
+                  xor-digest = 9796755E92C0BBCABFF65DCC865EF240
+                               BF5C2105C98EFFD368155FB2DFD06D3F
+                               2A4D7CCEE6A73DE51DF37F953BAF6BD7
+                               EA28AE0B9DA94B7D2E05FC44389B4101
+
+Set 1, vector# 45:
+                         key = 00000000000400000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = D203CC523351942C94E215F6D5CC1425
+                               C5FFB2EA9A916C0D4F7B343333A58D94
+                               1DE20B5F543E3EE63C29D981469ACE48
+                               86ED9DEF839D4FBD20CDF9D001F1B89B
+            stream[192..255] = 9E37D2BE6473F4FA87ED294765816BB0
+                               8CCA625418155F6704CB48082A860581
+                               A9CF69D9145D0DCB2621E1515013DD3E
+                               18819BEC5C186628ED545BFF7E4AC1C2
+            stream[256..319] = B8648B92B5A7B3B991722F0053909A3F
+                               052E8F7DABE7FE0E34498C1C550DE9D5
+                               3CE0818DDBA82F0616B3F79AD72B0BF9
+                               B5FA2F2B8032B1860FAB0804934FBD00
+            stream[448..511] = 0CD554D10A975BEA79AEAC663F5FF984
+                               15883EB558925C5ECFA53D77FAB4B884
+                               FE4D705B1E1B34A938C1C2D8528E1FAB
+                               4C9A7512F12707B78F2B6BFEE8D76E57
+                  xor-digest = D570E4908F0A350A7D18A3039A94F070
+                               3F5FB6A5630594BEB15E15EC175F8E46
+                               E3F1A3ABD993DDE832224D3192DB8A1D
+                               1E71A5009E2A6AB27C6A5989848F59C1
+
+Set 1, vector# 54:
+                         key = 00000000000002000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = C45E28A2C9A80AC07A760580DCD96340
+                               26651B25BA2332FDAFC9AA16998317B9
+                               751A446302CDE95525C709E79CB55951
+                               4E4A54FD73ADAAF0AB3A3F1ADDABBADA
+            stream[192..255] = 17937670127CBF691AFDAD6D36994F0A
+                               40B3F369C21691B887CFE20B0F63D125
+                               8896C88CAB669ED6FABE464A700DA937
+                               C43AABB45E60F14E6EBA69FBC9F2FCF3
+            stream[256..319] = 2690AB8F4616302C49D79CFE3AE29AA7
+                               9C4D1036E0CBB1D24C4682BCA0E1C1A5
+                               80904001185286AC3C63BFBF909F4A36
+                               525D2A732D7D166A52E087444DE24469
+            stream[448..511] = 9E5E91D8BE1E46B0BAD46ED9ACCD440A
+                               01882556B51C2B7CCC987A6C554201FC
+                               6CE8DA0B1CD42C011A085EB8FBA0F8F2
+                               623B6B9627EAEB91C05CFA3090A28040
+                  xor-digest = B33D0D25BFA4A067F09A452AC147B2F4
+                               C46BEC615D17D020CB9F39393433CF8B
+                               244607E5B7ACC4701A89EAB887D9035F
+                               BC18163F59304929BAA5F25CE05FF43E
+
+Set 1, vector# 63:
+                         key = 00000000000000010000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 5F7B6B86B0C197B960D8250B5106CFEB
+                               F6F4DE0D94D3958945FA979534AFE19C
+                               D5305C55A1404C59302F05ACC819D3A3
+                               B0BDB9D154A45C0DEE52F25012DAA445
+            stream[192..255] = 20F99149AA74F631D22BEA8D85EC84A6
+                               57C2E8703B45ED36458F0ED47408C3C7
+                               E6624A184E7CED17C93CBC9960914A61
+                               E71083308CB7A55D7723C2B9E6A2F087
+            stream[256..319] = EBB0F7194EA7AE5D28B916D361B19394
+                               A163A6EB124D37A372A798135E4F2FDF
+                               2EF422997F5AA1F9DFA3B1826431AA62
+                               99E0AEB44D844E297604D27974EAAD6B
+            stream[448..511] = 65CA9CAE36B65F58085D561A91CFDBE1
+                               EA0400CDEB4AA1B987FAC06702590D8B
+                               39B6228E6F4B81BB91852971DE2D3436
+                               C8C24FA193BC10BFC5534BF5915A245B
+                  xor-digest = 884DDB758C2D7D1FA5B9DAC42756F87D
+                               9C1CF9E1EAA1B0B5BB032D2E8763EAEE
+                               261129C8340F163ABD66EEEEF507EAE5
+                               BD230703C2A7C16FFCC23D063238F99C
+
+Set 1, vector# 72:
+                         key = 00000000000000000080000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = B96FCF5A182789AD14E53FB2E981E496
+                               B47C6B44BE7EF95692F19AE24E193219
+                               6E180778AC04A0EB2497497680587FEB
+                               F412BB3A67E9538CA5B2A373E16E60F3
+            stream[192..255] = 953544577886B26F2F8D7BD237D7AE8E
+                               5D425523F6180C9591206E10E166C7E3
+                               06537355EFD9C32FF1C8808537BA12D5
+                               B0E303DBCEC7DB3DA6E3A16DACB1E7FB
+            stream[256..319] = 9B416AA89BDC5589A1C9046D2D308B8A
+                               CA852008C6503B373250C2639C693D9E
+                               164FC0E94FCFBB35D67D45DE1A3D838F
+                               302915E78470EB47654B87540AADF90A
+            stream[448..511] = 3911737593809A1A9FD14F57950AEFCA
+                               66E1E45475D39335DC01FFA72E431A85
+                               01E146994FAA64BA37AF255F1951B33F
+                               CB28AAC76BB08AA0917B53B9ED64CDAD
+                  xor-digest = DFED948E3423CF3689FFCBFAD85BD98A
+                               9785A39C7CAFCE10EC7C89686F9B45E0
+                               F335D8FB649B07CA88D5D264CB47F133
+                               32538D762A8A38C5E1EEE97D25DF6442
+
+Set 1, vector# 81:
+                         key = 00000000000000000000400000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 2B08D82E92AC352247211D5F0791DAC9
+                               D585ABF67DADFBD7B5AC60EB2EEF4C72
+                               F6F71CA110DEE4CB2F19FABE4F442B2F
+                               5F9FB1C94FBD553C21CD5B0CEF139880
+            stream[192..255] = AAD0055BF85562F06118CB260CB0BD5F
+                               374CD798021593F03A67134EA8A73B22
+                               F00F09BAB770D1287FFF17CCF5F1CF32
+                               86833B57F4397B16A9F8351922042810
+            stream[256..319] = 724D557F9D7DA4AFCB5DC6D1040DD8BF
+                               A14A0CC61F7206606BC99385D15BFED8
+                               9C4D69EFE5711A9E256C908AFF2734D6
+                               501C9D1AEB7CCD1029413BF7FA40848C
+            stream[448..511] = 8960F4D83E21984B3A6D5D1B667944ED
+                               12814CD390B107A502A4BBA620E3CE9F
+                               6DAF2D4629C828C59E86F09F1F435B4D
+                               40A1595C3D5B6E0744FFA546B22EF865
+                  xor-digest = E63E2A4BFE4910ACEAEF896FC499955A
+                               04FCFE14F46F9A5273E9B61216A8AED3
+                               77A50ECE7429AB7FD8FC3A97C3A1B70E
+                               27B13A5B5486335B07132260FACD3E81
+
+Set 1, vector# 90:
+                         key = 00000000000000000000002000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = C9969A75572ABFAA28FBE769A287A676
+                               3B534AF50B697C31B7F4CD8F50DDF2F2
+                               17B3C5532E95F73AF11B0693D5A33A34
+                               DAFBB64635A195EC9477FDFD69AE7540
+            stream[192..255] = 6B358B53A60B9542F582FDE14B2711F2
+                               6CD1B7421B4D872B95E347CDD7D763C8
+                               73C2A8730A802AECA326FD63C8C4205C
+                               FC1A6E2F4DF7A6ACF1E22A2BCA5379A9
+            stream[256..319] = AF64A04DB6B9CA63429E0D81CE975FD0
+                               2A5E3BB8C1A0C3D35636AE22F3733201
+                               2DF59549BAC23E992A1E4DD481F91956
+                               40C4D6EE0E083702DB18328D42D93BF7
+            stream[448..511] = 3F3FD5559C9C0CE3B5B484BD15E75CAB
+                               B252CC44961C1ACA86B1722FCF205408
+                               EF9841F947224170ECAC6503F7A8FEAE
+                               7281ED1D9A18C4C00D12C8E40F21876F
+                  xor-digest = E759CFE55228EF54198A82FF8E11D269
+                               05EC81CAD0A4736124A5391D34ADB50A
+                               3956FA5321AFCD7AECA3E9D3E0FAF913
+                               502358257426307F76EB55A8184DBA88
+
+Set 1, vector# 99:
+                         key = 00000000000000000000000010000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 698BFC90B147715FB9F0CA1DDC94EE10
+                               3082316701CDD1DF2EAE752BA485F585
+                               9E131D0D9233B16890BD5946CBCF116D
+                               B50E8E2DCAE104162C7B76CB3D11445C
+            stream[192..255] = 07D49AB7BA8451A2A68DF473C6D1E91D
+                               407038568FADA2DB948ABFBBE408401F
+                               DF5960241325F2981DC17EAF1C333CDC
+                               91E27EC064734234656AED7A944AD78A
+            stream[256..319] = C152FCF951DAECBD48EC1D0122A4EA00
+                               9FB8FD03E35E283109DAA4E033783990
+                               DADE92932BC6410CE1B6ADE414AAF782
+                               8DA024FB2C3F4135DF6C42A347BD3E25
+            stream[448..511] = BD0CD02750FE445A0C03D2EA30D73684
+                               07DF4B13CBE8E3CE2DE2780F9A90983B
+                               9EB919DEF1EC22EBEE10F584B6FE8F99
+                               1374666D378C7C20CB5AD1771FA7C799
+                  xor-digest = 7D24B8DDED30B6B17567C7AE46FE517B
+                               C5700ED002A54CE30DB17A2ABC9F37F7
+                               1F6395D4E2C7467AB73483B89AEDC212
+                               B9FEEA18E4C08DBDFD8A39DA31FB7EC5
+
+Set 1, vector#108:
+                         key = 00000000000000000000000000080000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 07AE6801D7A94836ED52CCD69D9E97F6
+                               34B136A234B978BAE4302F475B0A6B0E
+                               A7905CEE090F648962BB969CB4D65228
+                               03E1ACD1DCBEFC2E7482C0D426E4BD95
+            stream[192..255] = 145DF9D539C59467F55E67D959FC8C8B
+                               2CB0397F64D6F122C3F2F1A19E0D67B6
+                               9696EADDC6DDA6E80D5A0C0AC1F555A9
+                               21C054E0E75EBB246C8E20A854A38E93
+            stream[256..319] = 2BF710E9709B5178E5E50B421BAAF59E
+                               B1F267F41C60E9E91695D658BAD32497
+                               B56868B8738BAA6A15BDE89D69900ED2
+                               742F26285504C3D4748F77EECC0D4A67
+            stream[448..511] = E93A249CE755F099C81FA40B5DA6256E
+                               E185FA1EFC475EB404BB68C13A921FA5
+                               78785537DD65964B9BF77F68DBAE4926
+                               9F5061B19AF08B82C372AC69EB64D762
+                  xor-digest = FA4EC052E9C9712474F1BCDB5C09A6D8
+                               9A9F1843381F098CF3F9ADFDE0115133
+                               FE977491C6365F5C5BB78BFF42B20EC2
+                               60193927289B597BE42EA7A0FFF6C3A2
+
+Set 1, vector#117:
+                         key = 00000000000000000000000000000400
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = A374C1F86586B0D5A121E1F734EE70CC
+                               7072284B322BF61F88336EBE84B53219
+                               F4D1FEE2C5EECC4A421BA8AEA9D108E7
+                               21A7A82DD979F2559BB0E45CC88C8780
+            stream[192..255] = B0CA15C769D66B26CA4A6D4772AE3521
+                               AEA4696890998954F33ACA8638FA50E2
+                               9981C2F84596D9371644D18E3EB267E8
+                               FCCC98D95A2FB38639D32468A3013B5F
+            stream[256..319] = 1CC3AE9293EE9CA19C12D9ABD7000F99
+                               047B86A868E82A839DD95418EECB23CB
+                               4B4A08E3EF69CC639DBADF3F5F33FAD5
+                               0762C2603DFC48882EE8D2346FDB426B
+            stream[448..511] = 0D6EC570BB04230AC35B49A1271336CA
+                               721E0395F63D306554158154CA12FB62
+                               E8D45CF5E21A311554DE9DF5D90CA99E
+                               9B7FAFEFAD3597B50A17FEEDD9966884
+                  xor-digest = 4C47AD8677A22F3587C4C25DD7A4A8CF
+                               E144E34FA7567088BD9DC4001911A531
+                               83860E9CDCAB006CF50AC00B95C95725
+                               BAE29E53648CD27B4183A213E5855E8A
+
+Set 1, vector#126:
+                         key = 00000000000000000000000000000002
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 19F23D5CB3C7303D56AFF18413835EF3
+                               DF7405C30BE5F19C72FE8746BA04610D
+                               D5D261FB3A0E8C11D2478F4A4D6CF820
+                               9730187BB1386C03229F4EB02C5B4422
+            stream[192..255] = 7B814D9DB8DC9C8397C23550DE194BE2
+                               74694399A8B2BEF6B8095704C2A29E00
+                               DEED66C8191F67BA9C048CA41DA4DB05
+                               FDEAECBBD0727AD9664563991A22EA46
+            stream[256..319] = 7B4DC904BA9FC0CBB054FB57DAE11C58
+                               C9505A98E319B43FBB9C30DA2CA7E6B8
+                               7A42F1E40774A6657EB3EB2C33B5D365
+                               BB92A8CA0CCD5B71C17F7022DD840E14
+            stream[448..511] = 5B2DB8E73DB53C289E8479F524953BAF
+                               D881E8A366899440175CB2B93F8EBF25
+                               3911652B3C7EA35B41B409B4BBD0BD93
+                               95AE5A2AE2368B7A43A0F9844239E3C2
+                  xor-digest = F80AD4DE8D937A57E230BFD00A4AB8C0
+                               65DA8978DD9C51E6F998E393C0B888BA
+                               C772F76BE8AD5D501425465AC5C05D82
+                               63925189E928BCA52AC7F4A738D46102
+
+Set 1, vector#135:
+                         key = 00000000000000000000000000000000
+                               01000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = B18CFBA23F81884FBFEA037648B1715C
+                               EFAEF1D8CD5C98957353E82B838FE332
+                               672B3D7C2905979698F6F6D98EAAE8F9
+                               8DA16EF393CB150228FE6438440C5759
+            stream[192..255] = BF285CEEEE6D66ED9A401AF86B4F1B0E
+                               69B5ABF625D0C35220F9E6198FF5C225
+                               A728EEBF67EDC8690ADFB6A2E43ED7BD
+                               2956A4915A8FF4BC584C803C87B03956
+            stream[256..319] = 0FBE7818D981B60177DD1C7ED21FC23F
+                               F088EEB3A36A3DB18E37BAA312642BE6
+                               481F6FBD4C6A3DCF6990D3F5E0F02813
+                               F66F42B4384F3821E9F2A5CC7AC37029
+            stream[448..511] = A72F53B68BF3E6972515790869B97667
+                               E353E1CC089AFA194B8ACFCC4C033567
+                               4B2E9E0290501D24D87B80AF12C636B9
+                               3902F09252F77812802151798FDB831D
+                  xor-digest = 8811ABBCDCD51C0E367CF0E2A78935BE
+                               1FC6E462D026D995CC1B754E2DE7CB83
+                               BC06112D2AC813006F2A32F8789AA939
+                               4DDF3A43DF247BFE94F456054AA057A9
+
+Set 1, vector#144:
+                         key = 00000000000000000000000000000000
+                               00008000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 0EEF3E17B6B9388FB55C2C0AEF9716CB
+                               106786EEB0E606E124C41AB552EF3389
+                               7902AA2AE93D9E4628E785B356C53AC9
+                               70BDEE2A7DDBAB427371903EF3EC9FA5
+            stream[192..255] = BA437BE85A1152B673AB7F39345534C2
+                               6B53227FC8E99B6EEBCBBDC00B436DBD
+                               E6AEF836EC78AC581F251D0C61F56404
+                               D275B1DF39294B26CF24F4AC0792D176
+            stream[256..319] = 381C3C583CFB20763CDBE072668FD1A2
+                               557A35901CDC8595393181AF1610300E
+                               D751154C050D8CE0354EFD30D05251A9
+                               7F215A48F8924B4A68FD475C793A0543
+            stream[448..511] = 15E30D96D2A42C99DB1030B5280A6313
+                               2AA665B57DEB3AC6AAC8DDC1450C899B
+                               D0DAE783A224134232687459917CC525
+                               6D76929A153950DBFF7D12CA21EE77C9
+                  xor-digest = 360A5D8ADE0ED311ADAFEDE072335406
+                               51A262FA795DF4B5FD3FB0041702B961
+                               49DD5DE99DE88D28EC9E87264AD9C5C1
+                               6CC9C1A21E01678E6800B3140F6E34E8
+
+Set 1, vector#153:
+                         key = 00000000000000000000000000000000
+                               00000040000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = AE5572D5E61A992162AEEE513815339C
+                               93A994DB12576D087EA4A9A98EA5946C
+                               F58794B43515A4B55C5E9B28A882DADE
+                               7D3BFE82B32EC3B604D2C1E1B37B1B99
+            stream[192..255] = 247616FFD99152BBFA71D2225AB667DD
+                               1999ED6E2AC64F60F43B3DD1EA5E574A
+                               47C52B82E3FBA3443996EB1E842D11EF
+                               78572638CA556157674B0A38ADF26F8C
+            stream[256..319] = 1BE7BBE4FA4078886183F1DC9E296911
+                               96106D005F5D653AAE744B2506401723
+                               30F38DA7C5CA81F38A879D79FAED5B23
+                               37045434875074B65D7E126DAF8B728F
+            stream[448..511] = 89048CF63BC3AC13B4637487735B9976
+                               2707C4161EBD6788289F2BAE38D3B68D
+                               14C9A49E26573E3604D8D9907D151C75
+                               6728F3D9A2A6BC118E62390BC0DBACA9
+                  xor-digest = 9FBC8803149CCF3117F715A0343789DE
+                               B0D5B7B16E34689DF65B83B5111AF91C
+                               590865CE8A73D8DD5A6D040832CA4604
+                               488D0592F87F90D74545439F9A6DE8E5
+
+Set 1, vector#162:
+                         key = 00000000000000000000000000000000
+                               00000000200000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = BA66E5BA75AD8C4030AE54B554E07A97
+                               29685FDF033CCC35A153334E9FC93A90
+                               3C79F281907BADF6F37123819ACA25E1
+                               F03BA0AC69D9B2D5E447F59F31A7A402
+            stream[192..255] = 6B0FC33710282B08A33917D23186B1CE
+                               0964104B5B8FC229CFD79BAEFF04FF97
+                               07AD12904B3673B15B72428BB3FDC0FD
+                               DECFF9AF8606456774B1B3B53AE74C5F
+            stream[256..319] = FFD0D5ECE17F9C1890199A4F201333F3
+                               D55A0AE07B1DBC50A704FE66493B71AC
+                               F802534FCD7BAF86B140CF87C582BC02
+                               59EFE52CB2D1A64524F948A86F756E21
+            stream[448..511] = 81EF72B6DD7F8043A078486BF0DFA634
+                               7CF53FF6432432B45CC740533243D6E8
+                               E936A5E6C1CB688388D6D97BFE48C430
+                               0325A4B5DE69825E6CB5409FE9518708
+                  xor-digest = 6F8913AC7CC348D3F4A795850332BA5B
+                               9E6C87113F126686D5E10F728D8585AD
+                               3872C4FD4CDB446C23FD56E288E1FEEF
+                               3D65E9C600B7BAD4D476CCF40830B410
+
+Set 1, vector#171:
+                         key = 00000000000000000000000000000000
+                               00000000001000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 59DBEE08FB86EBCBEBFFBF087F9DD881
+                               2AFFFD75414B5162B5E7AE540BFA8777
+                               5BEC4982E1F4B6985DC8B2B25F061947
+                               61BD6BC5EFD66B2A1EB12833733E5490
+            stream[192..255] = C54CDD55BBBC09038A772D1FEE876EF1
+                               88110319FD6D7B306E9F5ACBF3C47824
+                               9E4CD2C8C11900DBAA39F8F7D57724E3
+                               70606016AFC49DEF5248964A416E0DC8
+            stream[256..319] = EE1C6E2F9DA5404012821C3DBE703D47
+                               1FF717042C20DDB4743246448F431DE1
+                               53BADF69A059D161189D20B8F22F1F7C
+                               C491B5B2F5CDFE7A779A0F9DB0C60586
+            stream[448..511] = 85E92E3EA90E7EB79A9D3894D0B21153
+                               DA80FCC6DA7631A1C38EB38C78A1BEF2
+                               321265349CB5FCFA22E5FD02648BB37E
+                               74D3152011F7640A0FD42DCC9457B2AC
+                  xor-digest = AF4B9782FA0332C8A6344DECDAE4FC2A
+                               B63769CA35799A664FCC0A91A6F3C0E0
+                               689281D6D2BB4A856286BADB4986DD56
+                               4B7BDEB2867F5A2E20FE0B4311C77924
+
+Set 1, vector#180:
+                         key = 00000000000000000000000000000000
+                               00000000000008000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = FD1D039AE6D953654A63334A92CEC647
+                               A671CAB6374DB63B89DA1A12B99C231D
+                               C7B9418D44210CB0C88F114EAA54AE4A
+                               096FEFCCBF51062E8EFD169715677F28
+            stream[192..255] = 119152E46B97338C5E50A28DB78757E6
+                               B21C9C03AA9D96B5FDAC9D352AADF2F9
+                               FA0FCA07649582E7288297E9CC765846
+                               2D929ACED1F14E3AEE634CD2086D1762
+            stream[256..319] = F9C91CA01A70253BC6D88A8DFA00537C
+                               E635634769E8867B279C1A052A921F14
+                               8810FC8854BDF58F99E36FEDBC6E6E6F
+                               78BC8F82DCD18D408B3B4F8BFEF12F12
+            stream[448..511] = C22A3D49E727785EA32E83E79E349D62
+                               C2647AC6D531BA2D466CCD7CF29D04D1
+                               015D41A79C9BE4B0AE1844DBDBCD7FE6
+                               765EB95A0D5E121F48840937AB399C6E
+                  xor-digest = 422309F77B0CBD9E17E58372079547B2
+                               A42EC06690AE889CB3095B8489734124
+                               2D7951F73579E2F66B26503723CABA8F
+                               5EAF869887D090BCF20344757A8105D0
+
+Set 1, vector#189:
+                         key = 00000000000000000000000000000000
+                               00000000000000040000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 72491EC81A704E3694C83FCCC47CF5E8
+                               7B66F7B7979F78D8150A606ACDCB4492
+                               F64A9D7D9DAD5042F8738DB462F4728C
+                               2475F5FDEE985CD3601FA31F576712C3
+            stream[192..255] = 17566EFAC19AFD1ADDEC66F42695006C
+                               EDFBA525E8F41DB02BE50D2AC4CB497E
+                               A10C6DA38ACF39BB608F40AD854F69C4
+                               4A0FC6696F6FA8361CF26D5411B1C7C9
+            stream[256..319] = E3CE396F970BC54C9E46B6129B48616D
+                               F7FBD0293B1EFEB772D99CA90BCE12A4
+                               AF729DA0B94223A3D2F0B9605DC04BF9
+                               AE82E065C1B963039802BE6354D3EB2C
+            stream[448..511] = C0B2081FF9B7F2DDD59EE6808F6181F0
+                               4CD19D4B0D3F032D5FC0EA2B81D49276
+                               BD6E540648576CEAE720411523889D3C
+                               F14BF05DA43D8D6155B7D98B021F269E
+                  xor-digest = 85395D5EA1C9428817FCEA56DA0978E4
+                               C4B244D9556FE87F19806664A8D9BC42
+                               C0A69A717F1AAD4E09200120A517B73A
+                               2F3FE01BE24B201508D801E416AD6AA6
+
+Set 1, vector#198:
+                         key = 00000000000000000000000000000000
+                               00000000000000000200000000000000
+                          IV = 0000000000000000
+               stream[0..63] = E3D058FC000427B4F0802300E5D7FE9F
+                               8E3F68E9E8339E9F4C5DE62252E14857
+                               71371DE4D2E1C97DC4172AA378924AB4
+                               2CADF887136B88D6FEB6514538EBA847
+            stream[192..255] = 80CE800DC11805A7522E3B423699D68B
+                               51BCCE201ECA4F8E465C5A58A558A71F
+                               019A22593CBC148A76647A527E635A23
+                               4096EB22F081F39B5A9DC7649277726B
+            stream[256..319] = 30A91E7D2CDB7D1B080750B433A14F7B
+                               6EE602EB53D67AC65B7E4219B533AA6C
+                               CBC1FCAC070270D595CF9E90FD3C2D02
+                               A707F7C1F97059DB3644F50D236933B0
+            stream[448..511] = 79FA6D08B8DF687EFE868E67643CB5A9
+                               FC5FECEEC258E67D831D20AD3C8CBECB
+                               51F1712A0BAE64202FBF66A1FAE767C1
+                               68A9B0C4BE89FCF2F6D2DBC5CA96A4BB
+                  xor-digest = B76429935B5D578116D0A303D8A435C8
+                               93BE1D132E2025922F192D5985E198BC
+                               5F07F6F16A8FAD5CCFB4487826366AA9
+                               B60FCED5994A8740B0DDFE3F9AD2A408
+
+Set 1, vector#207:
+                         key = 00000000000000000000000000000000
+                               00000000000000000001000000000000
+                          IV = 0000000000000000
+               stream[0..63] = FF0D93064CDBD91A8D6BD0B9267A4F93
+                               DF7D3C76BAA5D0D14798812203C55A34
+                               3BD50E6931394DAB88F514F44E2A1FB5
+                               8EF3A915F3B60DAB35E36174AD92B3B1
+            stream[192..255] = 074A711F8BB92EA6953D21F9FD7AAEA9
+                               1C12D18A2B18E8D325DB04029B5E8EBA
+                               43C408D3D4EBE049440CFB716BC3ECA9
+                               1929E009ED7EA0EA7273E32C13F44346
+            stream[256..319] = 6BD5DE42827A81941C72012219EED591
+                               BE1AFE19DF91C8B7284DF2AF4050D7EB
+                               674DBE78680EF4F8963D59ACB05B43D6
+                               A52B7CEBEBDED9D3268D0500699A036F
+            stream[448..511] = 9748C1BA603FE3DD4435A25F2ABF18B4
+                               9F25ECEBC3514785406425E03ACD369A
+                               EC91463FDD5F3611F06870D513B10DB7
+                               730F3328C22312DE7329DF8CB43DA5C2
+                  xor-digest = BF19031B4F8884F9A290E543C517998E
+                               C8442A227DE1D46F5F441D5D586A215D
+                               B4A24A2965F5FD3C70ABF296C55C4333
+                               E3C9B2FF671080BBA28C24FDBD2C8370
+
+Set 1, vector#216:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000008000000000
+                          IV = 0000000000000000
+               stream[0..63] = DCC597DC08E1AD1451E69D857AF803BB
+                               DBF7CD6D510D5C59C9D6C66EB153CC79
+                               F9A6228ADEE570983E959788628F174E
+                               5833B5CFA350C0C2D8A18F7FE46BB4E1
+            stream[192..255] = 8CCB839CB382DB591B5C80F6DD7EAE7E
+                               AECB3C8BF29C9C6074058A5EA04E2E58
+                               675B4537B8FD061BA7E4195AD2A3EC29
+                               FD260FD19F0AAB3DCB7BD483ED8FB860
+            stream[256..319] = 73E92E3449C863E55E9A41B0DB35805F
+                               344FB07E4C3CEFF25B261819140C849B
+                               E90639644C542880946582842CE5B1D9
+                               FA2DF07B5589C8C68BED84E15DED4AF2
+            stream[448..511] = 693C7F397D23C831431264E9BF4EE963
+                               B8A43C6ED939B324FCB8AF1032BAC678
+                               C71F1DE8BA3A8090948872FA9C747AB7
+                               67F7D162FD8B6F484B81AA54151612A6
+                  xor-digest = E6732941C20C6DFF6276F6A21A461777
+                               638799041F1A360D7C8C88B1A8E9CA8D
+                               989360840F8E16C72890220E51A7913B
+                               6B5B74A70D75B7D9F26BF7FB5C8C7C78
+
+Set 1, vector#225:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000040000000
+                          IV = 0000000000000000
+               stream[0..63] = C94A72C1B17F8B9F26420BF06B3A5445
+                               20C658D5F77ED7D62CC65AF824BD5678
+                               98EE4928AF0E2BEDEA64D5A7C22749C3
+                               C16369D274EFD2A6DF2CFCCB130A1144
+            stream[192..255] = 2130A7225D4C78BBBB8C5122C18851A9
+                               32A78E360E62E56058027C624DA49EEC
+                               34DCE5ED9F66D78B44334CE0E3317AFF
+                               5BC78261FA4C96A642E846CDCEA4C242
+            stream[256..319] = 575EAB318220A54E5B2B0A8EC7F54429
+                               0719FE422C646E1114D807201416F37E
+                               B5CECDB278AFC7CDE84E6DB5CA164840
+                               2BF9654D1C4E96A3E7BF5C19C84CDA71
+            stream[448..511] = EAFC6C17BF190180FFD817644D7933C2
+                               F86989ADF705A72B04CDF8227A164596
+                               7BADE4A0E706039BD84702395B9A44DC
+                               7368E198B01335577A28028FE2F6056D
+                  xor-digest = B26E45B88EB4359878EC471C5A5814D5
+                               10F435CE44D1A77A50468BE21F48F7B3
+                               7D5B2DDA0389405CEEA8998A9C3480CE
+                               9F30A02408B065F28543BFCBBB159AC3
+
+Set 1, vector#234:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000200000
+                          IV = 0000000000000000
+               stream[0..63] = 832A824C044E27605AD9A3201EF106C1
+                               A19B6FC6EA5B328DC1D1FC59086C498D
+                               47E7568CFA9616D7D5E63D9C087CC426
+                               B4276752E0FF14D7F1E258F9A28A54BA
+            stream[192..255] = CFC021E1EDACD733768D3412C0DA7177
+                               7AF74D147D075BD5497BAD89B84D0A66
+                               F7F4D0E46B77510AE3FB57C0DB9F9922
+                               111337BDFF89A9169DB16B38F305BEC8
+            stream[256..319] = CE311109342E1A41ADA17363B0AB030D
+                               1BE9C62F15C2A5D8FEE2BC9819F2E064
+                               6880D350E547824BDDFD5BE89C43F23D
+                               FFA366BE34629F6EE929E2701EFA6829
+            stream[448..511] = DCE864E5E336A7B51A7FFE9E4C8C1FBE
+                               F5F4755A0877EE91D61D1F20F29485FA
+                               A879323F2566590917417C4AC0076CB9
+                               81EE78C58741506F725BC58743957CAC
+                  xor-digest = 335D243CF73622A761D728CA87A083E8
+                               F7EA67FEFE422833C9B963A9433DF43B
+                               02606FC5D67FFAB71724AD78339F51DF
+                               B7CFD78C0F5472EF7727AA5C967969EB
+
+Set 1, vector#243:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000001000
+                          IV = 0000000000000000
+               stream[0..63] = 28DD9E566F018FDA0251E1E648057E85
+                               211831E215AE21525E04C932736245C2
+                               288AD4A197E4ECA04003B85C3B80D02A
+                               9B82C28E7662A34467946A34257D8D0B
+            stream[192..255] = DDC4A6A1AAF92AB32D2958DE67BBA593
+                               338D7EE4E3A412C2374A5D63E6CD7F56
+                               51F518251CEEFE1E63636DB2F432F407
+                               88D4C0163738446515A62637695D782E
+            stream[256..319] = 107AAEEDD6C459411921177468E3D013
+                               50C40AEB41EE50AE196754BBCE5559B9
+                               7276957DC73141981DC087209378F87F
+                               89C8423ACE0EAE8C5EFEEDEBCBB20618
+            stream[448..511] = A3FE61185B31AA80EA384B36CEC7F41F
+                               19F2E55614BE22852E796963326B9F49
+                               72E8A316D4A6653CCE3FE06014C0F5BB
+                               6E4E64B439109608FEC6A44C15384C13
+                  xor-digest = 3597FEEBE687F754D35F2BC480810C34
+                               1A1D557F867C07B83CB8A8890CD090F0
+                               0E6C6CA3CA9B804AD70B40747DCFF18C
+                               7F830FA6630EFBAEAB4B022C22B892A6
+
+Set 1, vector#252:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000008
+                          IV = 0000000000000000
+               stream[0..63] = E48C2F264BF9E8374B78FB652BAFF1E3
+                               3ECB4B1C635D76A64ECFC4BDE00EE5C8
+                               77E1094D6480CA382815CCCD5CC36770
+                               46E801C29A860EB032420DCAEEBC36F4
+            stream[192..255] = D2EEE83D63F96B0B7E6D8E0C72B6581D
+                               50AF4081017CD62A73789C8C2DC5483F
+                               CB4067C71FDBFD6EA8882FFBAC63BC9C
+                               5E4F438A2ECBC71627646539A5BFE1DD
+            stream[256..319] = BDDA0B90B24A4FF5D535E12D075DCE84
+                               6D6741F809D105DC03552A3F13AC88B2
+                               F98411A1C19CB32FA3F595CDD8F87608
+                               3C057E42BDD903A055F13182CA080F4D
+            stream[448..511] = 44E931EF73A9AFA565EB9A8E6AB1AA3B
+                               9F14FC198B41909CB31B532F9EB776FA
+                               B51FFD895E7F266D1D275463282BD7F6
+                               62FBBBB5629890A4C68B6F6CF8200623
+                  xor-digest = 151F615109FC211C0A7AA4DD2CEBB984
+                               CFE9ED0486E8C552233AED574E9983F9
+                               A9DD738D23F2D307DC313C634A42A805
+                               18B616A250C0725694750A29413DA8F1
+
+Test vectors -- set 2
+=====================
+
+Set 2, vector#  0:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000000
+               stream[0..63] = 9A97F65B9B4C721B960A672145FCA8D4
+                               E32E67F9111EA979CE9C4826806AEEE6
+                               3DE9C0DA2BD7F91EBCB2639BF989C625
+                               1B29BF38D39A9BDCE7C55F4B2AC12A39
+            stream[192..255] = 2F3C3E10649160B44321B7F830D7D222
+                               699FAE0E834C76C3997985B5404808AB
+                               7E6E99AA1FEC2730749213E7F37A291A
+                               A6B5AFD2E524C2D608F34D4959930436
+            stream[256..319] = 8598D1FA94516B474B69DA83E3C1312C
+                               49A05B8283B880B31872CD1EA7D8F1B2
+                               D60A86CBA8184F949EA7AE8502A582DB
+                               392E85C4D70D3D17B2E57D817A98ED6E
+            stream[448..511] = F86C7489712FB77896706FC892D9A1C8
+                               4BB53D081F6EB4AE1C68B1190CBB0B41
+                               484E9E2B6FEA0A31BF124415921E5CF3
+                               7C26493A5BC08F7620A8C80503C4C76F
+                  xor-digest = 7C3A1499A63B507B0BC75824ABEEAA26
+                               109101C5B915F0F554DD9950045D02FA
+                               FF815CA8B2C7CFF3625765697B80B026
+                               7EA87E25412564BD71DD05843A60465E
+
+Set 2, vector#  9:
+                         key = 09090909090909090909090909090909
+                               09090909090909090909090909090909
+                          IV = 0000000000000000
+               stream[0..63] = 7041E747CEB22ED7812985465F503331
+                               24F971DA1C5D6EFE5CA201B886F31046
+                               E757E5C3EC914F60ED1F6BCE2819B681
+                               0953F12B8BA1199BF82D746A8B8A88F1
+            stream[192..255] = 4EE90AFB713AE7E01295C74381180A38
+                               16D7020D5A396C0D97AAA783EAABB6EC
+                               44D5111157F2212D1B1B8FCA7893E8B5
+                               20CD482418C272AB119B569A2B9598EB
+            stream[256..319] = 355624D12E79ADAB81153B58CD22EAF1
+                               B2A32395DEDC4A1C66F4D274070B9800
+                               EA95766F0245A8295F8AADB36DDBBDFA
+                               936417C8DBC6235D19494036964D3E70
+            stream[448..511] = 5CF38C1232023E6A6EF66C315BCB2A43
+                               28642FAABB7CA1E889E039E7C444B34B
+                               B3443F596AC730F3DF3DFCDB343C307C
+                               80F76E43E8898C5E8F43DC3BB280ADD0
+                  xor-digest = 8FE7F0A88BD73434364D9D9FFC95F837
+                               2C8F2B8808A7996239C9FA7E81F61D46
+                               AD3C4CD426F149B186A298C554CCE61E
+                               661678F992DB556AFBDC541C814D3C21
+
+Set 2, vector# 18:
+                         key = 12121212121212121212121212121212
+                               12121212121212121212121212121212
+                          IV = 0000000000000000
+               stream[0..63] = 7BCD4C5528F4BEAE0FC9F164CEBEC73E
+                               D89CE32DA46EB68CA3CEDAA7C7A580FB
+                               1C50D291F31C38DB2811864F6654098E
+                               141A2213828593A98B7D0020BF0D6D93
+            stream[192..255] = 87DCAB67C8D5A90D17AF198D3A22D432
+                               BC82C06872F0E61B3A3D1A1FC14527D1
+                               E8C3C9CA50E5BF529621C2860ED304F2
+                               7E6E427A9BC64D0FC6E2E16BD40C434C
+            stream[256..319] = 121F38D31A0ED8A6D72F4C6A4678A7B0
+                               D3054A6268D02C9C6766069427722606
+                               36CD6D79F81C64412A93F10DB68D1B86
+                               962DFC41434B1C65AF4770F7D185514A
+            stream[448..511] = BEDDFB9B60B204E0332726D7D7E90640
+                               FF29318A164A9551D9FA477D7E437273
+                               A0E08EC35046CAE10BDAEB959F44E9C2
+                               A09FFFBAA7A89B7B9F1AF34948FFFE9D
+                  xor-digest = 3F8C09148423C1FBE286530726434747
+                               F6362345A359A66A6066EAD149C4B1C3
+                               B33E35608825D5618D924A7D5CDE0CB8
+                               F2A0626D34F894C293FCAA83D162A460
+
+Set 2, vector# 27:
+                         key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                               1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
+                          IV = 0000000000000000
+               stream[0..63] = 944B67EAB62DF3756085CEE577D0C1DA
+                               4DD7CD17B85F9B9C51004107C8AA6935
+                               7E413AEA37BB512BD8246F2D03E2748D
+                               3BB24B60C1FBE4D1A55237FFE3D4D604
+            stream[192..255] = A9574AD5FC6A0D4A57FBE98AB5122A54
+                               E2C355524AAC38580C659AE4E906F14C
+                               3FB5A096586FA808F5F266182D26C784
+                               72B116652EE1874CB5CF007DF2E2BB5A
+            stream[256..319] = EE5A306A60C83E209ACC5F3D60E17D90
+                               FDDC0D790BBB7B1EEB635924A4C7AEBF
+                               3ADE18F1F2F03C1E74093847B8F9225A
+                               9588E92A826444BDD143B38CC3934FBD
+            stream[448..511] = 33DDC526B91BD452296DC8ABAEE7C65A
+                               E7D8CA37FE66166B67570726639841C8
+                               559405236A37A104FAA3F5A1A1932D57
+                               FFE36EC16D439B1C291DD11638C50730
+                  xor-digest = 8FF9D4A8277BA858B70F05FBAF80FC6E
+                               31AC1CC81E8D847721CB632FA757C4B4
+                               BAF548A4764EBA7206009A5B99A00089
+                               7717410EAA1D4ADC9F6D619EC2D6C511
+
+Set 2, vector# 36:
+                         key = 24242424242424242424242424242424
+                               24242424242424242424242424242424
+                          IV = 0000000000000000
+               stream[0..63] = 0FDF243C21DA8B291097C9F385DFF2AD
+                               4FDCA5EB4FA7E4C23CC61FA1A582EB23
+                               5AE23454DF6F19B259E498F746F9EF35
+                               491F77DC53BD596AACCB9FB7B5EE8ABC
+            stream[192..255] = A92CE971EA8E2ED7614325F0C47CE1D7
+                               200B94EEB7FB4E31CDE640696ED6449F
+                               B29A9F19EABE323B776EE9460C2448E2
+                               DF83206A401074E3254C5AD6C194BD99
+            stream[256..319] = 6F988009D4C82F523611DE08FEA23680
+                               02FA5A615E8EA831A76C7CABCC92E1BC
+                               C02249FD76DDEA5C00FEBC391613857C
+                               97CD684B23C6D9B40F1C5254404F7CA4
+            stream[448..511] = 61503589A014A6F800A5D93803517581
+                               988262122B30755A337F81EF3B326125
+                               51ABCE838C0A57795EED2F26173DE6B7
+                               E4BB6E37EE7F98383658A7BC47976321
+                  xor-digest = 3AA2F283D77DD949C9EBF1B4EA95D9CE
+                               AEC299832AE766A1BD617F56473D3031
+                               2B81DF89D0EB79669F1A044042213F93
+                               DC7F0A2D4B6F089153C6FF9095C4E69C
+
+Set 2, vector# 45:
+                         key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                               2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+                          IV = 0000000000000000
+               stream[0..63] = 3D9EA1F4A3036C92CF9E0D6BB20824C0
+                               F57818B3C84DF65AE4A1DE2A058F8BEE
+                               242F9BEA42A78383F98AC998BE4B1EA5
+                               401BEA5250611CFE6505AA5F43C9A262
+            stream[192..255] = 8C2F23B3E0255982DB921D035B507433
+                               2EB98C31143E19F5FAA40547D0819157
+                               BBA1B6B5C3177AE45074CF5E711195F9
+                               281A71E62617F3A1E582D4F89FDAEC4F
+            stream[256..319] = 5D1ED872FD20FDE0C98FD76503F538B7
+                               538F5061D3A3B12385B4BAE7C8CECA20
+                               E47EBD5C96F88D78230B5D3909CA9B0A
+                               4BDDA1FD1F561ABEC60524C51559EF45
+            stream[448..511] = EA2F040B9DD538FB258C9289F5CB76B2
+                               335C7D05F5B9B2CD591B55AC8FAB882D
+                               07EC54EDD33D4B24D6AD69841C219C5D
+                               26DDC827C67D0A6AC12D0A4E0DBE9A78
+                  xor-digest = 04A255960FBBF45E8E9E0828035FA11D
+                               A684C2A7099AB00DB1D3E117B78026F2
+                               8F69523A4B9A9F570C49FC02E1F2FBE9
+                               6F2CA223DC8105A5A6FD0E2CFCDC9AF0
+
+Set 2, vector# 54:
+                         key = 36363636363636363636363636363636
+                               36363636363636363636363636363636
+                          IV = 0000000000000000
+               stream[0..63] = E0E9C87C82202453CDE753D368DA1842
+                               9279F0B97446FB12A0436C6BE1AA7514
+                               3E98B740F6F9CEC72A1EA38D4EF2BC65
+                               E1AF3AE13C5ADF6DA16A2131739C0084
+            stream[192..255] = A43046BAE6A4A2C288CA187C72A21E88
+                               047CE98C64147F2F853617A54A3057C7
+                               0F48823ECA4B82609924CC9453D57F1D
+                               3ACF7D302592BCF9B1439F28B3EE5F34
+            stream[256..319] = 08DFF1999015561E0817C20CED5E979C
+                               6BED0512A69CCB4C6F6FA480CCE4348A
+                               076F549355D22DDC52728F833447DAED
+                               83D7012F3F59A8BE495078B72B299753
+            stream[448..511] = C66109B099BAD13AF2F36F5AED7AA0F0
+                               0320D8B109EABC7428362B7CC43C284D
+                               04EC23DFA4F2A5ED2A7BE2A64CF42F9B
+                               F973C6F2AFDB1AB7B7E5F9499B9DE964
+                  xor-digest = 9F9D95E6B8F6E9682B03C0F78E06DD42
+                               35E62C6DDBC601EAA3D36D6E6F8B95C4
+                               50198564F812801FD2893F1B12A59158
+                               B9506624CE698A648E1928A42BC72ACF
+
+Set 2, vector# 63:
+                         key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                               3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+                          IV = 0000000000000000
+               stream[0..63] = 18B631E89190A2C763AD5F1DBC57B565
+                               EAD588F7DC85C3DD75E7D7E74C1D4429
+                               E2FB3C6CB687A620EB7050CCD49B54D0
+                               F147302BFB7ADC6D1EB235A60338D190
+            stream[192..255] = FE2017B0E26C72416B6789071D0EABE4
+                               8DA7531CAD058597AB3742792C791678
+                               44C84243B910FCA131C4EB3D39BD6341
+                               842F96F4059261438A81423586EEE459
+            stream[256..319] = 5FA44FAD6149C7E80BA6A98A8C861993
+                               F7D39F1CAEAD07CEB96CBB9BD9153C97
+                               8B8957C82F88EC2EDD1BCC207627CDB7
+                               029AFC907BBEAFAA14444F66CB9A20EA
+            stream[448..511] = CF4DD50E4D99B8A26A9ED0F8CEE5FC10
+                               E8410C7071CCFD6939C09AE576C3A5ED
+                               D2F03412E40C8BAD8DC72FAFD2ED76A1
+                               AF3BDD674EC5428BD400E2D4AE9026EF
+                  xor-digest = 1C945357BA98CA7AAFD28A5A39DE3DD5
+                               B5F640CC7F0A567172706069637AF5C3
+                               975923080CA3FAF9367294D495A02052
+                               C0C473E4B779AFF3BDD9EE665D55EA9F
+
+Set 2, vector# 72:
+                         key = 48484848484848484848484848484848
+                               48484848484848484848484848484848
+                          IV = 0000000000000000
+               stream[0..63] = 82492EEE44E22AD4DFCA2032BA401F73
+                               7D4BC35CE8546EB6314EDC25E69DAC16
+                               C8A9EBED6EAB895B7D72BFACEAA14E36
+                               3F9A9773E43B077A1991EAC1EEA83EC5
+            stream[192..255] = CB11B43F7E98D75576BB1B1AB33A4E6E
+                               CD9CBCEEB36718B22C14F430A8BE7BCA
+                               BCBCDE60D775DF441FCD808E79D05FAF
+                               E3AA199D45DC174272EA3DD0057D9BD4
+            stream[256..319] = 7D237FF28E20F0FDCAE42A7D0D7AEFEC
+                               8AF23CF2906E305341FDF8FF75C0B9CB
+                               C8F19696CE8D31D15E27EAB0AFFCE92A
+                               AFD1BC29E9B80895B3A7CF57ED434D96
+            stream[448..511] = 5ED806ACF2490F17AB82438484FCBF61
+                               6A17015069B88DFC2C4CE76A2F564E4C
+                               5786A7514CE542709E90101094DEBBF4
+                               8954F9BF8F4773E06DEE7FB9231AA457
+                  xor-digest = C77654229F128DE04A121608381F5F05
+                               7F7EC90BA31DCA134CB4AB45EF911F8A
+                               0AA71DCAB706277802FA880A73EE5153
+                               7451838D05B4ADDD796FA005E7F136DD
+
+Set 2, vector# 81:
+                         key = 51515151515151515151515151515151
+                               51515151515151515151515151515151
+                          IV = 0000000000000000
+               stream[0..63] = C7FC0F8C8D2064FE05BEC4A641560FCB
+                               C41A60718B1DF62AA297E754756CDB68
+                               48C5BF60721B49A854A7A4D4BF2D36EE
+                               943A3B3922A638293B32F15A7E9A1357
+            stream[192..255] = 987A15FE80E62B043B2C7C0953A27D04
+                               83B2A7ECC03AD33C2F99FAB7FD2A7EE7
+                               0181F7913429F89027E392FC3B73F4A7
+                               5E475BA1D7DD4DA0F32D776BBABF270C
+            stream[256..319] = CEBF798ED076B963AC8EA9465F7EBB90
+                               6E09F80247C1FE09C86D1BEF3DE4F4AF
+                               94B51FECC1C58E1E8CD225C2F68CCEAF
+                               C36C029DDCE9380AE9FBC867E145F658
+            stream[448..511] = FD7E885A72C796E642EA628C6ECDC508
+                               9F465F57E55D51170C039B253B14EB9D
+                               195A3712CDEA2624A5382880192DE3FA
+                               0DA2A86EF3A61220DB949596FE1C318F
+                  xor-digest = DBE3B90391D0169C64BC96AA925975E5
+                               89CAE70CBE36AE6835496B1977D1ECF7
+                               9F9D3E161698CFAA3F7AF57DE535488D
+                               A06A8B686577A52BC358FE25F95EA2E6
+
+Set 2, vector# 90:
+                         key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                               5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A
+                          IV = 0000000000000000
+               stream[0..63] = 6C3645C8621D8E7286911278BAB37C5E
+                               EBAA2AD321AB8ECA62D13372156F8B87
+                               FB87FBE02B1EFE39AB0EBE41553E5348
+                               073053048A0D4DBDA1880230CD23A4F1
+            stream[192..255] = BB161E8441B29DE15C9A02F447766354
+                               E7E590B42AE566935F0A6D7E864AF5EB
+                               B288C0C63812B0917970547225899573
+                               7C804E58F7BEA1596B7343B0CBDC6AA3
+            stream[256..319] = 6EC6A41251D6FE041CD87EB3996369F1
+                               390E649F012712F9DA4D1F4DFF96CF74
+                               91CAA6836C09BA8C55ABB656B4F51F7B
+                               4AF829B5DC89F460287EFAD064C44F28
+            stream[448..511] = 3D54A399D5B92252CCF9E6A0C054D4A5
+                               EDBFA58A3B53981BBA50EE9BB379D71A
+                               C9775A0D793AFC79A64C708D0F9A7D7B
+                               E061D5A5D50DBF32480AABEBC128D198
+                  xor-digest = C8340B28A1E4A5AADAC14966D92094DD
+                               56EAB9C48C53327CFA62608FBF20456A
+                               23DEC3B658FBEC9EC1FB6B56651245DB
+                               58D6FF770F1404659BC697685BBDA62B
+
+Set 2, vector# 99:
+                         key = 63636363636363636363636363636363
+                               63636363636363636363636363636363
+                          IV = 0000000000000000
+               stream[0..63] = D417644E8A37FF8840772A55960C4B06
+                               4DA371869EA07FD02D7F8EFEF0BDB7CE
+                               308173B8BAFDCA6064CEBE09609377B6
+                               542CE73D44A0134C95C452D9B83A4B35
+            stream[192..255] = 2974AF76C0EB09874EFAF061BFD45636
+                               E6AD9C2BA71A1B4FAE493C04205B5CCA
+                               A1D361DED0F1BF8C2FF2DE70F4B68E1E
+                               B1B6E63B19EE1842DA4ABC52C88714D8
+            stream[256..319] = 934392340254B83FA7A9888D1CA9959B
+                               A221FF1C487B214FE6703C4BCE02EF62
+                               4DE46A76670712B381E2EE017B67DBAA
+                               3726CE1CFB39038FD0059EFCB2346385
+            stream[448..511] = F234ED6FEFF11821E19D73E31BFAF745
+                               126D80E0743623A179303C5A7827582A
+                               ACFEE4845E8D3FD98AB990C710020B42
+                               542DAB392D6A1BFE058E200FEFA00006
+                  xor-digest = 42453E59A686950A5E37CE26842A5939
+                               52CFAC24B39A3D7B2D7A4BA65BB95460
+                               D5A493A51F5F1D97B30B6752A826BFD2
+                               CD6EC49B87ED1815F2E47DBBE99BC904
+
+Set 2, vector#108:
+                         key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                               6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C
+                          IV = 0000000000000000
+               stream[0..63] = 1456A98D271F43A5FF29B3D0BCC35B78
+                               50C4D9DA5BBA43B752A1A541A4FC88DC
+                               0FC4C89F35ACF1B540F5C3207A0BF359
+                               490D482232936E5C0B818C3DE6EF2012
+            stream[192..255] = E8DFC363183330BBCC8498913A28545C
+                               6905F858D314939FA148C4C6600CD23A
+                               941F88F2FF08D7567202F335F5A90A0E
+                               A92B9D73A2C710CFE22BE0D180BA1A42
+            stream[256..319] = 77ACAD59AC794EC38C13805E9638F145
+                               DEE96C36C9C07A1811DCC1531A462144
+                               AC1F4B2245A570C42B25EB646D4655D6
+                               EA646776B0445C8B5670AB2B11203823
+            stream[448..511] = 9A1BBE72AEC868E45B28B9FE3570381D
+                               A759D1484B710A2AFB385DB7EAC5A2C6
+                               5E2EFF9204C5DF6A684ED55C2D09FBD1
+                               7E2FB6B4FF4BAD3ABD201DCEE340305A
+                  xor-digest = A5832EF363D2FD5B01270B6776A5C8EE
+                               C08491D8064752E4B5AC53993EED1A5C
+                               24673C6B2A47FC31C91F2EEB995836D8
+                               20E8061303E9DB8C81384798C4265AE9
+
+Set 2, vector#117:
+                         key = 75757575757575757575757575757575
+                               75757575757575757575757575757575
+                          IV = 0000000000000000
+               stream[0..63] = 8F04C8F40319569CB4B04458528135E8
+                               35AF2C69561F0F0F5B6009B540B85ED1
+                               BC7612C9EC7A200B08AEDF07DB08ABC3
+                               9FA48E63AC81974175AE3A4AC9429985
+            stream[192..255] = DD98FBC3465BBD56ED0BF2F2367498B0
+                               E2854E514A27C7410AAF8E0B44117EAF
+                               A5EDA0C7FA2106C03DB8AF62E5ED136B
+                               4BCA0B82CF2EA19FDADE4101C57117E2
+            stream[256..319] = 7CA321B64434A90CE08E00A99D9456CB
+                               7A0779D4F0FC12346C01A5A1310528DD
+                               2E0EA2F58A8795BD138687645A7054DC
+                               2FA74835B1B45F4B68E3CEAAA315C250
+            stream[448..511] = 076AB5564DB74D830CF96E6B90897E5F
+                               2E597619B47FF74B190C16735E902BDF
+                               111FA384ED3F8055343F4561C731F783
+                               7072FAB81825304DC3D4CC02404E539D
+                  xor-digest = D725AAE2FE26DE0129790BC7BE3BEFC5
+                               83A8C7D9F4508C8582A40855D4A79C00
+                               098B8CAB2878A30F12FEE5F1B192C21F
+                               DF3D41F5EBC784784B3DEC5C89D0716B
+
+Set 2, vector#126:
+                         key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                               7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+                          IV = 0000000000000000
+               stream[0..63] = DFD428440260E1B64579A6940EE53907
+                               8CF48977E4B61DD0C708B52B42A607AB
+                               C0A0774F49FD8599E4A4CA3B7C54FEDC
+                               353D2467DEECDB9FFC8350C79414CFBB
+            stream[192..255] = F4C7C343C6DFB6F7EA25DBF6DFBD31D2
+                               595C45C4CD1C057308FFA60C1AF1BBCA
+                               888C6C8097E97319566A7EBD80DA4F0E
+                               DDBD22015CC363E5AC01BE42770660C8
+            stream[256..319] = F1792B445D52BD4FC99557ABBECBCE74
+                               257A62EEA110EF9CB3CB0388922A7FBB
+                               5FCBCE5BCE44818F930284E4E360973D
+                               49607E1B0E1D97C618EBA4D909A50375
+            stream[448..511] = 7A2EB3ABE2F83C4B40A15F4AAA89D5C9
+                               72B911AAFFF5069FA3E7396162CFDBBB
+                               6A16E222C15878D9C8A00AD8201F1889
+                               9F060851A3147AC2F3385FD8144BCD32
+                  xor-digest = 65FAF34064FE19847014B10AD550DF15
+                               B05A8A3D6B7EB64C94FD0EB61774A8E1
+                               03DFB43B3C4E0BB074848DDC6A928449
+                               2AE5E03E36FAAB8D46E8D647753B825A
+
+Set 2, vector#135:
+                         key = 87878787878787878787878787878787
+                               87878787878787878787878787878787
+                          IV = 0000000000000000
+               stream[0..63] = 47756F1D1EEDDF06790A5E39083186D3
+                               16E3258B9C5B7D25E478E817308E2B90
+                               A5DC4A8C03A38AE1757B6EFAE73B058A
+                               7CEA675CEE9A01E9BBC7B15DC5424E64
+            stream[192..255] = FE6FB2E0BDF120B585D082602D2648D6
+                               D95D14C3E8DF44F7D9BF650709578C0A
+                               A5D775BAA12A3C1153CF44AE2A3BAC49
+                               534210F8BB8AAE7F54DF049AE368678F
+            stream[256..319] = DA0D9214302984F36B92EDCA76765B8D
+                               5E748EE13176CFA41345AB0EFBD7CB54
+                               737DC606DE60E4355233E63B1EDAF48A
+                               B84DF854E47D1D746B3AA5CCC0A5DA62
+            stream[448..511] = 8373EFD791B51A07B840A7FACA4307CE
+                               9F5FB71A0C7891CEF7E7754A414B61D6
+                               593A5EEB782FBF28998F4174C63733BF
+                               A7EE172290A0A854AD6C36757AEE0911
+                  xor-digest = 11BDAED16F1C5D38F8EAE0B9FC6E63BF
+                               F0E7A087247A25A20135BB7A5500F937
+                               F34ADA22153862AE37C963764901DFB0
+                               18E9D8245DB4F275A38C10BA393EFAFB
+
+Set 2, vector#144:
+                         key = 90909090909090909090909090909090
+                               90909090909090909090909090909090
+                          IV = 0000000000000000
+               stream[0..63] = 6AB7A8C769386FB6067059D0EE3DBC97
+                               1EFAEF4AC10C74A2F17527EA5A8C6E0C
+                               DF1FA10F27A29911BB57BF3E7A6DBDCE
+                               4AF3E7BB730F47AC79DC917DA646A8B7
+            stream[192..255] = 1DD701A2698617855C38017B0ADE1E17
+                               D22D9717E21AD8635CE6A40CECC7EE43
+                               83D5483F414B9F2285D200500CCA85C3
+                               D45F4F25550E3701B675D7E1B8266C6B
+            stream[256..319] = 5D331C1544CFD44E3588C2EA0D889F44
+                               D5742E7AFE9581CAF23CB668B0530C84
+                               A89D63F948969DBC0D0574911EC0307E
+                               CE9CF38C5FCDE75462D1C472455A78ED
+            stream[448..511] = A55713DFAA272076529BC5A33558A7D5
+                               206C1C070648DBAA348C78556631AD99
+                               F8F16DDDA2E5779B155DD9377A8E575C
+                               257FE7E08ABE9B3A378027EA06539810
+                  xor-digest = 8672FFC244BBC43DD6210AF1BDE1A607
+                               C41F3243FC149BA8988B7FEF41C4A7E9
+                               61F5E992F51CDD23B183C4DB710E89AB
+                               BAFFC13FBDD613EA098F9D7375742F8C
+
+Set 2, vector#153:
+                         key = 99999999999999999999999999999999
+                               99999999999999999999999999999999
+                          IV = 0000000000000000
+               stream[0..63] = E548ECEAF4B4AF1F8572F7113C7D8FF9
+                               61837C15ECC6BEAAB80F38CB15022B50
+                               BCB1FA414A798C954DAFB572CF22A9A4
+                               D82F7561186C31BA0199EAE1678CC4CF
+            stream[192..255] = 9E5D061279348E0D5DA552A82DDD3795
+                               37F928DCA393AE75AED13F63BD60DEE4
+                               32C96D1B2365B59FEE3C0E18515966D6
+                               642F2E156C30C704A77DCB5629AC6167
+            stream[256..319] = 9CDCAD9CB247AB21BA9E93C936936994
+                               C6C320841C745D6DFC85110367B36C88
+                               67CFAB60F6A67A1656C645BFDBF196AC
+                               974A4165BF81FBE715CB6C3954E217FD
+            stream[448..511] = FE5134E8B0BC016D3ED3594B6EEF2F06
+                               FAFE2F4C89CB4E2627B232BACFDCA8A4
+                               80B1C55DF4C0AF1E630A617CEDE0A48F
+                               900A9CF815362C098A76D29360414735
+                  xor-digest = 6C7EF2493D05F6A8BBBB583EF1E361FC
+                               0F808F749BD13D2E6F23BDF76A9003FA
+                               D08E8C1D840D2236C6C3686211353DB1
+                               4B5B421A75DD362E413D33D02A5D5658
+
+Set 2, vector#162:
+                         key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                               A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+                          IV = 0000000000000000
+               stream[0..63] = D0854334E4619E3EFBB2A53D59F89866
+                               F67220CE00A3116313FB9CB645339766
+                               0CA976A8B3477F76FF8FA485D61E3758
+                               3DA5F35A8FAD678B7C2B9EC97321DFD0
+            stream[192..255] = 92D4924C3E682EECBF9AD3A5453BE7BD
+                               56D9FD73F16BA0CA09FBD0C136BCD595
+                               2FE55744B1871E4C8726611F291B282C
+                               2219C817C88086A5A7BDC513DCCA473D
+            stream[256..319] = CAC309E4AA3ED635D68E5AFD9F4CB0BA
+                               DB229E8EB560B16645CA2A71B35B7C3D
+                               757C156983F7D053B0430F9634402B8E
+                               4FDE6926135473BA8560C3AE1FD5BF48
+            stream[448..511] = 980DB26FDBF49D5D890B65EB01AAEBD5
+                               CC118812BDE441A71871206D67683889
+                               828622C6336DEA09DB6ADE0772A3D091
+                               F77B1F3115E1341EF11F41F7CD0505D6
+                  xor-digest = 3306A1B9675C78ADACEA0291207055CF
+                               68522DB3DA07A5EC9C91361B015B1896
+                               33E4451B8F7B811EF5CD0A056AC7A07D
+                               BC1AB3A9DA16DEC28A006FD9928B53C4
+
+Set 2, vector#171:
+                         key = ABABABABABABABABABABABABABABABAB
+                               ABABABABABABABABABABABABABABABAB
+                          IV = 0000000000000000
+               stream[0..63] = 6CD6B451B1C793485006B3B51470E6AB
+                               20163502C30240C4A3C6406482A2770D
+                               550AD77D0091632C719BA33769823D2D
+                               8147396466F1A2A857060A42ECCE0A0E
+            stream[192..255] = 81298474E6D86A66AE4CBCEE495D8740
+                               502CBE5CC91174865A615B193B55BA4F
+                               CD2337667292D3F3C428B9FEF090207E
+                               2DEF037917A2244FFD3AE8161CEBA42A
+            stream[256..319] = 367B062DFFD72A6EF6CEB3AE7FE59684
+                               690F40A9F276E8021994ED475BE1F08F
+                               A5C99E3A1AE1E68A92D02C5C14BE0E67
+                               A1B989E7033274993D1685D4B2DAE6D0
+            stream[448..511] = 43C53B82CFBB199FFF9C5719ED1EF470
+                               AAAD578C5778A9DD3C2D77C7BAF41CC3
+                               0F5F7B4C91FED81E9A661093EE20FC3B
+                               BA55FF8447C899C6E12A0A0F5ECE3BA3
+                  xor-digest = 7772EA572BE1609E5D20201E7F147A6F
+                               DC25DCCF12D25DEBCAAFB9E9BD1E11A6
+                               FD26D5B416743F495268D00B4B6CB798
+                               B0AC43498541EFA188907F9E78AF0424
+
+Set 2, vector#180:
+                         key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                               B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+                          IV = 0000000000000000
+               stream[0..63] = EE879D01C8E20CE8CACDDB464348F69C
+                               6551F70383A82933C3A765B8AC138581
+                               8D67C69841FF2B4B8BC209ECFC0FE765
+                               C44C42C9CD6EFF90E0A6DAB153F52D04
+            stream[192..255] = 8D7D377A3072E9571F9AE00D25E875A4
+                               D9BAB98A3EA348BF823F12F44DABAE28
+                               317BAA3A71EB3D7C4C2EC3EF87E828CB
+                               862FBFC99C7ECBC629D22DB8EB82156D
+            stream[256..319] = 97B547A3E920FB054416A5787EAB5C76
+                               38FA6CCDEC816613FC855EAAFB4887C1
+                               3A38094D89570BF17E55E5E1EC275ECD
+                               122142C9126DE5E9411F06805071983F
+            stream[448..511] = CCA815558FFE08873C9AF373FAA546B2
+                               FB3EA3059EFD02CB778D01962E87EFA8
+                               5F24BC5BEFD4ED02C986C0229D70ABA0
+                               D4E97328780FBD0ECB367A8C085414E9
+                  xor-digest = 00AADA5BD15D2585CDB0EF205F20E4B3
+                               3452AF75D4CE8C36925514CAFDB519EB
+                               E387FAFF8DDC7856AD1CE68A7BBAEE29
+                               5347BE2A647434AC4CFCE3D2C925905F
+
+Set 2, vector#189:
+                         key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                               BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD
+                          IV = 0000000000000000
+               stream[0..63] = DED8C79CC623162C2074FC7B4876F754
+                               1B959209AC6573E6D25D1F1E649CC241
+                               31A2F1B1B9E9E0FA639F8AF373CCAB88
+                               3C659001BD120449997871E6A1D5AD8E
+            stream[192..255] = 1E946CF03C4C89D19DDB9C48EACFE7FA
+                               A48235899DF49232CE2A586130BAD63D
+                               52540151FBC02E3BFEF082A63A900C42
+                               0D6D7A11E289C34387A6155ABB71816A
+            stream[256..319] = 3CCAA2AEA81296ED9171B608FD8DEAEA
+                               3EA5B8A87B17B10751A01713EDE6A156
+                               652783C26C0247E347860C06AD633AAE
+                               2C0AFB239291A6E7729F8838A4D97533
+            stream[448..511] = 065DCB330DDC528BD42DC6A0F85179A3
+                               531CF900DC5F7D3B5455DC49D451161F
+                               9AFD79A619DD951C854019412532D33C
+                               9DE6F9AE44394208653CF12D316F4A70
+                  xor-digest = 74D888BC6614CDD372E03DE0E92A0512
+                               DAD7CE19C19B1E05F34BE79F1222BEFE
+                               E92190397CDA031A0FDE5098FF31CEC1
+                               CDC0FD7B422A6424119C46C506BF39CA
+
+Set 2, vector#198:
+                         key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                               C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6
+                          IV = 0000000000000000
+               stream[0..63] = 36AFBAFFF746195D8784CB72A16D12AA
+                               604CDBF567955F15FB55DD42FAE8DDC4
+                               E6CEA63B6F8E2815F3094005E403FEA3
+                               0EEDD68B5F2573EFD03A4E2BC41AEC32
+            stream[192..255] = 4F7E1CE5E727D83989222ACF56776F0A
+                               FD1B00E9A5734408E1513313E0CA347C
+                               C37D8DE7AF4F6C5C7EF311BDA97BD8F4
+                               52F89B4D44411D63105BECADC661D558
+            stream[256..319] = 2677C65207F10008A28E0D3D2C7D43A6
+                               71A96CB9A98ED1ECDEBA8F5AFAF4DDF3
+                               F7B078346EB1DAEB1047D2E656EFB331
+                               F3A71302E6FB547568D6A8A2871EB5B2
+            stream[448..511] = C39BC4103ED0D8FE8C7D5FC072C94080
+                               DF9DAB70F627D8BD68719A721836554F
+                               3A2CFD08616170F4E3C3B0420BB41FBE
+                               9A84C43D405B9EE32285BB5051CD5E83
+                  xor-digest = C6AFC707ACCB8F10DFDA45A836C85603
+                               D2F5E30BFFC0A9FDDE48666153F395EE
+                               0BF93F900D59C7FA70632F644521A5FC
+                               FE28882311D315D53BC10755698FC81C
+
+Set 2, vector#207:
+                         key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                               CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+                          IV = 0000000000000000
+               stream[0..63] = AA68F6EB41DB62A2C5E4E9AAF21D7D43
+                               1C29A66303854A68EF737872CBF7C505
+                               918B87CE4DB6B3D84BC039906AC0561D
+                               F79F0A57CFA762B8B9C2991F1DC98032
+            stream[192..255] = 7BC0564BAF3C88CF14FCD2020433CEDF
+                               65EE68DF4AFAB7E040DFC396A856617F
+                               677217529B839EB9DF47AFD6758CAACD
+                               75E734FCC653ED5AC25C8A7B1AEBAA49
+            stream[256..319] = AD21BBE24EA84C0859B2EF3E09070493
+                               6A6D2A97DF912207D3F50D63FCD56676
+                               61A47AD0DF1FA8DDE08EAD7201AF15FA
+                               85BCBA0962D7921397E35E60149BB4EB
+            stream[448..511] = 8914307989CD704120A6DAC52789B845
+                               7260A2939CA0E02A4C41C46ECE890305
+                               9F58A2B0F3D93B45160D08A13737D51E
+                               984B97CD4A28DC2D92155FCADA3F8033
+                  xor-digest = 2EE47E155D995B266EFC7E0A995172EB
+                               AD6A1201A20D9A9F5397FFB815AE6246
+                               760EF488A9C45FB9B820E32A42E21634
+                               E995CECF6E9E05FD14FFDCA92313AC0E
+
+Set 2, vector#216:
+                         key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                               D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+                          IV = 0000000000000000
+               stream[0..63] = 596EA70BBA1A4DE2F8ED2AF37A0CE6D1
+                               2443354659CD0C41203EB345E160CF05
+                               6F8D71314AA7221D86F868304F34D5B3
+                               ED4D51072FE7B12568B859077B6F920D
+            stream[192..255] = 26716254A9C7067808EDC0D31D54D289
+                               88A3F655C10931E217B3C9A8A4B557D2
+                               8AD6C701612A8D848FED1589CCFBBE7B
+                               566496F4662B1D98FCFC70C1716E5347
+            stream[256..319] = B33C15E9488DE8A97AFE67FBFAF47FFE
+                               5C3934B05B5E2EA061A41A2BF0D81FB6
+                               054C824B492775E3E8300DAD609BCEA5
+                               837392668C0B54FECE2F2945F18160D3
+            stream[448..511] = A1F72ECB02649F01D4396574EA80BBCB
+                               8934FCF989CF1D7CF7410B0A93E08C10
+                               0A229C952DA999789662E1666CA71C65
+                               4DBEB2C5BBC20BB67DF67CD39B51B4CB
+                  xor-digest = 7ABDAB4EA81129864F2CEB9157C01178
+                               A413889D86A1D54F964F3D70C5A4326E
+                               3FDBEA3C5B77F4EFBBE94CC2DB808B96
+                               A81BCEF94D3FC039CB13A754D4E4A1E6
+
+Set 2, vector#225:
+                         key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                               E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+                          IV = 0000000000000000
+               stream[0..63] = 6D221A5561813E4B6BF1A3821F0BC95B
+                               3D51004ED29EAECD26016E5B7F628BA0
+                               6B2BA4D650D685C3BA9FB51E305EEB36
+                               A11CA08C431E0740D59D521FBDDBF716
+            stream[192..255] = 9C9EEBCA7428A88562FAD4EC9800EB7D
+                               E4EBE571855B40D3F1D9770236EF0131
+                               70A6BF8CF9C1880A1BC3C58193777098
+                               89384D19F4F9D6E8098E8E326B9AC4B7
+            stream[256..319] = 86ECBB7CA8E1526F538805A692C354B8
+                               E335BAC919CB4355C15B40D721328BE9
+                               81105395FD27BB6F0515A427469DF557
+                               DC92EB010C49C332BFEB1A98154BF0AA
+            stream[448..511] = 0503DAA102F9CDFBFF854D6015BF484A
+                               201F69E6E789A757B8DAB005D5859027
+                               849ECA4E951AE28126FB6C63BB65EF61
+                               94C9661F9E40CAAB817CBE89595096EC
+                  xor-digest = A3008548B817A82F3D4D2813B5777952
+                               A5D46CD710AC4F8417273ABDF65BF0D3
+                               D519C5D0CA1CFFE8F265338084F54DC3
+                               65C61F376DF6F1DC4B2BC6BA63E2FF11
+
+Set 2, vector#234:
+                         key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                               EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+                          IV = 0000000000000000
+               stream[0..63] = 304665A82B0838D4EA0A7737855CEAB0
+                               44583FBF2F8E68D7B3B191600ADAEB33
+                               538942A71998F68DA9A0D4BAC36A5052
+                               CBEAEFFCABC6B506E5F805F8105D5E79
+            stream[192..255] = 96B62FE40229E2CEBEAE44431F01A0A4
+                               3FA080D685215BEA4705B6B78187751B
+                               E1DFA0DCC1C8D6A2040C0716F524CF40
+                               42889F743A3EDC01EBDFD3A6FF3E92DD
+            stream[256..319] = D1667A839D7725E602FD36A69117D039
+                               AE92EC7032432323A61AFB1602F17E4F
+                               B66F0BB5A5F4C54329F7217497B3546F
+                               FF9938966B05789E0CA65CBF34DB1B2D
+            stream[448..511] = 3557FC69A9D44C66FB022ED8D4D349C1
+                               D82A41DA40E3687B197DFC070000B69C
+                               2FD9B1F9F99C63BF3ED82F2CCBD2A6ED
+                               20A14ABA05F6855078DF5C73A4D50493
+                  xor-digest = AA453B1E7AC7D53F54827BDBAD419A21
+                               AA49AC5A55E96622D028D3D600F37D89
+                               2C084D404A006404B18620F84BDF872E
+                               F7E90203875719F0B90FA8A900FDC22D
+
+Set 2, vector#243:
+                         key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                               F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+                          IV = 0000000000000000
+               stream[0..63] = BF9634C2D81B6400C2ADACFCC0C353CE
+                               3AC45A2EB636AE9D2D6B8DB6107511C9
+                               399FB22CA2DF6406307EADEED423E72B
+                               72411E11530B1814AB196A74DFD4FA61
+            stream[192..255] = 50F32FC8C94BEFCE5E51F3E774134ACA
+                               D60BF3DE49BFE1F17DDD88395C4880AC
+                               926528971A3D74796303A4064F67733B
+                               A2AB545344B97F555525C0A5611151DE
+            stream[256..319] = A6E426963373DCDCE54C1827F683859D
+                               F11857D7BEB1EEA10FF137CF6B395635
+                               53C79E92295B1FA385C59BC201612C70
+                               39341B55D49139B88A16544AEDBDA967
+            stream[448..511] = EB50C1AFCDFBF83EDA42011C141B67CD
+                               041598209605800EAFF2EE6A99A6C958
+                               9621B778FA4DB6D2FC4980030B86F3C8
+                               670B46BED56A511B9A18E60B1FED27D5
+                  xor-digest = BEE123C7EF4E2D25DB862CC720D9FEA7
+                               4B329C3B1588342B6104DCA139FB1A3B
+                               E0E1A1779D973C3F4473D76309B8FA2F
+                               831F295B150445F44E4F46336014FA7D
+
+Set 2, vector#252:
+                         key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                               FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+                          IV = 0000000000000000
+               stream[0..63] = 356DD71DBC2B216B7A439E07BCC1348F
+                               769F7EF482486C92E8FD8EB050224838
+                               AB1F4DFCD2FB196AFD4C4FFBF51B9124
+                               6BF45AE8131B8D5CAFA29FC3025A3597
+            stream[192..255] = C09481306DB9FF12F1798A21A3031921
+                               B237E1B54A73F724CC0378379DB2FD86
+                               8DF08983A3D26C32379E3B132A6F1766
+                               646A963AA56C8F5D45B35F79B24D27C0
+            stream[256..319] = 6C198E30BBAD2E329A7A3ED5C383340F
+                               90EADD9F44AB7F339E6BE9217366188C
+                               4C8D721BD6DC5D5D192A8E854013EBE2
+                               66633893015AFBED28EA42F928B27F60
+            stream[448..511] = FF9B8ED2074ABD83B51AA93A65E5E303
+                               774CD6874D344236B1EFD39A3605984E
+                               DFEBCFB5B41AC09AAD500F71AF6D77A0
+                               7CE81A5E0E1E29C857609143B5BE0BA6
+                  xor-digest = 1858D5470ABE500EC2CC40158C700E5A
+                               78CF094440F2081ED694C47AD054D7C0
+                               0E77B67920631ED3E5C86B400FFD70D6
+                               244CEC58F08DD3C4AE05778B514163FC
+
+Test vectors -- set 3
+=====================
+
+Set 3, vector#  0:
+                         key = 000102030405060708090A0B0C0D0E0F
+                               101112131415161718191A1B1C1D1E1F
+                          IV = 0000000000000000
+               stream[0..63] = B580F7671C76E5F7441AF87C146D6B51
+                               3910DC8B4146EF1B3211CF12AF4A4B49
+                               E5C874B3EF4F85E7D7ED539FFEBA73EB
+                               73E0CCA74FBD306D8AA716C7783E89AF
+            stream[192..255] = 9B5B5406977968E7F472DE2924EFFD0E
+                               8EA74C954D23FCC21E4ED87BBA9E0F79
+                               D1477D1810368F02259F7F53966F91CE
+                               B50ECD3DA10363E7F08EEAB83A0EF71A
+            stream[256..319] = 68E43AA40C5D5718E636D8E3B0AB3830
+                               D61698A12EB15BD9C923FF40A23E80BE
+                               026B7E1349265AD9C20A6C8A60256F4A
+                               CD1D7AD0DCBE1DFF3058ACD9E1B4C537
+            stream[448..511] = 343ED5D011373AF376308D0B0DAB7806
+                               A4B4D3BF9B898181D546EFCF83D7464C
+                               FC56AE76F03F3711174DC67AC9363E69
+                               84F5A447BD25642A00754F1133BFD953
+                  xor-digest = 8C03E9237FEE95D5041C753C204D2B35
+                               764E4A53035A76F9EFBADD7E63E60B69
+                               BF23F7C5FD39B2249B0C628FB654D521
+                               4EB588371E5D2F34BF51396AF3ACB666
+
+Set 3, vector#  9:
+                         key = 090A0B0C0D0E0F101112131415161718
+                               191A1B1C1D1E1F202122232425262728
+                          IV = 0000000000000000
+               stream[0..63] = 0DD83B7F93629BA8E489E30FE4B6EE54
+                               9BAFB44CB794AAEF2EF07116649FD4C4
+                               4DAC52560EFB34FF1A2E56FC0DD86F2D
+                               56C2C5C97089FC4C35C6788F36E6F142
+            stream[192..255] = 19A8C09135CBB83C6140BBEB60099BDB
+                               469178F58B6DC87AD2B33CAE53A83B46
+                               A3BCE1289A68528D5A32A8867587FCC7
+                               F4DFE8EEA78BB2A9C40B9F6D8797BFE3
+            stream[256..319] = 2E4E97BAAE813AD2C14848ABAB7C51A7
+                               4BF3153C63101F4E6E4EEA56B470F0A6
+                               78FAC3AA6CC300A51A7A345356D3FE1E
+                               3A56242086CA61A1E8E43F6703CDF6DE
+            stream[448..511] = 306FBEFC44132B66D527F5E75D171868
+                               EE8CBC6DAEFD6FC5B3730541CEA82CF6
+                               7D41B8783D75117D266B924502D5AA5F
+                               28FF44A13AA2179DD8F0F4AD4B29024F
+                  xor-digest = 25B9F46F897C9060052B08E0E70C8FAC
+                               C9FAC41A4057E304209D39EE0807987A
+                               C77A8A723BE07A22E9AB6BB8DC358A54
+                               14E6C31C1C6B9D9E107AF74594134307
+
+Set 3, vector# 18:
+                         key = 12131415161718191A1B1C1D1E1F2021
+                               22232425262728292A2B2C2D2E2F3031
+                          IV = 0000000000000000
+               stream[0..63] = 4B094A8031FEA02C5CBDC1E2A64B13A9
+                               A0976897FCBD92A15738330CD1F85448
+                               EBD8B7E61A76855C64BE1BE78034ADEB
+                               FFDEDFCF064AB92744760DFBF59F0A9D
+            stream[192..255] = F807DF0420C6D87DAD3A1811A96B5E4D
+                               2B2F284CD9130F51D307521BD2CABE72
+                               1F1BAC0EF6219B7ACF8923C026C7F9AD
+                               8762CC9A9F8847750511D3697E165689
+            stream[256..319] = AFB3798B54C003AA6C05C7893C5DB290
+                               AC7FAFE8C25D3E66AC699BBA3A880330
+                               70D17C0314DAEAF51DBDA0C9DF36B713
+                               A913BD397B41DA7FF410A593568AB2BE
+            stream[448..511] = 67AFD443E67F5FF76A247EFCF3D54649
+                               0649CDE396FE3AA34549C3ABC8F7447D
+                               DB7A666C0402AFA25ADC47E95B8924B4
+                               B1C955C11A746FD4C0DA15432C1B83B7
+                  xor-digest = 842B6DBFACE3D7D24AC981C56F398BD9
+                               C19DB3B086F4ECF5473CAB197AD6C170
+                               BF57A238BD47FED65726CF2D58AD701F
+                               B66E27C2026772AC8C706B77186BA837
+
+Set 3, vector# 27:
+                         key = 1B1C1D1E1F202122232425262728292A
+                               2B2C2D2E2F303132333435363738393A
+                          IV = 0000000000000000
+               stream[0..63] = AE39508EAC9AECE7BF97BB20B9DEE41F
+                               87D947F828913598DB72CC232948565E
+                               837E0BF37D5D387B2D7102B43BB5D823
+                               B04ADF3CECB6D93B9BA752BEC5D45059
+            stream[192..255] = CF7F36734A7AD1EF4D9A4AA518A91C14
+                               64184688F31E5E775E879E01E82FB42E
+                               AEE8F382AA0701D54AF5DB788858CCDF
+                               801DED1E18BA4195019AA3111BA111AC
+            stream[256..319] = AB84E643D214E8DE9274720A1557A1E0
+                               471F00394934A83A324D4270949BD448
+                               A7BB6B5D5FA40E9831AE5B4EA7D8D34E
+                               071EB56EFD84F127C8E34DA9BF633B46
+            stream[448..511] = E757CA957797D6416E17F852AFFBF191
+                               AF98EB8CF73DCBBA0BCE8EFA29B958E3
+                               9C0085F0076E0B4E31289A4F2DF35855
+                               ADD6BBEC725FC2860D4F49AB4EEA6C87
+                  xor-digest = DCF2DD4BD229E2325045FBE0DA487A00
+                               256DA072F2EC9FADF50897E8C0379308
+                               28C6C1971EFBEA4155758DAEC6404CB0
+                               E312243E7757060D600EB8094FB66995
+
+Set 3, vector# 36:
+                         key = 2425262728292A2B2C2D2E2F30313233
+                               3435363738393A3B3C3D3E3F40414243
+                          IV = 0000000000000000
+               stream[0..63] = 5DDE22EEE0ED12CF83F433441A3799B3
+                               A4415A2018A60BDE0A0F8E08993820C8
+                               20998D420F346D8B808CBED40FC7CBD0
+                               CC43949B0A16F0EF2577CECAD03DCAD6
+            stream[192..255] = 5C86A6AB19AD083676D609D2C094FFC2
+                               921CD8D4580815522BA72AA20FEC59D5
+                               64F1EDF2E2AE4810C69701BCD515A939
+                               D9C156254F28DE5C90C6CA2B0A385D53
+            stream[256..319] = 956A71BB6344DDF03A8B828A03FEA914
+                               8585BB8D21E52134F1FA9541A57519F4
+                               4C2D56C8746E9FB40EB1FCF3551A5F95
+                               38B90606924F3D082987B77C127D1DB7
+            stream[448..511] = 2160DB576116DD75880E4DE9A7505308
+                               05EBD00F48B6BFB62679F93EDBD42766
+                               A51AD3052C64174B5B027F6D5DD02059
+                               2F5BBC369D48708295259F4B9519B19B
+                  xor-digest = 5923F3E59743F7BD9E6C9E81DB5E0007
+                               02C2A1BF996C3F00C43D2BF32FBD0F62
+                               38B3EC2AB846972C48171EE53B5A9722
+                               2CCC6DF5B470C5C1ECC1F6FF89F74043
+
+Set 3, vector# 45:
+                         key = 2D2E2F303132333435363738393A3B3C
+                               3D3E3F404142434445464748494A4B4C
+                          IV = 0000000000000000
+               stream[0..63] = BDF4E0BB6B36D01A31EE2E76F2379D33
+                               286ABFA82F6872677955777DEE0B1662
+                               A65D85EBC56A7995A6F6CF995154C444
+                               C27CEF3EABC85B8985C7FA94C8ECB065
+            stream[192..255] = 8835BF6D66FD567BCDA956673D9DA182
+                               701921B79AAAB6039D65ABE1C7178923
+                               BC39C8A56FDEC8FEAAC4C29707914F68
+                               CA6CBEDE4DBE9FEAAF84DA2DFEC56E96
+            stream[256..319] = A2751597632CF806C8246F7F9D9C4A72
+                               DE85C8C0C36A769F32A062DFCD45635B
+                               0C7131BFB38CE253886D4918CC4B7DBA
+                               780CAE5FA0F22479F445C0AD1285F35D
+            stream[448..511] = 1130339E16298874524D18F68266246C
+                               A0B2060607B60689D025BD30BC6DE7FF
+                               5DDB90249319C9EA13195200ACADB595
+                               14D56FC358D7A0D3BAEA374E34EA2E9D
+                  xor-digest = EBF45CE390507D94E9969EF42C62C8B3
+                               C6649FF841003830CD716EF712BAD8F2
+                               A47575AF99B8F93F12C14FAD7CC03D6F
+                               0D4C5C5E5C6D997053C9C36DAA99BBCC
+
+Set 3, vector# 54:
+                         key = 363738393A3B3C3D3E3F404142434445
+                               464748494A4B4C4D4E4F505152535455
+                          IV = 0000000000000000
+               stream[0..63] = 51B180F1C9C31388F8B3DE8734F3918F
+                               F6DEC759689E6A54D0EAF8734DECAB2C
+                               A2ACA4DFAA260AB781769B83CF94C2A0
+                               166F2643585CAB42220D200F92074363
+            stream[192..255] = 147CE4098C9884493CF00DD28B6439A5
+                               B794F871CCC4FFE349CABF3963C6BACE
+                               D799AAB7F778B59473EDE8CB475056A1
+                               E7F5D0BE68DE84C535A8FB67724E0C6D
+            stream[256..319] = 7F0BCA1B790CD5C8F8CFD047AFE1C5BF
+                               DDA8C8E0BBAF0567D4AE6B63C9E32770
+                               51D1200ED8740D60FBBADC20CAC825A0
+                               819CB66398FF7CFA38F3CE5CF23BAC37
+            stream[448..511] = 74C2B38820E2614D4AC42477185346D7
+                               5EC3BB41DC9810610C5B745A1B423A3C
+                               BF14A7E45C08C5E7C1CAE65B8839F030
+                               A8E52500776B45EA65885322FC1B3A57
+                  xor-digest = 109865F93CCF7C2EF35211EE91967DFE
+                               6A45DD309EF3FEB5375F05F1429F7C88
+                               0D712F67A547462D01CDC15D72AA32CD
+                               A5F4D630AD5186D951E34A8E1F9F6D20
+
+Set 3, vector# 63:
+                         key = 3F404142434445464748494A4B4C4D4E
+                               4F505152535455565758595A5B5C5D5E
+                          IV = 0000000000000000
+               stream[0..63] = AADBA970B29F5BB8522C3817E849E5D0
+                               417863554D16D6FC42405CA5A826A82A
+                               7F0ADD295D02DF3EB565E10CA1902E7E
+                               E84CC977614F325AA0BCA298F64871C4
+            stream[192..255] = 23453B14E9067B2733C88A3137650D83
+                               BF2EDEA3BD78D336765151C9DC15A534
+                               5394C7B0E1B0DD3BEF7C7BBBB84AB0B5
+                               7992446F8DD102F90B0D72728686EC17
+            stream[256..319] = 0291E9B6188CB3E43F98B576C9C114B4
+                               E1165A39B33E32E7260D6767058C45B0
+                               93717E09868B400557E750557417E7C7
+                               F0DA6A8AB0179630023EEE17B0362575
+            stream[448..511] = D98E6AF3B8A4BE5EE6CD4F067FDDE869
+                               FA2569648498460C0B2E4A3A4652FB71
+                               77D02D632BFEF2C3511F1D374AAADDE1
+                               4542AC660114716E5CAF854AA5C2CF1A
+                  xor-digest = 989C4606DDB85C89396FD3D07C6D0341
+                               6D90B980843BDB761E51AE7887E10E6A
+                               F845E1D71C310A84473701B2D27AC832
+                               6721A660A63B5EA4E265D1F2B2027093
+
+Set 3, vector# 72:
+                         key = 48494A4B4C4D4E4F5051525354555657
+                               58595A5B5C5D5E5F6061626364656667
+                          IV = 0000000000000000
+               stream[0..63] = 53AD3698A011F779AD71030F3EFBEBA0
+                               A7EE3C55789681B1591EF33A7BE521ED
+                               68FC36E58F53FFD6E1369B00E390E973
+                               F656ACB097E0D603BE59A0B8F7975B98
+            stream[192..255] = A04698274C6AC6EC03F66ED3F94C08B7
+                               9FFDBF2A1610E6F5814905E73AD6D0D2
+                               8164EEB8450D8ED0BB4B644761B43512
+                               52DD5DDF00C31E3DABA0BC17691CCFDC
+            stream[256..319] = B826C7F071E796D34E3BFFB3C96E76A1
+                               209388392806947C7F19B86D379FA3AE
+                               DFCD19EBF49803DACC6E577E5B97B0F6
+                               D2036B6624D8196C96FCF02C865D30C1
+            stream[448..511] = B505D41E2C207FA1C0A0E93413DDCFFC
+                               9BECA8030AFFAC2466E56482DA0EF428
+                               E63880B5021D3051F18679505A2B9D4F
+                               9B2C5A2D271D276DE3F51DBEBA934436
+                  xor-digest = 7849651A820B1CDFE36D5D6632716534
+                               E0635EDEFD538122D80870B60FB055DB
+                               637C7CA2B78B116F83AFF46E40F8F71D
+                               4CD6D2E1B750D5E011D1DF2E80F7210A
+
+Set 3, vector# 81:
+                         key = 5152535455565758595A5B5C5D5E5F60
+                               6162636465666768696A6B6C6D6E6F70
+                          IV = 0000000000000000
+               stream[0..63] = B2995CDC9255E4E6177398EECE05F338
+                               BE14825E8025598C1B4B0B80013E5D4B
+                               C195802ACF47326F309C58809E044CA0
+                               2027CCE97D80F7AEBA6D0376C96BFD7A
+            stream[192..255] = 0B89114F6F4111D2C7C33B0CC3DE682F
+                               932E9B060BD3D1E17801ADBF7F034819
+                               2D1F77F99104BE2FE62AA14CAF17D0C2
+                               35243B76D298C9CB51F7E5E02914027D
+            stream[256..319] = A93BEF16E18FB3D34FD342AEAC4EC93F
+                               474910948F5E25F20C3C6AF50FBFFD14
+                               8B8272DF4AAE7400843AE11502D06196
+                               59F3F2484D5D5659BC340039CAC03B20
+            stream[448..511] = 031AB90E5D0C95ED116B7D03EFDD3543
+                               ACDA91FE89071680C1B025F305538F7E
+                               7154BDF131351E68F0F0ADDD40FB5183
+                               0DD7761114BB4BA9692BD72500E7B2A3
+                  xor-digest = F72CEF83AF80636D318B6C1623368883
+                               65438DF6E3B8611FBF3D602746BD8077
+                               961880B5FD7ED4C6BD13C360B50BA7AF
+                               E838ABA36FD1B21FED0AA6B095D04F60
+
+Set 3, vector# 90:
+                         key = 5A5B5C5D5E5F60616263646566676869
+                               6A6B6C6D6E6F70717273747576777879
+                          IV = 0000000000000000
+               stream[0..63] = 447D16E09F139ADBFDBC742D248EC354
+                               67F165D42937FBA97B816016613DE365
+                               B0C23E4145CA71A3680B382CFF6D615C
+                               E7B2B02AEE1B6CAE692E4D09B2B47CE4
+            stream[192..255] = 49DEBE1A89CE85C6BC52DCE9E80422D0
+                               523FA99D29132F3B292B695EC641C0E3
+                               C3C339414349F83BAAF6E534E426DA98
+                               2BB80981B58401128A158AEB75FD48E7
+            stream[256..319] = E661F70FC1DCB4437D4DE0C4F6540EFC
+                               14D319CF67906DDBF41BA8FA8FD1B17E
+                               A8452CCB67F4078A8CEB2953218F97C7
+                               73850D1CB882656A6486C0D12F9324EE
+            stream[448..511] = 7916FA50772F5BCD5DBF87F6733466B7
+                               E0DC28687A5AFDEE5BDFCA4A197E7B6D
+                               82072AC49F2C7944519999FCE9438AF9
+                               80EC5576BEF6454C43AEC151A488A405
+                  xor-digest = 62E4E63373B0DD84227A80FDE16A2B25
+                               27AF035FAFE70CCF3B67F0CB2C22DF85
+                               AF7FFAF9B34E05C6AE9E42C9C6DC457B
+                               C223D886718E3B0022BD15FF398FC2CE
+
+Set 3, vector# 99:
+                         key = 636465666768696A6B6C6D6E6F707172
+                               737475767778797A7B7C7D7E7F808182
+                          IV = 0000000000000000
+               stream[0..63] = D356187B3A555932420B005EEA1703CB
+                               6C568987D54316540561425C078A0BC1
+                               6011BD3A1E88C62039608DDB65C35453
+                               8E6E6BE417066D824B4CC3F4842D1B7D
+            stream[192..255] = FC9DB2F6F1A10BB4690291F108119B07
+                               C7D908E2A3C35BDEDF1F0B79041C04B9
+                               1D63CE0D20459F3A99BF37AB195D907D
+                               3EBF1C75C5B7272D29ED83C0ECAE915F
+            stream[256..319] = 2193BE6883F2B56B74312E46F422441C
+                               C1A54EF08360C87F70AF598751E24F28
+                               5E7A0C2F886147DFEC52B34466F3A598
+                               8DDAF657AF45A452495F852233F3E312
+            stream[448..511] = 42822BF1D4BFD3122C2C842CE59BD9AD
+                               4616D916AADBBADB1A7F710EED2F7211
+                               653055D94569FA2BE4C2BA8B758E2956
+                               2C7A3354074705A28891B5E66EB8A7D7
+                  xor-digest = 8DBE66E2AAD0332B5D3B001C2EDFB91E
+                               9335910ACC1E28F2150289D7A414DCF8
+                               ACE6EC6CE70A985602E8E10B61F0736B
+                               0076F2E181758E99DE3628079B9C41B6
+
+Set 3, vector#108:
+                         key = 6C6D6E6F707172737475767778797A7B
+                               7C7D7E7F808182838485868788898A8B
+                          IV = 0000000000000000
+               stream[0..63] = 4C2EB1D4A9A84064F43082EAC25C741F
+                               A49F2579FCB069A2B072B4D7EB704B38
+                               E00DB35E0D9C2077E58B9403D73904B9
+                               BDAF16A1C79A0A25B0B9BC06E49D2659
+            stream[192..255] = DBB77843D3F626E1F577ED0AB0D90348
+                               66237611BC25FEA9713D5D001D2FE59F
+                               51A5C201D1EE6F7844BF231C34BB489A
+                               CB3EA4434226248FDA91597AC400C8D2
+            stream[256..319] = 3AC1C77E12C7B3CD306743B805738AAA
+                               8269B47132D1902ECEAD7EC403E2CE6F
+                               D3EA6DFF1FE350995BAC330874EB0777
+                               EA659488C3991432A1FF9CDE7ABB9D34
+            stream[448..511] = FFC9E408A4521EFDA22B2D4C30F22781
+                               D17CB1C709C4ECB2FD03ABEF56B4DD98
+                               6379C068662A5CBC01053A0A7B3D1A0E
+                               9B9AB81EEB8F57EDED3BE1EE75ED340B
+                  xor-digest = 0030ABB5B1F3B9615878BB05AE84977C
+                               6F5DFC18FDD5C2C7CDA6AC2E00997C43
+                               4DF73B9AE21A6C58D0D856801A072B23
+                               DCBA58AC011983C8AEA55A48F8A38FCC
+
+Set 3, vector#117:
+                         key = 75767778797A7B7C7D7E7F8081828384
+                               85868788898A8B8C8D8E8F9091929394
+                          IV = 0000000000000000
+               stream[0..63] = B36D9BB49A62689A751CF5C971A15F70
+                               439E56DC516F15F958369E3DA2500EC4
+                               D51CE469B050037570D03B0948D9FF82
+                               F2AD1B1D65FA5D782CAE515E03BA6A60
+            stream[192..255] = 0A4DE80091F11609F0AE9BE3AA9BE969
+                               9AA1C0BDEE5C1DE5C00C36C642D7FF87
+                               2195871708F2A2325DE93F81462E7305
+                               4CECEFA7C1906CDAE88F874135D5B95D
+            stream[256..319] = F69916317394BF360EB6E726751B7050
+                               96C5BF1317554006E4E832123D7E43CE
+                               74A06499BF685BB0AAC8E19C41C75B1C
+                               840FD9375F656AD2B1377B5A0B26289A
+            stream[448..511] = 5A49B471376394B09890CA0A5A72410A
+                               B34ED9B829B127FB5677026E1BFC75B4
+                               AFE9DBF53B5C1B4D8BEB5CEDB678D697
+                               FE56DACBA9D6DEA9C57CD8243153755A
+                  xor-digest = 9DEC1D2B309A5B7872F2AF1F30A5ACB0
+                               FC656DFE3C88B5C098DB3D5CE76F3ADC
+                               C9D4BEB8C29B81C3EF3BB24D34A93A52
+                               DD659F62FD9BCBEAEC440BEB08B342D7
+
+Set 3, vector#126:
+                         key = 7E7F808182838485868788898A8B8C8D
+                               8E8F909192939495969798999A9B9C9D
+                          IV = 0000000000000000
+               stream[0..63] = 4E7DB2320A4A7717959C27182A53072B
+                               9D18874644B42B319963B5512340AA4D
+                               C7088FE4803EE59CC25E77AC29D13E72
+                               20654487F4A3BF2D39C073C7D231DB17
+            stream[192..255] = 58A4B8F161BE5C1AC1573FB95C216AAE
+                               ADBF17205072225CD2236439A574B40A
+                               2AD76749E37AAEC60B52D79F5DA5459F
+                               094244FDE783122FACE929D94E914A87
+            stream[256..319] = BE41A549607DA00691D0C3734D1F9CF7
+                               1A0D21056E50BC89F29135989432FDB5
+                               C2340BFF6D181946BACD49D4B28A5104
+                               97990B241CE021280159DFAAC44DA45C
+            stream[448..511] = E7CEFE15DADB07044C730CE7650E4124
+                               687B7781C85C472EF6D3DD6C7150B050
+                               001904552B59778F2BAEA8C0CA29900F
+                               0470F14CCED15E2D83FB1A06A0C57C7E
+                  xor-digest = 81B127B36F506C56D5D62AA866E93BD5
+                               2F97F96D353D50F613B9CF2270743A29
+                               4B4082749139ADC010A6C12B05A77533
+                               EA699A1FDDEFFE1B28880AC98F7FAD71
+
+Set 3, vector#135:
+                         key = 8788898A8B8C8D8E8F90919293949596
+                               9798999A9B9C9D9E9FA0A1A2A3A4A5A6
+                          IV = 0000000000000000
+               stream[0..63] = EE17A6C5E4275B77E5CE6B0549B556A6
+                               C3B98B508CC370E5FA9C4EA928F7B516
+                               D8C481B89E3B6BE41F964EE23F226A97
+                               E13F0B1D7F3C3FBBFF2E49A9A9B2A87F
+            stream[192..255] = 1246C91147270CA53D2CEACA1D11D00B
+                               F83BB8F1C893E6F10118807D71021972
+                               586592F9935827B03EA663B7CF032AA7
+                               ED9F1F9EE15409B18E08D12F4880E162
+            stream[256..319] = 6B6AC56A7E4C7636D6589886D8D27462
+                               41BACAF2A1C102C5D0DE1603E4C7A92B
+                               42F609BCB73BC5BFC0927EF075C72656
+                               7018B47870365138EE821345C958F917
+            stream[448..511] = DA438732BA03CBB9AFFF4B796A0B4482
+                               EA5880D7C3B02E2BE135B81D63DF351E
+                               EECEFA571731184CD5CB7EEA0A1D1626
+                               83BA706373017EE078B8068B14953FBF
+                  xor-digest = C06DCD6409120BCC16F4412019C0D958
+                               3BFDE4F32A6AE9B469A4112211B77654
+                               355FB3ECEE657E1B8C20E570A83A9CC6
+                               E58656A63AD343E0C241DE558EB4EFE3
+
+Set 3, vector#144:
+                         key = 909192939495969798999A9B9C9D9E9F
+                               A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
+                          IV = 0000000000000000
+               stream[0..63] = 14530F67317B09CB008EA4FD08813F80
+                               4AC63D6B1D595D21E244E11AA4F153E1
+                               256DF77976F713B4F7DD1DF64E7016BB
+                               F9460A1A7CC7F3E9D28D8D19A69EB0B4
+            stream[192..255] = 6C025A7A0A9F32AE768D35C56231AFFF
+                               5E9A283260E54F442D1F3263A837545C
+                               234F7701D1A5B568DDA76A5D596F532C
+                               4F950425A2F79CD74203CCBB27293020
+            stream[256..319] = CA585389DDA8D79B73CA2C64B476C776
+                               0DC029271B359EB10D09B90FEF816E96
+                               432CCEDFB51322F7AEA6DEB896E048FA
+                               2AAD234F89C45FC25967DF99955B1234
+            stream[448..511] = 7DECE5C4BA2E08A2A61A37D9DD56BC89
+                               2E141874A572AE4342067CBD4E080933
+                               1851640E5D6EF48F73A4A638C74471C1
+                               85E731136BAC231B0803A66A4CDB6A4C
+                  xor-digest = 99D13A0741CCC1C40D655993BE02D21C
+                               6BDB707DCF4FE3EE7866FC62F9C23EBF
+                               C1C57844796FF8B71CDC8F569E75D960
+                               0EFA123DCDDD96E33C1090238E750B34
+
+Set 3, vector#153:
+                         key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8
+                               A9AAABACADAEAFB0B1B2B3B4B5B6B7B8
+                          IV = 0000000000000000
+               stream[0..63] = 9B05907B8F2EE3E831D9A0BE6203DBED
+                               012C381B7E3225B52282B9D0BA5A5A6A
+                               A367F7C553177557B87FFAA73C59E123
+                               B8B2F069B6C0F6DF25CC0A340CD2550D
+            stream[192..255] = 4274D6C7996E9E605D378A52CB5AECCC
+                               E6EF862FC0F40091C79FDC93DE2B7CF8
+                               4B484FC874687BE243965F92080444D2
+                               206123C6815E9A497610283D79EB8FA9
+            stream[256..319] = B9EBAF94F5CD2CCDAA2F8804E586DE09
+                               98A5E2E79D9C2E9F6267A16B314C3748
+                               07E7DD80A3115D2F64F1A7B6AF174AD6
+                               8EA04962D48C7F0BCA72D9CDA9945FB1
+            stream[448..511] = A08547DA215E1372CED1AC1192431AF3
+                               52B670CE9FF5F1F3A598CB17961D7780
+                               F1D08A6C69BF2EF73BB54DAC8308D320
+                               66CB8132DE497FDD9BB54739A54A57AC
+                  xor-digest = 71B9D8900F2C9E50E4E8E31D22C1E008
+                               9113A28C9E4039B00E181FC3AC2CBAC0
+                               70EA10B1E44ADF4C46D767A1945D5414
+                               42E4C1322099B3EAC9AF05736E2BFDDC
+
+Set 3, vector#162:
+                         key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1
+                               B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1
+                          IV = 0000000000000000
+               stream[0..63] = 7D0FF0DCB7CAAC90E548E24BEEA22D10
+                               1C927E0A9BD559BC32BA70B346659F41
+                               8FD9E36202D3AF35CB836F1BD15087DE
+                               0D01FFF0BD42BC24B01A65CAD6F38E2C
+            stream[192..255] = 12E246BA025A6174789C631646D092A8
+                               865094571FF71BC28A38BEACEB08A822
+                               72441DE97C1F273A9AE185B1F05B2953
+                               EC37C940EE4C3AB5C901FF563563CCC9
+            stream[256..319] = 2B48A7B5979BD5D27E841D2A6ED203D7
+                               9126471DB9201444D07FCEA31A66D22F
+                               DC65636F451B8D51365639CE2F5090B8
+                               D08E14FE955580CB3692F4A35410D9BA
+            stream[448..511] = A94E650CCC1ADEE62D2BAC9AA8969BA1
+                               911429B6B9287E2E8A553752EDDF6F82
+                               132FA5620E1F4F671EDF9C2EF1B76DB1
+                               CE63A8A61EDF905A8D5D195D8EE7A116
+                  xor-digest = 6492816A5383705890130321A2A5AFB7
+                               B76B54481A48AF1F307EAA0AF41FB5FD
+                               45CA6F00FE72C7D5C09E48406575651B
+                               5674BC9488CF5EE93986F830947BF1A6
+
+Set 3, vector#171:
+                         key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA
+                               BBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CA
+                          IV = 0000000000000000
+               stream[0..63] = F943B21C04A85C22ED1FC5BFBACAAF93
+                               2CB889EF7CD4472089B16B6DDA5C72E9
+                               A8F11B66CFC7677D72FB8908018B2A32
+                               F6B37A2AC811665D8266841199C066AE
+            stream[192..255] = E877CA4C8570A4A0CF06FECCCF0430BB
+                               C63077B80518C4BFEC10BA18ABB08C0B
+                               3FD72D94EED86F1A9A38385AD4395A96
+                               7ABB10B245D71680E50C2918CB5AE210
+            stream[256..319] = 89B67848C1661AFE6D54D7B7A92EB3FF
+                               AB5D4E1438B6BEB9E51DE6733F08A71F
+                               F16B676851ADD55712C5EE91B3F89381
+                               0352A3C0DC7093FCC6D11810C475F472
+            stream[448..511] = 14ABC36FB047EB4137390D3AA3486407
+                               7400CDF9AC001025BA6F45BEDD460ECD
+                               2FD4C16064F5579C50ACC64361EE9470
+                               468B39F5CABCF366E0AE7DEA4EB1FEB1
+                  xor-digest = 85D10891442BBD49CB301840BC9BFFDC
+                               AAC81AAAAD8E6CF18E35C17B8E14255F
+                               10650F031203035A67B68E4DA9414BF3
+                               3C229E3F7C253F55771460CA6E804B09
+
+Set 3, vector#180:
+                         key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3
+                               C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3
+                          IV = 0000000000000000
+               stream[0..63] = 5F76E49A712A9B36D646FDB1355FA862
+                               DE02BDC06E9AA4DF8DC0749102ADB071
+                               D575101D0CA6E36034EE3A039CF5239B
+                               817466A88DE350081D91090D79842DF5
+            stream[192..255] = 48AEECB9BA29A1B52B2A5F58597980CF
+                               2B5A31CD6DB97B98A4DB560500705ED7
+                               0BF7D9946DF6B2D26C77E2BC3152F23C
+                               2302F08ADE124F97E9E45F2894832434
+            stream[256..319] = BD9BFA707093FD92BE49E0B0FD0A9E89
+                               0AFD92AC6A50375173CE0C966C9D9A87
+                               E2B538445E697EA193BD33D60DC9F107
+                               1784CDA56C8AAD2BC67E17C9F5BDBAF8
+            stream[448..511] = 1477E6B19CA394B91496C5C1E1EFE3D4
+                               68D157B035C87A4667F6559F56C84ABF
+                               3CE27D85D85784C40081EA064835904D
+                               AE34A9277900B6F2F0B67F44B6B41776
+                  xor-digest = E7FDF2693C8481BADDA0503996EAA6F8
+                               201C2422907DC27CF747F8325B5FAB10
+                               0567204E731A896F0128BFD87993C5C0
+                               80B05AA3C75C9675BB7F9CBF935F502A
+
+Set 3, vector#189:
+                         key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC
+                               CDCECFD0D1D2D3D4D5D6D7D8D9DADBDC
+                          IV = 0000000000000000
+               stream[0..63] = 1D8D3CB0B17972779FBD8339BDBC5D0C
+                               4178C943381AFA6FA974FF792C78B4BB
+                               5E0D8A2D2F9988C01F0FF7CE8AD310B6
+                               6FA3B8D8CB507E507C4516BC9E7603B6
+            stream[192..255] = F32D0691B1832478889516518C441ADB
+                               8F0FE2165B15043756BB37928EBCA33F
+                               9C166A5907F7F85CCF45CE6BFB68E725
+                               748FA39528149A0E96B0B6C656854F88
+            stream[256..319] = 66A7226EA4CF4DB203592F0C678BA8D2
+                               99F26E212F2874681E29426A579469B2
+                               CA747B8620E7E48A7E77D50E5C45FF62
+                               A733D6052B2FB4AAB4AC782539193A76
+            stream[448..511] = 25CCCD9E6FF25D8D6525E621BC376F6A
+                               F73C749E80213260F1418B0C191B1F24
+                               C1922DAD397EFA6062BBE9E3612D35D5
+                               30F49C5D9D4F11E4CB2B3A4E66731FA8
+                  xor-digest = 92BE9D3D0940E7447B043A3C0150AE8A
+                               E28BC1F1D3EF2318E447210936356401
+                               729A21A8BBA3FE17EAC0334B9E42E2BE
+                               FE94CF0FEDBA97460B1BC07813A48053
+
+Set 3, vector#198:
+                         key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5
+                               D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5
+                          IV = 0000000000000000
+               stream[0..63] = 9D2EB0E9A93A0EF9F8ABCE0916C06EEB
+                               E9C8EBB52A8112CD352A8E2E4EE84DFD
+                               44B7C8251D0D1A36EA69CEB8C595D527
+                               DA0EF26A2C5A5F443DC3040C6BF2DA49
+            stream[192..255] = A86842C08DA057352B70FB63EBD1516F
+                               D56E7BB389BBBB22F8EDE940DC7036CF
+                               E10104AB81A51F23CFE35CCCC07BF50D
+                               40A2438F3B3AEAB62953406A9E7D7BF3
+            stream[256..319] = 9EE5EE22FFEDB13C11A81B0E5EC82DB6
+                               303F22A62F0FD0574CE7007AF1EA2FCC
+                               23D9C4196EBE897AB0D00371429F518E
+                               C150063EAE314EE72EFADB1AA7714AC6
+            stream[448..511] = 125ACD159548C79FCC93BFEC7B832C5D
+                               387AFD85A0537BB6A49A8C3F4673306B
+                               D76E17AC601629E00AB5AFF62B269491
+                               AD996A624C6B1888BF13785AD63DEC7C
+                  xor-digest = 9772AADF9F5BE8C14EC8304D594AF93E
+                               1285357C9DFE9C10A1D45E5EB7D5BDCC
+                               FCBF529FDCA3E620EB097575BFE68B08
+                               04E63DD07C5FE3C8D8E28E2277E0358E
+
+Set 3, vector#207:
+                         key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE
+                               DFE0E1E2E3E4E5E6E7E8E9EAEBECEDEE
+                          IV = 0000000000000000
+               stream[0..63] = 1D99BD420A9EBE17CF6144EEBE46A4B5
+                               D8CE913F571DCEDEE6C6E3CFA27572F5
+                               9983D4B2CADC292A956983AF7250CA81
+                               A23A9EDA42417CC150597891045FF321
+            stream[192..255] = D53AB2E60871F42D10E6747FE358E562
+                               14D7CE3E7BA38E51354C801B72E5D515
+                               DD805F8FDBA9F1BC81C5926DBE8CDBD2
+                               3B006714CC8D550671036F6FD2991825
+            stream[256..319] = FD97553220FB51132C33EBDA78606A24
+                               5C5E3578A69754BF4FC11D6242605160
+                               B4085DFDFC3D11505F72DC15CC16C683
+                               37798E0DABD37C67B2E8912E498EA940
+            stream[448..511] = A2D9199683D73F01DDD77BD46CD5BCEF
+                               37CD9D4ECBA40B6C51446DCC68BCAD18
+                               9FBEFEFC3D82131ECF98263299DC0CA9
+                               1DD349E4DD348A88B2E3D7AA2D20CC13
+                  xor-digest = 0F8AA6C52B1A2A36DA0EBE5C16BA2360
+                               2E48161F836C228A0B8A413F6E0699A0
+                               4DA22789A18C53A5125CFE51B9D7B5A1
+                               D9957CDED4D1F48744944B65D2AE2290
+
+Set 3, vector#216:
+                         key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7
+                               E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7
+                          IV = 0000000000000000
+               stream[0..63] = B9751AF24FCF14907948F7AD36E2649A
+                               9A07B637F84D34E961EE82B7C33A9CC3
+                               7B96DA6A956AFF4A629546C422802767
+                               AD9F24BB2E79F09FCD43775FAC965123
+            stream[192..255] = 6C4CB6AD15DDCE11F1BF68FFF1376E0F
+                               4CE35ABCE777F4AB1D6906D09184689D
+                               B697D1CFFAF46C5B85AD9F21CFF0D756
+                               3DF67CF86D4199FA055F4BE18AFA34C2
+            stream[256..319] = 35F4A1BBB9DA8476A82367A5607C72A0
+                               C273A8D1F94DC4D62FDB2FA303858678
+                               FABCD6C6EBA64849640BFB6FE4ADB340
+                               28FAE26F802EA0ECE37D2AC2F2560CE8
+            stream[448..511] = 3D208E3CFAF58AF11BCC527F948A3B75
+                               E1751A28A76CBFE94204783820AD7FEE
+                               7C98B318EDA2DC87111D18978CEE0C0C
+                               E39F1469E7CB3EEEDBD6BF30DA68DF34
+                  xor-digest = 7843987CBFAF3BC7DABD22E793F0F1B6
+                               599E7774A6FAAA79B81A956F7C20964A
+                               884A766CD76FDCDB67AAFAEACF24D221
+                               5C5CE400F056F81A9EB0951A468502D9
+
+Set 3, vector#225:
+                         key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0
+                               F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF00
+                          IV = 0000000000000000
+               stream[0..63] = EA444200CDE137A48DD3728CFC0FE82A
+                               1CD6F0F412C0343639052B6471F8321C
+                               3C9A38986A5F882A26ABCFB342D3FF50
+                               4E2EBF01D8CDA2408AE1A9023F4D64CA
+            stream[192..255] = 5C20B3CECA032C29E7B8118BB8B946F9
+                               90A9DD8895D9D7FE620727087DB8C6E9
+                               6973741552A24E8C3B9EC81FA2B06E5F
+                               F4283201639C83CC0C6AF8AA20FBDDD9
+            stream[256..319] = 4DB2FF5167737BB90AD337FE16C10BD9
+                               E4D2B8D6FBD172F5448D099D24FEAEA9
+                               B30224AB670781C667292D04C76EFEC2
+                               476B2D33ADA7A7132677E4B8270C68CD
+            stream[448..511] = 5AB9F03158EA17B1D845CDC688C3BB0F
+                               F1AC5CEAA2F16DB3178223D1471D0191
+                               0E9D5BB3C6D0C9CC652C0ACF527B4F44
+                               94B0DE521164493800E132B272A42A22
+                  xor-digest = E7CADB2D003E6B1FB7ED9E085806817E
+                               A548D2F1AFEF99ADED650D1B3DDF3533
+                               C1E86435B9040DEEC83CEA60A501F35F
+                               8538B9A4B3836B7D23A909100E244801
+
+Set 3, vector#234:
+                         key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9
+                               FAFBFCFDFEFF00010203040506070809
+                          IV = 0000000000000000
+               stream[0..63] = 99A8CCEC6C5B2A0B6E336CB20652241C
+                               32B24D34ACC0457EF679178EDE7CF805
+                               805A9305C7C49909683BD1A803327817
+                               627CA46FE8B929B6DF0012BD864183BE
+            stream[192..255] = 2D226C11F47B3C0CCD0959B61F59D5CC
+                               30FCEF6DBB8CBB3DCC1CC25204FCD449
+                               8C37426A63BEA3282B1A8A0D60E13EB2
+                               FE59241A9F6AF426689866EDC769E1E6
+            stream[256..319] = 482FE1C128A15C1123B5655ED546DF01
+                               4CE0C455DBF5D3A13D9CD4F0E2D1DAB9
+                               F12FB68C544261D7F88EAC1C6CBF993F
+                               BBB8E0AA8510BFF8E73835A1E86EADBB
+            stream[448..511] = 0597188A1C19255769BE1C210399AD17
+                               2EB46C52F92FD541DF2EAD71B1FF8EA7
+                               ADD380EC71A5FD7ADB5181EADD1825EC
+                               02779A4509BE5832708CA2836C1693A5
+                  xor-digest = 0F8D6440841701C8C9BA58C0A86262AE
+                               0220D0655B0B8C6DE7D2987BCC211A59
+                               F2A23C932D0C17DF87C6B5F80AACB5AC
+                               5A7894CB6B7552D0C0E235F1FCEAC442
+
+Set 3, vector#243:
+                         key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102
+                               030405060708090A0B0C0D0E0F101112
+                          IV = 0000000000000000
+               stream[0..63] = B4C0AFA503BE7FC29A62058166D56F8F
+                               5D27DC246F75B9AD8760C8C39DFD8749
+                               2D3B76D5D9637F009EADA14458A52DFB
+                               09815337E72672681DDDC24633750D83
+            stream[192..255] = DBBA0683DF48C335A9802EEF02522563
+                               54C9F763C3FDE19131A6BB7B85040624
+                               B1D6CD4BF66D16F7482236C8602A6D58
+                               505EEDCCA0B77AED574AB583115124B9
+            stream[256..319] = F0C5F98BAE05E019764EF6B65E0694A9
+                               04CB9EC9C10C297B1AB1A6052365BB78
+                               E55D3C6CB9F06184BA7D425A92E7E987
+                               757FC5D9AFD7082418DD64125CA6F2B6
+            stream[448..511] = 5A5FB5C8F0AFEA471F0318A4A2792F7A
+                               A5C67B6D6E0F0DDB79961C34E3A564BA
+                               2EECE78D9AFF45E510FEAB1030B102D3
+                               9DFCECB77F5798F7D2793C0AB09C7A04
+                  xor-digest = E940A6B3F4FF6EEDB11FF692E60C1246
+                               392EB04AF868088EE85D813B0600CA91
+                               E8C384620F059B6537F29431A534ADFF
+                               92DB33C3615465AE4B19E6196F14C0DE
+
+Set 3, vector#252:
+                         key = FCFDFEFF000102030405060708090A0B
+                               0C0D0E0F101112131415161718191A1B
+                          IV = 0000000000000000
+               stream[0..63] = 2064790538ACDF1DE3852C465070D962
+                               FE2993BDD20C96DED5B2E5FA33283374
+                               2A6B03966D47F8874D39C501ECFE0045
+                               725C463530967ED1499097906B9775C3
+            stream[192..255] = 9F880124435347E31FDF6EF96981FAB3
+                               1A912D0B70210CBED6DDC9813521CCE2
+                               B5C2B80193A59DCD933026D262E8EC74
+                               F5880028FBB06166E0A304453A3A54BB
+            stream[256..319] = 8A3F922FCDE48CE6C2E324EAA639DECC
+                               E7257A25C420A2435BBA98740DF6C92A
+                               8FA18F1D4E67C5F75F314219BB769685
+                               A0C028D115321D10D58B46E5D58ABB4E
+            stream[448..511] = 905C86F2F2C1E0454963E21D7498E8F4
+                               67ECF23F8B02671F57584322E9952223
+                               58D4FD541714BF12EFB189ACEA624AFF
+                               2D55B252974D39D8598E8A066536ACB2
+                  xor-digest = 4750CDBC728F8AB112C58235A5891BA1
+                               84B79BAF5172AC7C530F57023F1E9CFD
+                               26071B4826FF3C6971DC2A7DD8FB35B0
+                               054D59D5538746F0C4C2D1A8DE6DC771
+
+Test vectors -- set 4
+=====================
+
+Set 4, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                               3083D6297CCF2275C81B6EC11467BA0D
+                          IV = 0000000000000000
+               stream[0..63] = F9D2DC274BB55AEFC2A0D9F8A982830F
+                               6916122BC0A6870F991C6ED8D00D2F85
+                               94E3151DE4C5A19A9A06FBC191C87BF0
+                               39ADF971314BAF6D02337080F2DAE5CE
+        stream[65472..65535] = 05BDA8EE240BA6DC53A42C14C17F620F
+                               6FA799A6BC88775E04EEF427B4B9DE5A
+                               5349327FCADA077F385BA321DB4B3939
+                               C0F49EA99801790B0FD32986AFC41B85
+        stream[65536..65599] = FED5279620FBCBDD3C3980B11FCE4787
+                               E6F9F97772BEAAD0EF215FDCD0B3A16F
+                               BB56D72AFD5FD52E6A584BF840914168
+                               D04A594FFDDA959A63EB4CF42694F03F
+      stream[131008..131071] = F161DCE8FA4CF80F8143DDB21FA1BFA3
+                               1CA4DC0A412233EDE80EF72DAA1B8039
+                               4BCE3875CA1E1E195D58BC3197F803A8
+                               9C433A59A0718C1A009BCB4DA2AC1778
+                  xor-digest = 2052F9A2853E989133D10938222AC76D
+                               B8B4CBA135ACB59970DDF9C074C6271A
+                               5C4E2A7A00D2D697EDFC9B1FF9B365C8
+                               7347B23020663A30711A71E3A02AB00C
+
+Set 4, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                               3588DB2E81D4277ACD2073C6196CBF12
+                          IV = 0000000000000000
+               stream[0..63] = 2F634849A4EDC206CE3E3F89949DF4E6
+                               EA9A0E3EE87F0AB108C4D3B789ACE673
+                               07AC8C54F07F30BAD9640B7F6EDEEC9D
+                               B15E51599EB15E1CA94739FEA5F1E3D7
+        stream[65472..65535] = EB2B0FD63C7EEEAA5A4D712EEEFC0A7E
+                               214BEB04D3FDA19C32250949868216D3
+                               A659B312E13EC66C5832E970F9C91FF9
+                               4F7463439A9827ECCA52248D3CC604CD
+        stream[65536..65599] = 425E0DF93A3DE6B22E0871EB4E435691
+                               D77B5C471228DE302A79001F89F7E77D
+                               837C5CA0177B2206568EDC2EB0F169D5
+                               6B414B9DCCDC928659B4BE1E0DEDFF73
+      stream[131008..131071] = 6AA3D6938B6B54B4CB8D2885274A991B
+                               4A0D5CCF35D981953EC64452FACC8640
+                               B5ACFA39A372E38BE4E10EE68E7F1B50
+                               5A5660CDFBAE8DCBFCC9A3847BBB6BA4
+                  xor-digest = 61F90A34A70BEE706D298B31B281BFC7
+                               2CF9E82394F6AD7277AAFE176CDB6D62
+                               8E723AC403D892A85AC907D48DD2C3CB
+                               CB6C622297670AD2590BE9A774B07D65
+
+Set 4, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                               3A8DE03386D92C7FD22578CB1E71C417
+                          IV = 0000000000000000
+               stream[0..63] = 0A8BBD088ABADC4D57D3389E32175878
+                               125BD89DE7E9D05DBF29B753F5F0C2CB
+                               F0EEF9333526E9308A114E06EB9564EB
+                               35C28EA93C17BEF0466748079A355B9C
+        stream[65472..65535] = F47FDFF047F0303F6CCE2510FA2475F0
+                               7784D5F0FBD63D1746BD8CE4BB02802C
+                               3052A375D7DE75D439174E7B19CEBA3B
+                               9546DB027F14FFDB9EF542D5768CE5A7
+        stream[65536..65599] = 40FEC0EE1697D63CB04299A17C446DE0
+                               6B3407D10C6DD2143DFA24EB7362D09A
+                               6857C6AA83A191D65B05EBBBC8133D12
+                               2BDE75900C86FCD8785EECE48659C3B0
+      stream[131008..131071] = 7820087794D46993E984536E7B74C615
+                               67AB34C6C0A90090DB080E6EB79532FB
+                               414CD1145A781A2C55519A3E3AD19FA6
+                               D78790313EBE19A86F61068E4C8E508D
+                  xor-digest = 67125CED828BA1AC0E22B29E75886255
+                               ED129F94F30B83E81E9DACFC4D2BD1DD
+                               782BCC1929B62D754D1CC0AB120A24A4
+                               8FB8190CEF0519F73B404C97A83E3925
+
+Set 4, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                               3F92E5388BDE3184D72A7DD02376C91C
+                          IV = 0000000000000000
+               stream[0..63] = 4A671A2AE75DB7555BEA5995DC53AF8D
+                               C1E8776AF917A3AB2CA9827BCED53DA7
+                               00B779820F17294751A2C37EF5CCCFE9
+                               7BF7481E85AFC9ECAE431B7CF05F6153
+        stream[65472..65535] = 15C415BE73C12230AC9505B92B2B1273
+                               7F6FB2FAAF9C51F22ECCB8CBED36A27A
+                               1E0738E1252D26E8E5E5651FE8AA02CC
+                               9887D141A7CBAE80F01BE09B314005BB
+        stream[65536..65599] = 1C48158413F5EC5E64D2FA4786D91D27
+                               27DF6BECD614F6AE745CF2B6F35CD824
+                               3E5F1C440BEDE01E6C8A1145F2AB77FA
+                               24D634DE88F955D4F830D4A548A926D0
+      stream[131008..131071] = A9BE2FB00C8BD01054153F77EC0C633C
+                               E8DF7F78E994907B9F387FF090CB3B95
+                               4271FEADF50C9084106F4285FF4F534D
+                               AEC130AAE287D47033179BBAEEB36CE6
+                  xor-digest = FE8E842CB0F33D020632A0A682AF9EF0
+                               AD3715E3DBAF4CD3591D46B1CE47FCEB
+                               6D3A04AE59AF466E22EE507FB8BD58F7
+                               4C643E138029521638A3B066305F60DF
+
+Test vectors -- set 5
+=====================
+
+Set 5, vector#  0:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 8000000000000000
+               stream[0..63] = 2ABA3DC45B4947007B14C851CD694456
+                               B303AD59A465662803006705673D6C3E
+                               29F1D3510DFC0405463C03414E0E07E3
+                               59F1F1816C68B2434A19D3EEE0464873
+            stream[192..255] = EFF0C107DCA563B5C0048EB488B40341
+                               ED34052790475CD204A947EB480F3D75
+                               3EF5347CEBB0A21F25B6CC8DE6B48906
+                               E604F554A6B01B23791F95C4A93A4717
+            stream[256..319] = E3393E1599863B52DE8C52CF26C752FB
+                               473B74A34D6D9FE31E9CA8DD6292522F
+                               13EB456C5BE9E5432C06E1BA3965D454
+                               48936BC98376BF903969F049347EA05D
+            stream[448..511] = FC4B2EF3B6B3815C99A437F16BDB06C5
+                               B948692786081D91C48CC7B072ABB901
+                               C0491CC6900F2FEA217BFFC70C43EDD6
+                               65E3E020B59AAA43868E9949FBB9AE22
+                  xor-digest = FE40F57D1586D7664C2FCA5AB10BD7C7
+                               9DE3234836E76949F9DC01CBFABC6D6C
+                               42AB27DDC748B4DF7991092972AB4985
+                               CEC19B3E7C2C85D6E25A338DEC288282
+
+Set 5, vector#  9:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0040000000000000
+               stream[0..63] = F28343BCF4C946FC95DCAAED9DA10B27
+                               7E573FC8EBC8CEE246FDDC533D29C2EA
+                               05451ED9A821C4161EE0AFA32EC0FCA0
+                               DAD124B702DA9248B3D2AA64489C9D26
+            stream[192..255] = C65F799168D6B229D0281309526B746C
+                               490D3EDC0F6408A04339275FCE04BDF4
+                               656AB5868495C32D238FDB97869A9332
+                               E09CB7BE8031D38B8F565FB5469C8459
+            stream[256..319] = 03E48FD41282FCD62C7217ED64153E55
+                               B558F82A613245C3D8A885542346AA39
+                               27DE9734C0581338C3DE5DB443EC4227
+                               E3F82677D259D2D42601D187C79BF87A
+            stream[448..511] = 551F95AD9751E4F4BACE7FD48B6A3C67
+                               E86C4B1E5B747BA60377B07FE8365E09
+                               F8973085F8A6086FC56BD88168D8C561
+                               8B01B159EF29F658C85FD117925D46E0
+                  xor-digest = 17E005D5257D3ECE55DBE678290C9E1F
+                               E0D1E18CA8D54F6271E83D1A94580D8A
+                               597403F680674F564D130D71111ADD2D
+                               A17E21268D5A8407CB2721730776DC94
+
+Set 5, vector# 18:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000200000000000
+               stream[0..63] = 621F3014E0ADC8022868C3D9070BC49E
+                               48BC6B504AFF11CB17957F0EBFB7612F
+                               7FCB67C60A2FBD7A4BD7C312E8F50AF3
+                               CA7520821D73DB47189DAD557C436DDC
+            stream[192..255] = 42C8DFE869C90018825E2037BB5E2EBB
+                               C4A4A42660AFEA8A2E385AFBBC63EF30
+                               98D052FF4A52ED12107EE71C1AEC271E
+                               6870538FCEAA1191B4224A6FFDCE5327
+            stream[256..319] = 4214DA4FAF0DF7FC2955D81403C9D49E
+                               E87116B1975C5823E28D9A08C5B1189D
+                               C52BCBEF065B637F1870980CB778B75A
+                               DDA41613F5F4728AD8D8D189FBF0E76D
+            stream[448..511] = 4CA854257ECE95E67383FC8665C3A823
+                               8B87255F815CA4DEC2D57DB72924C60C
+                               B20A7EE40C559406AAAB25BE5F47184D
+                               D187ED7EA191133F3000CB88DCBAC433
+                  xor-digest = 3191EA19C819BC3382B2C085B709E569
+                               54D91532C88F49E77BACCCBCE6312A46
+                               A6079A13DF08EFEE0F1A6C95BE79E919
+                               87677D1CAAE2E0CE253B3EE47F825EAF
+
+Set 5, vector# 27:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000001000000000
+               stream[0..63] = D2DB1A5CF1C1ACDBE81A7A4340EF5343
+                               5E7F4B1A50523F8D283DCF851D696E60
+                               F2DE7456181B8410D462BA6050F061F2
+                               1C787FC12434AF58BF2C59CA9077F3B0
+            stream[192..255] = 6CE020B3E83765A11F9AE157AD2D07D1
+                               EA4E9FBBF386C83FEF54319746E5F997
+                               D35BE9F73B99772DA97054FF07301314
+                               3FF9E5B47C61966D8525F17265F48D08
+            stream[256..319] = FFEAB16EEA5C43BFD08D2591F9A40293
+                               24CDDC83A840B2C136B7CE99AF3A66CB
+                               3084E4E2CA6F44AC5CEAF7A1157BE267
+                               3DF688B43BD51B9A8444CE194E3CA7F2
+            stream[448..511] = 0D3873FD47A7B3400115C40574469D21
+                               5BCE0679ED5CF9E374E473B4427DE498
+                               5804DD75151D72EE367A3F066E641B7F
+                               5CF28A67215B74DD80EB3FC02E12A308
+                  xor-digest = 838960663A70C2CACD205BC38D8BCC12
+                               8438D6A03006727EF1440B1D3C7FD557
+                               CC4A02AC9CF7D51DCFE3862ACCDEEEBE
+                               B15393EE6D8E4483710932C4B44990B5
+
+Set 5, vector# 36:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000008000000
+               stream[0..63] = 22E129373F7589D9EAFFF18DEA63432E
+                               38D0245BAE221D3635BEE176760552B8
+                               9B6BC49CFEB7D9A5B358963C488ED8FA
+                               D01F1C72307CADEEF9C20273FB5D6775
+            stream[192..255] = 6E6FFCB8B324EE4FF55E64449B2A356B
+                               D53D8AB7747DFFC0B3D044E0BE1A736B
+                               4AB2109624600FE8CA7E6949A4DF82AC
+                               A5C96D039F78B67767A1B66FAB0EF24B
+            stream[256..319] = C3DF823DBA0F84D70E425D0C2C88DCE3
+                               CAEC3ACCA435B5A2832BE2E0F0AA46AD
+                               3F288AFE49BE5C345DC65445D26993F5
+                               1E3F46E0C1B02B5AEDF73D68336AA04F
+            stream[448..511] = 443B0FDC4F8365AB93A07682EBCA7B92
+                               42259A26DAB3574B2E562CCABDB25633
+                               96F331146347C26D5DB49C87054642F8
+                               60FC1A0B87468ED0B5CB9C30D72EA8F7
+                  xor-digest = 8D2110EA7CABD4A3DAEC4768131D8AED
+                               9E7E1EB1E1F553F7EE38FB339B648444
+                               0F43AB7C7F17BB593BF2CFB53688CC74
+                               F00A32117039DA4745F78E66059000E6
+
+Set 5, vector# 45:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000040000
+               stream[0..63] = DC302570A4D1C44F31D9FA55C7712B11
+                               AE770BFAA3F8631DFF924BCF00A09C90
+                               6571B024CE5264215E516D73416BF3E3
+                               CE373CAE669DB1A057EFD7EB184243B6
+            stream[192..255] = A52427068F8048FC5E3E6E94A1A616CD
+                               11F5A9ED4F8899F780F67836EEC4FADB
+                               B19C183C6946541F182F224104DF9444
+                               66D96A6CE7F2EFE723807A8738950AD9
+            stream[256..319] = D1410A14DFA3DA5C9BDF18A34476F7C0
+                               D7A8373331741ED62682C555EA8B62A8
+                               1EDB10DB9479BAF2CD532CFB18357A92
+                               FF90897315F69CEE526DE31329CFA06B
+            stream[448..511] = 9CA44AF188E42090F9969FB5F771C987
+                               557912B83261760EE80A809F7E398A66
+                               D56049FFDFFBD3E16633537B84AFB38E
+                               564B717A0C26EBFEE907B8EF7FDA31F0
+                  xor-digest = BBF40E80EBBCBCC93067CAC497FD4403
+                               D1E797AC131A593D06BCA34ED650CB3D
+                               70403B26550EBB76E00CE04CB15F28CA
+                               99F1700ABBA462F041D474E008488F0D
+
+Set 5, vector# 54:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000200
+               stream[0..63] = 98951956F4BD5E2E9DC624CCD2D79E60
+                               6D24A4DB51D413FDAF9A9741A6F079B4
+                               21400FDA0B4D8785578BB318BDAD4ABC
+                               A8C2D1BA3BA4E18C2F5572499F345BC1
+            stream[192..255] = C3A267F0EB87ED714E09CABC2780FEF6
+                               E5F665BBBBB44C8448D8EB42D88275CD
+                               62AD759AAC9F4080F73993DE50FF94E8
+                               34E2CF7B74A91E68B38EACE9C12922C2
+            stream[256..319] = 78BD0BB32A69E62362EE7E31F1DD9E96
+                               CA6E196844EFD9459F270D612119DFA4
+                               5DD1522967629143CECD585CFE62B7FD
+                               9D1503A62A238C35A66595C49DD71575
+            stream[448..511] = C17F946C14A492392A1C554993F406B2
+                               EA806E4186D97FCB420C21FB4245A3DB
+                               4EBA2BCB59D2C33CE2CD5044A79A96F9
+                               5182112D9724E16AD9E965047DA71F05
+                  xor-digest = 0094C2C02618E924D6CD7C96CBD6A44A
+                               33D3983DEAD3084C1A694490B367CE6D
+                               7732300C3BA3848C2EA143031A980BE4
+                               9C1354A528D1E1E1B1A55AFF18BD0F92
+
+Set 5, vector# 63:
+                         key = 00000000000000000000000000000000
+                               00000000000000000000000000000000
+                          IV = 0000000000000001
+               stream[0..63] = B47F96AA96786135297A3C4EC56A613D
+                               0B80095324FF43239D684C57FFE42E1C
+                               44F3CC011613DB6CDC880999A1E65AED
+                               1287FCB11C839C37120765AFA73E5075
+            stream[192..255] = 97128BD699DDC1B4B135D94811B5D2D6
+                               B2ADCBDC1ED8D3CF86ECF65A1750DE66
+                               CA5F1C2ED350DC2F497396E029DBD4A0
+                               6FDDA6238BE7D120DD41E9F19E6DEEA2
+            stream[256..319] = FF8065AD901A2DFC5C01642A840F7593
+                               AE032946058E54EA67300FBF7B928C20
+                               3244EF546762BA640032B6A2514122DE
+                               0CA969283F70CE21F981A5D668274F0D
+            stream[448..511] = 1309268BE548EFEC38D79DF4334CA949
+                               AB15A2A1003E2B97969FE0CD74A16A06
+                               5FE8691F03CBD0ECFCF6312F2EE0697F
+                               44BD3BF3E60320B289CBF21B428C8922
+                  xor-digest = 1115D387A0C41A67543BE13DD539AB84
+                               4D9A2CC98C20BB6E7B092268C060884F
+                               53774E3B044C6058B137CCCADF9F7026
+                               96B3D40DFF3835341E4BF01BDD1C8FB1
+
+Test vectors -- set 6
+=====================
+
+Set 6, vector#  0:
+                         key = 0053A6F94C9FF24598EB3E91E4378ADD
+                               3083D6297CCF2275C81B6EC11467BA0D
+                          IV = 0D74DB42A91077DE
+               stream[0..63] = F5FAD53F79F9DF58C4AEA0D0ED9A9601
+                               F278112CA7180D565B420A48019670EA
+                               F24CE493A86263F677B46ACE1924773D
+                               2BB25571E1AA8593758FC382B1280B71
+        stream[65472..65535] = B70C50139C63332EF6E77AC54338A407
+                               9B82BEC9F9A403DFEA821B83F7860791
+                               650EF1B2489D0590B1DE772EEDA4E3BC
+                               D60FA7CE9CD623D9D2FD5758B8653E70
+        stream[65536..65599] = 81582C65D7562B80AEC2F1A673A9D01C
+                               9F892A23D4919F6AB47B9154E08E699B
+                               4117D7C666477B60F8391481682F5D95
+                               D96623DBC489D88DAA6956B9F0646B6E
+      stream[131008..131071] = A13FFA1208F8BF50900886FAAB40FD10
+                               E8CAA306E63DF39536A1564FB760B242
+                               A9D6A4628CDC878762834E27A541DA2A
+                               5E3B3445989C76F611E0FEC6D91ACACC
+                  xor-digest = C349B6A51A3EC9B712EAED3F90D8BCEE
+                               69B7628645F251A996F55260C62EF31F
+                               D6C6B0AEA94E136C9D984AD2DF3578F7
+                               8E457527B03A0450580DD874F63B1AB9
+
+Set 6, vector#  1:
+                         key = 0558ABFE51A4F74A9DF04396E93C8FE2
+                               3588DB2E81D4277ACD2073C6196CBF12
+                          IV = 167DE44BB21980E7
+               stream[0..63] = 3944F6DC9F85B128083879FDF190F7DE
+                               E4053A07BC09896D51D0690BD4DA4AC1
+                               062F1E47D3D0716F80A9B4D85E6D6085
+                               EE06947601C85F1A27A2F76E45A6AA87
+        stream[65472..65535] = 36E03B4B54B0B2E04D069E690082C8C5
+                               92DF56E633F5D8C7682A02A65ECD1371
+                               8CA4352AACCB0DA20ED6BBBA62E177F2
+                               10E3560E63BB822C4158CAA806A88C82
+        stream[65536..65599] = 1B779E7A917C8C26039FFB23CF0EF8E0
+                               8A1A13B43ACDD9402CF5DF38501098DF
+                               C945A6CC69A6A17367BC03431A86B3ED
+                               04B0245B56379BF997E25800AD837D7D
+      stream[131008..131071] = 7EC6DAE81A105E67172A0B8C4BBE7D06
+                               A7A8759F914FBEB1AF62C8A552EF4A4F
+                               56967EA29C7471F46F3B07F7A3746E95
+                               3D315821B85B6E8CB40122B96635313C
+                  xor-digest = C3EAAF32836BACE32D04E1124231EF47
+                               E101367D6305413A0EEB07C60698A287
+                               6E4D031870A739D6FFDDD208597AFF0A
+                               47AC17EDB0167DD67EBA84F1883D4DFD
+
+Set 6, vector#  2:
+                         key = 0A5DB00356A9FC4FA2F5489BEE4194E7
+                               3A8DE03386D92C7FD22578CB1E71C417
+                          IV = 1F86ED54BB2289F0
+               stream[0..63] = 3FE85D5BB1960A82480B5E6F4E965A44
+                               60D7A54501664F7D60B54B06100A37FF
+                               DCF6BDE5CE3F4886BA77DD5B44E95644
+                               E40A8AC65801155DB90F02522B644023
+        stream[65472..65535] = C8D6E54C29CA204018A830E266CEEE0D
+                               037DC47E921947302ACE40D1B996A6D8
+                               0B598677F3352F1DAA6D9888F891AD95
+                               A1C32FFEB71BB861E8B07058515171C9
+        stream[65536..65599] = B79FD776542B4620EFCB88449599F234
+                               03E74A6E91CACC50A05A8F8F3C0DEA8B
+                               00E1A5E6081F5526AE975B3BC0450F1A
+                               0C8B66F808F1904B971361137C93156F
+      stream[131008..131071] = 7998204FED70CE8E0D027B206635C08C
+                               8BC443622608970E40E3AEDF3CE790AE
+                               EDF89F922671B45378E2CD03F6F62356
+                               529C4158B7FF41EE854B1235373988C8
+                  xor-digest = 3CD23C3DC90201ACC0CF49B440B6C417
+                               F0DC8D8410A716D5314C059E14B1A8D9
+                               A9FB8EA3D9C8DAE12B21402F674AA95C
+                               67B1FC514E994C9D3F3A6E41DFF5BBA6
+
+Set 6, vector#  3:
+                         key = 0F62B5085BAE0154A7FA4DA0F34699EC
+                               3F92E5388BDE3184D72A7DD02376C91C
+                          IV = 288FF65DC42B92F9
+               stream[0..63] = 5E5E71F90199340304ABB22A37B6625B
+                               F883FB89CE3B21F54A10B81066EF87DA
+                               30B77699AA7379DA595C77DD59542DA2
+                               08E5954F89E40EB7AA80A84A6176663F
+        stream[65472..65535] = 2DA2174BD150A1DFEC1796E921E9D6E2
+                               4ECF0209BCBEA4F98370FCE629056F64
+                               917283436E2D3F45556225307D5CC5A5
+                               65325D8993B37F1654195C240BF75B16
+        stream[65536..65599] = ABF39A210EEE89598B7133377056C2FE
+                               F42DA731327563FB67C7BEDB27F38C7C
+                               5A3FC2183A4C6B277F901152472C6B2A
+                               BCF5E34CBE315E81FD3D180B5D66CB6C
+      stream[131008..131071] = 1BA89DBD3F98839728F56791D5B7CE23
+                               5036DE843CCCAB0390B8B5862F1E4596
+                               AE8A16FB23DA997F371F4E0AACC26DB8
+                               EB314ED470B1AF6B9F8D69DD79A9D750
+                  xor-digest = E00EBCCD70D69152725F9987982178A2
+                               E2E139C7BCBE04CA8A0E99E318D9AB76
+                               F988C8549F75ADD790BA4F81C176DA65
+                               3C1A043F11A958E169B6D2319F4EEC1A
+
+
+
+End of test vectors
index 0135811ecc3e2503c58f2b375f3c209498d5368b..b19c0d0f6257a91e0df023d37a8833b9238a3d3b 100644 (file)
@@ -107,7 +107,7 @@ void twister_ctx2hash(void* dest, twister_state_t* ctx, uint16_t hashsize_b){
                memxor(ctx->s, tmp, 64);
                twister_blank_round(ctx);
                for(j=0; j<4; ++j){
-                       *((uint8_t*)dest) = ctx->s[3-j][0] ^ tmp[3-j][0];
+                       *((uint8_t*)dest) = ctx->s[7-j][0] ^ tmp[7-j][0];
                        dest = (uint8_t*)dest + 1;
                }
        }
diff --git a/twister/twister_tables.c b/twister/twister_tables.c
new file mode 100644 (file)
index 0000000..9119623
--- /dev/null
@@ -0,0 +1,232 @@
+/******************************************************************
+ * S-BOX for Twister
+ *
+ *
+ *******************************************************************/
+
+#include "config.h"
+#include <stdint.h>
+#include <avr/pgmspace.h>
+
+ const uint8_t twister_sbox[256] PROGMEM = {
+    0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,
+    0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
+    0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
+    0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
+    0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc,
+    0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
+    0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a,
+    0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
+    0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
+    0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
+    0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b,
+    0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
+    0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85,
+    0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
+    0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
+    0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
+    0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17,
+    0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
+    0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88,
+    0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
+    0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
+    0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
+    0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9,
+    0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
+    0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6,
+    0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
+    0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
+    0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
+    0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94,
+    0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
+    0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,
+    0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
+};
+
+#ifndef TWISTER_MUL_TABLE
+  
+  
+/* Twister MDS matrix */
+ const uint8_t twister_mds[8][8] PROGMEM = {
+  {2, 1, 1, 5, 7, 8, 6, 1},
+  {1, 2, 1, 1, 5, 7, 8, 6},
+  {6, 1, 2, 1, 1, 5, 7, 8},
+  {8, 6, 1, 2, 1, 1, 5, 7},
+  {7, 8, 6, 1, 2, 1, 1, 5},
+  {5, 7, 8, 6, 1, 2, 1, 1},
+  {1, 5, 7, 8, 6, 1, 2, 1},
+  {1, 1, 5, 7, 8, 6, 1, 2}
+};
+  
+#else
+
+#define S1 0
+#define S2 1
+#define S3 X
+#define S4 X
+#define S5 2
+#define S6 3
+#define S7 4
+#define S8 5
+
+ const uint8_t twister_mds[8][8] PROGMEM = {
+  {S2, S1, S1, S5, S7, S8, S6, S1},
+  {S1, S2, S1, S1, S5, S7, S8, S6},
+  {S6, S1, S2, S1, S1, S5, S7, S8},
+  {S8, S6, S1, S2, S1, S1, S5, S7},
+  {S7, S8, S6, S1, S2, S1, S1, S5},
+  {S5, S7, S8, S6, S1, S2, S1, S1},
+  {S1, S5, S7, S8, S6, S1, S2, S1},
+  {S1, S1, S5, S7, S8, S6, S1, S2}
+};
+
+ const uint8_t twister_multab[8][256] PROGMEM = {
+  { /* 1 */
+    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+    16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+    32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+    48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+    64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+    80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+    96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+    112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+    128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+    144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+    160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+    176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+    192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+    208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+    224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+  },
+  { /* 2 */
+    0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
+    32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
+    64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94,
+    96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126,
+    128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158,
+    160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190,
+    192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222,
+    224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254,
+    77, 79, 73, 75, 69, 71, 65, 67, 93, 95, 89, 91, 85, 87, 81, 83,
+    109, 111, 105, 107, 101, 103, 97, 99, 125, 127, 121, 123, 117, 119, 113, 115,
+    13, 15, 9, 11, 5, 7, 1, 3, 29, 31, 25, 27, 21, 23, 17, 19,
+    45, 47, 41, 43, 37, 39, 33, 35, 61, 63, 57, 59, 53, 55, 49, 51,
+    205, 207, 201, 203, 197, 199, 193, 195, 221, 223, 217, 219, 213, 215, 209, 211,
+    237, 239, 233, 235, 229, 231, 225, 227, 253, 255, 249, 251, 245, 247, 241, 243,
+    141, 143, 137, 139, 133, 135, 129, 131, 157, 159, 153, 155, 149, 151, 145, 147,
+    173, 175, 169, 171, 165, 167, 161, 163, 189, 191, 185, 187, 181, 183, 177, 179
+  },
+/*  { / * 3 * /
+    0, 3, 6, 5, 12, 15, 10, 9, 24, 27, 30, 29, 20, 23, 18, 17,
+    48, 51, 54, 53, 60, 63, 58, 57, 40, 43, 46, 45, 36, 39, 34, 33,
+    96, 99, 102, 101, 108, 111, 106, 105, 120, 123, 126, 125, 116, 119, 114, 113,
+    80, 83, 86, 85, 92, 95, 90, 89, 72, 75, 78, 77, 68, 71, 66, 65,
+    192, 195, 198, 197, 204, 207, 202, 201, 216, 219, 222, 221, 212, 215, 210, 209,
+    240, 243, 246, 245, 252, 255, 250, 249, 232, 235, 238, 237, 228, 231, 226, 225,
+    160, 163, 166, 165, 172, 175, 170, 169, 184, 187, 190, 189, 180, 183, 178, 177,
+    144, 147, 150, 149, 156, 159, 154, 153, 136, 139, 142, 141, 132, 135, 130, 129,
+    205, 206, 203, 200, 193, 194, 199, 196, 213, 214, 211, 208, 217, 218, 223, 220,
+    253, 254, 251, 248, 241, 242, 247, 244, 229, 230, 227, 224, 233, 234, 239, 236,
+    173, 174, 171, 168, 161, 162, 167, 164, 181, 182, 179, 176, 185, 186, 191, 188,
+    157, 158, 155, 152, 145, 146, 151, 148, 133, 134, 131, 128, 137, 138, 143, 140,
+    13, 14, 11, 8, 1, 2, 7, 4, 21, 22, 19, 16, 25, 26, 31, 28,
+    61, 62, 59, 56, 49, 50, 55, 52, 37, 38, 35, 32, 41, 42, 47, 44,
+    109, 110, 107, 104, 97, 98, 103, 100, 117, 118, 115, 112, 121, 122, 127, 124,
+    93, 94, 91, 88, 81, 82, 87, 84, 69, 70, 67, 64, 73, 74, 79, 76
+  },
+  { / * 4 * /
+    0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
+    64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124,
+    128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188,
+    192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252,
+    77, 73, 69, 65, 93, 89, 85, 81, 109, 105, 101, 97, 125, 121, 117, 113,
+    13, 9, 5, 1, 29, 25, 21, 17, 45, 41, 37, 33, 61, 57, 53, 49,
+    205, 201, 197, 193, 221, 217, 213, 209, 237, 233, 229, 225, 253, 249, 245, 241,
+    141, 137, 133, 129, 157, 153, 149, 145, 173, 169, 165, 161, 189, 185, 181, 177,
+    154, 158, 146, 150, 138, 142, 130, 134, 186, 190, 178, 182, 170, 174, 162, 166,
+    218, 222, 210, 214, 202, 206, 194, 198, 250, 254, 242, 246, 234, 238, 226, 230,
+    26, 30, 18, 22, 10, 14, 2, 6, 58, 62, 50, 54, 42, 46, 34, 38,
+    90, 94, 82, 86, 74, 78, 66, 70, 122, 126, 114, 118, 106, 110, 98, 102,
+    215, 211, 223, 219, 199, 195, 207, 203, 247, 243, 255, 251, 231, 227, 239, 235,
+    151, 147, 159, 155, 135, 131, 143, 139, 183, 179, 191, 187, 167, 163, 175, 171,
+    87, 83, 95, 91, 71, 67, 79, 75, 119, 115, 127, 123, 103, 99, 111, 107,
+    23, 19, 31, 27, 7, 3, 15, 11, 55, 51, 63, 59, 39, 35, 47, 43
+  },
+*/  { /* 5 */
+    0, 5, 10, 15, 20, 17, 30, 27, 40, 45, 34, 39, 60, 57, 54, 51,
+    80, 85, 90, 95, 68, 65, 78, 75, 120, 125, 114, 119, 108, 105, 102, 99,
+    160, 165, 170, 175, 180, 177, 190, 187, 136, 141, 130, 135, 156, 153, 150, 147,
+    240, 245, 250, 255, 228, 225, 238, 235, 216, 221, 210, 215, 204, 201, 198, 195,
+    13, 8, 7, 2, 25, 28, 19, 22, 37, 32, 47, 42, 49, 52, 59, 62,
+    93, 88, 87, 82, 73, 76, 67, 70, 117, 112, 127, 122, 97, 100, 107, 110,
+    173, 168, 167, 162, 185, 188, 179, 182, 133, 128, 143, 138, 145, 148, 155, 158,
+    253, 248, 247, 242, 233, 236, 227, 230, 213, 208, 223, 218, 193, 196, 203, 206,
+    26, 31, 16, 21, 14, 11, 4, 1, 50, 55, 56, 61, 38, 35, 44, 41,
+    74, 79, 64, 69, 94, 91, 84, 81, 98, 103, 104, 109, 118, 115, 124, 121,
+    186, 191, 176, 181, 174, 171, 164, 161, 146, 151, 152, 157, 134, 131, 140, 137,
+    234, 239, 224, 229, 254, 251, 244, 241, 194, 199, 200, 205, 214, 211, 220, 217,
+    23, 18, 29, 24, 3, 6, 9, 12, 63, 58, 53, 48, 43, 46, 33, 36,
+    71, 66, 77, 72, 83, 86, 89, 92, 111, 106, 101, 96, 123, 126, 113, 116,
+    183, 178, 189, 184, 163, 166, 169, 172, 159, 154, 149, 144, 139, 142, 129, 132,
+    231, 226, 237, 232, 243, 246, 249, 252, 207, 202, 197, 192, 219, 222, 209, 212
+  },
+  { /* 6 */
+    0, 6, 12, 10, 24, 30, 20, 18, 48, 54, 60, 58, 40, 46, 36, 34,
+    96, 102, 108, 106, 120, 126, 116, 114, 80, 86, 92, 90, 72, 78, 68, 66,
+    192, 198, 204, 202, 216, 222, 212, 210, 240, 246, 252, 250, 232, 238, 228, 226,
+    160, 166, 172, 170, 184, 190, 180, 178, 144, 150, 156, 154, 136, 142, 132, 130,
+    205, 203, 193, 199, 213, 211, 217, 223, 253, 251, 241, 247, 229, 227, 233, 239,
+    173, 171, 161, 167, 181, 179, 185, 191, 157, 155, 145, 151, 133, 131, 137, 143,
+    13, 11, 1, 7, 21, 19, 25, 31, 61, 59, 49, 55, 37, 35, 41, 47,
+    109, 107, 97, 103, 117, 115, 121, 127, 93, 91, 81, 87, 69, 67, 73, 79,
+    215, 209, 219, 221, 207, 201, 195, 197, 231, 225, 235, 237, 255, 249, 243, 245,
+    183, 177, 187, 189, 175, 169, 163, 165, 135, 129, 139, 141, 159, 153, 147, 149,
+    23, 17, 27, 29, 15, 9, 3, 5, 39, 33, 43, 45, 63, 57, 51, 53,
+    119, 113, 123, 125, 111, 105, 99, 101, 71, 65, 75, 77, 95, 89, 83, 85,
+    26, 28, 22, 16, 2, 4, 14, 8, 42, 44, 38, 32, 50, 52, 62, 56,
+    122, 124, 118, 112, 98, 100, 110, 104, 74, 76, 70, 64, 82, 84, 94, 88,
+    218, 220, 214, 208, 194, 196, 206, 200, 234, 236, 230, 224, 242, 244, 254, 248,
+    186, 188, 182, 176, 162, 164, 174, 168, 138, 140, 134, 128, 146, 148, 158, 152
+  },
+  { /* 7 */
+    0, 7, 14, 9, 28, 27, 18, 21, 56, 63, 54, 49, 36, 35, 42, 45,
+    112, 119, 126, 121, 108, 107, 98, 101, 72, 79, 70, 65, 84, 83, 90, 93,
+    224, 231, 238, 233, 252, 251, 242, 245, 216, 223, 214, 209, 196, 195, 202, 205,
+    144, 151, 158, 153, 140, 139, 130, 133, 168, 175, 166, 161, 180, 179, 186, 189,
+    141, 138, 131, 132, 145, 150, 159, 152, 181, 178, 187, 188, 169, 174, 167, 160,
+    253, 250, 243, 244, 225, 230, 239, 232, 197, 194, 203, 204, 217, 222, 215, 208,
+    109, 106, 99, 100, 113, 118, 127, 120, 85, 82, 91, 92, 73, 78, 71, 64,
+    29, 26, 19, 20, 1, 6, 15, 8, 37, 34, 43, 44, 57, 62, 55, 48,
+    87, 80, 89, 94, 75, 76, 69, 66, 111, 104, 97, 102, 115, 116, 125, 122,
+    39, 32, 41, 46, 59, 60, 53, 50, 31, 24, 17, 22, 3, 4, 13, 10,
+    183, 176, 185, 190, 171, 172, 165, 162, 143, 136, 129, 134, 147, 148, 157, 154,
+    199, 192, 201, 206, 219, 220, 213, 210, 255, 248, 241, 246, 227, 228, 237, 234,
+    218, 221, 212, 211, 198, 193, 200, 207, 226, 229, 236, 235, 254, 249, 240, 247,
+    170, 173, 164, 163, 182, 177, 184, 191, 146, 149, 156, 155, 142, 137, 128, 135,
+    58, 61, 52, 51, 38, 33, 40, 47, 2, 5, 12, 11, 30, 25, 16, 23,
+    74, 77, 68, 67, 86, 81, 88, 95, 114, 117, 124, 123, 110, 105, 96, 103
+  },
+  { /* 8 */
+    0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
+    128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248,
+    77, 69, 93, 85, 109, 101, 125, 117, 13, 5, 29, 21, 45, 37, 61, 53,
+    205, 197, 221, 213, 237, 229, 253, 245, 141, 133, 157, 149, 173, 165, 189, 181,
+    154, 146, 138, 130, 186, 178, 170, 162, 218, 210, 202, 194, 250, 242, 234, 226,
+    26, 18, 10, 2, 58, 50, 42, 34, 90, 82, 74, 66, 122, 114, 106, 98,
+    215, 223, 199, 207, 247, 255, 231, 239, 151, 159, 135, 143, 183, 191, 167, 175,
+    87, 95, 71, 79, 119, 127, 103, 111, 23, 31, 7, 15, 55, 63, 39, 47,
+    121, 113, 105, 97, 89, 81, 73, 65, 57, 49, 41, 33, 25, 17, 9, 1,
+    249, 241, 233, 225, 217, 209, 201, 193, 185, 177, 169, 161, 153, 145, 137, 129,
+    52, 60, 36, 44, 20, 28, 4, 12, 116, 124, 100, 108, 84, 92, 68, 76,
+    180, 188, 164, 172, 148, 156, 132, 140, 244, 252, 228, 236, 212, 220, 196, 204,
+    227, 235, 243, 251, 195, 203, 211, 219, 163, 171, 179, 187, 131, 139, 147, 155,
+    99, 107, 115, 123, 67, 75, 83, 91, 35, 43, 51, 59, 3, 11, 19, 27,
+    174, 166, 190, 182, 142, 134, 158, 150, 238, 230, 254, 246, 206, 198, 222, 214,
+    46, 38, 62, 54, 14, 6, 30, 22, 110, 102, 126, 118, 78, 70, 94, 86
+  }
+};
+    
+#endif
+
+
index b0f145cf84ac7565a5e44f935d861a6986b71db6..e11a7e6f5a43f527237f30a477918d4016f82b81 100644 (file)
 
 #include "config.h"
 #include <stdint.h>
-#include <avr/pgmspace.h>
 
-static const uint8_t twister_sbox[256] PROGMEM = {
-    0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,
-    0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
-    0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
-    0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
-    0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc,
-    0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
-    0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a,
-    0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
-    0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
-    0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
-    0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b,
-    0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
-    0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85,
-    0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
-    0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
-    0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
-    0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17,
-    0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
-    0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88,
-    0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
-    0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
-    0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
-    0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9,
-    0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
-    0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6,
-    0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
-    0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
-    0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
-    0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94,
-    0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
-    0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,
-    0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
-};
+#ifndef TWISTER_TABLES_H_
+#define TWISTER_TABLES_H_
+extern const uint8_t twister_sbox[256];
 
 #ifndef TWISTER_MUL_TABLE
   
-  
 /* Twister MDS matrix */
-static const uint8_t twister_mds[8][8] PROGMEM = {
-  {2, 1, 1, 5, 7, 8, 6, 1},
-  {1, 2, 1, 1, 5, 7, 8, 6},
-  {6, 1, 2, 1, 1, 5, 7, 8},
-  {8, 6, 1, 2, 1, 1, 5, 7},
-  {7, 8, 6, 1, 2, 1, 1, 5},
-  {5, 7, 8, 6, 1, 2, 1, 1},
-  {1, 5, 7, 8, 6, 1, 2, 1},
-  {1, 1, 5, 7, 8, 6, 1, 2}
-};
+extern const uint8_t twister_mds[8][8];
   
 #else
 
-#define S1 0
-#define S2 1
-#define S3 X
-#define S4 X
-#define S5 2
-#define S6 3
-#define S7 4
-#define S8 5
-
-static const uint8_t twister_mds[8][8] PROGMEM = {
-  {S2, S1, S1, S5, S7, S8, S6, S1},
-  {S1, S2, S1, S1, S5, S7, S8, S6},
-  {S6, S1, S2, S1, S1, S5, S7, S8},
-  {S8, S6, S1, S2, S1, S1, S5, S7},
-  {S7, S8, S6, S1, S2, S1, S1, S5},
-  {S5, S7, S8, S6, S1, S2, S1, S1},
-  {S1, S5, S7, S8, S6, S1, S2, S1},
-  {S1, S1, S5, S7, S8, S6, S1, S2}
-};
+extern const uint8_t twister_mds[8][8];
+extern const uint8_t twister_multab[8][256];
 
-static const uint8_t twister_multab[8][256] PROGMEM = {
-  { /* 1 */
-    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-    16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-    32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-    48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
-    64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
-    80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
-    96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-    112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
-    128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-    144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
-    160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-    176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
-    192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
-    208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
-    224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
-    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
-  },
-  { /* 2 */
-    0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
-    32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
-    64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94,
-    96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126,
-    128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158,
-    160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190,
-    192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222,
-    224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254,
-    77, 79, 73, 75, 69, 71, 65, 67, 93, 95, 89, 91, 85, 87, 81, 83,
-    109, 111, 105, 107, 101, 103, 97, 99, 125, 127, 121, 123, 117, 119, 113, 115,
-    13, 15, 9, 11, 5, 7, 1, 3, 29, 31, 25, 27, 21, 23, 17, 19,
-    45, 47, 41, 43, 37, 39, 33, 35, 61, 63, 57, 59, 53, 55, 49, 51,
-    205, 207, 201, 203, 197, 199, 193, 195, 221, 223, 217, 219, 213, 215, 209, 211,
-    237, 239, 233, 235, 229, 231, 225, 227, 253, 255, 249, 251, 245, 247, 241, 243,
-    141, 143, 137, 139, 133, 135, 129, 131, 157, 159, 153, 155, 149, 151, 145, 147,
-    173, 175, 169, 171, 165, 167, 161, 163, 189, 191, 185, 187, 181, 183, 177, 179
-  },
-/*  { / * 3 * /
-    0, 3, 6, 5, 12, 15, 10, 9, 24, 27, 30, 29, 20, 23, 18, 17,
-    48, 51, 54, 53, 60, 63, 58, 57, 40, 43, 46, 45, 36, 39, 34, 33,
-    96, 99, 102, 101, 108, 111, 106, 105, 120, 123, 126, 125, 116, 119, 114, 113,
-    80, 83, 86, 85, 92, 95, 90, 89, 72, 75, 78, 77, 68, 71, 66, 65,
-    192, 195, 198, 197, 204, 207, 202, 201, 216, 219, 222, 221, 212, 215, 210, 209,
-    240, 243, 246, 245, 252, 255, 250, 249, 232, 235, 238, 237, 228, 231, 226, 225,
-    160, 163, 166, 165, 172, 175, 170, 169, 184, 187, 190, 189, 180, 183, 178, 177,
-    144, 147, 150, 149, 156, 159, 154, 153, 136, 139, 142, 141, 132, 135, 130, 129,
-    205, 206, 203, 200, 193, 194, 199, 196, 213, 214, 211, 208, 217, 218, 223, 220,
-    253, 254, 251, 248, 241, 242, 247, 244, 229, 230, 227, 224, 233, 234, 239, 236,
-    173, 174, 171, 168, 161, 162, 167, 164, 181, 182, 179, 176, 185, 186, 191, 188,
-    157, 158, 155, 152, 145, 146, 151, 148, 133, 134, 131, 128, 137, 138, 143, 140,
-    13, 14, 11, 8, 1, 2, 7, 4, 21, 22, 19, 16, 25, 26, 31, 28,
-    61, 62, 59, 56, 49, 50, 55, 52, 37, 38, 35, 32, 41, 42, 47, 44,
-    109, 110, 107, 104, 97, 98, 103, 100, 117, 118, 115, 112, 121, 122, 127, 124,
-    93, 94, 91, 88, 81, 82, 87, 84, 69, 70, 67, 64, 73, 74, 79, 76
-  },
-  { / * 4 * /
-    0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
-    64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124,
-    128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188,
-    192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252,
-    77, 73, 69, 65, 93, 89, 85, 81, 109, 105, 101, 97, 125, 121, 117, 113,
-    13, 9, 5, 1, 29, 25, 21, 17, 45, 41, 37, 33, 61, 57, 53, 49,
-    205, 201, 197, 193, 221, 217, 213, 209, 237, 233, 229, 225, 253, 249, 245, 241,
-    141, 137, 133, 129, 157, 153, 149, 145, 173, 169, 165, 161, 189, 185, 181, 177,
-    154, 158, 146, 150, 138, 142, 130, 134, 186, 190, 178, 182, 170, 174, 162, 166,
-    218, 222, 210, 214, 202, 206, 194, 198, 250, 254, 242, 246, 234, 238, 226, 230,
-    26, 30, 18, 22, 10, 14, 2, 6, 58, 62, 50, 54, 42, 46, 34, 38,
-    90, 94, 82, 86, 74, 78, 66, 70, 122, 126, 114, 118, 106, 110, 98, 102,
-    215, 211, 223, 219, 199, 195, 207, 203, 247, 243, 255, 251, 231, 227, 239, 235,
-    151, 147, 159, 155, 135, 131, 143, 139, 183, 179, 191, 187, 167, 163, 175, 171,
-    87, 83, 95, 91, 71, 67, 79, 75, 119, 115, 127, 123, 103, 99, 111, 107,
-    23, 19, 31, 27, 7, 3, 15, 11, 55, 51, 63, 59, 39, 35, 47, 43
-  },
-*/  { /* 5 */
-    0, 5, 10, 15, 20, 17, 30, 27, 40, 45, 34, 39, 60, 57, 54, 51,
-    80, 85, 90, 95, 68, 65, 78, 75, 120, 125, 114, 119, 108, 105, 102, 99,
-    160, 165, 170, 175, 180, 177, 190, 187, 136, 141, 130, 135, 156, 153, 150, 147,
-    240, 245, 250, 255, 228, 225, 238, 235, 216, 221, 210, 215, 204, 201, 198, 195,
-    13, 8, 7, 2, 25, 28, 19, 22, 37, 32, 47, 42, 49, 52, 59, 62,
-    93, 88, 87, 82, 73, 76, 67, 70, 117, 112, 127, 122, 97, 100, 107, 110,
-    173, 168, 167, 162, 185, 188, 179, 182, 133, 128, 143, 138, 145, 148, 155, 158,
-    253, 248, 247, 242, 233, 236, 227, 230, 213, 208, 223, 218, 193, 196, 203, 206,
-    26, 31, 16, 21, 14, 11, 4, 1, 50, 55, 56, 61, 38, 35, 44, 41,
-    74, 79, 64, 69, 94, 91, 84, 81, 98, 103, 104, 109, 118, 115, 124, 121,
-    186, 191, 176, 181, 174, 171, 164, 161, 146, 151, 152, 157, 134, 131, 140, 137,
-    234, 239, 224, 229, 254, 251, 244, 241, 194, 199, 200, 205, 214, 211, 220, 217,
-    23, 18, 29, 24, 3, 6, 9, 12, 63, 58, 53, 48, 43, 46, 33, 36,
-    71, 66, 77, 72, 83, 86, 89, 92, 111, 106, 101, 96, 123, 126, 113, 116,
-    183, 178, 189, 184, 163, 166, 169, 172, 159, 154, 149, 144, 139, 142, 129, 132,
-    231, 226, 237, 232, 243, 246, 249, 252, 207, 202, 197, 192, 219, 222, 209, 212
-  },
-  { /* 6 */
-    0, 6, 12, 10, 24, 30, 20, 18, 48, 54, 60, 58, 40, 46, 36, 34,
-    96, 102, 108, 106, 120, 126, 116, 114, 80, 86, 92, 90, 72, 78, 68, 66,
-    192, 198, 204, 202, 216, 222, 212, 210, 240, 246, 252, 250, 232, 238, 228, 226,
-    160, 166, 172, 170, 184, 190, 180, 178, 144, 150, 156, 154, 136, 142, 132, 130,
-    205, 203, 193, 199, 213, 211, 217, 223, 253, 251, 241, 247, 229, 227, 233, 239,
-    173, 171, 161, 167, 181, 179, 185, 191, 157, 155, 145, 151, 133, 131, 137, 143,
-    13, 11, 1, 7, 21, 19, 25, 31, 61, 59, 49, 55, 37, 35, 41, 47,
-    109, 107, 97, 103, 117, 115, 121, 127, 93, 91, 81, 87, 69, 67, 73, 79,
-    215, 209, 219, 221, 207, 201, 195, 197, 231, 225, 235, 237, 255, 249, 243, 245,
-    183, 177, 187, 189, 175, 169, 163, 165, 135, 129, 139, 141, 159, 153, 147, 149,
-    23, 17, 27, 29, 15, 9, 3, 5, 39, 33, 43, 45, 63, 57, 51, 53,
-    119, 113, 123, 125, 111, 105, 99, 101, 71, 65, 75, 77, 95, 89, 83, 85,
-    26, 28, 22, 16, 2, 4, 14, 8, 42, 44, 38, 32, 50, 52, 62, 56,
-    122, 124, 118, 112, 98, 100, 110, 104, 74, 76, 70, 64, 82, 84, 94, 88,
-    218, 220, 214, 208, 194, 196, 206, 200, 234, 236, 230, 224, 242, 244, 254, 248,
-    186, 188, 182, 176, 162, 164, 174, 168, 138, 140, 134, 128, 146, 148, 158, 152
-  },
-  { /* 7 */
-    0, 7, 14, 9, 28, 27, 18, 21, 56, 63, 54, 49, 36, 35, 42, 45,
-    112, 119, 126, 121, 108, 107, 98, 101, 72, 79, 70, 65, 84, 83, 90, 93,
-    224, 231, 238, 233, 252, 251, 242, 245, 216, 223, 214, 209, 196, 195, 202, 205,
-    144, 151, 158, 153, 140, 139, 130, 133, 168, 175, 166, 161, 180, 179, 186, 189,
-    141, 138, 131, 132, 145, 150, 159, 152, 181, 178, 187, 188, 169, 174, 167, 160,
-    253, 250, 243, 244, 225, 230, 239, 232, 197, 194, 203, 204, 217, 222, 215, 208,
-    109, 106, 99, 100, 113, 118, 127, 120, 85, 82, 91, 92, 73, 78, 71, 64,
-    29, 26, 19, 20, 1, 6, 15, 8, 37, 34, 43, 44, 57, 62, 55, 48,
-    87, 80, 89, 94, 75, 76, 69, 66, 111, 104, 97, 102, 115, 116, 125, 122,
-    39, 32, 41, 46, 59, 60, 53, 50, 31, 24, 17, 22, 3, 4, 13, 10,
-    183, 176, 185, 190, 171, 172, 165, 162, 143, 136, 129, 134, 147, 148, 157, 154,
-    199, 192, 201, 206, 219, 220, 213, 210, 255, 248, 241, 246, 227, 228, 237, 234,
-    218, 221, 212, 211, 198, 193, 200, 207, 226, 229, 236, 235, 254, 249, 240, 247,
-    170, 173, 164, 163, 182, 177, 184, 191, 146, 149, 156, 155, 142, 137, 128, 135,
-    58, 61, 52, 51, 38, 33, 40, 47, 2, 5, 12, 11, 30, 25, 16, 23,
-    74, 77, 68, 67, 86, 81, 88, 95, 114, 117, 124, 123, 110, 105, 96, 103
-  },
-  { /* 8 */
-    0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
-    128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248,
-    77, 69, 93, 85, 109, 101, 125, 117, 13, 5, 29, 21, 45, 37, 61, 53,
-    205, 197, 221, 213, 237, 229, 253, 245, 141, 133, 157, 149, 173, 165, 189, 181,
-    154, 146, 138, 130, 186, 178, 170, 162, 218, 210, 202, 194, 250, 242, 234, 226,
-    26, 18, 10, 2, 58, 50, 42, 34, 90, 82, 74, 66, 122, 114, 106, 98,
-    215, 223, 199, 207, 247, 255, 231, 239, 151, 159, 135, 143, 183, 191, 167, 175,
-    87, 95, 71, 79, 119, 127, 103, 111, 23, 31, 7, 15, 55, 63, 39, 47,
-    121, 113, 105, 97, 89, 81, 73, 65, 57, 49, 41, 33, 25, 17, 9, 1,
-    249, 241, 233, 225, 217, 209, 201, 193, 185, 177, 169, 161, 153, 145, 137, 129,
-    52, 60, 36, 44, 20, 28, 4, 12, 116, 124, 100, 108, 84, 92, 68, 76,
-    180, 188, 164, 172, 148, 156, 132, 140, 244, 252, 228, 236, 212, 220, 196, 204,
-    227, 235, 243, 251, 195, 203, 211, 219, 163, 171, 179, 187, 131, 139, 147, 155,
-    99, 107, 115, 123, 67, 75, 83, 91, 35, 43, 51, 59, 3, 11, 19, 27,
-    174, 166, 190, 182, 142, 134, 158, 150, 238, 230, 254, 246, 206, 198, 222, 214,
-    46, 38, 62, 54, 14, 6, 30, 22, 110, 102, 126, 118, 78, 70, 94, 86
-  }
-};
-    
 #endif
 
+#endif
 
index cd41ccea3f60f7cb48d9aef8ba8d606bdeccb615..e975b28badd41953cc58e797d88cabee7cc2442d 100644 (file)
@@ -43,13 +43,13 @@ u       0   1       2       3       4       5       6       7       8       9       A       B       C       D       E       F
 E(u)    1      B       9       C       D       6       F       3       E       8       7       4       A       2       5       0
 E -1(u) F      0       D       7       B       E       5       A       9       2       C       1       3       4       8       6
 */
-static uint8_t eeinv_box[16] PROGMEM = {
+static const uint8_t eeinv_box[16] PROGMEM = {
        /*      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F */
        0x1F, 0xB0, 0x9D, 0xC7, 0xDB, 0x6E, 0xF5, 0x3A,
        0xE9, 0x82, 0x7C, 0x41, 0xA3, 0x24, 0x58, 0x06
 };
 
-static uint8_t r_box[16] PROGMEM = {
+static const uint8_t r_box[16] PROGMEM = {
        0x77, 0xCC, 0xBB, 0xDD, 0xEE, 0x44, 0x99, 0xFF,
        0x66, 0x33, 0x88, 0xAA, 0x22, 0x55, 0x11, 0x00
 };
@@ -68,7 +68,7 @@ static uint8_t whirlpool_sbox(uint8_t a){
 
 #else
 #if WHIRLPOOL_0
-static uint8_t sbox[256] PROGMEM = {
+static const  uint8_t sbox[256] PROGMEM = {
        0x68, 0xd0, 0xeb, 0x2b, 0x48, 0x9d, 0x6a, 0xe4, 0xe3, 0xa3, 0x56, 0x81, 0x7d, 0xf1, 0x85, 0x9e,
        0x2c, 0x8e, 0x78, 0xca, 0x17, 0xa9, 0x61, 0xd5, 0x5d, 0x0b, 0x8c, 0x3c, 0x77, 0x51, 0x22, 0x42,
        0x3f, 0x54, 0x41, 0x80, 0xcc, 0x86, 0xb3, 0x18, 0x2e, 0x57, 0x06, 0x62, 0xf4, 0x36, 0xd1, 0x6b,
@@ -87,7 +87,7 @@ static uint8_t sbox[256] PROGMEM = {
        0x13, 0xbb, 0xf7, 0x6f, 0xb9, 0x47, 0x2f, 0xee, 0xb8, 0x7b, 0x89, 0x30, 0xd3, 0x7f, 0x76, 0x82
 };
 #else
-static uint8_t sbox[256] PROGMEM = {
+static const uint8_t sbox[256] PROGMEM = {
        0x18, 0x23, 0xC6, 0xE8, 0x87, 0xB8, 0x01, 0x4F, 0x36, 0xA6, 0xD2, 0xF5, 0x79, 0x6F, 0x91, 0x52,
     0x60, 0xBC, 0x9B, 0x8E, 0xA3, 0x0C, 0x7B, 0x35, 0x1D, 0xE0, 0xD7, 0xC2, 0x2E, 0x4B, 0xFE, 0x57,
     0x15, 0x77, 0x37, 0xE5, 0x9F, 0xF0, 0x4A, 0xDA, 0x58, 0xC9, 0x29, 0x0A, 0xB1, 0xA0, 0x6B, 0x85,
@@ -133,11 +133,11 @@ static void pi(uint8_t* a){
 }
 
 #if WHIRLPOOL_0 || WHIRLPOOL_T
-static uint8_t theta_matrix[8] PROGMEM = {
+static const uint8_t theta_matrix[8] PROGMEM = {
        0x1, 0x1, 0x3, 0x1, 0x5, 0x8, 0x9, 0x5
 };
 #else
-static uint8_t theta_matrix[8] PROGMEM = {
+static const uint8_t theta_matrix[8] PROGMEM = {
        0x1, 0x1, 0x4, 0x1, 0x8, 0x5, 0x2, 0x9
 };
 #endif