From: bg Date: Wed, 14 Mar 2012 16:38:51 +0000 (+0000) Subject: a lot of fixes X-Git-Url: https://git.cryptolib.org/?a=commitdiff_plain;h=701cee0d98aab48dd3192c8cc7c77eb42581bc56;p=avr-crypto-lib.git a lot of fixes --- diff --git a/Makefile b/Makefile index 53d2a39..d9e8d03 100644 --- 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)/ @@ -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 diff --git a/aes/aes_invsbox.c b/aes/aes_invsbox.c index 921ff49..6517264 100644 --- a/aes/aes_invsbox.c +++ b/aes/aes_invsbox.c @@ -2,7 +2,7 @@ #include #include -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, diff --git a/aes/aes_keyschedule.c b/aes/aes_keyschedule.c index 9225323..fff0700 100644 --- a/aes/aes_keyschedule.c +++ b/aes/aes_keyschedule.c @@ -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 }; diff --git a/aes/aes_sbox.c b/aes/aes_sbox.c index 85b08de..342e5c2 100644 --- a/aes/aes_sbox.c +++ b/aes/aes_sbox.c @@ -2,7 +2,7 @@ #include #include -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, diff --git a/arcfour/arcfour.c b/arcfour/arcfour.c index 6c068a8..ba66c16 100644 --- a/arcfour/arcfour.c +++ b/arcfour/arcfour.c @@ -35,24 +35,26 @@ 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; } diff --git a/avr-makefile.inc b/avr-makefile.inc index 4396b24..39b10f8 100644 --- a/avr-makefile.inc +++ b/avr-makefile.inc @@ -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 diff --git a/base64/base64_enc.c b/base64/base64_enc.c index c588998..ae06127 100644 --- a/base64/base64_enc.c +++ b/base64/base64_enc.c @@ -32,7 +32,7 @@ #if 1 #include -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', diff --git a/bcal/bcal-nessie.c b/bcal/bcal-nessie.c index 387a7d7..00121f0 100644 --- a/bcal/bcal-nessie.c +++ b/bcal/bcal-nessie.c @@ -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); diff --git a/bcal/bcal-nessie.h b/bcal/bcal-nessie.h index 5e4285f..0120961 100644 --- a/bcal/bcal-nessie.h +++ b/bcal/bcal-nessie.h @@ -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_ */ diff --git a/bcal/bcal-performance.c b/bcal/bcal-performance.c index 36cc823..feeda10 100644 --- a/bcal/bcal-performance.c +++ b/bcal/bcal-performance.c @@ -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); diff --git a/bcal/bcal-performance.h b/bcal/bcal-performance.h index b8c5666..19207ea 100644 --- a/bcal/bcal-performance.h +++ b/bcal/bcal-performance.h @@ -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_ */ diff --git a/bcal/bcal_camellia128.c b/bcal/bcal_camellia128.c index a891b9d..f247b48 100644 --- a/bcal/bcal_camellia128.c +++ b/bcal/bcal_camellia128.c @@ -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, diff --git a/bcal/bcal_cast5.c b/bcal/bcal_cast5.c index bc91297..a6866b3 100644 --- a/bcal/bcal_cast5.c +++ b/bcal/bcal_cast5.c @@ -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}, diff --git a/bcal/bcal_des.c b/bcal/bcal_des.c index 04ed5e5..0e8068b 100644 --- a/bcal/bcal_des.c +++ b/bcal/bcal_des.c @@ -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}, diff --git a/bcal/bcal_serpent.c b/bcal/bcal_serpent.c index df1b578..a6cf994 100644 --- a/bcal/bcal_serpent.c +++ b/bcal/bcal_serpent.c @@ -32,8 +32,12 @@ #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 = { diff --git a/blake/blake_common.c b/blake/blake_common.c index eadd247..9be43ea 100644 --- a/blake/blake_common.c +++ b/blake/blake_common.c @@ -28,7 +28,7 @@ #include #include -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, diff --git a/blake/blake_large.c b/blake/blake_large.c index b0b6ceb..eb6511c 100644 --- a/blake/blake_large.c +++ b/blake/blake_large.c @@ -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, diff --git a/blake/blake_small.c b/blake/blake_small.c index d355940..cc3f6d2 100644 --- a/blake/blake_small.c +++ b/blake/blake_small.c @@ -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, diff --git a/bmw/bmw_large.c b/bmw/bmw_large.c index 719b585..4b2b768 100644 --- a/bmw/bmw_large.c +++ b/bmw/bmw_large.c @@ -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, diff --git a/bmw/bmw_small.c b/bmw/bmw_small.c index 349ccf8..b7013f3 100644 --- a/bmw/bmw_small.c +++ b/bmw/bmw_small.c @@ -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, diff --git a/camellia/camellia128-stub.c b/camellia/camellia128-stub.c index a09223a..57ed483 100644 --- a/camellia/camellia128-stub.c +++ b/camellia/camellia128-stub.c @@ -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; diff --git a/camellia/camellia_C.c b/camellia/camellia_C.c index c8cf450..2f30934 100644 --- a/camellia/camellia_C.c +++ b/camellia/camellia_C.c @@ -34,27 +34,36 @@ #endif /*****************************************************************************/ -uint8_t rol(uint8_t a, uint8_t n){return ((a<>(8-n)));} +static +uint8_t rol(uint8_t a, uint8_t n){ + return ((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<>(32-n))); } /*****************************************************************************/ - +/* +static uint64_t rol64(uint64_t a, uint8_t n){ return ((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. +*/ +/* + * 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 +#include + +#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 + diff --git a/cast5/cast5-sbox.h b/cast5/cast5-sbox.h index 4a8b6bf..12f91d4 100644 --- a/cast5/cast5-sbox.h +++ b/cast5/cast5-sbox.h @@ -28,574 +28,16 @@ #ifndef CAST5_SBOX_H_ #define CAST5_SBOX_H_ -#include #include -#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 index 0000000..b899c02 --- /dev/null +++ b/cast6/cast6-sbox.c @@ -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 . +*/ +/* + * 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 +#include + +#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 index 0000000..b9e7adf --- /dev/null +++ b/cast6/cast6-sbox.h @@ -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 . +*/ +/* + * 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 +#include + +extern const uint32_t s1[] ; +extern const uint32_t s2[] ; +extern const uint32_t s3[] ; +extern const uint32_t s4[] ; + +#endif + diff --git a/cast6/cast6.c b/cast6/cast6.c index c4922fc..5fc7684 100644 --- a/cast6/cast6.c +++ b/cast6/cast6.c @@ -11,7 +11,7 @@ #include #include #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); } } } diff --git a/cscipher/cscipher_sbox.c b/cscipher/cscipher_sbox.c index 4794b4b..18cd76a 100644 --- a/cscipher/cscipher_sbox.c +++ b/cscipher/cscipher_sbox.c @@ -20,7 +20,7 @@ #include #include -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, diff --git a/cscipher/cscipher_small.c b/cscipher/cscipher_small.c index 220bcc9..640bcf2 100644 --- a/cscipher/cscipher_small.c +++ b/cscipher/cscipher_small.c @@ -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, diff --git a/des/des.c b/des/des.c index 0b993c0..2b30b01 100644 --- 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 @@ -25,15 +25,11 @@ * \license GPLv3 or later * */ -#include "config.h" -#include "debug.h" -#include "cli.h" #include #include -#include #include -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>(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); } /******************************************************************************/ diff --git a/dsa/dsa_key_blob.c b/dsa/dsa_key_blob.c index fe31e53..4a7955f 100644 --- a/dsa/dsa_key_blob.c +++ b/dsa/dsa_key_blob.c @@ -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, diff --git a/echo/aes_enc_round-asm.S b/echo/aes_enc_round-asm.S index 2380865..2db1dc4 100644 --- a/echo/aes_enc_round-asm.S +++ b/echo/aes_enc_round-asm.S @@ -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 diff --git a/echo/echo.c b/echo/echo.c index 98ee47c..6fbbbd8 100644 --- a/echo/echo.c +++ b/echo/echo.c @@ -21,6 +21,7 @@ #include "echo.h" #include "gf256mul.h" #include "memxor.h" +#include "aes_enc_round.h" #include #include @@ -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(roundnfsr[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, diff --git a/groestl/groestl_large.c b/groestl/groestl_large.c index 0812683..f7f5eea 100644 --- a/groestl/groestl_large.c +++ b/groestl/groestl_large.c @@ -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, diff --git a/groestl/groestl_small.c b/groestl/groestl_small.c index 87156cf..243bc99 100644 --- a/groestl/groestl_small.c +++ b/groestl/groestl_small.c @@ -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, diff --git a/hfal/hfal-nessie.c b/hfal/hfal-nessie.c index 7188d0e..be21078 100644 --- a/hfal/hfal-nessie.c +++ b/hfal/hfal-nessie.c @@ -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); diff --git a/hfal/hfal-nessie.h b/hfal/hfal-nessie.h index e9be131..c06db33 100644 --- a/hfal/hfal-nessie.h +++ b/hfal/hfal-nessie.h @@ -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_ */ diff --git a/hfal/hfal-performance.c b/hfal/hfal-performance.c index 5371f80..a0fd1fd 100644 --- a/hfal/hfal-performance.c +++ b/hfal/hfal-performance.c @@ -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); diff --git a/hfal/hfal-performance.h b/hfal/hfal-performance.h index 65b0473..b8de940 100644 --- a/hfal/hfal-performance.h +++ b/hfal/hfal-performance.h @@ -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_ */ diff --git a/host/get_test.rb b/host/get_test.rb index 8b3f940..9d60a4a 100644 --- a/host/get_test.rb +++ b/host/get_test.rb @@ -21,13 +21,23 @@ 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) diff --git a/host/nessie_check.rb b/host/nessie_check.rb index 33eb4a3..d2ed46a 100644 --- a/host/nessie_check.rb +++ b/host/nessie_check.rb @@ -21,15 +21,19 @@ 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 diff --git a/host/shavs_test2.rb b/host/shavs_test2.rb index ab90192..3c06e2f 100644 --- a/host/shavs_test2.rb +++ b/host/shavs_test2.rb @@ -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 also read config from +# -i skip until test nr. +# -j start with testfile +# -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 diff --git a/jh/jh_simple_small_core.c b/jh/jh_simple_small_core.c index 907d48a..5e5fe4f 100644 --- a/jh/jh_simple_small_core.c +++ b/jh/jh_simple_small_core.c @@ -30,12 +30,12 @@ #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]; diff --git a/jh/jh_simple_speed_core.c b/jh/jh_simple_speed_core.c index 94c029c..55fbeff 100644 --- a/jh/jh_simple_speed_core.c +++ b/jh/jh_simple_speed_core.c @@ -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){ diff --git a/jh/jh_tables.c b/jh/jh_tables.c index 33c83a4..14de7eb 100644 --- a/jh/jh_tables.c +++ b/jh/jh_tables.c @@ -20,7 +20,7 @@ #include #include -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, diff --git a/keccak/keccak.c b/keccak/keccak.c index e7d5279..2c1d936 100644 --- a/keccak/keccak.c +++ b/keccak/keccak.c @@ -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) }, diff --git a/keysize_descriptor.c b/keysize_descriptor.c index d78ed03..253100f 100644 --- a/keysize_descriptor.c +++ b/keysize_descriptor.c @@ -128,7 +128,7 @@ uint16_t get_keysizes(PGM_VOID_P ks_desc, uint16_t** list){ } } i=0; - while(min. +*/ +#include +#include + +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 }; + diff --git a/md5/md5_sbox.h b/md5/md5_sbox.h index 597b3db..685ced2 100644 --- a/md5/md5_sbox.h +++ b/md5/md5_sbox.h @@ -22,19 +22,6 @@ #include #include -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_*/ diff --git a/mickey128/mickey128.c b/mickey128/mickey128.c index d33571e..acf3cf8 100644 --- a/mickey128/mickey128.c +++ b/mickey128/mickey128.c @@ -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, diff --git a/mkfiles/a5_1.mk b/mkfiles/a5_1.mk index 8c0c030..6055e98 100644 --- a/mkfiles/a5_1.mk +++ b/mkfiles/a5_1.mk @@ -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" diff --git a/mkfiles/aes.mk b/mkfiles/aes.mk index 8372906..4e83a0c 100644 --- a/mkfiles/aes.mk +++ b/mkfiles/aes.mk @@ -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 \ diff --git a/mkfiles/aes128.mk b/mkfiles/aes128.mk index 32e109c..6a767ad 100644 --- a/mkfiles/aes128.mk +++ b/mkfiles/aes128.mk @@ -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 diff --git a/mkfiles/aes192.mk b/mkfiles/aes192.mk index b4f8eb4..dc93caf 100644 --- a/mkfiles/aes192.mk +++ b/mkfiles/aes192.mk @@ -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 diff --git a/mkfiles/aes256.mk b/mkfiles/aes256.mk index 608fdbc..09292b6 100644 --- a/mkfiles/aes256.mk +++ b/mkfiles/aes256.mk @@ -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 diff --git a/mkfiles/aes_asm_faster.mk b/mkfiles/aes_asm_faster.mk index 798fc40..a4ba160 100644 --- a/mkfiles/aes_asm_faster.mk +++ b/mkfiles/aes_asm_faster.mk @@ -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 \ diff --git a/mkfiles/aes_c.mk b/mkfiles/aes_c.mk index d8a0c1d..e1c3aeb 100644 --- a/mkfiles/aes_c.mk +++ b/mkfiles/aes_c.mk @@ -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 \ diff --git a/mkfiles/arcfour.mk b/mkfiles/arcfour.mk index 67beed3..128f659 100644 --- a/mkfiles/arcfour.mk +++ b/mkfiles/arcfour.mk @@ -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" diff --git a/mkfiles/arcfour_c.mk b/mkfiles/arcfour_c.mk index aa6d0eb..2b8b7da 100644 --- a/mkfiles/arcfour_c.mk +++ b/mkfiles/arcfour_c.mk @@ -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" diff --git a/mkfiles/base64.mk b/mkfiles/base64.mk index ee7261d..90f415e 100644 --- a/mkfiles/base64.mk +++ b/mkfiles/base64.mk @@ -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 diff --git a/mkfiles/bigint.mk b/mkfiles/bigint.mk index 076e77d..57e1a1c 100644 --- a/mkfiles/bigint.mk +++ b/mkfiles/bigint.mk @@ -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 diff --git a/mkfiles/blake_c.mk b/mkfiles/blake_c.mk index f6feec6..ce13249 100644 --- a/mkfiles/blake_c.mk +++ b/mkfiles/blake_c.mk @@ -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 diff --git a/mkfiles/bmw.mk b/mkfiles/bmw.mk index 621ff44..515bccd 100644 --- a/mkfiles/bmw.mk +++ b/mkfiles/bmw.mk @@ -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 diff --git a/mkfiles/bmw_c.mk b/mkfiles/bmw_c.mk index 839859b..5f3be57 100644 --- a/mkfiles/bmw_c.mk +++ b/mkfiles/bmw_c.mk @@ -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 diff --git a/mkfiles/bmw_tiny.mk b/mkfiles/bmw_tiny.mk index 358771a..224f9eb 100644 --- a/mkfiles/bmw_tiny.mk +++ b/mkfiles/bmw_tiny.mk @@ -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 diff --git a/mkfiles/bmw_tiny_sep.mk b/mkfiles/bmw_tiny_sep.mk index 5d67b0f..f4dd75d 100644 --- a/mkfiles/bmw_tiny_sep.mk +++ b/mkfiles/bmw_tiny_sep.mk @@ -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 diff --git a/mkfiles/camellia.mk b/mkfiles/camellia.mk index 3dc953d..35c39aa 100644 --- a/mkfiles/camellia.mk +++ b/mkfiles/camellia.mk @@ -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" diff --git a/mkfiles/camellia_c.mk b/mkfiles/camellia_c.mk index 5195cb8..2c82fe2 100644 --- a/mkfiles/camellia_c.mk +++ b/mkfiles/camellia_c.mk @@ -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" diff --git a/mkfiles/cast5.mk b/mkfiles/cast5.mk index 1ee7a56..60a4069 100644 --- a/mkfiles/cast5.mk +++ b/mkfiles/cast5.mk @@ -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" diff --git a/mkfiles/cast6.mk b/mkfiles/cast6.mk index e262c1d..b792a51 100644 --- a/mkfiles/cast6.mk +++ b/mkfiles/cast6.mk @@ -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 diff --git a/mkfiles/cscipher_small_c.mk b/mkfiles/cscipher_small_c.mk index d2d1fcf..b2e25d7 100644 --- a/mkfiles/cscipher_small_c.mk +++ b/mkfiles/cscipher_small_c.mk @@ -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 diff --git a/mkfiles/cscipher_tiny.mk b/mkfiles/cscipher_tiny.mk index eecaf9a..54520a4 100644 --- a/mkfiles/cscipher_tiny.mk +++ b/mkfiles/cscipher_tiny.mk @@ -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 diff --git a/mkfiles/cscipher_tiny_c.mk b/mkfiles/cscipher_tiny_c.mk index 67d88d6..5965bad 100644 --- a/mkfiles/cscipher_tiny_c.mk +++ b/mkfiles/cscipher_tiny_c.mk @@ -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 diff --git a/mkfiles/cubehash_c.mk b/mkfiles/cubehash_c.mk index a4059b0..becd8e4 100644 --- a/mkfiles/cubehash_c.mk +++ b/mkfiles/cubehash_c.mk @@ -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 diff --git a/mkfiles/des.mk b/mkfiles/des.mk index 09edad8..7269c64 100644 --- a/mkfiles/des.mk +++ b/mkfiles/des.mk @@ -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" diff --git a/mkfiles/dsa.mk b/mkfiles/dsa.mk index e456510..65470c2 100644 --- a/mkfiles/dsa.mk +++ b/mkfiles/dsa.mk @@ -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 diff --git a/mkfiles/echo_c.mk b/mkfiles/echo_c.mk index b551030..5706579 100644 --- a/mkfiles/echo_c.mk +++ b/mkfiles/echo_c.mk @@ -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 diff --git a/mkfiles/entropium.mk b/mkfiles/entropium.mk index 6af24f6..a75413f 100644 --- a/mkfiles/entropium.mk +++ b/mkfiles/entropium.mk @@ -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" diff --git a/mkfiles/grain.mk b/mkfiles/grain.mk index 22ff619..14f0969 100644 --- a/mkfiles/grain.mk +++ b/mkfiles/grain.mk @@ -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 diff --git a/mkfiles/groestl_c.mk b/mkfiles/groestl_c.mk index 85e8dc5..625cd89 100644 --- a/mkfiles/groestl_c.mk +++ b/mkfiles/groestl_c.mk @@ -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 diff --git a/mkfiles/hmac-md5.mk b/mkfiles/hmac-md5.mk index 87718dd..94ab015 100644 --- a/mkfiles/hmac-md5.mk +++ b/mkfiles/hmac-md5.mk @@ -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" diff --git a/mkfiles/hmac-sha1.mk b/mkfiles/hmac-sha1.mk index f482a2c..f6f0a60 100644 --- a/mkfiles/hmac-sha1.mk +++ b/mkfiles/hmac-sha1.mk @@ -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" diff --git a/mkfiles/hmac-sha256.mk b/mkfiles/hmac-sha256.mk index 661c406..5f4ce95 100644 --- a/mkfiles/hmac-sha256.mk +++ b/mkfiles/hmac-sha256.mk @@ -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" diff --git a/mkfiles/jh_simple_small_c.mk b/mkfiles/jh_simple_small_c.mk index 51d0c74..53d0f44 100644 --- a/mkfiles/jh_simple_small_c.mk +++ b/mkfiles/jh_simple_small_c.mk @@ -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 diff --git a/mkfiles/jh_simple_speed_c.mk b/mkfiles/jh_simple_speed_c.mk index 8dcd96f..0a17588 100644 --- a/mkfiles/jh_simple_speed_c.mk +++ b/mkfiles/jh_simple_speed_c.mk @@ -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 diff --git a/mkfiles/keccak_c.mk b/mkfiles/keccak_c.mk index f97c293..5e610ff 100644 --- a/mkfiles/keccak_c.mk +++ b/mkfiles/keccak_c.mk @@ -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 diff --git a/mkfiles/khazad_small_c.mk b/mkfiles/khazad_small_c.mk index ee67939..739ddd8 100644 --- a/mkfiles/khazad_small_c.mk +++ b/mkfiles/khazad_small_c.mk @@ -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 diff --git a/mkfiles/md5.mk b/mkfiles/md5.mk index 56c29aa..f775dfc 100644 --- a/mkfiles/md5.mk +++ b/mkfiles/md5.mk @@ -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" diff --git a/mkfiles/md5_c.mk b/mkfiles/md5_c.mk index 60087ca..da9d39c 100644 --- a/mkfiles/md5_c.mk +++ b/mkfiles/md5_c.mk @@ -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" diff --git a/mkfiles/mickey128.mk b/mkfiles/mickey128.mk index 49a709c..c1f33c5 100644 --- a/mkfiles/mickey128.mk +++ b/mkfiles/mickey128.mk @@ -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 diff --git a/mkfiles/mqq160-sign.mk b/mkfiles/mqq160-sign.mk index 7970f11..bd88bc3 100644 --- a/mkfiles/mqq160-sign.mk +++ b/mkfiles/mqq160-sign.mk @@ -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 diff --git a/mkfiles/mqq160-sign_c.mk b/mkfiles/mqq160-sign_c.mk index e187589..0e506f3 100644 --- a/mkfiles/mqq160-sign_c.mk +++ b/mkfiles/mqq160-sign_c.mk @@ -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 diff --git a/mkfiles/mugi.mk b/mkfiles/mugi.mk index 22f84d1..29237a5 100644 --- a/mkfiles/mugi.mk +++ b/mkfiles/mugi.mk @@ -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" diff --git a/mkfiles/noekeon.mk b/mkfiles/noekeon.mk index 36e376c..08d11ed 100644 --- a/mkfiles/noekeon.mk +++ b/mkfiles/noekeon.mk @@ -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 diff --git a/mkfiles/noekeon_c.mk b/mkfiles/noekeon_c.mk index c88853d..4ccca39 100644 --- a/mkfiles/noekeon_c.mk +++ b/mkfiles/noekeon_c.mk @@ -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 diff --git a/mkfiles/omac_noekeon.mk b/mkfiles/omac_noekeon.mk index 5365b91..980dbf7 100644 --- a/mkfiles/omac_noekeon.mk +++ b/mkfiles/omac_noekeon.mk @@ -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 diff --git a/mkfiles/omac_noekeon_c.mk b/mkfiles/omac_noekeon_c.mk index d1960cf..8a432db 100644 --- a/mkfiles/omac_noekeon_c.mk +++ b/mkfiles/omac_noekeon_c.mk @@ -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 diff --git a/mkfiles/present.mk b/mkfiles/present.mk index 7c62345..d7ee96e 100644 --- a/mkfiles/present.mk +++ b/mkfiles/present.mk @@ -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" diff --git a/mkfiles/rabbit_c.mk b/mkfiles/rabbit_c.mk index a43b0f4..3af4590 100644 --- a/mkfiles/rabbit_c.mk +++ b/mkfiles/rabbit_c.mk @@ -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 diff --git a/mkfiles/rabbit_estream_c.mk b/mkfiles/rabbit_estream_c.mk index 5070e41..7f33241 100644 --- a/mkfiles/rabbit_estream_c.mk +++ b/mkfiles/rabbit_estream_c.mk @@ -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 diff --git a/mkfiles/rc5.mk b/mkfiles/rc5.mk index 0e986ef..57d664c 100644 --- a/mkfiles/rc5.mk +++ b/mkfiles/rc5.mk @@ -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 diff --git a/mkfiles/rc6.mk b/mkfiles/rc6.mk index df56ef0..3d53c37 100644 --- a/mkfiles/rc6.mk +++ b/mkfiles/rc6.mk @@ -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 diff --git a/mkfiles/rsa.mk b/mkfiles/rsa.mk index 2bfc57b..af44ae5 100644 --- a/mkfiles/rsa.mk +++ b/mkfiles/rsa.mk @@ -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 diff --git a/mkfiles/salsa20_c.mk b/mkfiles/salsa20_c.mk index 32b4fac..d271aa8 100644 --- a/mkfiles/salsa20_c.mk +++ b/mkfiles/salsa20_c.mk @@ -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" diff --git a/mkfiles/seed.mk b/mkfiles/seed.mk index f3c3034..62767b2 100644 --- a/mkfiles/seed.mk +++ b/mkfiles/seed.mk @@ -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" diff --git a/mkfiles/seed_C.mk b/mkfiles/seed_C.mk index c83900a..ed929bf 100644 --- a/mkfiles/seed_C.mk +++ b/mkfiles/seed_C.mk @@ -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" diff --git a/mkfiles/serpent-bitslice.mk b/mkfiles/serpent-bitslice.mk index d49cdb6..56f2eeb 100644 --- a/mkfiles/serpent-bitslice.mk +++ b/mkfiles/serpent-bitslice.mk @@ -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" diff --git a/mkfiles/serpent_asm_bitslice.mk b/mkfiles/serpent_asm_bitslice.mk index b4ffa80..e1cba8d 100644 --- a/mkfiles/serpent_asm_bitslice.mk +++ b/mkfiles/serpent_asm_bitslice.mk @@ -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" diff --git a/mkfiles/serpent_asm_fast.mk b/mkfiles/serpent_asm_fast.mk index 5c4b984..e90af97 100644 --- a/mkfiles/serpent_asm_fast.mk +++ b/mkfiles/serpent_asm_fast.mk @@ -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" diff --git a/mkfiles/serpent_asm_small.mk b/mkfiles/serpent_asm_small.mk index e29c4c9..aee6a72 100644 --- a/mkfiles/serpent_asm_small.mk +++ b/mkfiles/serpent_asm_small.mk @@ -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" diff --git a/mkfiles/serpent_c.mk b/mkfiles/serpent_c.mk index 378ecca..9f6e39f 100644 --- a/mkfiles/serpent_c.mk +++ b/mkfiles/serpent_c.mk @@ -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" diff --git a/mkfiles/sha1.mk b/mkfiles/sha1.mk index 5dda518..0d8e4a6 100644 --- a/mkfiles/sha1.mk +++ b/mkfiles/sha1.mk @@ -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" diff --git a/mkfiles/sha1_c.mk b/mkfiles/sha1_c.mk index 8caf85f..a8537ea 100644 --- a/mkfiles/sha1_c.mk +++ b/mkfiles/sha1_c.mk @@ -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" diff --git a/mkfiles/sha256.mk b/mkfiles/sha256.mk index 5076174..b97e9dd 100644 --- a/mkfiles/sha256.mk +++ b/mkfiles/sha256.mk @@ -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" diff --git a/mkfiles/sha256_c.mk b/mkfiles/sha256_c.mk index fdb92a3..59b6665 100644 --- a/mkfiles/sha256_c.mk +++ b/mkfiles/sha256_c.mk @@ -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" diff --git a/mkfiles/shabal.mk b/mkfiles/shabal.mk index ea0f7dc..35fbdd5 100644 --- a/mkfiles/shabal.mk +++ b/mkfiles/shabal.mk @@ -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 diff --git a/mkfiles/shabal_c.mk b/mkfiles/shabal_c.mk index 6b0ff0a..a9a5f9b 100644 --- a/mkfiles/shabal_c.mk +++ b/mkfiles/shabal_c.mk @@ -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 diff --git a/mkfiles/shabea.mk b/mkfiles/shabea.mk index 0b50d44..ae35a04 100644 --- a/mkfiles/shabea.mk +++ b/mkfiles/shabea.mk @@ -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" diff --git a/mkfiles/shacal1enc.mk b/mkfiles/shacal1enc.mk index 8f968c9..5d33b20 100644 --- a/mkfiles/shacal1enc.mk +++ b/mkfiles/shacal1enc.mk @@ -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" diff --git a/mkfiles/shacal2enc.mk b/mkfiles/shacal2enc.mk index bbcedd1..8d400fa 100644 --- a/mkfiles/shacal2enc.mk +++ b/mkfiles/shacal2enc.mk @@ -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" diff --git a/mkfiles/skein.mk b/mkfiles/skein.mk index a481bd0..ba5b911 100644 --- a/mkfiles/skein.mk +++ b/mkfiles/skein.mk @@ -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 diff --git a/mkfiles/skein_c.mk b/mkfiles/skein_c.mk index 4dc892f..289ebe2 100644 --- a/mkfiles/skein_c.mk +++ b/mkfiles/skein_c.mk @@ -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 diff --git a/mkfiles/skipjack.mk b/mkfiles/skipjack.mk index 9be9aba..354302b 100644 --- a/mkfiles/skipjack.mk +++ b/mkfiles/skipjack.mk @@ -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 index 0000000..d9123ff --- /dev/null +++ b/mkfiles/skipjack_nessie.mk @@ -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" + diff --git a/mkfiles/tdes.mk b/mkfiles/tdes.mk index 54fc5af..abb9953 100644 --- a/mkfiles/tdes.mk +++ b/mkfiles/tdes.mk @@ -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" diff --git a/mkfiles/threefish.mk b/mkfiles/threefish.mk index 9364b6d..c522e0d 100644 --- a/mkfiles/threefish.mk +++ b/mkfiles/threefish.mk @@ -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 diff --git a/mkfiles/threefish_C.mk b/mkfiles/threefish_C.mk index 97145e5..ba5edac 100644 --- a/mkfiles/threefish_C.mk +++ b/mkfiles/threefish_C.mk @@ -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 diff --git a/mkfiles/threefish_small.mk b/mkfiles/threefish_small.mk index c8b32b2..46a6377 100644 --- a/mkfiles/threefish_small.mk +++ b/mkfiles/threefish_small.mk @@ -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 diff --git a/mkfiles/trivium.mk b/mkfiles/trivium.mk index e6ac353..ca9297d 100644 --- a/mkfiles/trivium.mk +++ b/mkfiles/trivium.mk @@ -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 diff --git a/mkfiles/twister.mk b/mkfiles/twister.mk index ad1acd9..4742e8c 100644 --- a/mkfiles/twister.mk +++ b/mkfiles/twister.mk @@ -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" diff --git a/mkfiles/twister_c.mk b/mkfiles/twister_c.mk index b9aa097..e700b57 100644 --- a/mkfiles/twister_c.mk +++ b/mkfiles/twister_c.mk @@ -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" diff --git a/mkfiles/ubi.mk b/mkfiles/ubi.mk index d427d89..dd68d2e 100644 --- a/mkfiles/ubi.mk +++ b/mkfiles/ubi.mk @@ -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 diff --git a/mkfiles/ubi_c.mk b/mkfiles/ubi_c.mk index 85c5c7d..ae88431 100644 --- a/mkfiles/ubi_c.mk +++ b/mkfiles/ubi_c.mk @@ -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 diff --git a/mkfiles/whirlpool_0_fast_c.mk b/mkfiles/whirlpool_0_fast_c.mk index 934ae4f..ff1c343 100644 --- a/mkfiles/whirlpool_0_fast_c.mk +++ b/mkfiles/whirlpool_0_fast_c.mk @@ -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 diff --git a/mkfiles/whirlpool_fast_c.mk b/mkfiles/whirlpool_fast_c.mk index 1cd7ee7..e4325c7 100644 --- a/mkfiles/whirlpool_fast_c.mk +++ b/mkfiles/whirlpool_fast_c.mk @@ -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 diff --git a/mkfiles/whirlpool_small_c.mk b/mkfiles/whirlpool_small_c.mk index 8b3a5ba..f9d3557 100644 --- a/mkfiles/whirlpool_small_c.mk +++ b/mkfiles/whirlpool_small_c.mk @@ -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 diff --git a/mkfiles/whirlpool_t_fast_c.mk b/mkfiles/whirlpool_t_fast_c.mk index c45391b..cec14c4 100644 --- a/mkfiles/whirlpool_t_fast_c.mk +++ b/mkfiles/whirlpool_t_fast_c.mk @@ -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 diff --git a/mkfiles/whirlpool_t_small_c.mk b/mkfiles/whirlpool_t_small_c.mk index 665ff90..3717b1b 100644 --- a/mkfiles/whirlpool_t_small_c.mk +++ b/mkfiles/whirlpool_t_small_c.mk @@ -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 diff --git a/mkfiles/xtea.mk b/mkfiles/xtea.mk index ae244c3..b0b6bbb 100644 --- a/mkfiles/xtea.mk +++ b/mkfiles/xtea.mk @@ -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" diff --git a/mkfiles/xtea_c.mk b/mkfiles/xtea_c.mk index 3a3a27d..12f6223 100644 --- a/mkfiles/xtea_c.mk +++ b/mkfiles/xtea_c.mk @@ -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 index 0000000..5a4f6e3 --- /dev/null +++ b/mkfiles/xtea_new.mk @@ -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" + diff --git a/mqq-sign/mqq160-sign.c b/mqq-sign/mqq160-sign.c index 2843f7b..99c4db8 100644 --- a/mqq-sign/mqq160-sign.c +++ b/mqq-sign/mqq160-sign.c @@ -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){ diff --git a/mqq-sign/mqq160-sign.h b/mqq-sign/mqq160-sign.h index bf6c5f7..6a1d43b 100644 --- a/mqq-sign/mqq160-sign.h +++ b/mqq-sign/mqq160-sign.h @@ -21,11 +21,11 @@ #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); diff --git a/mqq-sign/mqq160-sign_P.c b/mqq-sign/mqq160-sign_P.c index 67f3722..90f11d2 100644 --- a/mqq-sign/mqq160-sign_P.c +++ b/mqq-sign/mqq160-sign_P.c @@ -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){ diff --git a/mqq-sign/mqq160-sign_testkey.c b/mqq-sign/mqq160-sign_testkey.c index 8fef41a..f7fc011 100644 --- a/mqq-sign/mqq160-sign_testkey.c +++ b/mqq-sign/mqq160-sign_testkey.c @@ -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; diff --git a/mqq-sign/mqq160-sign_testkey.h b/mqq-sign/mqq160-sign_testkey.h index cd601d9..e10e5b5 100644 --- a/mqq-sign/mqq160-sign_testkey.h +++ b/mqq-sign/mqq160-sign_testkey.h @@ -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); diff --git a/mugi/mugi.c b/mugi/mugi.c index 0be9f9a..c90b1a1 100644 --- a/mugi/mugi.c +++ b/mugi/mugi.c @@ -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 diff --git a/noekeon/noekeon.c b/noekeon/noekeon.c index f48d1e6..8c4d6be 100644 --- a/noekeon/noekeon.c +++ b/noekeon/noekeon.c @@ -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 diff --git a/present/present.c b/present/present.c index 03792c5..376c3e3 100644 --- a/present/present.c +++ b/present/present.c @@ -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); } } diff --git a/rabbit/rabbit_c.c b/rabbit/rabbit_c.c index c5f8a43..9b234d4 100644 --- a/rabbit/rabbit_c.c +++ b/rabbit/rabbit_c.c @@ -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; diff --git a/rsa/rsa_key_blob.c b/rsa/rsa_key_blob.c index dfe51b2..4cb341f 100644 --- a/rsa/rsa_key_blob.c +++ b/rsa/rsa_key_blob.c @@ -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, diff --git a/salsa20/salsa20.c b/salsa20/salsa20.c index ca529a7..4e994db 100644 --- a/salsa20/salsa20.c +++ b/salsa20/salsa20.c @@ -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); diff --git a/scal/scal-basic.c b/scal/scal-basic.c index 441a88c..4e750d3 100644 --- a/scal/scal-basic.c +++ b/scal/scal-basic.c @@ -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); diff --git a/seed/seed_sbox.h b/seed/seed_sbox.h index 9937913..033a863 100644 --- a/seed/seed_sbox.h +++ b/seed/seed_sbox.h @@ -32,94 +32,11 @@ #include #include -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_*/ diff --git a/serpent/serpent-sboxes_c.c b/serpent/serpent-sboxes_c.c index 3a59969..bdbe175 100644 --- a/serpent/serpent-sboxes_c.c +++ b/serpent/serpent-sboxes_c.c @@ -28,7 +28,7 @@ #include #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, diff --git a/shabal/shabal192.c b/shabal/shabal192.c index 5540dc8..73a9b40 100644 --- a/shabal/shabal192.c +++ b/shabal/shabal192.c @@ -30,7 +30,7 @@ #include #include -uint32_t shabal192_iv[] PROGMEM = { +const uint32_t shabal192_iv[] PROGMEM = { /* A */ 0xFD749ED4, 0xB798E530, 0x33904B6F, 0x46BDA85E, 0x076934B4, 0x454B4058, 0x77F74527, 0xFB4CF465, diff --git a/shabal/shabal224.c b/shabal/shabal224.c index db01d3c..cba9840 100644 --- a/shabal/shabal224.c +++ b/shabal/shabal224.c @@ -30,7 +30,7 @@ #include #include -uint32_t shabal224_iv[] PROGMEM = { +const uint32_t shabal224_iv[] PROGMEM = { /* A */ 0xA5201467, 0xA9B8D94A, 0xD4CED997, 0x68379D7B, 0xA7FC73BA, 0xF1A2546B, 0x606782BF, 0xE0BCFD0F, diff --git a/shabal/shabal256.c b/shabal/shabal256.c index 6f5ca19..7d0ced6 100644 --- a/shabal/shabal256.c +++ b/shabal/shabal256.c @@ -30,7 +30,7 @@ #include #include -uint32_t shabal256_iv[] PROGMEM = { +const uint32_t shabal256_iv[] PROGMEM = { /* A */ 0x52F84552, 0xE54B7999, 0x2D8EE3EC, 0xB9645191, 0xE0078B86, 0xBB7C44C9, 0xD2B5C1CA, 0xB0D2EB8C, diff --git a/shabal/shabal384.c b/shabal/shabal384.c index 11ab06e..464ab97 100644 --- a/shabal/shabal384.c +++ b/shabal/shabal384.c @@ -30,7 +30,7 @@ #include #include -uint32_t shabal384_iv[] PROGMEM = { +const uint32_t shabal384_iv[] PROGMEM = { /* A */ 0xC8FCA331, 0xE55C504E, 0x003EBF26, 0xBB6B8D83, 0x7B0448C1, 0x41B82789, 0x0A7C9601, 0x8D659CFF, diff --git a/shabal/shabal512.c b/shabal/shabal512.c index caad571..2b94b4e 100644 --- a/shabal/shabal512.c +++ b/shabal/shabal512.c @@ -30,7 +30,7 @@ #include #include -uint32_t shabal512_iv[] PROGMEM = { +const uint32_t shabal512_iv[] PROGMEM = { /* A */ 0x20728DFD, 0x46C0BD53, 0xE782B699, 0x55304632, 0x71B4EF90, 0x0EA9E82C, 0xDBB930F1, 0xFAD06B8B, diff --git a/skein/ubi.h b/skein/ubi.h index 1471881..3ad83cd 100644 --- a/skein/ubi.h +++ b/skein/ubi.h @@ -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 @@ -49,17 +49,32 @@ 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; diff --git a/skein/ubi1024.c b/skein/ubi1024.c index ae17cb3..dafffbb 100644 --- a/skein/ubi1024.c +++ b/skein/ubi1024.c @@ -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 @@ -31,19 +31,19 @@ #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) diff --git a/skein/ubi256.c b/skein/ubi256.c index 09eb1e9..8e60d34 100644 --- a/skein/ubi256.c +++ b/skein/ubi256.c @@ -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 @@ -31,19 +31,19 @@ #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){ diff --git a/skein/ubi512.c b/skein/ubi512.c index d6bab2d..526018f 100644 --- a/skein/ubi512.c +++ b/skein/ubi512.c @@ -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 @@ -31,19 +31,19 @@ #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) diff --git a/skipjack/skipjack.c b/skipjack/skipjack.c index 04eb437..07bc97b 100644 --- a/skipjack/skipjack.c +++ b/skipjack/skipjack.c @@ -30,9 +30,13 @@ #include #include -#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, diff --git a/test_src/cli-core.S b/test_src/cli-core.S index 69671f6..573997e 100644 --- a/test_src/cli-core.S +++ b/test_src/cli-core.S @@ -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 diff --git a/test_src/config.h b/test_src/config.h index 513729e..b0d669e 100644 --- a/test_src/config.h +++ b/test_src/config.h @@ -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 diff --git a/test_src/dump-decl.c b/test_src/dump-decl.c index 0053df8..984b8bd 100644 --- a/test_src/dump-decl.c +++ b/test_src/dump-decl.c @@ -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); diff --git a/test_src/main-a5_1-test.c b/test_src/main-a5_1-test.c index 6a0edc8..34e6739 100644 --- a/test_src/main-a5_1-test.c +++ b/test_src/main-a5_1-test.c @@ -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}, diff --git a/test_src/main-aes-test.c b/test_src/main-aes-test.c index 934d6df..e7b2071 100644 --- a/test_src/main-aes-test.c +++ b/test_src/main-aes-test.c @@ -51,9 +51,9 @@ #include #include -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 }, diff --git a/test_src/main-aes128-test.c b/test_src/main-aes128-test.c index 2c8e7f3..d90c8bd 100644 --- a/test_src/main-aes128-test.c +++ b/test_src/main-aes128-test.c @@ -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}, diff --git a/test_src/main-aes192-test.c b/test_src/main-aes192-test.c index 3d50e7d..0eca624 100644 --- a/test_src/main-aes192-test.c +++ b/test_src/main-aes192-test.c @@ -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}, diff --git a/test_src/main-aes256-test.c b/test_src/main-aes256-test.c index 6025893..a1a19dd 100644 --- a/test_src/main-aes256-test.c +++ b/test_src/main-aes256-test.c @@ -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}, diff --git a/test_src/main-arcfour-test.c b/test_src/main-arcfour-test.c index 760479b..9228188 100644 --- a/test_src/main-arcfour-test.c +++ b/test_src/main-arcfour-test.c @@ -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}, diff --git a/test_src/main-base64-test.c b/test_src/main-base64-test.c index caf60fa..6bcdde1 100644 --- a/test_src/main-base64-test.c +++ b/test_src/main-base64-test.c @@ -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}, diff --git a/test_src/main-bigint-test.c b/test_src/main-bigint-test.c index 787a7cb..8fef0fb 100644 --- a/test_src/main-bigint-test.c +++ b/test_src/main-bigint-test.c @@ -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 }, diff --git a/test_src/main-blake-test.c b/test_src/main-blake-test.c index ea7e7c8..b3ad270 100644 --- a/test_src/main-blake-test.c +++ b/test_src/main-blake-test.c @@ -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}, diff --git a/test_src/main-bmw-test.c b/test_src/main-bmw-test.c index 2da30a0..a78e1a5 100644 --- a/test_src/main-bmw-test.c +++ b/test_src/main-bmw-test.c @@ -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 }, diff --git a/test_src/main-camellia-test.c b/test_src/main-camellia-test.c index b3d901d..0790728 100644 --- a/test_src/main-camellia-test.c +++ b/test_src/main-camellia-test.c @@ -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}, diff --git a/test_src/main-cast5-test.c b/test_src/main-cast5-test.c index 26e8274..56580e2 100644 --- a/test_src/main-cast5-test.c +++ b/test_src/main-cast5-test.c @@ -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}, diff --git a/test_src/main-cast6-test.c b/test_src/main-cast6-test.c index 78d5b63..bcd9774 100644 --- a/test_src/main-cast6-test.c +++ b/test_src/main-cast6-test.c @@ -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}, diff --git a/test_src/main-cscipher-test.c b/test_src/main-cscipher-test.c index 4de929a..eb49a45 100644 --- a/test_src/main-cscipher-test.c +++ b/test_src/main-cscipher-test.c @@ -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}, diff --git a/test_src/main-cubehash-test.c b/test_src/main-cubehash-test.c index 2ae29e7..4d01c63 100644 --- a/test_src/main-cubehash-test.c +++ b/test_src/main-cubehash-test.c @@ -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 }, diff --git a/test_src/main-des-test.c b/test_src/main-des-test.c index 828593f..c1ef54f 100644 --- a/test_src/main-des-test.c +++ b/test_src/main-des-test.c @@ -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}, diff --git a/test_src/main-dsa-test.c b/test_src/main-dsa-test.c index acbffa9..89e177c 100644 --- a/test_src/main-dsa-test.c +++ b/test_src/main-dsa-test.c @@ -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 }, diff --git a/test_src/main-echo-test.c b/test_src/main-echo-test.c index b4d81a9..65b4613 100644 --- a/test_src/main-echo-test.c +++ b/test_src/main-echo-test.c @@ -39,10 +39,10 @@ #include #include -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 }, diff --git a/test_src/main-entropium-test.c b/test_src/main-entropium-test.c index 36a0987..92dc8ef 100644 --- a/test_src/main-entropium-test.c +++ b/test_src/main-entropium-test.c @@ -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}, diff --git a/test_src/main-grain-test.c b/test_src/main-grain-test.c index 08931fe..7963e34 100644 --- a/test_src/main-grain-test.c +++ b/test_src/main-grain-test.c @@ -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}, diff --git a/test_src/main-groestl-test.c b/test_src/main-groestl-test.c index 5b46497..b51b049 100644 --- a/test_src/main-groestl-test.c +++ b/test_src/main-groestl-test.c @@ -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}, diff --git a/test_src/main-hmac-md5-test.c b/test_src/main-hmac-md5-test.c index fcf6dce..dc49536 100644 --- a/test_src/main-hmac-md5-test.c +++ b/test_src/main-hmac-md5-test.c @@ -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}, diff --git a/test_src/main-hmac-sha1-test.c b/test_src/main-hmac-sha1-test.c index 538d36a..02b1e6d 100644 --- a/test_src/main-hmac-sha1-test.c +++ b/test_src/main-hmac-sha1-test.c @@ -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}, */ diff --git a/test_src/main-hmac-sha256-test.c b/test_src/main-hmac-sha256-test.c index b6ca3fa..6034ae2 100644 --- a/test_src/main-hmac-sha256-test.c +++ b/test_src/main-hmac-sha256-test.c @@ -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}, */ diff --git a/test_src/main-jh-test.c b/test_src/main-jh-test.c index c8fba92..725e5bb 100644 --- a/test_src/main-jh-test.c +++ b/test_src/main-jh-test.c @@ -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}, diff --git a/test_src/main-keccak-test.c b/test_src/main-keccak-test.c index c277ce5..07a27d6 100644 --- a/test_src/main-keccak-test.c +++ b/test_src/main-keccak-test.c @@ -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 }, diff --git a/test_src/main-khazad-test.c b/test_src/main-khazad-test.c index a6a49ab..b5449fe 100644 --- a/test_src/main-khazad-test.c +++ b/test_src/main-khazad-test.c @@ -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}, diff --git a/test_src/main-md5-test.c b/test_src/main-md5-test.c index 08c03cd..47730cd 100644 --- a/test_src/main-md5-test.c +++ b/test_src/main-md5-test.c @@ -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}, diff --git a/test_src/main-mickey128-test.c b/test_src/main-mickey128-test.c index 9b62953..0923e65 100644 --- a/test_src/main-mickey128-test.c +++ b/test_src/main-mickey128-test.c @@ -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}, diff --git a/test_src/main-mqq160-sign-test.c b/test_src/main-mqq160-sign-test.c index a5d3f1c..36776b0 100644 --- a/test_src/main-mqq160-sign-test.c +++ b/test_src/main-mqq160-sign-test.c @@ -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 }, diff --git a/test_src/main-mugi-test.c b/test_src/main-mugi-test.c index 7dd5691..e868907 100644 --- a/test_src/main-mugi-test.c +++ b/test_src/main-mugi-test.c @@ -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}, diff --git a/test_src/main-noekeon-test.c b/test_src/main-noekeon-test.c index f33f5c1..0f7c6b7 100644 --- a/test_src/main-noekeon-test.c +++ b/test_src/main-noekeon-test.c @@ -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}, diff --git a/test_src/main-omac-noekeon-test.c b/test_src/main-omac-noekeon-test.c index 117a2e1..a5a0e79 100644 --- a/test_src/main-omac-noekeon-test.c +++ b/test_src/main-omac-noekeon-test.c @@ -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}, diff --git a/test_src/main-present-test.c b/test_src/main-present-test.c index b4e5b49..1b981fa 100644 --- a/test_src/main-present-test.c +++ b/test_src/main-present-test.c @@ -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}, diff --git a/test_src/main-rabbit-test.c b/test_src/main-rabbit-test.c index b60de60..0253831 100644 --- a/test_src/main-rabbit-test.c +++ b/test_src/main-rabbit-test.c @@ -35,7 +35,9 @@ #include #include -char* algo_name = "Rabbit"; +#include + +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}, diff --git a/test_src/main-rc5-test.c b/test_src/main-rc5-test.c index 2b21e16..6457744 100644 --- a/test_src/main-rc5-test.c +++ b/test_src/main-rc5-test.c @@ -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}, diff --git a/test_src/main-rc6-test.c b/test_src/main-rc6-test.c index e264d79..2c77bea 100644 --- a/test_src/main-rc6-test.c +++ b/test_src/main-rc6-test.c @@ -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}, diff --git a/test_src/main-rsa-test.c b/test_src/main-rsa-test.c index 86fb62c..3e0bba2 100644 --- a/test_src/main-rsa-test.c +++ b/test_src/main-rsa-test.c @@ -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 }, diff --git a/test_src/main-salsa20-test.c b/test_src/main-salsa20-test.c index 3f3560c..0332457 100644 --- a/test_src/main-salsa20-test.c +++ b/test_src/main-salsa20-test.c @@ -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}, diff --git a/test_src/main-seed-test.c b/test_src/main-seed-test.c index 39fe0a0..b4c957c 100644 --- a/test_src/main-seed-test.c +++ b/test_src/main-seed-test.c @@ -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}, diff --git a/test_src/main-serpent-test.c b/test_src/main-serpent-test.c index 85610f9..ec456d6 100644 --- a/test_src/main-serpent-test.c +++ b/test_src/main-serpent-test.c @@ -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}, diff --git a/test_src/main-sha1-test.c b/test_src/main-sha1-test.c index 1b19d0a..48d2634 100644 --- a/test_src/main-sha1-test.c +++ b/test_src/main-sha1-test.c @@ -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}, diff --git a/test_src/main-sha256-test.c b/test_src/main-sha256-test.c index 1907390..7786759 100644 --- a/test_src/main-sha256-test.c +++ b/test_src/main-sha256-test.c @@ -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 }, diff --git a/test_src/main-shabal-test.c b/test_src/main-shabal-test.c index bcdc57a..cfbd6fe 100644 --- a/test_src/main-shabal-test.c +++ b/test_src/main-shabal-test.c @@ -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 }, diff --git a/test_src/main-shabea-test.c b/test_src/main-shabea-test.c index 8605640..5748b94 100644 --- a/test_src/main-shabea-test.c +++ b/test_src/main-shabea-test.c @@ -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}, diff --git a/test_src/main-shacal1_enc-test.c b/test_src/main-shacal1_enc-test.c index 137a35f..48b5051 100644 --- a/test_src/main-shacal1_enc-test.c +++ b/test_src/main-shacal1_enc-test.c @@ -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}, diff --git a/test_src/main-shacal2_enc-test.c b/test_src/main-shacal2_enc-test.c index c3e39c3..0d6110b 100644 --- a/test_src/main-shacal2_enc-test.c +++ b/test_src/main-shacal2_enc-test.c @@ -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}, diff --git a/test_src/main-skein-test.c b/test_src/main-skein-test.c index 2f0b04e..e93f9d1 100644 --- a/test_src/main-skein-test.c +++ b/test_src/main-skein-test.c @@ -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 }, diff --git a/test_src/main-skipjack-test.c b/test_src/main-skipjack-test.c index 7c3dd9d..e3f68f5 100644 --- a/test_src/main-skipjack-test.c +++ b/test_src/main-skipjack-test.c @@ -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}, diff --git a/test_src/main-tdes-test.c b/test_src/main-tdes-test.c index 7cad365..7490329 100644 --- a/test_src/main-tdes-test.c +++ b/test_src/main-tdes-test.c @@ -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}, diff --git a/test_src/main-threefish-test.c b/test_src/main-threefish-test.c index 799d40f..45ecd00 100644 --- a/test_src/main-threefish-test.c +++ b/test_src/main-threefish-test.c @@ -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}, diff --git a/test_src/main-trivium-test.c b/test_src/main-trivium-test.c index 9961222..bf05a81 100644 --- a/test_src/main-trivium-test.c +++ b/test_src/main-trivium-test.c @@ -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}, diff --git a/test_src/main-twister-test.c b/test_src/main-twister-test.c index b4efd94..2ac3180 100644 --- a/test_src/main-twister-test.c +++ b/test_src/main-twister-test.c @@ -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}, diff --git a/test_src/main-ubi-test.c b/test_src/main-ubi-test.c index c7a0508..5a839c4 100644 --- a/test_src/main-ubi-test.c +++ b/test_src/main-ubi-test.c @@ -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}, diff --git a/test_src/main-whirlpool-0-test.c b/test_src/main-whirlpool-0-test.c index 3b973cb..c066188 100644 --- a/test_src/main-whirlpool-0-test.c +++ b/test_src/main-whirlpool-0-test.c @@ -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 }, diff --git a/test_src/main-whirlpool-t-test.c b/test_src/main-whirlpool-t-test.c index c5475fa..1b44680 100644 --- a/test_src/main-whirlpool-t-test.c +++ b/test_src/main-whirlpool-t-test.c @@ -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 }, diff --git a/test_src/main-whirlpool-test.c b/test_src/main-whirlpool-test.c index 4d0cfe4..c2cc71b 100644 --- a/test_src/main-whirlpool-test.c +++ b/test_src/main-whirlpool-test.c @@ -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 }, diff --git a/test_src/main-xtea-test.c b/test_src/main-xtea-test.c index 778d9cd..42b5ee5 100644 --- a/test_src/main-xtea-test.c +++ b/test_src/main-xtea-test.c @@ -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}, diff --git a/test_src/nessie_hash_test.c b/test_src/nessie_hash_test.c index 04895b0..5dc117e 100644 --- a/test_src/nessie_hash_test.c +++ b/test_src/nessie_hash_test.c @@ -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" diff --git a/test_src/nessie_mac_test.c b/test_src/nessie_mac_test.c index 80093a0..2813a51 100644 --- a/test_src/nessie_mac_test.c +++ b/test_src/nessie_mac_test.c @@ -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" diff --git a/test_src/shavs.c b/test_src/shavs.c index 39b862b..1dfc56d 100644 --- a/test_src/shavs.c +++ b/test_src/shavs.c @@ -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")); diff --git a/testconf/Groestl.conf b/testconf/Groestl.conf index 744d00c..0bb3ed0 100644 --- a/testconf/Groestl.conf +++ b/testconf/Groestl.conf @@ -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 diff --git a/testconf/Skein.conf b/testconf/Skein.conf index c451f8f..d6d7d01 100644 --- a/testconf/Skein.conf +++ b/testconf/Skein.conf @@ -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 diff --git a/testport.conf b/testport.conf index e10ae61..04ddccc 100644 --- a/testport.conf +++ b/testport.conf @@ -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 index 0000000..2b8383d --- /dev/null +++ b/testvectors/CAST-256.rfc2612.testvectors.txt @@ -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 index 0000000..f16cc07 --- /dev/null +++ b/testvectors/Mickey-v2-128-unverified.test-vectors @@ -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 index 0000000..32e81f2 --- /dev/null +++ b/testvectors/grain-v1-verified.test-vectors @@ -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 index 0000000..7d3c02e --- /dev/null +++ b/testvectors/salsa20-full-128-verified.test-vectors @@ -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 index 0000000..5b6c031 --- /dev/null +++ b/testvectors/salsa20-full-256-verified.test-vectors @@ -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 diff --git a/twister/twister.c b/twister/twister.c index 0135811..b19c0d0 100644 --- a/twister/twister.c +++ b/twister/twister.c @@ -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 index 0000000..9119623 --- /dev/null +++ b/twister/twister_tables.c @@ -0,0 +1,232 @@ +/****************************************************************** + * S-BOX for Twister + * + * + *******************************************************************/ + +#include "config.h" +#include +#include + + 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 + + diff --git a/twister/twister_tables.h b/twister/twister_tables.h index b0f145c..e11a7e6 100644 --- a/twister/twister_tables.h +++ b/twister/twister_tables.h @@ -6,227 +6,22 @@ #include "config.h" #include -#include -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 diff --git a/whirlpool/whirlpool.c b/whirlpool/whirlpool.c index cd41cce..e975b28 100644 --- a/whirlpool/whirlpool.c +++ b/whirlpool/whirlpool.c @@ -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