From b11f6230a459d2117f6740a6575fdf31a684d56b Mon Sep 17 00:00:00 2001 From: bg Date: Tue, 19 Jul 2011 22:09:37 +0200 Subject: [PATCH] adding rabbit --- mkfiles/001_cli_std.mk | 4 +- mkfiles/rabbit_c.mk | 13 + mkfiles/rabbit_estream_c.mk | 14 + rabbit/rabbit.h | 41 + rabbit/rabbit_c.c | 237 +++ scal/scal_rabbit.c | 55 + scal/scal_rabbit.h | 27 + test_src/main-arcfour-test.c | 37 +- test_src/main-rabbit-test.c | 222 +++ test_src/main-test-common.c | 50 + test_src/main-test-common.h | 37 + testvectors/rabbit-verified.test-vectors | 2169 ++++++++++++++++++++++ 12 files changed, 2871 insertions(+), 35 deletions(-) create mode 100644 mkfiles/rabbit_c.mk create mode 100644 mkfiles/rabbit_estream_c.mk create mode 100644 rabbit/rabbit.h create mode 100644 rabbit/rabbit_c.c create mode 100644 scal/scal_rabbit.c create mode 100644 scal/scal_rabbit.h create mode 100644 test_src/main-rabbit-test.c create mode 100644 test_src/main-test-common.c create mode 100644 test_src/main-test-common.h create mode 100644 testvectors/rabbit-verified.test-vectors diff --git a/mkfiles/001_cli_std.mk b/mkfiles/001_cli_std.mk index 59a9e77..6da631a 100644 --- a/mkfiles/001_cli_std.mk +++ b/mkfiles/001_cli_std.mk @@ -1,2 +1,4 @@ CLI_STD = cli.o hexdigit_tab.o dbz_strings.o string-extras.o uart_i.o \ - sysclock.o hw_gptm.o dump.o startup.o circularbytebuffer.o + sysclock.o hw_gptm.o dump.o startup.o circularbytebuffer.o \ + main-test-common.o + diff --git a/mkfiles/rabbit_c.mk b/mkfiles/rabbit_c.mk new file mode 100644 index 0000000..a43b0f4 --- /dev/null +++ b/mkfiles/rabbit_c.mk @@ -0,0 +1,13 @@ +# Makefile for Rabbit +ALGO_NAME := RABBIT_C + +# comment out the following line for removement of Rabbit from the build process +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)_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 new file mode 100644 index 0000000..5070e41 --- /dev/null +++ b/mkfiles/rabbit_estream_c.mk @@ -0,0 +1,14 @@ +# Makefile for Rabbit +ALGO_NAME := RABBIT_ESTREAM_C + +# comment out the following line for removement of Rabbit from the build process +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)_NESSIE_TEST := "nessie" +$(ALGO_NAME)_PERFORMANCE_TEST := "performance" +$(ALGO_NAME)_DEF := ESTREAM=1 + diff --git a/rabbit/rabbit.h b/rabbit/rabbit.h new file mode 100644 index 0000000..b49b55a --- /dev/null +++ b/rabbit/rabbit.h @@ -0,0 +1,41 @@ +/* rabbit.h */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef RABBIT_H_ +#define RABBIT_H_ + +#include + +typedef struct { + uint32_t x[8]; + uint32_t c[8]; + uint8_t buffer[16]; + uint8_t carry; + uint8_t buffer_idx; +} rabbit_ctx_t; + +void dump_ctx(rabbit_ctx_t* ctx); + +uint8_t rabbit_gen(rabbit_ctx_t* ctx); +void rabbit_init(const void* key, uint16_t keysize_b, + const void* iv, + rabbit_ctx_t* ctx); + + +#endif /* RABBIT_H_ */ diff --git a/rabbit/rabbit_c.c b/rabbit/rabbit_c.c new file mode 100644 index 0000000..d719b0e --- /dev/null +++ b/rabbit/rabbit_c.c @@ -0,0 +1,237 @@ +/* rabbit_c.c */ +/* + This file is part of the ARM-Crypto-Lib. + Copyright (C) 2006-2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include +#include "rabbit.h" + +#ifndef ESTREAM +#define ESTREAM 0 +#endif + +/* +void dump_ctx(rabbit_ctx_t* ctx){ + uint8_t i=0; + cli_putstr_P(PSTR("\r\n --- ctx dump ---\r\n b = ")); + cli_hexdump_byte(ctx->carry); + do{ + if((i&3)==0){ + cli_putstr_P(PSTR("\r\n")); + } + cli_putstr_P(PSTR(" X")); + cli_hexdump_byte(i); + cli_putstr_P(PSTR(" = 0x")); + cli_hexdump_rev(&(ctx->x[i]), 4); + }while(++i<8); + i=0; + do{ + if((i&3)==0){ + cli_putstr_P(PSTR("\r\n")); + } + cli_putstr_P(PSTR(" C")); + cli_hexdump_byte(i); + cli_putstr_P(PSTR(" = 0x")); + cli_hexdump_rev(&(ctx->c[i]), 4); + }while(++i<8); +} +*/ + +static +const uint32_t c_const[8] = { + 0x4D34D34D, 0xD34D34D3, + 0x34D34D34, 0x4D34D34D, + 0xD34D34D3, 0x34D34D34, + 0x4D34D34D, 0xD34D34D3 +}; + +static +void gen_g(uint32_t* dest, rabbit_ctx_t* ctx){ + uint8_t i=0; + uint64_t a; + uint32_t t, *x, *c; + x = ctx->x; + c = ctx->c; + do{ + t = *x++ + *c++; + a = ((uint64_t)t)*((uint64_t)t); + dest[i] = (uint32_t)(a^(a>>32)); + }while(++i<8); +} + +static +void update_c(rabbit_ctx_t* ctx){ + uint8_t i=0; + uint64_t a; + uint32_t *c; + const uint32_t *con; + c = ctx->c; + con = c_const; + a = ctx->carry; + do{ + a += *c; + a += *con++; + *c++ = (uint32_t)a; + a >>= 32; + }while(++i<8); + ctx->carry = a?1:0; +} + +#define ROT16(a) (((a)<<16) | ((a)>>16)) +#define ROT8(a) (((a)<< 8) | ((a)>>24)) + +static +void step(rabbit_ctx_t* ctx){ + uint32_t g[8]; + uint8_t i=0; + update_c(ctx); + gen_g(g, ctx); + memcpy(ctx->x, g, 8*4); + do{ + ctx->x[i] += ROT16(g[(i+8-1)%8]) + ROT16(g[(i+8-2)%8]); + ++i; + ctx->x[i] += ROT8(g[(i+8-1)%8]) + g[(i+8-2)%8]; + }while(++i<8); +} + +static +void keysetup(rabbit_ctx_t* ctx, const void* key){ + uint16_t *x, *c; + uint8_t i=0; + x = (uint16_t*)(ctx->x); + c = (uint16_t*)(ctx->c); + ctx->carry = 0; + do{ + *x++ = ((uint16_t*)key)[i]; + *x++ = ((uint16_t*)key)[(i+1)%8]; + *c++ = ((uint16_t*)key)[(i+5)%8]; + *c++ = ((uint16_t*)key)[(i+4)%8]; + ++i; + *x++ = ((uint16_t*)key)[(i+4)%8]; + *x++ = ((uint16_t*)key)[(i+5)%8]; + *c++ = ((uint16_t*)key)[(i+1)%8]; + *c++ = ((uint16_t*)key)[i]; + }while(++i<8); + i=0; + do{ + step(ctx); + }while(++i<4); + i=0; + do{ + ctx->c[i] ^= ctx->x[(i+4)%8]; + }while(++i<8); +} + +static +void ivsetup(rabbit_ctx_t* ctx, const void* iv){ + uint8_t i; + uint32_t t; + uint8_t t_iv[8]; + i=0; +#if ESTREAM + memcpy(t_iv, iv, 8); +#else + do{ + t_iv[i] = ((uint8_t*)iv)[7-i]; + t_iv[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[1] ^= t; + ctx->c[5] ^= t; + t = (( (uint32_t)((uint16_t*)t_iv)[2])<<16) | (((uint16_t*)t_iv)[0]); + ctx->c[3] ^= t; + ctx->c[7] ^= t; + i=4; + do{ + step(ctx); + }while(--i); +} + +static +void extract(rabbit_ctx_t* ctx){ + int8_t i=0; + uint8_t *t; + uint16_t v; + t = ctx->buffer; + i=6; + do{ + v = ((uint16_t*)(ctx->x))[(2*(i+ 8)+1)%16] + ^ ((uint16_t*)(ctx->x))[(2*(i+11)+0)%16]; + *t++ = v>>8; + *t++ = (uint8_t)v; + v = ((uint16_t*)(ctx->x))[(2*(i+ 8)+0)%16] + ^ ((uint16_t*)(ctx->x))[(2*(i+13)+1)%16]; + *t++ = v>>8; + *t++ = (uint8_t)v; + + i-=2; + }while(i>=0); +#if ESTREAM + uint8_t x; + i=0; + do{ + x = ctx->buffer[i]; + ctx->buffer[i] = ctx->buffer[15-i]; + ctx->buffer[15-i] = x; + }while(++i<8); +#endif +} + +static const uint8_t key80_pad[] = { 0xDE, 0x05, 0x6E, 0xAC, 0x8A, 0x11 }; + +void rabbit_init(const void* key, uint16_t keysize_b, + const void* iv, + rabbit_ctx_t* ctx){ + uint8_t t_key[16]; + if(keysize_b==80){ + memcpy(t_key, key, 10); + memcpy(t_key+10, key80_pad, 6); + }else{ + memcpy(t_key, key, 16); + } +#if !ESTREAM + uint8_t i=0, t; + do{ + t = t_key[i]; + t_key[i] = t_key[15-i]; + t_key[15-i] = t; + }while(++i<8); +#endif + keysetup(ctx, t_key); + + + if(iv){ + ivsetup(ctx, iv); + } + extract(ctx); + ctx->buffer_idx = 16; +} + +uint8_t rabbit_gen(rabbit_ctx_t* ctx){ + if(ctx->buffer_idx==16){ + step(ctx); + extract(ctx); + ctx->buffer_idx = 0; + } + return ctx->buffer[ctx->buffer_idx++]; +} diff --git a/scal/scal_rabbit.c b/scal/scal_rabbit.c new file mode 100644 index 0000000..9f1be77 --- /dev/null +++ b/scal/scal_rabbit.c @@ -0,0 +1,55 @@ +/* scal_rabbit.c */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include +#include "streamcipher_descriptor.h" +#include "keysize_descriptor.h" + +#include "rabbit.h" + +const char rabbit_str[] = "Rabbit"; + +const uint8_t rabbit_keysize_desc[] = { + KS_TYPE_LIST, 2, KS_INT(128), KS_INT(80), + KS_TYPE_TERMINATOR }; + +const uint8_t rabbit_ivsize_desc[] = { + KS_TYPE_LIST, 1, KS_INT(64), + KS_TYPE_TERMINATOR }; + +const scdesc_t rabbit_desc = { + SCDESC_TYPE_STREAMCIPHER, /* abstraction layer type designator */ + SC_INIT_TYPE_4|SC_GEN_TYPE_1, /* flags*/ + rabbit_str, /* name string pointer */ + sizeof(rabbit_ctx_t), /* size of context */ + 8, /* blocksize */ + {(void_fpt)rabbit_init}, /* init function pointer */ + {(void_fpt)rabbit_gen}, /* key stream generator function pointer */ + {(void_fpt)NULL}, /* key stream generator for random access function pointer */ + (sc_free_fpt)NULL, /* free function pointer */ + rabbit_keysize_desc, /* key size descriptor pointer */ + rabbit_ivsize_desc /* iv size descriptor pointer */ +}; + + + + + + diff --git a/scal/scal_rabbit.h b/scal/scal_rabbit.h new file mode 100644 index 0000000..ee172c8 --- /dev/null +++ b/scal/scal_rabbit.h @@ -0,0 +1,27 @@ +/* scal_rabbit.h */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef SCAL_RABBIT_H_ +#define SCAL_RABBIT_H_ + +#include "streamcipher_descriptor.h" + +extern const scdesc_t rabbit_desc; + +#endif /* SCAL_RABBIT_H_ */ diff --git a/test_src/main-arcfour-test.c b/test_src/main-arcfour-test.c index 5a786e8..f53e832 100644 --- a/test_src/main-arcfour-test.c +++ b/test_src/main-arcfour-test.c @@ -20,16 +20,7 @@ * arcfour (RC4 compatible) test-suit * */ - -#include -#include -#include -#include "config.h" -#include "cli.h" -#include "dump.h" -#include "uart_lowlevel.h" -#include "sysclock.h" -#include "hw_gptm.h" +#include "main-test-common.h" #include "arcfour.h" #include "scal_arcfour.h" @@ -38,19 +29,9 @@ #include "nessie_stream_test.h" #include "performance_test.h" -#include -#include -#include const char* algo_name = "Arcfour"; -void uart0_putc(char byte){ - uart_putc(UART_0, byte); -} - -char uart0_getc(void){ - return uart_getc(UART_0); -} /***************************************************************************** * additional validation-functions * @@ -104,22 +85,10 @@ const cmdlist_entry_t cmdlist[] = { }; int main (void){ - sysclk_set_freq(SYS_FREQ); - sysclk_mosc_verify_enable(); - uart_init(UART_0, 115200, 8, UART_PARATY_NONE, UART_STOPBITS_ONE); - gptm_set_timer_32periodic(TIMER0); - - cli_rx = uart0_getc; - cli_tx = uart0_putc; + main_setup(); for(;;){ - cli_putstr("\r\n\r\nARM-Crypto-Lib VS ("); - cli_putstr(algo_name); - cli_putstr("; "); - cli_putstr(__DATE__); - cli_putc(' '); - cli_putstr(__TIME__); - cli_putstr(")\r\nloaded and running\r\n"); + welcome_msg(algo_name); cmd_interface(cmdlist); } } diff --git a/test_src/main-rabbit-test.c b/test_src/main-rabbit-test.c new file mode 100644 index 0000000..58cbebf --- /dev/null +++ b/test_src/main-rabbit-test.c @@ -0,0 +1,222 @@ +/* main-rabbit-test.c */ +/* + This file is part of the ARM-Crypto-Lib. + Copyright (C) 2006-2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "main-test-common.h" + +#include "rabbit.h" +#include "performance_test.h" +#include "scal_rabbit.h" +#include "scal-basic.h" +#include "scal-nessie.h" + +char* algo_name = "Rabbit"; + +/***************************************************************************** + * additional validation-functions * + *****************************************************************************/ + +void test_vector(void* key, void* iv, const void* ref){ + rabbit_ctx_t ctx; + uint8_t fail=0; + cli_putstr("\r\n testing with\r\n key: "); + cli_hexdump(key, 16); + cli_putstr("\r\n iv: "); + if(iv){ + cli_hexdump(iv, 8); + }else{ + cli_putstr("[no iv]"); + } + rabbit_init(key, 128, iv, &ctx); + rabbit_gen(&ctx); + if(!ref || (memcmp(ctx.buffer, ref, 16))!=0){ + fail = 1; + cli_putstr("\r\n S[0]: "); + cli_hexdump(ctx.buffer, 16); + } + ctx.buffer_idx=16; + if(!ref || (memcmp(ctx.buffer, ref, 16))!=0){ + fail = 1; + cli_putstr("\r\n S[0]: "); + cli_hexdump(ctx.buffer, 16); + } + ctx.buffer_idx=16; + if(!ref || (memcmp(ctx.buffer, ref, 16))!=0){ + fail = 1; + cli_putstr("\r\n S[0]: "); + cli_hexdump(ctx.buffer, 16); + } + if(ref){ + cli_putstr(fail?"\r\n [fail]":"\r\n [ok]"); + } + cli_putstr("\r\n"); +} + +void nessie_first(void){ + uint8_t key[16]; + uint8_t iv[8]; + + memset(iv, 0, 8); + memset(key, 0, 16); + key[0] = 0x80; + test_vector(key, iv, NULL); + key[0] = 0x00; + + key[15] = 0x80; + test_vector(key, iv, NULL); + +} + + +const uint8_t spec_key1[] = { + 0x91, 0x28, 0x13, 0x29, 0x2E, /* 0xED */ 0x3D, 0x36, 0xFE, + 0x3B, 0xFC, 0x62, 0xF1, 0xDC, 0x51, 0xC3, 0xAC +}; + +const uint8_t spec_key2[] = { + 0x83, 0x95, 0x74, 0x15, 0x87, 0xE0, 0xC7, 0x33, + 0xE9, 0xE9, 0xAB, 0x01, 0xC0, 0x9B, 0x00, 0x43 +}; + +const uint8_t spec_iv1[] = { + 0xC3, 0x73, 0xF5, 0x75, 0xC1, 0x26, 0x7E, 0x59 +}; + +const uint8_t spec_iv2[] = { + 0xA6, 0xEB, 0x56, 0x1A, 0xD2, 0xF4, 0x17, 0x27 +}; + +const uint8_t spec_ref[] = { + 0xB1, 0x57, 0x54, 0xF0, 0x36, 0xA5, 0xD6, 0xEC, 0xF5, 0x6B, 0x45, 0x26, 0x1C, 0x4A, 0xF7, 0x02, + 0x88, 0xE8, 0xD8, 0x15, 0xC5, 0x9C, 0x0C, 0x39, 0x7B, 0x69, 0x6C, 0x47, 0x89, 0xC6, 0x8A, 0xA7, + 0xF4, 0x16, 0xA1, 0xC3, 0x70, 0x0C, 0xD4, 0x51, 0xDA, 0x68, 0xD1, 0x88, 0x16, 0x73, 0xD6, 0x96, + + 0x3D, 0x2D, 0xF3, 0xC8, 0x3E, 0xF6, 0x27, 0xA1, 0xE9, 0x7F, 0xC3, 0x84, 0x87, 0xE2, 0x51, 0x9C, + 0xF5, 0x76, 0xCD, 0x61, 0xF4, 0x40, 0x5B, 0x88, 0x96, 0xBF, 0x53, 0xAA, 0x85, 0x54, 0xFC, 0x19, + 0xE5, 0x54, 0x74, 0x73, 0xFB, 0xDB, 0x43, 0x50, 0x8A, 0xE5, 0x3B, 0x20, 0x20, 0x4D, 0x4C, 0x5E, + + 0x0C, 0xB1, 0x0D, 0xCD, 0xA0, 0x41, 0xCD, 0xAC, 0x32, 0xEB, 0x5C, 0xFD, 0x02, 0xD0, 0x60, 0x9B, + 0x95, 0xFC, 0x9F, 0xCA, 0x0F, 0x17, 0x01, 0x5A, 0x7B, 0x70, 0x92, 0x11, 0x4C, 0xFF, 0x3E, 0xAD, + 0x96, 0x49, 0xE5, 0xDE, 0x8B, 0xFC, 0x7F, 0x3F, 0x92, 0x41, 0x47, 0xAD, 0x3A, 0x94, 0x74, 0x28, + + 0xC6, 0xA7, 0x27, 0x5E, 0xF8, 0x54, 0x95, 0xD8, 0x7C, 0xCD, 0x5D, 0x37, 0x67, 0x05, 0xB7, 0xED, + 0x5F, 0x29, 0xA6, 0xAC, 0x04, 0xF5, 0xEF, 0xD4, 0x7B, 0x8F, 0x29, 0x32, 0x70, 0xDC, 0x4A, 0x8D, + 0x2A, 0xDE, 0x82, 0x2B, 0x29, 0xDE, 0x6C, 0x1E, 0xE5, 0x2B, 0xDB, 0x8A, 0x47, 0xBF, 0x8F, 0x66, + + 0x1F, 0xCD, 0x4E, 0xB9, 0x58, 0x00, 0x12, 0xE2, 0xE0, 0xDC, 0xCC, 0x92, 0x22, 0x01, 0x7D, 0x6D, + 0xA7, 0x5F, 0x4E, 0x10, 0xD1, 0x21, 0x25, 0x01, 0x7B, 0x24, 0x99, 0xFF, 0xED, 0x93, 0x6F, 0x2E, + 0xEB, 0xC1, 0x12, 0xC3, 0x93, 0xE7, 0x38, 0x39, 0x23, 0x56, 0xBD, 0xD0, 0x12, 0x02, 0x9B, 0xA7, + + 0x44, 0x5A, 0xD8, 0xC8, 0x05, 0x85, 0x8D, 0xBF, 0x70, 0xB6, 0xAF, 0x23, 0xA1, 0x51, 0x10, 0x4D, + 0x96, 0xC8, 0xF2, 0x79, 0x47, 0xF4, 0x2C, 0x5B, 0xAE, 0xAE, 0x67, 0xC6, 0xAC, 0xC3, 0x5B, 0x03, + 0x9F, 0xCB, 0xFC, 0x89, 0x5F, 0xA7, 0x1C, 0x17, 0x31, 0x3D, 0xF0, 0x34, 0xF0, 0x15, 0x51, 0xCB +}; + +void spec_test(void){ + uint8_t key[16]; + uint8_t iv[8]; + const uint8_t *ref; + ref = spec_ref; + + memset(key, 0, 16); + test_vector(key, NULL, ref); + memcpy(key, spec_key1, 16); + ref += 48; + test_vector(key, NULL, ref); + memcpy(key, spec_key2, 16); + ref += 48; + test_vector(key, NULL, ref); + + + memset(key, 0, 16); + memset(iv, 0, 8); + ref += 48; + test_vector(key, iv, ref); + memcpy(iv, spec_iv1, 8); + ref += 48; + test_vector(key, iv, ref); + memcpy(iv, spec_iv2, 8); + ref += 48; + test_vector(key, iv, ref); +} + + +void testrun_nessie_rabbit(void){ + scal_nessie_set_estream(1); + scal_nessie_run(&rabbit_desc); +} + + + +void testrun_performance_rabbit(void){ + uint64_t t; + char str[16]; + uint8_t key[16]; + rabbit_ctx_t ctx; + + calibrateTimer(); + print_overhead(); + + memset(key, 0, 16); + + startTimer(1); + rabbit_init(key, 128, NULL, &ctx); + t = stopTimer(); + cli_putstr("\r\n\tctx-gen time: "); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); + + startTimer(1); + rabbit_gen(&ctx); + t = stopTimer(); + cli_putstr("\r\n\tencrypt time: "); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); + + cli_putstr("\r\n"); +} + + +/***************************************************************************** + * main * + *****************************************************************************/ + +const char nessie_str[] = "nessie"; +const char first_str[] = "first"; +const char test_str[] = "test"; +const char performance_str[] = "performance"; +const char echo_str[] = "echo"; + +cmdlist_entry_t cmdlist[] = { + { nessie_str, NULL, testrun_nessie_rabbit}, + { performance_str, NULL, testrun_performance_rabbit}, + { first_str, NULL, nessie_first}, + { test_str, NULL, spec_test}, + { echo_str, (void*)1, (void_fpt)echo_ctrl}, + { NULL, NULL, NULL} +}; + +int main (void){ + main_setup(); + + for(;;){ + welcome_msg(algo_name); + cmd_interface(cmdlist); + } +} + diff --git a/test_src/main-test-common.c b/test_src/main-test-common.c new file mode 100644 index 0000000..8709eb3 --- /dev/null +++ b/test_src/main-test-common.c @@ -0,0 +1,50 @@ +/* main-test-common.c */ +/* + This file is part of the ARM-Crypto-Lib. + Copyright (C) 2006-2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "main-test-common.h" + +static +void uart0_putc(char byte){ + uart_putc(UART_0, byte); +} + +static +char uart0_getc(void){ + return uart_getc(UART_0); +} + +void main_setup(void){ + sysclk_set_freq(SYS_FREQ); + sysclk_mosc_verify_enable(); + uart_init(UART_0, 115200, 8, UART_PARATY_NONE, UART_STOPBITS_ONE); + gptm_set_timer_32periodic(TIMER0); + + cli_rx = uart0_getc; + cli_tx = uart0_putc; +} + +void welcome_msg(const char* algoname){ + cli_putstr("\r\n\r\nARM-Crypto-Lib VS ("); + cli_putstr(algoname); + cli_putstr("; "); + cli_putstr(__DATE__); + cli_putc(' '); + cli_putstr(__TIME__); + cli_putstr(")\r\nloaded and running\r\n"); +} diff --git a/test_src/main-test-common.h b/test_src/main-test-common.h new file mode 100644 index 0000000..3649c05 --- /dev/null +++ b/test_src/main-test-common.h @@ -0,0 +1,37 @@ +/* main-test-common.h */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2011 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef MAINTESTCOMMON_H_ +#define MAINTESTCOMMON_H_ + + +#include +#include +#include +#include "config.h" +#include "cli.h" +#include "dump.h" +#include "uart_lowlevel.h" +#include "sysclock.h" +#include "hw_gptm.h" + +void main_setup(void); +void welcome_msg(const char* algoname); + +#endif /* MAINTESTCOMMON_H_ */ diff --git a/testvectors/rabbit-verified.test-vectors b/testvectors/rabbit-verified.test-vectors new file mode 100644 index 0000000..8da63fd --- /dev/null +++ b/testvectors/rabbit-verified.test-vectors @@ -0,0 +1,2169 @@ +******************************************************************************** +* ECRYPT Stream Cipher Project * +******************************************************************************** + +Primitive Name: Rabbit +====================== +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] = DCDCB614F738A20CE103637E58091766 + 010B16EACD06A9108671B1EEEFE8CC17 + 2EC9402DD54C53079767A6299561EE50 + 66A5DD404C4D6875F4B5D611B007B106 + stream[192..255] = 7117ABB7629B9853960F256CC2BD5739 + F1AA813DCFAA0CD49E132E64459789C2 + 01295F09CA42F88CDBBE2B4D5B11FB2E + CCB36DD1ED6CFE96FE21FB5401DA1E20 + stream[256..319] = 12555C74594362AC415427715F62AC35 + 6344F4EB3D384382EA4B7724F4707699 + 6BBB73449FB55D7DCB59E96A8C674D0F + 7398193E519A33FB3C7F49015AFC3C56 + stream[448..511] = 63FB65776A91527C170EBFD625D0D5BB + 3715D348FA47C027FCA3AF0CA1A716D6 + 304F2E82E888531FAB33A57E8230E36F + 0922F8C744BDD1755644D1C83352A958 + xor-digest = 5E681B68614BB795C35EE3C0D0A84953 + 170EE94E9B01ED744E33801591345B8E + 9D90EA87123CD30312204A6499BBD413 + 29EB409967B125F24CBA7608D4A56B0A + +Set 1, vector# 9: + key = 00400000000000000000000000000000 + IV = 0000000000000000 + stream[0..63] = 0847A3706C54B746E480F34DF10AC86E + C67799AA56694ABBE8A2D10AB5B32D7B + 575DDAB74D2D8F37AFDF0923B9A1C504 + 0DC31CF5A11E43A5E92B326A2A366D8A + stream[192..255] = 1D9527A29B459829DC9524F266AB10F4 + B288EB887C85A36AE628281C43A96C6A + A99C2CF791098B30611DB96690D1CB6C + 2E283E819BE12053040113DC1865B017 + stream[256..319] = 56467CF20A734D51CC3EABCA1A44BE54 + 2308DB174D37FE67F015CB8D395BA7DA + 43B947F5FEE26780F02EA3BCA36F0465 + 86B2713C1AB4FB460982F19EA6DEC945 + stream[448..511] = 1A04CA6C992E6930A551A01D56B403CC + 2A348CD66FB7B5921051BF1D73A47F7F + 4C1CFB5EFC9395DDBA74374C2F27EA3B + D656ACAA87D701CB09D39945482C5399 + xor-digest = 879ECB08604CCAD26AC8706F621485C2 + 2180AD25C088702444AB1779657EEF5F + 76ADB9E7657BA8DC0480A58D6C453155 + F04A739297E966E8BA50F51F74CDC1BF + +Set 1, vector# 18: + key = 00002000000000000000000000000000 + IV = 0000000000000000 + stream[0..63] = 178EDB78577D3F241A490303CC019F1D + FD286FE86DC73287B43CF5CE60DB3D7F + 2A35768D44B8325F5F91A0AFCD8D8EEE + B4F7188A087FBB156AF0833F669C11D2 + stream[192..255] = 30CEC1DE9C101E5ECE19ED7E31D8F307 + F97D86F5FF71B09CA84F84327FC2BA1F + E876776BC4FEA6CA11E1C99B7DC46993 + 898A1CCD7D901E464365FE5ED3D97010 + stream[256..319] = DFAB7A700E747801E03B43B503CA02BF + B6862DF1CA287683FC0AA4AC6D6F9FE3 + C36D9F289CAACC42BAC35BF1B1CD2838 + BF15086131C7DFCBD626CAD4CC14984D + stream[448..511] = 85FFCBD014E13679EA9AB9F0D4B2E453 + E5FDE7E41080B9A360A069DDEA8DA2CD + 6B69FB27FD8C1ABEFE63322B4A2F0A40 + 7ED2D6F7E4D4B80D2A79C0A6CDE4D367 + xor-digest = 903E1B7F2A5B1FA04B9E81A946A1C7DB + 9962506A652A0FB3D05D2B959221214F + ACE2A69DEB4A70B9A5D7C06EC8514C17 + 61BC83EA753AD3EB31E592F479F7B1A0 + +Set 1, vector# 27: + key = 00000010000000000000000000000000 + IV = 0000000000000000 + stream[0..63] = 77FE705EE55BAB05978AA54D63071707 + 009ADC8C18FC68A4D5941E0CAFB8E68C + A218F1724EB5FA29485F0924F612AE67 + 0D975B485190040F9E112783D665E031 + stream[192..255] = 2BEAB3BB73A4DB0A4F8CA65FC6D52C02 + 9D4E7678EE1C063B86D24B7D1C981B27 + 6965B5E787FACEFB3D1FD03473252970 + 55DF4909BFA8E54452C9BD4775018C48 + stream[256..319] = 1D318B326B705E0E07263CAAE8B4F842 + F7595FA3B05BEE9EA595B51BA7F17AD4 + 85899E1B550D3AC8735AC5BD13D6F658 + A7AC51BCC039110FD313978639A28AF9 + stream[448..511] = 091F49BDC8504F7FDCA3AA469F4C331E + 52C81B2C4458F8D5E9CFE7B2D649DEF1 + BBA70D51AFC4C3F713C1CFF92C819BB0 + 9BEC67AA7D45274B95D90F409209711A + xor-digest = 6B7856EB005B9CEEDF4D1300961C67D7 + 5CD309BA37E632D339EFD24F72AA5D2D + AB20C1218533CE8E2F30C1F65D63FD03 + 8955076A5358F0887A3C84C30FE72861 + +Set 1, vector# 36: + key = 00000000080000000000000000000000 + IV = 0000000000000000 + stream[0..63] = 6414520BFA7AD13784F125CA63868602 + B83A834E403F6ED50F097107EFF80FE5 + 67987486EDC31CBFF000A52CB9AEDEA4 + B35F5DBD8438E901356A542A94232350 + stream[192..255] = DB271F6264119C704197219DFD7702A9 + 6196CD64C6E3F2558C330174BCF3DFB3 + 67294EB0AAE517BF8DE9F58E2849E885 + 195D0F86B30280AC048605372FB3A2B9 + stream[256..319] = 43541F31E889E83D7BB532111A364AD0 + 6ACFE745DD93FC6CD6B11078EED66F0D + 9402A48D7C9F5F0ACCD9EE49E03A28DD + E13FE9D694FD21D056ECA0F6AF53CB2A + stream[448..511] = 63F7181EB551CAEE406A54BB95FA4401 + 36268D73758528ECB01620224661473D + DF663FEAF506FA01F9A6B7FA5E4B5296 + E0CAD52A242275C346CC385EF3D04441 + xor-digest = 3F701BA013EB02D51C6060D25FDDC912 + EA8C11A4FCDB9FA3236F40EBFD1A63EE + B04CB11E9CC0809FAE402656D5BA618B + 23630775786717E99297A47CEE7107ED + +Set 1, vector# 45: + key = 00000000000400000000000000000000 + IV = 0000000000000000 + stream[0..63] = BAA234DC594C3D1CC88CC9EC7D012730 + 45D2E6157174BE898070ED8AED84988D + 07E8496AA0EEABCD0ED86F68F5705F25 + 490DE5E3D40611E3E8AAC382E99EB7B7 + stream[192..255] = 8AFD7873CB17CA9113A5C3B4DA41E6B8 + 837A0B2FE4F360702CCA80F364210F51 + D83EF8D12599571B40C150B40705B3B1 + 99D84B03F5AC154CCD485F862D5E915C + stream[256..319] = EFA5B5E9A59C63BF8A230A5C4266E159 + 36BAE705BCF15824D82EC2435218B3DC + 72B1B11EB63F29D5224C68E19F651AF1 + 8E05038A1689C70DED473710C9141035 + stream[448..511] = FB89F9AE501FC080F84285A080B12589 + 548EB87D6926511E036151DB7AF7DA1D + CE10635B672DB5BBD7437AE3234F0D99 + B2BC0619A2C87D322849946BF393F59E + xor-digest = 472066F9AFF63926784E81EB0C2CB197 + 51B8B2C4359B62077739761E50CAF90F + 2ACD0A59FF17CD9627D8138E17DA1740 + C1B18C94A27F17187763E8E07F842593 + +Set 1, vector# 54: + key = 00000000000002000000000000000000 + IV = 0000000000000000 + stream[0..63] = 8105BB206CCCED69F9132B7FB44902BA + C0C2206FB09AB8989A09A15562EAEDD6 + 3A7D1E9ADF90CA8A3F7107E452D5488C + A386A722C4F73762C1E4672B0D01868E + stream[192..255] = 3D660C3E7BDD436118F49C4839F577BD + 82910452B5FEBB0AF245B2711BC37D03 + 3E9E5BC90E7C238765270CAFC38D987B + 50499A55BD0C29E40FC01FD56DCCACFD + stream[256..319] = 26F935F3274A49DBB15445809F44833F + E952AC5A424B5E3E8F23CE6834743CC3 + 09D8269EFD7DD78BC8727AA7873A9CAA + 6A84354B46E770465E2E2DA48E34990D + stream[448..511] = 33453B4A5294C04C680420CBFC5D62DB + 4EB42F5B3535D3DDEF1845BB6A4B952B + 9A0D06018A0E3DE76DF672A94C067CAE + F48B1D2EF19E78DDBD5112CFECE5834A + xor-digest = EF9F1C5B04AC3656EDAC919AA7B80B5F + 669642AFAEEFE0B51A7A01DE3CC9B798 + 7F509098E9901734718A290B74FB954D + E4B9A3962643CC524F8991CB1F7A6517 + +Set 1, vector# 63: + key = 00000000000000010000000000000000 + IV = 0000000000000000 + stream[0..63] = B2F746E4CBC062068FA953B1EDC2C7C0 + 5BFFBAABC77CEBDC6D1C9C930C3DE23A + 2BE98C3EA3E2A49BFD2C7987DBD4516C + FC6E5F81FC1F58EF9DA996D565B6FA21 + stream[192..255] = C28157C3DBB101C812823A3D2201835D + BDA16B3006EDF9C2A89FBD0566F651AB + F4DFD31548C34079DD63782CE9A8ECBA + 1ECF590D6645090C333DD5240EA4F17E + stream[256..319] = 1D74EA209542EF7B09A1B03D995D178D + 3088E4AAE0E30FEAAE531A53246C78E5 + 0A4D6E2AC70B11A7E123E4FE26D82E66 + 9EC9248785FD7EB5BE1D36FC85BFBCB8 + stream[448..511] = 48CBA063235997E9E93A4D3F9E994103 + 0680C0636ED64D055E057F7461A1B660 + 71AEE9BC86EFF9EEABE02DFCDA753948 + A7C14057339314092CB3750CC4EDB7D3 + xor-digest = 1D3D67A63568877BE046E107C1A548B2 + 34EAF54CF4BE9630B886C8E846173330 + 798132C040BBE341AEBDEFB671E359C2 + 21C0FFFDF3B1524C4EF4439DA4BAE537 + +Set 1, vector# 72: + key = 00000000000000000080000000000000 + IV = 0000000000000000 + stream[0..63] = F6B2157EDE86467D5EB6AB4201F8C3FD + F309ED03CC3B83213F31ADA62BAC1089 + 1A4A4FCC9C1586D47655594CA3D6873F + 175FB977B5C188707A72416EF64A7FBD + stream[192..255] = 41F37DF1EE2987CB567672880D2B6046 + 67BD8F347A4DEE5082CB4C3C3496E399 + 6566C8800CBE194B994382760E981571 + A52ACE1FDFC0CC5C1ACEC5FC17D46E0C + stream[256..319] = 6EAC6BD474192CF1461E73F7B2357625 + 93616AD2EA10CAE5AC56893A5DC68DD0 + F839D49F0DF076AC2373F5CBC2FFB224 + 9F43C984FABEC387A2C195CE77407295 + stream[448..511] = 19B0F855E69328BB3467ECE9C47C2F8D + F389803CDECEFB7EFDB4D872527C05C0 + DB80286F0F606C2EC43F48B64CA2CEC5 + 77951C1DFF73024D5D52FA048EA47F58 + xor-digest = A1848B0D933572FB2FCF58035893F88D + 01D95BB6598647A9DC8EA326254FFC43 + DF34FB16BE6FB8A830EFC584DE2D5BEC + 7A68A03B4956CB89FEA243B54F6D8FCC + +Set 1, vector# 81: + key = 00000000000000000000400000000000 + IV = 0000000000000000 + stream[0..63] = FBF7BF104F3EB499BCD76A4D90AB9F49 + 4DAB13F5888DB91FCB94AA3663384118 + 3F8DA5008EBA653A56CFE160D97CA7E9 + 345D5262DDBF047E401DF8AA6A9C3660 + stream[192..255] = 7E8B3CA581D546B3CA71BC6FF852C602 + 3D83D85641A7582DFE4BFA0BA035859B + 87141018DDBDC3075CB7DB5F0A7C1A3A + E98F41F6F81D275324B5ADCB1DFBBCCB + stream[256..319] = B8DBBA37593A92AC49B54E01834BCD9C + 01D482150AE64B6D3E4FDEC546231245 + 480217E7B0007BCC12F81E841BB8ED13 + 5A17964F27BCC08269ED900709F7E5CB + stream[448..511] = CA073241DEA3E74D0AD65B5B5BC3A728 + 637C42263CE6ED5FB60760DEB7709901 + 39D6E784FF306C7B91FC9CA87B760596 + 54EF5F0B0A1CD518D89C31AB13A97AB1 + xor-digest = FD5A37EF99CD511340250D71074318A0 + F9EBFA19242AE466CD64D60286843510 + 6A741DBC09F86BA7C5DF38B606FDCC0E + 652D4AE2B1271DF63CA71B49639B809C + +Set 1, vector# 90: + key = 00000000000000000000002000000000 + IV = 0000000000000000 + stream[0..63] = A48202A2119A3809D95031267D92471F + 83774767C0F38A6D69D7A5FAE6827E2B + 687F878FD3582A83BD41AECCBA2A9189 + 7C7CC66C1BC7E090D17E5B22C7245136 + stream[192..255] = 8731DEED2A95CDF8CA78FAEC4ED9F2D3 + B782AE73D50549ECD92889F0624E7C4E + 67C8FBFFAA09FACF8523E578800355E3 + D5568304D3FF78A12452371570F0885E + stream[256..319] = BCEC4E14C2E112E66347B218421D1823 + 325A3D7866FB654AA247F4CCFE1E5772 + A3975B88D84BE71A7392EAE83E836DD9 + A0E422E2C191080F1478C55EC8E70EE0 + stream[448..511] = 4D334A264A4596DE241152DC705C09FF + C61E771659488096FD2B088456A067E3 + 680C0C060BCB072B3F5553156048379B + 26845BAD16A0E6C996AD1E6B94926B63 + xor-digest = 40269A7002F3910AECD0DAA32568537F + 27E19E221B5BA830AF317B294BF40363 + 07E3D1E52F894707133AE15129AB070D + 22A3064254B52374DDDC02C50CB2ACA7 + +Set 1, vector# 99: + key = 00000000000000000000000010000000 + IV = 0000000000000000 + stream[0..63] = 73A1348E48E50F450ABCEF31F8C777FB + 80754EDE5B17D226391FF1AE3394D81C + E47B748155E1FB7EE5289CDDFB872A59 + 083BDCAC8BF36DF8B7DF265EE1A5E4DB + stream[192..255] = D77041F6E5F9E992E0A6B735344A7ACA + 5038453D4409DF0DF40077256F47F203 + 1602B65530DF45AE4C75A00E7D85C35F + 5228157DF511F970334F79D256E8C2A4 + stream[256..319] = 45503E7C51C62DB78A736484BB3ECA38 + CF520F6417A54C460DC345CBF20975BB + 6D96A8DCA5F8D9E87DD8DDD90DAA63B7 + EE15BB426ED88DE79D4568EDE5F4008A + stream[448..511] = F313C6E3D2C09C36372AB808CD1D4BC2 + C1BF5C88409059935A812B059EE70513 + E96356B1525B6DA7C50EC0E3312EB5C3 + 12839384038A933C1C1D20276B76A16E + xor-digest = 6BB72FBDF66E44C6292AA5CFC2F59F5A + 50251793125E28D9F2860B75F4CA4E65 + 9CC449227191CD9BCDA4B2E5076727DB + BC210B0D5BA09CC8C39E3A946FB879DA + +Set 1, vector#108: + key = 00000000000000000000000000080000 + IV = 0000000000000000 + stream[0..63] = AE8AAC412BC6B6F81AD0100B231A84BE + EE3686E0ED509F08A7B40E4329883212 + 32198A234B5115F1360B4F93EA74F20F + 295FBDCD1805CA4D68145A9024B0754F + stream[192..255] = 2B182FF4FC75360E8E5B923E7ADE0AAA + 9013E613CE8378F1AFB29C1254C84E2D + 1B4864DF76120CEEB123908699AE1DA5 + 48F23E67C1DAEF359DA0498E6DCDF2B2 + stream[256..319] = E90BA1D435CCC1DE56FBCCC6A84DCBE7 + 9E18D7EDB585BD8E6D36EF692DF9C78B + 2695BBE2DB8E46166F1DF03F8003A2CD + 96EB1CEA4111FE22B30CCC52B0EFE07E + stream[448..511] = D41C9F872600EEDFDACF659D9FFD9260 + 5944446D321E0CBD1B12C2106FD7CFDE + 7A2A5A52B9B3DDDD8253176B9C9F9F55 + 687ED6A310F923978A2B27D99BDF32C3 + xor-digest = 00D0133EBAE055DB7F000B24E58EA36B + 82018514417EA1AC2B69B6D96BF8DD45 + 9063725F32CA06CB4DCB7335E8EEEEFA + A338BF9C98E01DCAE9297FAFB1DED59D + +Set 1, vector#117: + key = 00000000000000000000000000000400 + IV = 0000000000000000 + stream[0..63] = BED2F045FD3AE491375F44FF89915FB5 + 77B8AE4949BE93D027C999D4B0FA24B3 + 0DE2C9A498350F9D19879C477D791E31 + CD29D20E5575428B5035A26B4EBA52A4 + stream[192..255] = D5B1D692191B789C154C9F73080DA95A + FA5029189CDC7675DF29E8260EA589EB + 07D22713C074AB04F17D1B608808D371 + 6D514626FEE626962B1FD417B637A534 + stream[256..319] = DE7854CFCBF99FE8D68025711E78CBAA + 6029E88DC7620F9B87308D97D4F46DC4 + FF40A3F3D4E781FD7B899C621D42AA9E + 07871DBB8DBD2B8398AF921B01B17E62 + stream[448..511] = A408101324D5B636A4D67D11DEB3DC14 + 911C7412181944C8268127303163F4FF + FA4681D85352B1230ACD8663797A0C45 + A6DF090A2229B93C6EC7D08959919E42 + xor-digest = 9C45A25D754235C191A748811F9C8483 + 7C06795D0636CAF8984DD1C3E1DC9A84 + 639481D2629D363A8F3AE7952048FCCD + 122AF5B2F9C1F1E9736B0894514F692C + +Set 1, vector#126: + key = 00000000000000000000000000000002 + IV = 0000000000000000 + stream[0..63] = 2668749B5D1436CC4A7C43AB4381EC91 + BF447D1F1F552F7C2493DACB72ADD952 + 2A0A3397D2550C01CAA56B107BA2AF0C + 8A107A285BF087515E6973C128581B80 + stream[192..255] = D79AF153B28AB48B6E18F79357E56906 + 0AA8A10D528014AE4F6C8A088F38DAAD + 6DA52A44D52EA554E195AD84E6180EB5 + D9B4EB680BBBD715105DAA9041F73646 + stream[256..319] = 401F99CB4DD08640B512F8E0899A97E7 + F98A7B9A60B93B3BCE05661A93699470 + 6FB4B484BB3CD05D4B7855F6A54FEEF1 + 47E850FF33E8BC2B4801C6A96F306DBF + stream[448..511] = 610B5B3AA681D9A5B8A3FA34F1B273A0 + A1643935C609BEFE896CA2E91FD13D79 + B4423DA10E93CEF63C34F0CF9C552346 + C180D73C7AC283CD9E6193406038AC17 + xor-digest = 8AA39CD16339D283557423BE770F25E8 + B897345FE6CE733C81709269C0E2E65C + 8105B7A62BB8C8B0BF9F3407DBDAD0C0 + 781E452D54BC73BC8518D9679762F322 + +Test vectors -- set 2 +===================== + +Set 2, vector# 0: + key = 00000000000000000000000000000000 + IV = 0000000000000000 + stream[0..63] = EDB70567375DCD7CD89554F85E27A7C6 + 8D4ADC7032298F7BD4EFF504ACA6295F + 668FBF478ADB2BE51E6CDE292B82DE2A + B48D2AC6565979220EC909A7E7576098 + stream[192..255] = 706630D4C431BC49E07D9CBF98FAB946 + 7108299DD9B358BBB4AEE64AF67F1E5F + EC3DBA07A0CEE1BE2E2F0AAB10BB8106 + 35F403DA20B8ACAACDE4D85546D0A820 + stream[256..319] = B35DB614A32070FE8CAC67B378184C45 + 354753D37EE6D057ECB36E0D5BE5DAC4 + 11CC36DA10A2B670BC201B2C8804377F + 25C599ED29294F3E267C866DCC68276B + stream[448..511] = 109D5563D46DD78C2905F7D90036300C + 60326EBE3B1AA385FB75F1C5C7311BFD + 6DDA960C716C33E51C5A2B1906200C40 + CFF62FB5782A41BF816F7639C9341244 + xor-digest = B4BCD9E0E9CAAE180CE6EBEB12826CE7 + 8FEBC2BA6A374C39C90F1FFF0C059FCE + 2A197950302FEC15C2C21602C83233D9 + A8DAADCBCB0C5E93F1361E7C29E1BEE9 + +Set 2, vector# 9: + key = 09090909090909090909090909090909 + IV = 0000000000000000 + stream[0..63] = E7F8DC75257F98D89124464C5DDCDC86 + 93F8456B7FA2E2E0A907F6B4D9A56F2C + 86E5978203A6C8791C119D7AEC91D5CD + F087AE3943091B2788B675353A0AB24A + stream[192..255] = FB8986A91C6CAD907E90A47F962ACB15 + 5112027212D69E08C230A8495147F6B4 + 3E769D9CCB01F6472E8FBA993AC6ACB1 + D37918D00C269B7BBE14766579938E69 + stream[256..319] = C665BDB6306B6C8AD987BBDAAD5C3B35 + EC8D0552058472C8E6E2A068C7BAFB3A + 301724B7B601FBBC2289114CED423467 + 59BCF7776083801EAC2C6330C81B0E45 + stream[448..511] = EB0629217238ABDA20897FA7D81CE478 + F83CE9BD5B45490D94780C17F796CAC8 + B16A60B66D31BF21F0BA3A7AB08C6262 + 3AB28229B1B716E21C6D2DAB92559B71 + xor-digest = 0D6B57A05FD49F29D9B90297B5DE1D51 + 38846792553D4B5766AD55C04A6DC58C + 58B678EE1313F96293D6CA6BD6AA2E7E + 8D5B500C2BFDF05DCF2D1435B8C5E00C + +Set 2, vector# 18: + key = 12121212121212121212121212121212 + IV = 0000000000000000 + stream[0..63] = 62B5D123F8E578D991AD64A698339366 + 6EE1107AB0EE844D000087F52F9E9038 + A413E3B500D1A7B50F94359B004F2132 + D1F229686673D12DCEF24700C297AD74 + stream[192..255] = 28277E2776C9D0917541F37A1EF8E761 + 06E75AFB73BB9217AB350F3D78411A63 + A6D3E8AD8850178D241E969F9A035228 + 92FB2EED1EB486802C9DD456ED42F67A + stream[256..319] = 56476411E296B39BDF320E5FCFE843F7 + 4592BA463785CA8FA7BE44CA965E0F5E + 347CD9703F9CE09856817F8F2F221F62 + D0762E166E9A7737903DC0CC06DF5628 + stream[448..511] = 21F84D08F4A321A883C2C9ADBEA4342E + 6F490D3D44417AE971324F3A0A6DE56F + E1A2C791DFD35B73355F9CE8F9C30D94 + 94F97CCFEFCBA9613423595BD95D11F6 + xor-digest = CB88021CA78ED00336DD0FEEB7186864 + 1B5CA80234B91E6A12A079048EF3AFD6 + D4DF9AE4237E9B367D56E7F61A563DB1 + 94E5D00218CB7DA829AC23757A6A4A20 + +Set 2, vector# 27: + key = 1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B + IV = 0000000000000000 + stream[0..63] = B8BE166D69975D3D9D991DC28F7B334B + D14CA741BAE95E93FEE603D54509F8E0 + A265373D1A5BFA0EF97B61E2998E7228 + 3727FE5A3DED85B73CD41B86BE594684 + stream[192..255] = 6A883DFC1E145178A884566EBDAC1BA2 + 5ED178C449E6609CB2C500DAF811C876 + 3B96A073A74A8E5B461AA88290352BBC + D3CB63F8D071B76F78A939147AD5E0D6 + stream[256..319] = E531C743E67BC628C9FD3D8312940115 + 8BFECEC99A22DF0ADC73501ACFF26011 + 5B6D1094EA51A841817919FA5375599E + 60652CF37FE2100FEC4E6C45B6AB162D + stream[448..511] = 01C885E74B3A5438A005E35E8F04ADF2 + DA312163CCE2372B2E89EA10FA9D269B + 6D9301A30A652D4CDDA0EE147DF05286 + 8D16156743B90439F66C018FF4FED91A + xor-digest = F0FB24690E099CCBBFC949D2AB526549 + A0279BB0289370DCD79F96D3C8E91BB5 + 9588FFEF12E9333349002EF3CDBFF5B7 + 560CF367DC52E75A1C0AB920358B921F + +Set 2, vector# 36: + key = 24242424242424242424242424242424 + IV = 0000000000000000 + stream[0..63] = 97260F8165CB32935F6E82380645E129 + 05550F2DE054C5C443489C27706D8E40 + 5B02C5F17288C72B5E91D9635B7FFED5 + E20A533FC30AAB90362A4CFFE1158446 + stream[192..255] = 5E5426797F310DEA867640CA530B1F9D + 2F8178F9B9996E1435EE0541580F1D08 + D2AD17DDCC93A4E250800D902CD56FBD + E779D40A0958550709CAC29040F9BF70 + stream[256..319] = 86CF2D6EA2FE0DE8BEE8F52CC742E98D + 55763BF9EC2F7ABA63C12E9487E7948C + 0A864D78FB5E99D0587254286196B239 + 02F4BC3A5E55B3C63142D10F8401AF63 + stream[448..511] = 4A809F1147E7FF8B541DB96B56567268 + 741E623467751CF3AD7FDFE88525A052 + 60DEB94B88FD630433D568C5C964168B + 8CF3EF696841ED6E4FADAF86E3D920C3 + xor-digest = D5FAF09F542D5B25286E6DEB8CBCB0EE + F6070718EFB5D4C320B2EB4A57401A55 + CFB921E2C33C1802D0A190D5CFCBFB22 + DD8ED5D0C1BDCE5B37438A2F9ADD2973 + +Set 2, vector# 45: + key = 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D + IV = 0000000000000000 + stream[0..63] = A98720472640C385E68F7407CCA56859 + E667C471121418C3F1F653EDD1A2DDE7 + AC6735CE67A92CA65772773829CBA796 + ABF7F318AE8F6E0FEB8C8D20D099627C + stream[192..255] = F62CE9708066A91A88EA206F2E1B4899 + DD81D6194868B67B6144470AFA708810 + 36F624ED7BED52A5A1C68E953E22F5D8 + 3ED08F9B4819BA0DACAB6B8E5DE254B1 + stream[256..319] = CA275CD70DA59F4D0EBB25D5F347C421 + CDD4B7739DA4226824FEBD7C598322BD + 2C8AC19059FC7857239CEFE7D3570927 + DF199C62570723FEBCE55E5D2E97C230 + stream[448..511] = 4974E94DDBE366813E27CBEE6CE96A4A + D09E2D6BF52037AE474B05B1A1B55703 + EE529170AE3DBA70EE7159892660249C + AAB273AFC70AB8C8E47844017E6581C3 + xor-digest = FECBD4C1438F3E74A3AEF0F4809F9DF5 + 564345AA54D338B71DF1D457CF9235D8 + CC2BB61B758F08DDB16B5E29713A9AA0 + 5F50D69C2279E64194BE87A8DA1B6609 + +Set 2, vector# 54: + key = 36363636363636363636363636363636 + IV = 0000000000000000 + stream[0..63] = 215C64657D3E1F9103C791A68D1B2CE3 + 0FB7E40AE433E5D490C76F3FC87C3E43 + 12798A3468E7A9BE956966C9C23969F8 + E7F5732F046AF520162F559D6C5DEF8D + stream[192..255] = 3FA8C3032AD52534D2D18395FF42D32F + 271B2BE17A79FDD809B5FC0BA8840B03 + 32DA45D5B47ACEE16B0F2E567CEC953C + 63810E98F4FD978525A770B6CD520ECD + stream[256..319] = 326170765A7499E7826E4DE5AE7DA1FF + 506E6693DEA0816934A04470A9A6F820 + 89687B52EEB399E9E7491F6F50F66146 + BF551711108E279B3ABA667EAC965EB4 + stream[448..511] = 0AC5911B6BCB6E3110A4EC1AC0FD473F + 1D4E8AACB643022C376E2231F6039ABA + 9A3B81A155D3972F8987CDE1E467069E + B889BEA2F814950A0FB9D97D17B6B1A7 + xor-digest = D5A28A548DD779BF9D8ADD8047C09973 + 7218D27AB9B357F62382E4FA35364672 + FB71A0B735C1DE9F6A3695EF6DBCA5B8 + 233B5CA9C7E2D42650469C860F7711BF + +Set 2, vector# 63: + key = 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F + IV = 0000000000000000 + stream[0..63] = 07A2104DF55468A03A06D5A031DC2CB3 + BA0AE5D8262133A553630048B0F0C19C + CEA0CD6D03A5ED394698F6DF83C8D16E + 6E578BD1B2145AD9D92AEC5F298EA6E7 + stream[192..255] = E8E5FC6B90D0E9745F7E26CB6E6318D3 + B09DB532355C29D451183B83AFB24A5A + 309FFA6D9ACFD6059775522E6616B5FF + 0F994D08657304D560573974A39FA086 + stream[256..319] = 3ACA2DAD216828E27A8A69ED65BDB748 + F612A7891B734E39291B86A19DABBB55 + 942539D6275A94A60EC29007EBAF4DFE + 7A4911D83B951D226EB992FBBF552B08 + stream[448..511] = FC03429989E2B4549D88DF29C39290AA + 087E2ACD95404F1E605FF510F63D1FFE + 9F2D0BF8B709B92038C56A3FCF60A8C3 + 208A50A09F015078EB14E972C45C73EE + xor-digest = 3E0084DDB6836BC98BA3E878FE321128 + A56218279BA6155C6BCB601ABD259CB9 + 8D4CC8FD6F547D8E7DB155DA0DE3A6DD + 4F957C6BD41A1A09FFB6214AD39779BA + +Set 2, vector# 72: + key = 48484848484848484848484848484848 + IV = 0000000000000000 + stream[0..63] = 7D492821BA504459DDF1B750789689C8 + 79363F723E05AC35302C46219B542AD4 + AFDD29854FDB8753235354C9F2D9AF71 + 5BA712F8AF8E9C98328597A63AE9E338 + stream[192..255] = D79196E3EBAE2CC7B1E361D693DEDF92 + 3020B5B69B96FA91CB54D0A039CBEAC5 + D85C6F192B57AB2AD2C5818E946D4275 + 08956D83FCBC2883266BD702A43A7242 + stream[256..319] = F06D97724EF4A84819C18A9F039F8007 + A7FAF92A4670370C84FFAA31D5AB00EE + 29A541A23511FE62E10077FB274EE114 + E667D96ABF0D2FD2249AC38F11C627CB + stream[448..511] = 1C692D1455CAB3D3CF9B4D0C6DDDDEE4 + F63ABC2FA458917B4CF04436EAB75CE3 + FBC6B56CF1D3D24CD285F1080BFB6189 + EF8B8F2A9B851A721445FFED5B66C073 + xor-digest = B5560C273215214C7E1B552528BD100B + 87CDA0FC7DD3DE92827787F3BF41FD51 + E35EF7237F14E2A027573D05995297F0 + D559383CF9CAC082A215D113B2FE255B + +Set 2, vector# 81: + key = 51515151515151515151515151515151 + IV = 0000000000000000 + stream[0..63] = 9B50B71FDEC27AF3F5224C02D0BF435E + 64EAA7E927F6E0FA4B6F0E444389DDA1 + C8AC946BF3BCE3EC2F8474E386634D0D + DDD2399C592D41B6B9242948E29722C1 + stream[192..255] = 58425A250481646F6C4114C73D4148FC + CBF2A8EFE6094232C10D7DA2F2B3283B + F80C101C6F42A0B45024509AACA67EB5 + 7972C8D1842A2D452CFEA460FF9C65BA + stream[256..319] = B03B836E5E1536CEECCD98FE0E30DA3B + 2106B0480E599765DB406BDB9FDF2313 + 2B4B4D4D0B8B321B1CA1AAE0E62A8676 + B7D0CA9D953B6F80CCEF7CF33E91DD20 + stream[448..511] = D36E8B836369ED37416D47D699C7EC92 + 75A30B8BD30B3831042A41D2D7418AC1 + 847E9F918B6E348644EED62B47B6ECF0 + 906D3B8D4CC533100652E7503CE77FF0 + xor-digest = 86A6D63324A4A691A3110F89C9809B09 + 61FB6E36E181C9715A56B5C07A890DFD + 48687CA7D5006A364EC9EFE8D4C7E1D4 + D9306C85A09351FA9063D8AF3D007F95 + +Set 2, vector# 90: + key = 5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A + IV = 0000000000000000 + stream[0..63] = 947BF8D9CB76D72AD11300E9F87DC775 + CAD0F21E55A9B4E3442A811848C8D3C4 + 403733DEC1E0AD651762E9C76649FD34 + 9B161773B20FA271CF88753173CC9A3E + stream[192..255] = 250E5FDC25CFA6556EC8D14291213495 + 9C48BE9E99FA11204C4F0D2E60256BD2 + E7BDDB750028D1FFCA7890F2E1052A99 + C5FF22A1EECA028B42E48ACBFC022CFE + stream[256..319] = E13B33F7C1D963D4306902C90ABDB406 + 847EF90C72574CD04CB8407DD1B1F984 + 5732F9E7D782B93E1A76D8B3D55A4635 + D2F56730C54F7099B80C843AC738A641 + stream[448..511] = F80EE18B800754361D4008E630A34740 + B7D07A89A711F0F3F3FD18AA2B9CA689 + 29A1E8684EC396188E9A4E970217624E + 22BE83F87B593FB548DA290256F072BD + xor-digest = B258C26705ED398D8912A42D5E87E326 + 1A25E341828A19E14D0C2C628DA3C105 + 69816731909374079DB5F9FA68E499EE + 6FCDF2D00CC1BEFAE0EADEF7AA1C8365 + +Set 2, vector# 99: + key = 63636363636363636363636363636363 + IV = 0000000000000000 + stream[0..63] = 51CDD88200CC5E396ECDEE75342E2797 + 09AA9675D6945A1046AAFA2171FA3ADE + 5126A367BB1DE48B9751F9CFB9A617CE + 365964AF30AB56F36C436D095C9140CD + stream[192..255] = EC7DB5108C2B535694E1B2CAD6EEC51F + E52B2587F8A0DFAC557B15A8F30CB73E + A87C5ED19079265FDB218D364F3E09C4 + 7E733376E8005BD2A198A1D13BA75E77 + stream[256..319] = 4112BE43D8BD6668DFA0C1F2B688906B + 338F6CFCD500F004E7BF2BC903C6E1EF + DE4039331A26A144298759002F7464A7 + FE5B68CF7DDCE26001D9EE6BF8318FD3 + stream[448..511] = 7893CAC1C6065126DC81170B16EC751F + 69012E1E3CF63CD7E34FFD4231D89FD0 + 6D3933066527A096E2E2ABCEE979C950 + 771302C80EFF7A69FE0960390BCEA519 + xor-digest = 48B42918042606E89451B9CB4E943B48 + 79E9384F1394561A8CB45000BADF1BB6 + 66834FAB3AD77AD3D4F449E8706C52E8 + 38E071357076B8D0E6D4D9C07028A23E + +Set 2, vector#108: + key = 6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C + IV = 0000000000000000 + stream[0..63] = 718EC9CE30AFA1D0227EB4C258E3E021 + E5A8C79FDE66D5E77DA9AC2E03C4B215 + 438961E4B7547DE3D25364139603680B + ABB795E71E68DC8BE87D2044B5C3A6EA + stream[192..255] = 2BE5B79C27D0DF9E5C9664D6BF5A0809 + D77EDE0CCA5F975EC178AB63D3DC660A + AA79118FB469BDBB118A7EC3B0782BA3 + 6F9E5681020A77FC0F63096D4CC4FEAE + stream[256..319] = AFFDA31EBB725443EE0913591359D3D3 + FC82DC94F39E331FFD9A622C260778BD + 2BF519E6C6048251254654159E4CBE24 + 6310BB1A7B6EA285586AACF0F84F3D98 + stream[448..511] = 10310F70CFF2222A64C1CF1CED8CA57B + BAC520E01B2035EB4C4E029C5E7E8DBC + 4A02C3095A1AAA65A7779A5FC9C8D1C4 + 8CD462021A992E2FF0D782E042E96EDC + xor-digest = 7EEE6D4E90322574C6694FFE5D2E21E3 + 8D9639EA13B0C38F428ED8B9F8FD0158 + A26F50CEDBDE38772A7E069ACC4E2203 + 39EC4288EBAB10CF1F0A54B0D8FA1B9D + +Set 2, vector#117: + key = 75757575757575757575757575757575 + IV = 0000000000000000 + stream[0..63] = 735BDE23068FCD60A416443FA9C0689C + 5239DFF5785E7852F08EE0904BEA8BD3 + 9DA1B26EC7025F91179B7B7A421B999D + 716EB9653312FCA12F4829C5012A802D + stream[192..255] = 6AFE2440ABB1AC5EBAB9246DACC8554E + B5E8F9B2A256E99AC6418BAECF68D3FF + 66087F0F82B3D3E3900527B1FC8DEB8E + 7915673DC0FAE985FFBFAECC8E4AF31D + stream[256..319] = 4BB43B3E90BF7E949B77924790EC46B3 + 522C2B413983C4B0DE143772E2A35F9D + D27EA8A3723EE996D79F6A07C957405D + 3B264FFE5A4B3EBD985A459EBF30AA8D + stream[448..511] = BB9E0A1828F1451B1D12FECCA3B9DA6B + 15F7B80BB16A2EEC694945ED3034C799 + F15D1754820F8B1AF07DC5B5F8566320 + EB1162641025DAD7C99856050A92A6C0 + xor-digest = 0C46AA24CADA3276ABED94075916980F + BB3B609B8898036BA0824403771FD240 + 51858E248985B6F6F6DB450000BF3144 + 909084962E5AD310C049EBDD37110F6E + +Set 2, vector#126: + key = 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E + IV = 0000000000000000 + stream[0..63] = 97CB4027B82651B0CB7D6CE5B391307E + 830190157E94E8F0F4A51177006AE316 + 9A0EF288684AD26E960F28CE91A74C80 + 40E153A6436100F3629E54DE8A7543AA + stream[192..255] = 730F3617B24C69D06B69ADBC0FDADAC3 + 736DE952DDD088BDEF58E33AFE75FC40 + B44A3014ACFD59A41FF785FA79F8C4C8 + 24783435F6DFB1280484CE23BBFCD13E + stream[256..319] = 2E4158B11314F19A08A6CED50ED9B751 + ABF952E7F803A60FBF497C56EE6B0016 + 1857ECE7AAAE45715405C2A1CFD5780B + 906A11E3383B9539F0B47F325F278E51 + stream[448..511] = 2AE2FFBCF916B76CF0C12B5F15312331 + 316A7CA30D1DFF8EE7307F4B9182E73F + F3951640C0E1BE2F62EC909D7F1AA193 + B9BB78BC67269BA40CC80C068123D812 + xor-digest = 96CF2189FE7BF7919EF7518DF21DEC7E + 33AC83F6002D9DC83777AFB7C883549B + 6BA6790EDF911A1C732EE1E7FEE3286F + 8A521B18A5495C93948219BD86302591 + +Set 2, vector#135: + key = 87878787878787878787878787878787 + IV = 0000000000000000 + stream[0..63] = 691C8D4B72F476352162F33DB1C2D4BF + 0093525DA58DD95F092599E3F79D7E4F + 81B241314E9C701F93CE1D5104D0BFAF + 8226B3D7F89FA3C0DF85F387264BD1B6 + stream[192..255] = 54545F7F0C033B3987DFD2F262BDA81C + 9AFCC996841E9EEDC56CA8624FF1C8BA + 7A5E9312A3F60DAD2D3AFAF374CC8801 + 54389AC3E9B671D7E3DE35CB2F5070AD + stream[256..319] = B1FF911D70563286EC15DD205E255484 + DCEE25DB2FD91C0370341266812EE245 + 3989AA76B1CF122DE8407137491A8CA6 + 470ED10B208D146C014D2598FFF29971 + stream[448..511] = 6264AB7DFD5F9B519B20BF4338BE57D4 + 70D9A2FAC0800A1C3FBFDE4BE56CEE62 + 9D9C4DD638CB9AED526A4F9DF5E6DC98 + 03AFB8CAF727D3920F48B32F7D10D3C2 + xor-digest = A703B8C516343A5A7BDA170ED35AE0E7 + 8C3AD265CE8108CFC6894EEB172018D3 + 3369BA9635576641E381B3DEB3709894 + 001B31DF53A7A21BD3365479C055DCE5 + +Set 2, vector#144: + key = 90909090909090909090909090909090 + IV = 0000000000000000 + stream[0..63] = BC29877AC7EEBA85EB0CCD51520A2DA5 + F12B9B8BF67BF79914805B7CFB885B50 + E4486A6B986D2D72F90B7FFF720BFAD9 + 9560CCDD9AC940A9FEDCE4E57B7D1D6E + stream[192..255] = 933AEB49B31D4D912A42989EF0DFB3E9 + 6E58AAFB82A9734906EFA9438C213ED7 + 650806FD669F8E8351685E6C9A80E54E + A392F7E976BCB4A9950ED13FF8525950 + stream[256..319] = 7774781474D51E242AA0ED506FADD4BF + 819F4D4B5940D3C4B9FE29137F44C240 + CC7703D605ED34756FFCE645B8B739DA + 89D101D9417331652790D11E945E022E + stream[448..511] = 8A2AE04BE3C2EC0A80543E7FB1FD5B8D + 3C37A388B926CC2E07557F69BAD423E4 + A48B7140FED20CCB311A5367B15FC7E9 + 4599882B51B4EF7553227DC645D1EB12 + xor-digest = EF83377A740FAA9F53967E618A2F83AC + 85EDD1D47AB532930C85AC7E2C06D170 + C7C11CC9D12DB35CC5A33FEE72F51306 + EE8B295D5B379F96469B0EAEDA9F7ADD + +Set 2, vector#153: + key = 99999999999999999999999999999999 + IV = 0000000000000000 + stream[0..63] = FFF8FFA5CAE356592905AB22F66D9C1B + 4C163EC0213E2485996FF1BF67C81C93 + CA37F2195D03DE03AEFE7295DAE49C1A + FFD2ADAC39212A73BFC0FD9C78946004 + stream[192..255] = 5D05324036F89E337415058019D12847 + 787875A2358C4CC99FC1A540D63D5391 + C1392A152276D94F32B0B7239BCC98F5 + D3D051371724EA9D905784FCC42AE9D1 + stream[256..319] = 1B61EB32CB5E3636A178CA53E88632F5 + E777C04BBFDCB9B737077A10E34EAD3B + 17A4A37AF5F15DF29FF69032F8187C9A + 907B0EF39060E5B828248BDED883DB7B + stream[448..511] = 643E75D6C08C2F0D0DDABF94B4963B26 + 95F45FAA44B440CDFBAA7270DCC41828 + 0AA1CCE520845A6C89B6357C2B03AA3F + 3216B26690C1804408B9B76DE64AB5D6 + xor-digest = FB18205988C1A8F57138CF821120688F + 51CB7030ABD1A9513380C6D07BD667C9 + 281D8DBC2D745F4A2F8E0E7CC2968B4D + F2A2409455BF45970A66B212C4932E59 + +Set 2, vector#162: + key = A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2 + IV = 0000000000000000 + stream[0..63] = 067EB690A95E007395D0D7557C696EF9 + 37A3FB5403F6CEC8A76612C4A8AC48DF + BA2EFE0BFAD60D6841C8D1ACD1C4C79C + ED6EEF0AF9E289BC1A88F000A553B753 + stream[192..255] = 5D4B1B0BA65454466C778EF5DEF9827E + 79AC5F042551964F3725C5CCA5E5E283 + D0ACD45088D1F67E2D85B918569D69DC + E323733E16C83D3428E2478D6F1E8766 + stream[256..319] = 2AE22BD0B6DE5565DA5E82F10BC62BE2 + 32AAFEB29190C3189320CB512C0CB544 + C173743D6BFD18E4037571F68B34987F + 6956A8E932A0B89759A691594A22CA49 + stream[448..511] = 1A563154F3CF5EBB95962A0F1DF8E37A + F0A286273ADBF25B37762DC042E70D5D + BDB28FBABBD50CC35A7590C1E9BA24B5 + 75B45A147A514C038024577B8AEBD681 + xor-digest = 17EE61E94001F77D8F3C436768E5B6BB + E202704AD61FA9DB9C32EABBD5C55729 + F9BBF56FC4686C65E4E341AF86420BDB + 24CFB0B1A9A9024A9C5C901B2059C4ED + +Set 2, vector#171: + key = ABABABABABABABABABABABABABABABAB + IV = 0000000000000000 + stream[0..63] = 545C27A12E1DD9411BC1BCF189105E8E + A2286537B78122FCE0E95DF7ACC9088D + 37461D61817CFDAECADDC8663D2FF849 + C2A1BAF9999C67537654CBA119EE1F94 + stream[192..255] = 2FFD4F6CB89432E59E4CE374AE175DFB + 99995172DD0D122854E47C4CAD5B1D1B + 4A8EB2612C8C21559D92713765DA0B86 + 1E6F75929B8B235B154B224E28A0FF0A + stream[256..319] = E3A12DC9155DE6C1040D44185B644648 + A67B787ACF472FE054F9A106496AE778 + 3DC7F313DE299E385C74D4088647BDD2 + 0198FA4A0E613BD41D6D80E5470AA7DF + stream[448..511] = 0FD043205ACD3163FCFCBCE388C8E912 + 0AF0E34F9FB2C46D9AFFBA7385D51872 + 1D53349FB44822270A863415CAB90600 + 1F412376709B7ADFD3F99EEE5A9A25A6 + xor-digest = 3365C1CDD5C7C60BBF75402829BC7582 + 4989105902270967E240EBF6ABCF3B06 + 9426AD0668D6AF70D5BD32C1C398A0D8 + 5723E976AD93CBB93BEF46E5578F3C43 + +Set 2, vector#180: + key = B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4 + IV = 0000000000000000 + stream[0..63] = 97C252D3DC5B0BC06A9E3CCFF0A88593 + 451B5207CF1299AC5061386B3706BF69 + 45FFBC060E250146F0725B096C2A3390 + DA6B4548DA3440BB6245AEAF8FC5C1BF + stream[192..255] = 965194C8A4163FD2DE3F82E4B50C0997 + 016E88EF508657CC86DABB70B185624D + D9CE3C74BD735B78BAA3D35F0C99EF85 + 8096CC51472D4B73ABE69765A77EEE47 + stream[256..319] = 89E4A8FDB029B59B61EE7619F75E8EFF + 37FBA6E011C2E669546F80301FB21CED + D58C928D6EDBB9AD1AB0BADAF88FCB19 + 2AB3473868AA7409C48CEBE690D007F8 + stream[448..511] = CDFE4AF0D25CC0CE5469422F3EF2EEE7 + 9B1365D01A36B9D159EC9730524AFD49 + 59A36A2AF2EECAC181C08F14AECE9123 + 9DBCA8A7C86601C4A4445B0036BC7A77 + xor-digest = 7DCC8F903C429AA1524A2C5B8B362AD8 + DB74C8B56A17083591D2DBA843F1FE09 + 4931DCBFDB18C59C251055B71F303287 + CA3CDF2989639EF6AA7F22496EA784B8 + +Set 2, vector#189: + key = BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD + IV = 0000000000000000 + stream[0..63] = 4C90ED8E7CDE917A218A58DE158CBF98 + DE171190BEFFCB31C1F6318578D210D9 + 5F2707EE1D6BEFC7303598061460894C + 7B2DB117E1998B24193B57F9121CF00E + stream[192..255] = 65E99A7815A4F7227A28BD253D275D1F + 8BFCBC8D72267CA221FC28E14C2B0FB5 + 8F0312BC8DADF8BAEEA838AE314C8BF9 + 4D9B292D0C8F093E3EAD6D8CCE1C4E05 + stream[256..319] = 47DD67B6D1778546BFDFFA83202A15DE + A0A02B7172D764E8EBD41D7D4C6B1AF5 + 164532367FAA52F35C63029E7EB6DF0D + 69D693FA41099EFFB3DC24A183CEC482 + stream[448..511] = BD4E150CCD803DF7A70307B306D69EBE + A04033C5889709F1E8D2FAA01BC236CB + D3EA172F53CE1C3B05FEA8874ED2F6BF + 1A7A64D69317C121B47F018C7B03B6CC + xor-digest = A72F5D1A12628451F19AB66FF5F5DDC0 + E1F6AE4E03D97E8BFA917EFA14877E83 + 6352AC191030FDAE82A0CDC57CFFBDC0 + 79D6D1309B2D228BFB050164A6ED5506 + +Set 2, vector#198: + key = C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6 + IV = 0000000000000000 + stream[0..63] = 61761E8265DCD6428005F25C66430E69 + E508B4D63E7A0746123AF7959DE08D64 + 286A22946A03D623E57C59B5FBC78185 + 84CD0FFAFCD313A9D03384BDCE947703 + stream[192..255] = 722E974795C1EAC480268959F71BCC89 + 53AE515C290C7132EC448297C0BDC7D2 + F24A9AA9BE107A241F2FEF07AAD735F2 + D98995C21A3F204916F98E68EC6B7AF5 + stream[256..319] = 0116AFB180A3E154522F4BD234997887 + EC424889A0DC92683FB924DA28E750C6 + F4F91D21146708C5130A8A6864CC3CAA + 7EFF7BA1A1F09E1B92EB2BDD103810E9 + stream[448..511] = 6AEE8931388A469AC8B5E5641E870B8A + 39D22BD7C8A61EF04F9D988F17130BD9 + 8DFBAD94C7E68C5F161B46571E8C4396 + 2109C393B9AD566778DEAC09687020A8 + xor-digest = 02E032A9A4EFABD204131C39F36E18D9 + 2777BDF68F5A6B85B1563436B7DB9AD5 + 0B4BB47C80FE8330D50A4ECCCD76FB9F + E77E53A799AD95111FEB7EA2C0CE781E + +Set 2, vector#207: + key = CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + IV = 0000000000000000 + stream[0..63] = 07ECA06EDF7435732E1A3DF0C8FD5FE5 + E9A14EC485950AF0586769584346D9C0 + F501EDA74407F0259F17533A32B98EFD + 19351EB8FDE4317CBCE57ACD76E528B1 + stream[192..255] = 06392E1B9A23F685F65E1DB264D4F9CC + C16A5840403F7AE9E261E41A0ED8F5B2 + C958B7B8CD7EF8AA1BC43FD1D88ED5B1 + 9DC0D5F99A8F0C119CDB25D5A73E593F + stream[256..319] = D520C6CB4461EA4D57BB3D93AF5CB2D1 + 222EFE518CB9FF5C1319CFBD7E751EEA + 847CB491E49FF4DEB914355C91A5D98A + 8ACE00A3798A04EAF30BA0CBB163A149 + stream[448..511] = 6194F2657A0FF3F2AA9329EBACCC660C + 121AAFE3B5CA4D45801177DB48652860 + 950B6F2BA2C88535B0EFDAABE4F7D8C0 + A07CAD3417F5495A6348E2076D83DC9C + xor-digest = C6417A693D5B27F82B115DCEE4EAAF7A + DEE0061728D59023C4E707C41B5830B0 + DCBD60E662FB7D747837D55842672948 + 4939C2C8AA1EE53899B4CEF1CC80682E + +Set 2, vector#216: + key = D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8 + IV = 0000000000000000 + stream[0..63] = 7F51E124DE7011292790C991D92AA730 + B0C28EC739CDF7497D9B0B7299A46E8D + 82ACA3593EAEB4705ED2E310940F55CA + B2D152AD7D4936BAD877AD328C1D1E57 + stream[192..255] = 67A961516B49F08D550C61443B2668B8 + 891F6FFF0D690DAEA7844757CBA0E3FC + 910209AFC9972854426FC57003C5A11E + FBA5C4D2DFDD1CEE5C7E616C61BCAD7A + stream[256..319] = C02B7A7ECEAFCED8D8EA92F53DE40A1C + BF26F0A24EF73AD81924168FB6AFA085 + ACB72647FB6B259160BC3E29D1C87912 + E4F6755B33E2E34F86E31B0D63011FF2 + stream[448..511] = 4C0CBC0DDFD5881B04D321342D8890AA + EEFFD98E3110656F60C8600D5D11CF00 + B071FF8769DD775A5C09B92EC68DC494 + 6C5C6A2E2AC5C037BFE3C00346C4112C + xor-digest = 2DF067AAF237429388B235E728B3D917 + E0EDFA56CCDC81E55F33D5A332E52D68 + 81E0DE585840AE5D93B23403F60ACD63 + EC0DF42D4DA322AFBFCD886E1A581468 + +Set 2, vector#225: + key = E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1 + IV = 0000000000000000 + stream[0..63] = ED1FDD5ADA19BECAE0FE43BD3C6813BA + A54C70D0F270407ACA453A4FDBBE4D0A + B14482673B74281385496EEBA9548DA7 + A3E9012F702E3155A3F8108D79FBBE5B + stream[192..255] = F11DC4E2CE10EA7859015A36808B45B7 + F1CB4B9C699975D15991FD8DEE2AB52C + 7F505F6D1DD2BED794D4747D6813DEC1 + F50CA56251EB814D32FE9776ADE56D22 + stream[256..319] = 8E9FF31F7A370CF111F0537B208272ED + DF88E13B871F9B5FFD1DE2EFB22BFDEA + A42F96CA49A1F1E0E2598343C953F6CB + 2B7DED9B557925A3F24CCA83329AC6FF + stream[448..511] = FE8280084BF7F75AE6917333CF6D9CD5 + 3B5EB638FD1FC47436255FC249A2C65D + 8D3CC92A5E55313A2B9FD1C3DFAB29F0 + 5393C7D50CF5F1C6F0A49E61DB3E8844 + xor-digest = F6215C116D2942069BE90B9BFA43F9F4 + DA855215E57F479472F65300220A53AB + FE9051AA965E303D9404C85D8D9F9837 + 87B5EF73D5747AD67D3B9A559068A44E + +Set 2, vector#234: + key = EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA + IV = 0000000000000000 + stream[0..63] = 19BAF0AB98DC18BFC7F18C4EA0895AE9 + 2B5CE05E692208F0540EA02AD6683539 + 00F2C6456E001C19B274C3D120B2E000 + 58A941390A93703CBFBFFDBAE6D6999B + stream[192..255] = 4F9E5B8605A975BC66575441377901F7 + DAD3A34F2EFBBF8F4F396B1357E51B51 + 3095B8874136E59B0BFC12B65846F379 + A73BEDE415D9E3CF0AE3F9C2188AED09 + stream[256..319] = DEF4E5823763FB50F9421F6415E64D19 + DD6A2857CBF578339E0CDD96A53ECFA8 + 14B0ED3F25E35999EB1B29D16BEC526F + BDCE8C7A4BA6FC5C8375673CA2E1C1B1 + stream[448..511] = F3183BF8876E91A1DC4FECFA22538777 + AB9DDDD736C9F3BCF75D583A8AB61D25 + 35E16969BD6A492A648BEA0D9A7C7424 + 12DCB9DCC6F41630634CBAD201AD1A87 + xor-digest = 1F31814EAD7F918E293366CAA6AB5A2F + 2B39C6AE5FB851B092DAFDE3607C0795 + 9F1F027689D64DCD341B34949E4DC3CF + CAA73F1F73F478B0762801321843E5DA + +Set 2, vector#243: + key = F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3 + IV = 0000000000000000 + stream[0..63] = 23B2D353FE88CED2F55235FF0C4F7057 + 9D0BC72FD108C1D87B95B879261248D2 + E6D6B536E9C5B096D7B6DD101AB1B99E + 8FE6ADC9DFFB0C183DDC23C26EDC6709 + stream[192..255] = E552DE13929EFA66F421A8DA140E418D + 1011B9A44A46D4F9A5DD24E5D68F7D38 + E4D043DF4E46D2C6D4A4E5CB8AC02708 + 3317C50A1755D50E4C74D69CA9C6FEEB + stream[256..319] = 29EEE8B0E77DD5D445805CA0A7A4D21F + 4BC45E4BD10099ABDB9A0605CC51E64B + 9FDF7EA5ABB394247729585EE934DF7F + DC3D0AC0D0D500F655083628FA7F7657 + stream[448..511] = 3020F4ECA0972842E3A14B0729BCB401 + B4AE6F110D596361A5FE7153DF1CF2D5 + 3544552FAD0B8FAD79CA28136AB58873 + D7C359CD5DF5836355C9C208F5E4779A + xor-digest = 5B55C2C11190D429E7A6DB6A498A66CC + 8759825A363E33E4AB8575D313667CA4 + 84793E2D9791A51CAEF569C27251435B + 8C4E0BE710EC1597EE6BD420AFDB8F02 + +Set 2, vector#252: + key = FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC + IV = 0000000000000000 + stream[0..63] = C739A8B50201D54EB5DAAC71D922A67F + DBEB286F909E2DB02CFF896B2253DD83 + D17A171CE063F3DB1FE898AFC8F4887B + 4776A9D645B1625B10C4C61DAA46BECD + stream[192..255] = 35A7790648C6BC56627893C32155CBDB + 879CBF8414FC294C6F69586CE081FBC8 + BFB7C23E165F28F571ADECA3C8703B5F + B2194C798E2C3CD35F9714C08772EC18 + stream[256..319] = C61B1C1FDC54873AD65FE0E452853172 + 44D446147338C6B11DB6CCC15F5C94E3 + 078C3315AD2EBDB435B7CCD322533274 + BB7B09C79473A0E2150DFA99814E07B8 + stream[448..511] = 72D3A4EAE1E7C83A78E4AC79AFE2B88A + E33ADAFCB177938429026E291C187FF0 + 0AC89BE3CA542124289FC607FED0408B + F379359A67BEBD85D9584D3A68A2C443 + xor-digest = B5C9850723BBE418AC19BC47159643ED + B1D72EF577432499F2D42A989FEEADD7 + F9955A14600D5B6D62E0DE239C265884 + 6879323E63E6DE12F2FC7B200AF789DB + +Test vectors -- set 3 +===================== + +Set 3, vector# 0: + key = 000102030405060708090A0B0C0D0E0F + IV = 0000000000000000 + stream[0..63] = A8F7E69B6940A78D136A5C154A157952 + A6E4235859E30220EA686436BB38EF53 + 9C2940556B09ECD7FEA2B0AC8307F169 + 6265A3D644281C39C9CD5E1E2F9BE4D0 + stream[192..255] = B3378F62D121027463200A43E2DDA9CF + 91F02D4810282CB9990E28D857EAC359 + D83BF4C5BFEA00EC6815E0B208B9D1F2 + E0BF3649EC4B9A25E76498F857420788 + stream[256..319] = 422F2A8ECBBDA3496414C8D1A0B72350 + AEFAC933F5D4880E2680FB0B9DBB3195 + 64E56EC9222C50F7E2608325D068F178 + 22F8A7438AF00C282C9AA0486342EF2D + stream[448..511] = F9AF33AAF2F0293C0739E052C5BF732F + B721B00CF97D0E71B755686DDD739B70 + C99E194E2181C1AD8D36D0F1B130CF79 + EA4E32F9D2BE3479758CFCCC98155A1D + xor-digest = 5C9460F674596ED739332147ACB6B2DA + 662C1A4A9C0A470E3686951E690CFB99 + 3E31BDA80E006EDC8877B3AE044759AD + AA153D767715B44E90CAFF983C93F73F + +Set 3, vector# 9: + key = 090A0B0C0D0E0F101112131415161718 + IV = 0000000000000000 + stream[0..63] = 9C75803C70528B539235C01796AA016C + 7A5ED9AF5B54F3B9232C43727318801A + A11E406463C68D6E5A3252D2BE4F387D + B8D09713EF02EB6DAB6E3A3FC2DAE936 + stream[192..255] = 41D7BD566BCC2FE295CDFC4C98C9107D + 88DB492FC1F7DDFC9421A62705EDC9E8 + 5E25AA954BD0B85AACC83957E624B1C1 + 10005D5E6DDC353DF0BD5E26D9B79E9E + stream[256..319] = B0A9151C1DBF6EDD60E4994D87FA1BB6 + 8DB1733CADD3455C1DC56981755DAC9E + 0C16A17DAE062A382881FBD5DC4B7B43 + 543039EC1A0445C07981208FD73410BF + stream[448..511] = 4887700FF78520D280E81CC71B51EC09 + E58A1FD72500538DC2A04A946C1F6525 + F9711922248FF47D06C824E40B5512C0 + 46F028F3E5CEC7252FA4BD95E890505E + xor-digest = DBB8BC98482B5C3996F0A4AAA54AB27A + 32A6E1807A8DC772BB9CCE2F8DF2B4A9 + D6F5FA93DF893ADECB74721F269F20EE + C27AB5353597E3C525A6F3C1687EB347 + +Set 3, vector# 18: + key = 12131415161718191A1B1C1D1E1F2021 + IV = 0000000000000000 + stream[0..63] = CEB8BE2CA5CEBBB8259C6ECA73FBC5F3 + D1E527A864E03CBF077FAEF9160F7393 + 7B75A6E13B056AA47AB962F6E97961D1 + B529A7FF1B580F393A1097328C1F7D0F + stream[192..255] = 5E27DB13939D6923B9B516E183D75552 + 7C19F16689D1EA89AA1E50857A9F3F0B + C90696747F21D9FC69511611836B34BA + FA6CF379D8553EE4A3010AD275B13B42 + stream[256..319] = FEBDFF94C13CCAEC8DDA7CE54DCBB5B5 + 74D33BDD8380834AB018717B6F97FA97 + D3C33727D22E53EB2C249D129169441A + FD94F6FC96B8339F2842501074808825 + stream[448..511] = 19054D7AA84BC7E662383E1215CC137E + 9F8001CCD02D895641029519DE50956B + 38264F96B531FBEB509FDBE9759CF61B + B98F599AE146B41EF6563B5D864C2B6A + xor-digest = 4520A8F72839DA7EB3EE38BF9DB60DC7 + 3ECC852DCE725F83319744A9C75BB84E + 4EF1B0D318B34D08CCE1369CACB5A0E8 + 790005C0D431D2CFD380D872FDC1146E + +Set 3, vector# 27: + key = 1B1C1D1E1F202122232425262728292A + IV = 0000000000000000 + stream[0..63] = 8AA4421F2858E1BC0125939C4F6F0E7B + 5418CF975674E57F17A4CFDA935F04F2 + 958847A37DCF577A1D35320EB01797CF + AC41EAECF1D1B19A01AD353B9B7FA387 + stream[192..255] = 24633DDE77AFC07D48A8DFADC8E25C2B + 2F3AE3297EEB3ACE8562F2406F2A1FEE + 9E9E19AC6A8D2904745C35C48FD0E4F7 + B4C7C261DAC8F536341A352C92DFE86F + stream[256..319] = D97482F65AAE9678EB9883524491FD40 + B57C31D5AAF0DB436252B3D6AABA12D1 + 80BECB346C8A4AC3710C182A084B322A + 937C68FF4C05197EDC6720128374046F + stream[448..511] = 8F604597C790334398A2F4A818D12FC3 + 63BE3E8CE33662A259F109951DE5CD60 + E2C86869C2D54E49B892125D49F1ADAF + 63ACBADDAC218AB227637675A11DE12E + xor-digest = C8BA461613A40511C3C8E324BBB93BBA + 85FDC45ACD88952EDD22E0CB30CA0C18 + 59416169DCF3679D5A094B01B4584585 + 03044E59FD3A430FD5E61AFCF40F830F + +Set 3, vector# 36: + key = 2425262728292A2B2C2D2E2F30313233 + IV = 0000000000000000 + stream[0..63] = 3FD49CEC6AD6D112A23AFBC78959FC84 + 35FA11A8279D4A9F1C385CDFD9E081F1 + 788C19D0B797C448A61E593703006882 + 3D23FA98350955A8DE1A20D2433919E4 + stream[192..255] = BDD2DF9AB00F131E6A3FA9D0F1E8E42B + 3701FBADA64D18371953486E0913525A + 8DD760FF62931B4921DD43D0536EB935 + 3200A55F58DB7BA9E428485F98D57B1C + stream[256..319] = 3240488DE5123777C17AA3858D0F45CC + D6272BF7FFC1F30010243BEEE9CEB429 + 86D22FFDC576E68DBB9E11A114720855 + B32631A84467F8F25ADC795987C8F396 + stream[448..511] = DF0B64330DCB54BF390DEB8F5B593395 + 643A2468F0DE4268148D17B94A72E039 + D7A4CA53CE5D65A5E559B5E053B609CD + 77DEC40BF2BACAF6E7E9C4B68345FBB8 + xor-digest = 5BBE5B0A961F3F7372144943273DB23C + 42D40D3DC34F6532700FFE767982F63A + C5A9AD0687EF49C9A309E1E2700FCECE + F8FA3080D15F61FE45E0E2C140D3883B + +Set 3, vector# 45: + key = 2D2E2F303132333435363738393A3B3C + IV = 0000000000000000 + stream[0..63] = 3F1DE6C663092E7C2BBD00E2FE8041A6 + D3FC3BAF6C46B783B29855BB8C58EED5 + 4E83B368329B5C1C995217770787965A + C7EF9C416197F5FD238C24BBC7B1C8BC + stream[192..255] = 27D566FFB20758DF87E6B981125572AD + D6663D95E7DF277716EC2B92166D7E4D + B30E396ECA96A0E8F020EF3185B313F8 + 1D5449B10E5CD308FCEA9860C03F7499 + stream[256..319] = C0C84E0CAE2AEDE28A5C61C21103AB2E + F338A6B1E6DABAD989F09F80242FA5A8 + 7CD49D7097BA8077FB1B5A86459663C9 + 14D6060B0701D6CBC5CA36E2D4F16391 + stream[448..511] = D2782ACBF9BF5B9A7D5F954B7E237F0C + D6D7D71BBA72D996C5FD8DE7C6534CDE + BBF63382F812B62A007C56CC0BDB705B + 540D7D7D4C3DEA49BE0B47AA17E540F1 + xor-digest = 6178A04F576C327AD94B29644222B566 + 8A973BE850685D8D3D81FA5B81594D71 + BE558CC2EF588ED0CDC515A1EE602A33 + AF27F1D64E17504971D1EE4F7D16E483 + +Set 3, vector# 54: + key = 363738393A3B3C3D3E3F404142434445 + IV = 0000000000000000 + stream[0..63] = 598EF6260979853F06470BD98FBE6C5E + 4399C6240743789F096DD2B4024116DF + 328AB398AF4C2B8D49A2484526240489 + 918A7FEB2F1E60473BDDE6F6460E05A7 + stream[192..255] = 01EEFD56FF31574CD05FFC35BA0654E2 + D621A8B937EF5738384779C5BE3AF999 + 6551ED266A2224CF40DE82A669CAF835 + 435BD74080AB3B480B91822DCB6181F8 + stream[256..319] = 568025C9091317B00E7EEAAB3AF91373 + E6239CB5C65BD626AA8A0E195EA59FEA + B24B9733EE8E58370C481196DF56DF8A + 2C8739CEEAAD38061AE32E961C4A86D2 + stream[448..511] = F5BE34F3B5790E0B28A80F9B94407866 + 092A4F3EF2A650882DF027F744A64789 + 94EB41ECC5EB79ECE17B87450F0BD48D + 8A9866F373EBBDFE78A56E1B02C86A90 + xor-digest = 13F75D32B948D7D0FA260DAD241FF615 + 8FEA17E68F8C40DB209D959F84907F05 + 4EBAFAA2F846C3805A672ABB8F574F29 + BB5F6CEAFFF71EC61C838CC4B3D577D9 + +Set 3, vector# 63: + key = 3F404142434445464748494A4B4C4D4E + IV = 0000000000000000 + stream[0..63] = ED55F27D6789B97BDCAD0F0C86C9423F + 84A6F4EBF5891173F958E77D7E0C7488 + 28D03F55223F0116F5F36C8849E408A3 + FE4D6976284D1EE93D20E4E7235BF874 + stream[192..255] = 82975D508A7AAE7A057C9E7C9044E54B + 0C40CDEF737E393A1608E9753D6DD6A9 + B93E91585D2F6D427281D3B082442997 + 5159562C1039E29558A9A8C308597C4A + stream[256..319] = A506106FDC1A32959123E20AE275CF0F + 2E8E1794794EAFF1BB8FE59CDAB5D7D4 + 7065032F250F41D1B8DA9C6AA691429B + 961EC13DBC9247D5C883BF747E3D35A6 + stream[448..511] = 5EF107C90BD579ACCDABC4FDE47C3C78 + 02D89CE984262E86227FB066425733A4 + 26771FCB37A12B2621D1AFEAC10D383C + D996A5E0616335D5F512ED9693D4962C + xor-digest = A2C4BF12F052978B03D59E2DDF54EA7D + 254FC13F7D2AF32E23F8148BC46D4878 + 127BC53590282F3C4848C9499F567375 + B30F3C22DB38941DD1199DA8B977FBB5 + +Set 3, vector# 72: + key = 48494A4B4C4D4E4F5051525354555657 + IV = 0000000000000000 + stream[0..63] = BBE36FAC29E8097873AAD0BD26C41B38 + 4AF8FEF4153744E79732CA8F7CC0130B + 470A6B1D32EB62BAC555DA88A69A7091 + 069E56A26E44447411666ACF2000DD62 + stream[192..255] = 844BEB56299A05C635682966DC15F6C0 + 8A28147C36272AA1FA136F7ECAFD7C62 + 1B23B9DBBE3C25F9F6F6B7C7C9931C56 + AC47A2CF61F504E55A5BDB6BB26E3FB5 + stream[256..319] = 6371F94DB065B3E125BD0BE899C83A1D + 01DCD89AE781E9A90E12FF48E4B6046C + AEC9DCE7DFEB3036D97E5D1AB0215BF1 + 081084EB16EE562DC9E613F3A615A9AC + stream[448..511] = 43994C6E8701610AEAE9190F3116690B + BE0950B706DA3CE1D86A6AEF4D4FB781 + 70BD84674CBF3EB6CCB0C588D53B2DD4 + A3923A6F6968C06541C422248B66D115 + xor-digest = A8B60A61C42E5ABCF9B0040BB380CE6B + 9D54F41EEAB4E0822B4A1BD9733D96DA + 7A16CBBF104C8B0CDED360099A0582F7 + 1E957ECFAB3D46591A6461E688067D46 + +Set 3, vector# 81: + key = 5152535455565758595A5B5C5D5E5F60 + IV = 0000000000000000 + stream[0..63] = 17B496C4F998676C6D57D00B973B392E + F055805142AA6B5D94F23CAD740A2290 + 11F0770C57590D1B301ADF2E6FE3B3F5 + 30F355C527330373CF8A3AAFCBE0BE2B + stream[192..255] = 6F44FD362D8A3B559E2D267AB821D91F + A43B67F59DDD7EFC8E90B8BAB6A8AFA9 + CC5120761FE0F9E047C4978E761E5146 + CA01E2431E1A44809D6E0786D5729B36 + stream[256..319] = 8EDCE30988CC80F96FF9649069688C53 + C8E6FCF57F00BB4B00E47E143B4DBFDB + C48AB43A8972EFE9FAC3E9C10858AEDF + ECA5AE463845A3C5434CE92DD03B8FCC + stream[448..511] = B8C415B59D0A661525D1A01D6B8F2BC3 + F2C9087CE11C0B49EC84205D15054495 + 550913ADA21A64684FB2257CC3612967 + 795E8560FC7D64D84A20065173788F36 + xor-digest = 66E287C220F5E9CC0973891E49A55D24 + 6A9EB718894022BD5155DF2E5A4EED4F + FA0B7DA22DF5749D5D4541B221022B31 + E3A291C8A00CEC86FCD42B888E5F626F + +Set 3, vector# 90: + key = 5A5B5C5D5E5F60616263646566676869 + IV = 0000000000000000 + stream[0..63] = F901D64CFCB8FA39F8FB8310C169063D + 9986203380EF433C3B01B72422E1DC45 + C40575CCAB09A87EC4B070A1F6DD25C4 + 3463DC8074E8E985522BE574C5DE6155 + stream[192..255] = A045600187B251BF1A4370FB00B692DF + EBBFE447A2C58EFF954941EF22DBBA29 + 4759533997C73170D8944B68BDB9223E + 20F3EDE5D9DCEF7BD3DD27CBD2457B0B + stream[256..319] = 570A1D6A383DECAD2A1AAF2F838BC7D0 + 7F2D6E7DF74D4CB36FB60C9B4BCFE562 + 96538DE0A8DE1116D5C1868BFF8C789B + 8A895429BE96101F060233F9D7A1ADCA + stream[448..511] = 52D62CC7050822CDCF515F4D8ECA66FE + BBA746A767AAA6CE4EE90ABB0836176D + B5AE9A3BECF2B8A9D405B9505A194104 + AA37349D18E2E98BD2FA21519E005494 + xor-digest = 57920FABFB00D455D515E6E95AEF8240 + 89194649C16508A6DEE47597F564D148 + A5D921791F777C175FC027C3FBA680CC + A928E2E1ACB6385EA3EE0D518170B026 + +Set 3, vector# 99: + key = 636465666768696A6B6C6D6E6F707172 + IV = 0000000000000000 + stream[0..63] = 4BDC73208B12082D1CD306ADA9E7C893 + DFF7B299BDCD08755FF58B8C99B6CFDC + 3F3D3F42F7FA1B68D925B1D6C40E8113 + 69308768D435A3EA6BC8EE6B04E244F3 + stream[192..255] = DDCC077A122916E50EFEE81E9E53AE83 + 746A9B855CCC1CFCEAFC7117D6846376 + E072ABB32C54151D8DE3354F45A0A777 + C606049F7E815D5EFE066BC2B9B5037C + stream[256..319] = A148C1449969EDC4CF0691CC486FB9BD + 657A7B00CC47D520EBE63BE0BE9EE00B + 0D33F478649CF1C69A3E37104059CC13 + BEE66E820B1F583F483BD9F69B6A0D89 + stream[448..511] = 6A6293FC21975C345F2B7D82F8EE1846 + 589AA1062046F7B794431571B9653A29 + 594054832E0AA3B9F6FA12AAC43B8845 + F5C393547EC6C2A3976613F583C3CA43 + xor-digest = 6E3B68281D2E5E408B22C7C03EFC0874 + B105E1C59DE05394B9DF75CD16154D43 + A32A02C0C52CAF74082948DF2C3F004C + 3A42A2E89BBD5D4CC29F8BE0FD0AE13C + +Set 3, vector#108: + key = 6C6D6E6F707172737475767778797A7B + IV = 0000000000000000 + stream[0..63] = AB3E96DE9D091FF94F6E41681441A788 + BFF6EEE5562505C56CC69773EC1D9B36 + 142C811EFD0AFFFF1D6FE198825DB029 + 5E2282B1836D3CB6FC3EE32A0B27E331 + stream[192..255] = 105A113A6FEDAE8A270CD144A9523848 + F5E3B1C6D0E486B331DCC230DC06D2C1 + 51512D6CEE10558C771EFF5FB9EEB3BB + F756019882B48587E027561476DAF949 + stream[256..319] = 1DFD142EA63D1752D6DABDAFCF01A141 + 76A29186AE16100D85D0FDB484A36912 + 4B70D7AEA207E95662DB08298A945B95 + C8B793C8B8CA0B9AD59F9DB593E3F825 + stream[448..511] = CB52F4D67C19887BA565EA4DE18EA6C5 + 9367553F05C364B974BD337302655A87 + 3B44FE6DB5473D0FCB34A72B15206D4E + 32546236A4D568DD69AFF50D38E57BFA + xor-digest = 4C352758A2086EB13BB10B1131FA15B3 + F889AF58C3DD4F9CF94D9847EEC1A814 + AD4D159DAC1EF7DD4F7E8AD58F40024D + A97BCA9A56F7939EE0B1F12B36205EBC + +Set 3, vector#117: + key = 75767778797A7B7C7D7E7F8081828384 + IV = 0000000000000000 + stream[0..63] = 76BB00C566E1AB42102D9DECE873C28F + D4938D8AA8D3FC052225D33D156A9A4D + 10A81FE9581B0FE0769452CDA51EFECC + 5E2D72D149E6EA4F2766F4B20FB2FD38 + stream[192..255] = 59B419C334C5221D065DB8B598F8C071 + 3F5B6D8A3D1190A1066E9CACC18DDF36 + E3CA201C72517BD170C900D5572AAA3F + 51836704EEFF50FA1B8B2EA695A50263 + stream[256..319] = 4DA1F66FC5BDAAD59E183F6E2A61A56E + 4FB5E5F8CE7D4726E39121B0F6C5DBB9 + 8FF719A52CC56870A83888C1A798AE56 + 4E8A440C59445BD33E9C6E59F51919D7 + stream[448..511] = 268824C6E8F0E50D2A1D1E92FB87F51C + 3DDC0448C13887C1F66594808B49B971 + 713E8D48B5F9077DA4267330CB4945FD + 6F4DF4F1F2EE13BA54A398C1C910B350 + xor-digest = E71462ACA328FC592014D68A489F2453 + 85E57C42C4FE16F6B213FA27B2E19C32 + 2C3053992B51316F1A6E6B12DD3C841E + BEFB0DFA389D60FE4F562400E23BF93C + +Set 3, vector#126: + key = 7E7F808182838485868788898A8B8C8D + IV = 0000000000000000 + stream[0..63] = E3A9CC680C0773F34D33696AD7BCB5E5 + BA1D70D66C78DC99DFA778B1F5A8F98B + 2D1E13A7761A6505010896618166011D + 4F3D873422B63FBE6731488C95E24E0E + stream[192..255] = 21C4CA8606898C138AF1DC62D2E96D35 + 04B7FC5EF7D8FE39081A6B83CA0B5738 + 37F028346492B429E0C9426962A2373E + 25BABB2D9A82D983092DE4ACE437627D + stream[256..319] = A7A1CE3AF5B675147B985A0B884A8C56 + 8AB6CFDF8C2CA6E1414A98DE90107270 + 38FBD1C77C904CE2025CBC708D510F78 + 001E9B387427A9210190CFA1EAF76B6E + stream[448..511] = 3D3C6A3915A16E9E8A6690D4AC61DB15 + 098B4BBCD39227ACC88E6C0B2A2A15AC + 3FF032435BAD05C525813B4940EB15EB + 21B38E6E931E7A55220F6B561C9E60F3 + xor-digest = F2C9E1E9963C2105CF32EF030552A4E5 + 550660D81620439C78F6C878E7D3AA04 + 34C933F1661B7EBA4B4C03738B0FAFAE + DFB0F6F7F472C29B9D63AA910F1385FC + +Set 3, vector#135: + key = 8788898A8B8C8D8E8F90919293949596 + IV = 0000000000000000 + stream[0..63] = F8E0E1A0BE45C2F3019BDDA7123F7CDE + ACF74FEBFBDE272B532D55F26AD1564E + 1314D5267A69BCACAB2CFDC7217662AE + EAF848FCC9C3CC7067BB93F3FBCF4D7E + stream[192..255] = EAED3FB03B7C496648B6BA14B6D1DF51 + FD88F7FF9D8EB55C0491EA603ACAA8DF + AED64FB48345472067914606DEB344FE + 21FE34182E99883CCC0CAF6C47D00B88 + stream[256..319] = A72D36A455DBE937118E13FAB653D8D3 + C29EF2E81B635C59D605F2E438269875 + F8D1545E44FF0D8918BD9F8F7EDF1A2E + B4F8150E0F9F465AE465E0D0BB319795 + stream[448..511] = 8E17D0390EB35B039A0EC1A3CF09B942 + BB637C6DD6551DFB3C2AE2A69A91FFD1 + A9D7385B1B23CF56AD63A31505781F25 + 42A43F8B3A5EC7CEF39C3C1FD5127454 + xor-digest = 39C51BFC1980990BBBF136199F509D3B + 9FBC7B41D4861AFDE9C04482E504ABAC + 4460791C91C6D32FA17A1310E3A674B4 + 566A598B6954B2970F2A82790EB7DE3A + +Set 3, vector#144: + key = 909192939495969798999A9B9C9D9E9F + IV = 0000000000000000 + stream[0..63] = DB5DB3C8AD550940017570BABC37DC40 + 5B39E1EAB64FA9A281BB545548909A26 + 0DB3CE59E35E48C6D8511C5239317152 + CEB3AEDA8675B470B221AC0439A2BFCC + stream[192..255] = 2FFC234C2391A5A44BD98FC5B89F51B5 + 05FCB12D9E65E889DA8A514031878E7F + BF87A5720A5B6FE9E6139AEF3A3CCAD8 + A1CE1DFD6592CB2CEA04618C15FAF7DB + stream[256..319] = 1D716F258E16F5ED837958F506B00B6E + B784CF3BA415EB2CD301021493A3B654 + D644A9A52BD3560B91F5224EDE24C72A + 4508CB78DFBCCE6034AE0AF26DC5F9DF + stream[448..511] = 2EB24B1048E053781B564255FEF304A6 + EAA79ED748AF357BC1FF061FB308C820 + 65083C216A31D23DC3018B03F356CF33 + 67653DCAF14194F0725012EDD674A740 + xor-digest = D76C3B99D66D3C58A1D6338658AF76BE + 4BE6099C40F0461298CF7F008BA91979 + 45A370F3794F822FC0D2637F01C3CAED + 9616CF5069D6FB261D89EB2523338CEF + +Set 3, vector#153: + key = 999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8 + IV = 0000000000000000 + stream[0..63] = C08ED7A73C376240AA50C4941C23C76E + 314B4A5BD1947AED90D9F8F95E63FDD6 + 1FC8EB7E674BF49AB44D411C5C2640DC + BDB7F7A136C49AA5897C058D3421CD57 + stream[192..255] = 9CFE56D456837A4B0CDE3F46A424F2A7 + 5FF901ADED22AF434F14AE66EA8C3446 + 61D2EEE405A37E821FC78A19F09CBB63 + 5E3CCB143D20963A3A29BEB258FFD5BD + stream[256..319] = 084AB28D158B038CE8C10D185580A2EF + 37DC167EE908BD14A041526CA91BC3ED + 95BEED5406F51E541026324FA7E395A3 + 79484319783738B3C6688107141C140F + stream[448..511] = 4CEC62A9A8547134642F790E9819C533 + 4B27054A3FA222A1C8513B9C32E8028B + A0DE4A3FF59BC76EB8730252D49E7195 + 4892F39C21A3DE11376956462C39A60A + xor-digest = 285487F7108B86E18F9EA613E65C8F5E + 46A74C5F9C6EB9E9E870B0C18F130DA4 + 1DB858320F3B1C13C047F5FD47DE5343 + 804330B03CA3AA9925C3143A184C135D + +Set 3, vector#162: + key = A2A3A4A5A6A7A8A9AAABACADAEAFB0B1 + IV = 0000000000000000 + stream[0..63] = 2DBC230A1D4077730133CB681C63803C + FE655F1F83628A49A0E74BCACC9185C9 + 32C61657E653D98D88EA9EA7D97BDDAE + D2627AAE38494630178A72ABDE934395 + stream[192..255] = 2C193A98DCA4BE342DF061456538095C + E96612F6E319A2884694A9E436A69DF8 + 35DC45A6BD750099DF49C4F5B11B8C5D + 0BF9939CBE55A39C7B1A1F7F5C55AC71 + stream[256..319] = F98313F042A755DDA8A1BD1BD6E1C6DF + E9F63282598225C7C2FB43438278B0C8 + F37985D8F99BF0E88D9C4AC2A00F9FB3 + FE2C7585574A4846D6B0F107198D9842 + stream[448..511] = 779D4449233A4790DC0FB467D720041D + C55097068381D5C06847A45973DFCDA3 + CB9570A83B7DB21AC572E5EBD33ED557 + 2DB842E7331DE32B3848149279B5E358 + xor-digest = 12A33437E6CA1F733B009817B0602B5F + 9F2785DAD2176B256BBE16F8477C425B + 1A2D29173ED791F0F9C5E8BE4D5CCF96 + 6CD8090EE59FF9880D836EBFEB62F9E2 + +Set 3, vector#171: + key = ABACADAEAFB0B1B2B3B4B5B6B7B8B9BA + IV = 0000000000000000 + stream[0..63] = 2AD70E5D6074FF8692077E8EA3A7065C + 6542A2C44DD873C2B37DF8A12FA41C7F + B460A5FD7904613CE9E013BD1B93F7C9 + 23FBDA997C538423F20C026173A6B14C + stream[192..255] = D13EC8E72786E941F00778FDACFA5725 + A492BA589423B67048912D154C21EABE + 0B44AE534B5EF031C37F1FE868D1DFE7 + 42DC82A7595F0BC8C87EBD3D8952A307 + stream[256..319] = E76DD6290D8A97E4D52FF3CFE619F2CA + 80F9FE773E9C05D214C7ED782BEAC1CA + 0375C8D0C27BEB8734682AA24B1F7895 + 0D8B27728F277E0D5F647769794C596A + stream[448..511] = 7ACA69E52A3A394093750862B4681B14 + 2F64810C39808C3796615D5D26166920 + 2F9B14336CCEFEECD0F556EB57747A66 + AFA55E3C0F65BC2D668A354A9179537E + xor-digest = 6F624E09773A90A696623CFEB4641365 + 3C80738E53FE029499F0CAC108DE703D + B72A543BB726BEC219F866338BE81A32 + E359A076D2D7ECA632D68CCCEACC9958 + +Set 3, vector#180: + key = B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3 + IV = 0000000000000000 + stream[0..63] = 3796064A20EE2432983FFEAEF238BDFA + EBE4EEC8BDD2243A12B226A4E4AB73D1 + 8A1A3B85A9A6E8C1B73D7A35E634AFF3 + 53C500FFA905BD00A57E2884D278CE48 + stream[192..255] = 668C680E63C447175F14D290474D5556 + 07877E0962775596A6F865737CCCA16C + CD5879978EFF9D6CA02F6F4406B8B801 + 5BDBDF02B188F6AC3ED46AE30D403810 + stream[256..319] = 806BB3ADD4D4AD22E1BF3BF3AEB98E85 + CC54E714B20281FAF72655963C76031B + 38F0FA6132AC9ADE3F712FEC747BF114 + 9C30C023F63E17336AB508188165DBA6 + stream[448..511] = FE2DB543BC4F4A89510FC9442B83F304 + 6A77EC2086861CA7959DF633513ABDCA + BC23AB39FBB97078202B73787404FF4C + 8F38FEC8BCE76D29A9D675F6E85FB5F5 + xor-digest = 3C6894118B379B4F625357C4FA56C8E3 + D747CFB06CECDFF2E98E52D3FE5C2C5E + A3216EAF35F6D86734162056A2CF9232 + C99E571FB7C1CAAE835FD5941DD2315D + +Set 3, vector#189: + key = BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCC + IV = 0000000000000000 + stream[0..63] = 450EF26E87C27359A71BE95BE322B656 + 6609B25A34090E97462D93369850AB4A + D61C7F9F67F9B12847899C40F0EAFA22 + 8B7A6BC7F1BC4CBA7A85F5266177B0A0 + stream[192..255] = B28AB576E12232FB85B3B854A3991526 + 8D1AED4D5A96F7E71F9E4F55AAC75993 + A9D2780C5EFA4191F506D9FFE1153B90 + 4C15394CF60269D715697D7B2163F32F + stream[256..319] = 4F1671090637F6E96159EB93B26B779C + 1C31EDF7E13B1BF23E3A67953FCD5A45 + 07DAAA1D0EB1E352C621F5C4C3CAC2E0 + 25C7631345E7C46D2BA641B915705BF7 + stream[448..511] = 78C100DE69AE45C1B10EEF08B91CC675 + 29356C7D44DF8FF8EEB2646B528F5F8F + AFCD97E36005D72185D90B52A09F38A7 + 80332270DCC28AFC85FB68390315BB20 + xor-digest = E58B774698C56AE46F5A3393EBFE1F49 + 2948859745368817D41C99EFC019F2A0 + 55EBA9182818888103681DEA9D5B07AE + E7A758D602437217B6E782419B651CE9 + +Set 3, vector#198: + key = C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5 + IV = 0000000000000000 + stream[0..63] = 96E4CF1A2758D880AADBB05273DF3E03 + 69BB35AC9B71160C0E893355DBE033FA + DAE988C496D15BE772BC5E6A46283DBC + 8A0BC506DB145FD2BF309992B37F0963 + stream[192..255] = 173473B2C415BDD25932D8A969077ACD + 6BFB6D34F92611B3264A268E5F2D2E52 + 9B9979DB645E2530B318E85D6018D82C + AA6A85F7DAF9AC9731769021708C5431 + stream[256..319] = B79574437BDAC05826104F473DBEE18A + 2B4919577599E3360189C7DF666B56B9 + C814834E8644C98C42BB05D4E54692F8 + 8FB69AA708C4051E5E0DDF4E39887BED + stream[448..511] = DB9661BDC10059CDDB501C1AB1AE9E8C + CB8E192EBABBDEE6B0CF1DD7F7B02F7E + F3ADC85AFFC380D977CE9462A5951107 + D9C20AAA87D9FC790591994B96AA4761 + xor-digest = 682D31225C8415A2FEE30A2FA180B5D8 + 10B54936B2029086C72ABBE0544054E4 + 4AEA61FB87FE50C6B6DDC28AF0932EEC + 41A5A5988E5CBDC3B9F4DFBCDE63FF40 + +Set 3, vector#207: + key = CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDE + IV = 0000000000000000 + stream[0..63] = 3B662BCC798F80C6426786FB81D2C2C9 + BCCBD772216A31A626C9F54E6577495E + 773989D830F03A230B9B2C37B6432C56 + 4550AFF6C63BB220BC4BFC4B07678580 + stream[192..255] = B63D8B4CE396950F7291360B6122FE5C + EBE69E43D3D0B4EF1F55664E9D6AFF3F + 35DEDFAB5971395403FC2A88A76FBA68 + 959F8DDE7B1D07D3D2F42FF6CA7AAF08 + stream[256..319] = A0FC0EB648C3236EF72D6C9CC38456C7 + 9FCD5E22415C7C1ED26CAB2E5E3DA6A0 + 9AA6616798B37147D3DDE6EB8AA63DDA + 31B5CDBCE315FA267B7DED7FF54CFB82 + stream[448..511] = 059FD351E88F27F793E3A1CD61B2FAE2 + 7D9AF1DAC4558BED9D1B59E339EBFF37 + 41E150E2C714E29B64075119B26793EE + BD4C854AFDE7BE17DDB3E47CB7FAC255 + xor-digest = 8A00652704B7A1D1E92D3C8D607ED02B + DD22C20142826474E40EC2E08C57DDF3 + 94D9BF77B46E74F74230C60720C5EF9D + 03264AE59599027DEE4CE5B8942971C4 + +Set 3, vector#216: + key = D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7 + IV = 0000000000000000 + stream[0..63] = B846B5C09ED72772529CE3FA897AD2A7 + 737C5B6CEE99896812A051E6EA98D584 + 54FE1BAA29AF50B50DA15B093EBC67A5 + 6DAF9F3AEB5E838177820E0056BC1909 + stream[192..255] = 0866854B2B80E405FC09F2E68C869B4B + 76043A96F4B31C3C7052A2F0C81B9DEE + 75DC8197AAAA396643A16E484E9422D6 + D4E8C3FDB9044F236B7968943994D134 + stream[256..319] = DDE30AD953EE55C9C69C794F9147D2B6 + 7C27029B6B35BB4678D383140C93D7C4 + EF1C42D66C8E1557FA9F7122423C525F + FDC06407EA90FE8DD2FB267B680BA44E + stream[448..511] = 64E714C1298785190F9C2871293D3BD9 + 84889FC5CDCE9C4E1110CDF5F0EBDDDC + 0233AA81715D55C2205CD105662E14BB + B02F937A159DE32F518D3A2A5E2B7B02 + xor-digest = 6410131CC0C81448A94959D7C42AE896 + A615AD69571488BE8310B88D90F9A221 + 1625D608D03625C8097FF29D5D16142D + E44094582DA29D09365A969C35BB1BB0 + +Set 3, vector#225: + key = E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0 + IV = 0000000000000000 + stream[0..63] = A3B43F8553B670D450AFEAE6A477AB98 + B5910C7E4FD443006A09FC88E0EF8A60 + DC951FD794F6F79A82E32D803D53D293 + 9BEE4AB66917D7D6F795EB22BB60876C + stream[192..255] = 6A1B01499E4FF44563879C3A1146CE6D + 7A1D3BEF1FE59C522A78FD8F3DE2A3D6 + 1B6D42F2FF3ABCFEEE24FAEFFB1DF01E + 8408FEE0701D1FEF5C13197194A71C6C + stream[256..319] = 5627CC31308C06067E54303BA576DAE8 + 0FEB49B0AA6DF21224F5B4FD4F0AAC03 + 363ED2188A3BBC18F4808362CFC18407 + F5A4B3E8AE93E271875ED208C77D96B8 + stream[448..511] = F45B25AAECD34C2BDE2B5735A945B10A + ACDD6BC4257FFF3BB3DCE5C0352655E0 + E855B71482A97887C74B6709F4DB006A + 6BB9F6B11E48E437063C48FA9EF6CC46 + xor-digest = 74A2A448F6FEF9F5A12BB04D6386845B + 8EF85072C29A36BD6FD84CD3E92D965E + 60600E999EF0668B2E62A0A59356AE76 + 4B5ABED9AA5BAE74BED25E56A804B687 + +Set 3, vector#234: + key = EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9 + IV = 0000000000000000 + stream[0..63] = 8381B53D5301DBE45CC692C81D125D17 + CE55CCD0C28B36B37EF77CD326CC3F22 + 9EF3C2509BD7B94F7D6A2B6CDB98A83C + 9D40B37869D27CE76A753BD80E5C2197 + stream[192..255] = BC1754703E057CBACC863E8DF3E013F4 + 6FA6798B281074ED5C7B09AD6B11BC02 + 5F509F6B398A57D9F96B1E422B4324FA + EB7C2B22C2F564862D3720973F5FEB85 + stream[256..319] = 816758D426295057847E101E0AB6EB91 + 5AFF310E44564EE0C56F064B5502EDA0 + AF568A0F07E040A54969DF2AF1D503A8 + F44FAD5FAB32585F8706CB46A9192BD4 + stream[448..511] = 72F6FBDBFAF78752767E853764FAE20D + 94ECF8F2D3AF283C6737D2411CFE1EDD + 362274C3281616E15D79549E5ED20F74 + 4DBD2BD2DC40D42AF7C87ED4E36ADB0A + xor-digest = B137019A384CB7689EB1AFA9EEEA9A8E + 597C15F897072EC491473ABFF86C5F70 + 8DB1519D72619A00CB3C1A1D0ED882A1 + 1A4EDFBB582998E8A036CC12F0A4DDCB + +Set 3, vector#243: + key = F3F4F5F6F7F8F9FAFBFCFDFEFF000102 + IV = 0000000000000000 + stream[0..63] = AC7A285AD6C329DAFC4C24B7082C56A1 + 1267101A40123E8BA3D26753FEC8E492 + D7C7FD6C6C7871AFCD2B90DEFB9ACA82 + 61A568F6566F14B98F5D7B57DBD02372 + stream[192..255] = 4E6B2E9F7CAB0E633D2988B48A5E4812 + B813629CFE4D31ED00FAD6EB2D999B06 + 810BE53BB739E8153BD8783F2500FDFC + 2E59959596276159F6D56ECAD1FC8B1B + stream[256..319] = 4269B2EEFE51858D2E16262FF9E44576 + CA0402E234B73EEE10A4388FA477996D + 0F0DEA985C2BDB06641A060228DDCAAD + 37E5BF555348A04F04A0408B15E6CCDC + stream[448..511] = 6B7FAE2235360C09C3A25901E773C13C + 559DCE935685A7695DD05466CEBF4B6E + 73AFC1705842C2212A382D8CC658A332 + FBFF451071B5A72930D92A1EB6199EC7 + xor-digest = 8A4E381256C845006DB04B853BD1A68F + DCEF054903875142BB34D09BB496E035 + 4A111C754A7DAAFEA22F173CEBDC2A46 + 950912739905FC8B8F5252F5734447E3 + +Set 3, vector#252: + key = FCFDFEFF000102030405060708090A0B + IV = 0000000000000000 + stream[0..63] = B4F871C18B4BBA8E427AB5C06985D403 + 27943574F02CA0A6BBBB27F8B72A6787 + BC8211C25FF3E180F0F1326E4D24BAA5 + 0B293633535FE6D3B1323C9188211AA2 + stream[192..255] = 4C69731BFDEF59A443688DFEBF345AF2 + 2A42CAF816824246254D1D2EC09461A5 + 77014047EB0A8A300DAE0E461CA5D536 + 1A29BA8C68A1F1BFD1ABA0FEA96BE7D9 + stream[256..319] = A86A988B6C0B65A354D43F4C342C0FF0 + 629FD4FF3C6CE05AB2B1386CFC094D0D + 16F5496D31F9DCA6F583708722FD2BAA + 248170602C87007EE428F574DA725CBB + stream[448..511] = 064CFE4EA4580AB39F27811DF269BDBF + 8AA58157C97CDF454D6B50430EA518F7 + 39F70449AE6AE35D8E50C818A2EB169E + 595B86587475EF7001945098E20B5A62 + xor-digest = 21E47DCE3950D31956CA26371008A79B + 2B79361C719DB799481294D6913006C8 + 3766DFFCF186B5A21B0C63A4D5303A89 + BE1118BD4096D5C388C88139109D9B7F + +Test vectors -- set 4 +===================== + +Set 4, vector# 0: + key = 0053A6F94C9FF24598EB3E91E4378ADD + IV = 0000000000000000 + stream[0..63] = B1D49BA344C9B6E8D439A2D0BBD004E7 + 03D49516938A231AC30F868C93233D38 + E679549FDFEFBE314D548B457946ECC5 + DFF062DA84EC561DF55F95AD1A13211C + stream[65472..65535] = B7FBF55E9E9430A0411BE9EEFFF15786 + 899FE9D89955B99396ABA845D9D19596 + 7CDA3F357216CA4E6BA9D8FDAAC41EEE + 37C48C144C143228ADA892E5649E560A + stream[65536..65599] = 811976603CBCE60AB97FD73179AB9184 + B3A2861B47AE4A6DADF3338F118920A6 + 60FB1944F04712802227C1BF7F270821 + DF4A85699D96C69CA8D13178F5EF5407 + stream[131008..131071] = 4AAB727DDFC1996787C40E969AFC6241 + CEB02F3D2DF9E72F17D4316CBAD15297 + 46E3D0A347776C6FB5523050742EC23F + 3D8EB54DA83D4721AC90B443E5B7897C + xor-digest = 575E0A4B0EE5BA64E0037B8D5B4CB1E5 + F8470765A9C43D94DE01DF68F2691376 + 1CA9768B3796E9691C73671CC35110F9 + 314CDB97773FF2C6FD81D28D030CBF83 + +Set 4, vector# 1: + key = 0558ABFE51A4F74A9DF04396E93C8FE2 + IV = 0000000000000000 + stream[0..63] = 4F02EFC370C559549DE321F2BFB5AEA6 + 5279F3855ED9E03972FC3EB954063644 + C4721C6F23CDF6DAA6CC18637E6AADB0 + 04136F6814B55FEDC3BFBE1E54CE1037 + stream[65472..65535] = A121054D6B04FC419494ED83C13ECF89 + D82E7D0372EB12E2A0BE31867E52E1D5 + C8C8E3762ABAC1546AB0E0AA023C4567 + 13515F4B743A55D00E2D09FBF816C2B1 + stream[65536..65599] = 749CCDDCB3869D30500ABDB940AA49AF + 240F1F563DCB72F27040AA81A8C0A916 + 59BB1DF537DE4E0B5CABFC606A07F926 + A78A17F6A1B60D38E707CD0D9642357F + stream[131008..131071] = D54A39330C57875A0241302C45BA9808 + 790228A0967534904FDC810504E8AAE9 + B5DE76BB50F0F53EA9488565E44B55E1 + 2F1E17CBA3F9E31B21B7C5DFC31FC0B5 + xor-digest = 56155DF6B0503D7108264B9A21C0891F + 3575D50A697C5C4DD708A733F2964446 + 18E618B627E7F34FB72CBE34BFABE5C2 + 09BDFD51AD2A8EF567BEEE56D10217E7 + +Set 4, vector# 2: + key = 0A5DB00356A9FC4FA2F5489BEE4194E7 + IV = 0000000000000000 + stream[0..63] = C31AE4DCE8209D9F78B080FDC84BA5DB + 36A71F2FEECB6E9FCBC1ACB8D295D85F + FE420068D7CCB265F5EB2F6D483ACDF5 + 1DBCCFCF113906CEF57495D437E4D62E + stream[65472..65535] = 2F7142D43A6496E6EAA53487788CEF37 + 975C73E679FE630295ABECE5A82F556D + 0A76F4676473A223A08A9EE3ED18AED6 + 27C61A48B5A7655D096B73BD4AFEB5B9 + stream[65536..65599] = 34EF0C90B6FB4580E7EDC0908CD41158 + 2D6C4101AD8D4C198693FF75F6008E71 + EC790DB82B8F1080E709770F072732C7 + A77758449A9F5B63095A5CAA86E70878 + stream[131008..131071] = CB3EFA61C5FDE9C369BD641F840983D8 + B366F631AABD1CEE7F03A5E6DAF93427 + D4ACBDEE6D005B962E325703BC3528E0 + 13FEC419EF2E4BD8B472429652F9B9EE + xor-digest = F6FF458A757C5886A04538A0F4F24022 + 20D27148FEBF791BC13D2DA63C443E72 + 68E5D547F176D945B1A12AD15BE11A04 + E819FD4D3C7E6B672EA6E3A95653A342 + +Set 4, vector# 3: + key = 0F62B5085BAE0154A7FA4DA0F34699EC + IV = 0000000000000000 + stream[0..63] = 9AF7391762B4D5793B26A1DAA5FC9DA8 + 387BBBD1301D3931F761CF2C34634AB3 + FEDDB3B4C8833077367095AC02D3D788 + 03650FAF6156D27B08A8888572BFBFBE + stream[65472..65535] = 359727441F419C0AF5E28CDCE21CBF03 + 7CFBC26D8756912EF895A601AD4FE124 + 4B044DE78C52AD0917EF641ECB82130C + 60B33DFF82A1FF4517561CCFAA42ECC3 + stream[65536..65599] = ACDB13B4B4EFFF36DE5F8BE675537D3F + 62DFBB2529511A6038E2540469FDEF7F + 5603FE388A094BA2C43592002EDAE9F4 + D4A9C73F0C229F19DCFCED6586D9CBBB + stream[131008..131071] = A6F0676C38330BC828E57E7193A05FA1 + 57836E04837DA478CEB8EDB8E0BD7F20 + A2B83BBED25799CFB3D748FF4F2E06C0 + 29FE28C1F41C93DC7816AA3D2FFE10BB + xor-digest = 997D53473AA526C2C455561DB22F4F62 + 33334FAAE8833FFE88F31A51357D1F60 + A8D0C53253F79FE499F2C5F5E5F69653 + A61520DE49381B5884595A3B3FFCE035 + +Test vectors -- set 5 +===================== + +Set 5, vector# 0: + key = 00000000000000000000000000000000 + IV = 8000000000000000 + stream[0..63] = 8C3E70D63D8541A33621912CC8385F9E + A74DFE692DBF17090767E5D7D8468D9A + A5E3FD7FE6164F731B49C92E42AAA448 + 4635D6480BA792AD013655F19C47C599 + stream[192..255] = A7CFF1A495CB9B1162767912050D4961 + 59EB515A34B1828E38B0540D3D4C3A5B + 7D0121F6C76C47FD3AF92788E694FC5E + FBB28E611DC1CD8EDAF4266E140B5147 + stream[256..319] = 806E59A52AE255D282623985344FE728 + EAF4E37DEB249603F419F31FE833ED6C + 04A9BA1D83FFE372975D132380D232F5 + 82AC8DF10C244FE2996A3F29304661E8 + stream[448..511] = 046433985C9FA18B949BCB73194176E2 + 6CBD4F854A9E1E9D81423C817220E771 + 690FCD44B3B849EEC317F4B924A8DAE0 + 13EA88D817E1170A0EDF4E650721CAD9 + xor-digest = 86FA5BDD94242A1DC63FD46744F7B74A + 48BAD4F2272EC61B0F046CDF65250538 + 4210E838D5E391F9BE4F80D68ABC379A + 3E20E90A01B5AC4004D5D518EB184A4D + +Set 5, vector# 9: + key = 00000000000000000000000000000000 + IV = 0040000000000000 + stream[0..63] = 691CB2E41CB212A1954126DAF622BFF7 + F1B10335B9775EE2D44DF8179C582583 + F0116EFE70537F4F336E7B13851BE7C7 + CADFE15702AEC662830C40EF3E5CDAB2 + stream[192..255] = 55AB6D8C6500E9743E481F589D5DE55E + 1E6C80BCB3B9A4F349EF55EF02B7A99F + 8F9EDAB2FCBC91D50D43E9A87A861846 + C44E00EEBBCF4D25449F27BE22A4A590 + stream[256..319] = 7B843EFA230A1B609B8AB310EBF53AED + 4E2DE7FDA117E3CFF2B7BCD37A7DDC0D + 2BBCDD806854AE330E09F5B55133BEAD + 73D7F6C41B3EE3EC221F12E3D2CED02E + stream[448..511] = D522C112371EDAB20456AEE8A5603920 + 5EC3451D013B50B33343A2950088EA4E + 66E282DA12455C5EF6F8BF0011A2B3DF + 06DF1B24A4979FF8966527D2F8EDF420 + xor-digest = 2943923E644706ED585C9C60A0BE5816 + 598CE026DEBC7835F02D28DF2D4C53E1 + C5DBDAB5A21182B4D5B4259A7C185593 + E0D91AD07C63F3E1E5B71EB4A6BA5091 + +Set 5, vector# 18: + key = 00000000000000000000000000000000 + IV = 0000200000000000 + stream[0..63] = A8346F600E8B4B335BDC2BF73BAFBE7C + FA9BAB3F4136DC162853184D14897412 + 88924BB8C1C3856EADA27C0A78A0CB5B + FB7D31F207378B7DD0781C51FB9AAFB9 + stream[192..255] = 3E80F6ECFF37DE8B053B0A0DF55FDDBC + 995F6C65BF11A035369F1B924884D9C8 + 357B4BE42C0329C3E30698B511FDD106 + 6073D332FC61FA1EEF4F6434833CD5A8 + stream[256..319] = 9186CB5B8DA3BCFA90C4768BD9B27BE2 + B38B9A65995C5791D8197AFE3188B53F + BA5DAFEAE2B179AC0799A25AEEF539E8 + 2AC8FBA1F8DD1DF7006B7373696F6486 + stream[448..511] = 41D8F9AD87DC7A70DF1639A2DD3E18F9 + C2FCF9C70DF45F06950D84C655150305 + 55B0A418189F3E10266CFB89CDE5C2E0 + 04A0CB031D45F7EB60E96556182D181D + xor-digest = B152B86A3A175808797E611B79505815 + 7ED95B9747EF8F449DC0FFF0F020EC72 + 35726C5CB6650B33AB88AE2B151A5E83 + 45B39F97949037002276DBE9851A5F5D + +Set 5, vector# 27: + key = 00000000000000000000000000000000 + IV = 0000001000000000 + stream[0..63] = AD1CEF2DBC992972709AD20046F141DE + 692C0A1960425A7E97CD5CA012974946 + 3F3D9F605EDEB7B104DD648C5AC03035 + 106F90B8879DA7F5AA59EB0E7B348F67 + stream[192..255] = 82693BDC426221E5250934A2089154E8 + 1B0B2D2D398E903DA3F15541C9B0BDF6 + 162AFD2E3CBCECDD3EE3E187F67225E3 + 6C425A461EABA7FC11312370F54EC727 + stream[256..319] = 83AED2E804EB005C4A6149EC98FC23BD + 287FB680FBBCD74B8E0D11BC7468D315 + EE80378859CFAC5D05A9AC03351D9286 + 2EE56C841308FE15641F14F1FF1226DD + stream[448..511] = 0DC61BC0188D40CEB3FF1F5609FAC338 + 063490128A2D90529BC769F5434DA68D + 58C5F6812D40B67303445407FF2395E9 + 57A2D4CDD9A0C7129596B36E9A187A5D + xor-digest = 3FE6B175DAB56A211E0846CE1BF146CD + 59C2FE9BEFDFF644607C68B31FB5FE54 + 31D32FAD6639011115DD4E0271573510 + 2F356FBDFF9E96CE991B28AC7234E036 + +Set 5, vector# 36: + key = 00000000000000000000000000000000 + IV = 0000000008000000 + stream[0..63] = 3A2A8DC611360210D764A8461B18CBB7 + C9E7683C14DB3AFADB084220821CC6BC + 292D4F2519CABDAE9948ED6763660B6C + B2E8F80E987E95EB15995990EE1AEC47 + stream[192..255] = E6FB803B9F92355BC191D9211AC4434E + 3B9F3EC20FB043D80A02F3082CA062C7 + 8D5AB8C56571EC113500A61908733825 + 1A1FF1A9DD11DF9154D7E7954AADEE0D + stream[256..319] = 219F88C3EB9F2ED869FB680121D463E6 + E74480406032B4C25D9ADA942F9301D3 + F93914CC09DCBA4A4699189FE033E6ED + F2809FB5A16779EB5D1483DF4CAC7BE4 + stream[448..511] = 9D8B1483CA286AFCBC5A56F6EC99205A + C40DCDE3239E3224D5F4E33B5A10785B + F4EEEA0F5AD1817C81EC9F6A3BA707F3 + 5C570217C7B55B1810E8B75CCD14ACBE + xor-digest = EA24BC34FF6BFB75F8C1CAADDF993972 + D16A8F6B54A189104A401609D5A04A6B + 615177DAA4968FEB10940C6E530447EA + B5CA0067D8EFCFD362EE8A956AC3425D + +Set 5, vector# 45: + key = 00000000000000000000000000000000 + IV = 0000000000040000 + stream[0..63] = 091021A7297C69E10442E24B0D06DBB6 + E3B30829BC0BA7AED758DF6E35487701 + 25FE1E3BED56CD212B249DFA7B040AA5 + 0087FEF28729239A272BC0CA7C82EED3 + stream[192..255] = 635ED01A5A21FFA51F18190F4908DC3E + 68E09644DCFE1E4F3C5B4B9BFD0D4AAB + 7E995DF674DE183EE261C6D42D8BEF5B + 265AB53DE0CE0781603886B90B07657B + stream[256..319] = FFE79E722B87D8767421C01FE16C7E51 + 43150CD79CEAEFC45683459F08713282 + 09FB7850F3DD1052DA55D6B34367D56E + 4D37EBD37114C3C495122529246918F5 + stream[448..511] = 5519177B672C421F4B96494222188E82 + EE7CCF83DE51397ECCDD5A5B96965BCE + 00DA24C8188475BF04E8501E1440FCA3 + B1C0B8104EC8D6DBE7341F2194F0C3F5 + xor-digest = 4850B008CEFBF281BA581C067E5224AA + 1E4920503D373335FE14B99AFEDBC883 + D24CFDC9E6D1A7DB473C9BD77845E08A + 654570A9DF0809FDF4C0D769368FC20F + +Set 5, vector# 54: + key = 00000000000000000000000000000000 + IV = 0000000000000200 + stream[0..63] = 5FD06EDB1E00BFB4465CDAFAEDD38725 + B37BDCC92558651CF9233DE0CE17CD92 + 1EBF9ABBD37C1A3DEBD7E34BBB0885B1 + E370C510811F4FAE7B3CCCB3A2FB7851 + stream[192..255] = F4611AD0A04D3281AE3312FACE53DE10 + 7BCCDC6487F4FF40FAECF0E342E04023 + 1AF3FA1EC0D97C2E497BEF918AB98EE2 + 6B88C3A41C89C1C003F43FC802F3978F + stream[256..319] = 141057F473D4ACA6AD9761DFA8F5172A + CB381F7E6E9F0AD929D16F8E86512AA3 + 8645B74020C7F86DED2713FD854E0349 + DB77BDDDD52E742B35AE362C7A7267DA + stream[448..511] = CCD2A83A7D6D353F24EA309165FC20A3 + F4AB36D578CAAC4658D08C6DE4480908 + 9C33B5F536B041C28A02A1C725FE4F9B + 2DBE4621CDAE50BE84E863F2B58AAB05 + xor-digest = 99463BD3014AAB2C07E6227763E170FC + E14CE3A1AEFDC3683193889E316C6428 + 4B0665B75E43440C0DB54771EB410223 + 5F78865DB8D4AF1206523090C3310E55 + +Set 5, vector# 63: + key = 00000000000000000000000000000000 + IV = 0000000000000001 + stream[0..63] = 55FB0B90A9FB953AE96D372BADBEBD30 + F531A454D31B669BCD8BAAD78C6C9994 + FFCCEC7ACB22F914A072DA22A617C0B7 + B1ABC91C8604D55ABB61B7AA88749C29 + stream[192..255] = 09336FD5B777A613FC490DE262D72787 + 2B066C2A5DAA406224FB1CD844A98D90 + 2E56E734FFBA09F524292C8CF655E123 + C6FC9EDDB0D794ED3351E1F15F403AAE + stream[256..319] = 7673EFDB39793122B538847DF651EDBF + 2F2DB7959EDFA01E73075F8125F47E14 + 1198528ED6F6D74F3DA5239B4FF003D5 + EBB28B9319ECE253C844A86E44892611 + stream[448..511] = A9BDEFF05695E0835C3596571177C489 + 848E6B99221F71DFA5B77F92466CBFAB + 6D3514A6B172C4F5B3E163BC5A844BC1 + 0402A13EC657FF82B23AB3B1C6793195 + xor-digest = B923DC54547EEE7A9A45E6283B7BD0E1 + 80F91F1ADD1F6A2A02835AF643BD0AB9 + 5B2C684E9867ABF5D56EA7E8583CD08D + 81572A6DC04CC290AB04BF6D917366F7 + +Test vectors -- set 6 +===================== + +Set 6, vector# 0: + key = 0053A6F94C9FF24598EB3E91E4378ADD + IV = 0D74DB42A91077DE + stream[0..63] = 75D186D6BC6905C64F1B2DFDD51F7BFC + D74F926E6976CD0A9B1A3AE9DD8CB43F + F5CD60F2541FF7F22C5C70CE07613989 + 71D8779A8423157A9136C194BD0570A4 + stream[65472..65535] = 8B043B72E059CDD5444436D4FF0440B4 + C0A7A6BD84A3D958C70B9945DBE07E08 + 889482606365B39976A538D94E12D800 + 526151C540FCFC9B46D6841D5FF330BC + stream[65536..65599] = 3460B5305B19C17C3E5B023616628F57 + D3CAC65E4065DBE6A2A3A786C1D5EE6E + 4DF2227E0D1D366756746420D1B54252 + 74B66CE57B0C05077E09DAD1BAF9AA37 + stream[131008..131071] = 7C28F9D069B6D1380AAA5A21F165DE47 + 149BB4AEEDFA75C56F52B1375878C340 + 30EB6C77CA5271E12FB28067B7A48915 + 47C7149DC562326941DE8DDA4A91AEE1 + xor-digest = 3D2DF1B3EB9EF523140A679F5A9E3650 + B37C8B34D98B6298E678753E1018E222 + 99E469418E9B0F2483FA5E655FF1785F + B6492CA458A013929973F4C8DCF3EEA3 + +Set 6, vector# 1: + key = 0558ABFE51A4F74A9DF04396E93C8FE2 + IV = 167DE44BB21980E7 + stream[0..63] = 476E2750C73856C93563B5F546F56A6A + E5F97D8888655222812E3EDDB86BB8AD + 214AE0AA107CEAB4993CC74F63932885 + F0A585C735D590D194AC90717D0BADCF + stream[65472..65535] = 3D5E36D1D7DE3AB2905F27EAD076D990 + 47AB98783EFB85EBF454256736D27126 + 69DEE9B78F1D9E26E958C3E0065FE5E2 + 91384E884A885CFFB68B29129483368E + stream[65536..65599] = 4206D36807E7935012303086A3977E83 + 740A7B00A1773F7FE76DA6A569F02056 + 1B0BD6C640573F585565D6CADA5F38A5 + 45763C7ABDA4CEA8D210BFE3F8839DEE + stream[131008..131071] = 8C044756D4610B9BA4292E3C67F166C4 + 5AD0E1D6666050BDADDF6CAA609D3E8E + 3C76CC20D1C3D0C7CD2CA6006CDB3B23 + A26901C1CB989FA74797A16FDBE03428 + xor-digest = 0EE069762C0F2E6EE05446FCA071A147 + BD23359A1A3141B550658319725EEA8B + 570AB7FF253C6735B64D3E2B99403403 + 69E597C0E1230B102E38B2CBC49EED4F + +Set 6, vector# 2: + key = 0A5DB00356A9FC4FA2F5489BEE4194E7 + IV = 1F86ED54BB2289F0 + stream[0..63] = 921FCF4983891365A7DC901924B5E24B + 50F615D59FCD61CBD27280474F3D23C9 + ADF14BACADF99E5A163B836B0CFF02C0 + FF60F4B64EE7C824C98C3481EF656894 + stream[65472..65535] = 60F32B38AC646685723EE812C1C5EB87 + 48D9C367CB5B320C79338A3F76CC095C + 9D26D5933216230E787C5C3AF2B000E4 + 1842FE39ED966F41AB36DECA719B92A3 + stream[65536..65599] = E562F28ECA6D9606D792EEBAB1694C6E + D9C0C34C59F7CE59D0BE302AF58D065F + 59F8AC95F4722143B3AC55D711381F33 + D87AF8B4FE0BEEFFA86A0E879CA84123 + stream[131008..131071] = C73A00E366B8F5FE717802F1BC843B8C + 4603B902EF2D6D65567E2F637EC99FC4 + 6321FA6F5A1CCDDE9447807EE21C0460 + 7569D1F793F413699A1E8921559AFC0C + xor-digest = 56C1143571F210037B9857DDC9A51690 + 75AB5A9DD158B141A83F50D3DD171ED7 + 8927DEC249E06212216284723C5F8988 + 38F5FC5035100BF7C1FFBD2A54CF9329 + +Set 6, vector# 3: + key = 0F62B5085BAE0154A7FA4DA0F34699EC + IV = 288FF65DC42B92F9 + stream[0..63] = 613CB0BA96AFF6CACF2A459A102A7F78 + CA985CF8FDD1474018758E36AE9923F5 + 19D13D718DAF8D7C0C109B79D5749439 + B7EFA4C4C9C8D29DC5B3888314A6816F + stream[65472..65535] = 743222D98533857C9EE38BDC410ACF39 + A823CE0C4CF2939EBE6B95DA668396BB + D823429F47F81B5D65308E83604C95B4 + E419FDB115F6E9E77B7225F14464C396 + stream[65536..65599] = F2732DC10349ABC9C212326CE22A3C2A + CF233A6EF8469659BDA3EDAACC759CD5 + 3EA71F9E338302F802C3A90793721BCF + 875CFA332B4BA4E14B41C689F1FA4C1D + stream[131008..131071] = 79037775E485C71704F308611AD1FE54 + 5B77CFFD982AF1FE0EDD3E926931AA54 + EE55F24DBC7B385ECA940EA73EE627CF + A3BD376BF5D8D7F1E8AFFE344D6A34F0 + xor-digest = 92CA61A5E18F6081082008975C842332 + 2AB413AFB1874755D7ED9742062A4C40 + 77CF6106CEC3452E2C1023013B5C5B5D + D72FAFF59B4C82FD0C5A1979B7550DC8 + + + +End of test vectors -- 2.39.5