Hello,
This patch series implements the Curve448 Diffie-Hellman protocol (RFC 7748) and the Ed448 signature scheme (RFC 8032). Although I tried to make it as close as possible to the Curve25519 and Ed25519 implementations, I had to add a few special cases, namely:
- for Curve448, eccdata directly calculates points on the Edwards curve instead of the equivalent Montgomery curve - untwisted versions of ecc_add_eh* and ecc_dup_eh are added - the point decoding for Ed448 uses a different formula to recover u and v
Also, optimized implementation of modular reduction is currently missing, which is beyond my expertise. I would appreciate any suggestions regarding that.
The patches are also available on: https://gitlab.com/dueno/nettle/commits/wip/dueno/ed448
Thanks to Hubert Kario and Nikos Mavrogiannopoulos for initial reviews.
Daiki Ueno (8): ecc-mul-test: Fix mpn_cmp calls eccdata: Emit correct ecc_Bmodq_shifted for curve448 eccdata: Redirect ecc_point_out to given stream, instead of stderr ecc: Add add_hh and dup members to ecc_curve ecc-eh-to-a, eddsa-sign: Parameterize hard-coded value Implement curve448 primitives Implement SHAKE128/256 functions Implement Ed448 signature scheme
.gitignore | 1 + Makefile.in | 18 +- curve448-eh-to-x.c | 73 + curve448-mul-g.c | 74 + curve448-mul.c | 148 + curve448.h | 58 + ecc-192.c | 5 + ecc-224.c | 5 + ecc-25519.c | 5 + ecc-256.c | 5 + ecc-384.c | 5 + ecc-448.c | 273 ++ ecc-521.c | 5 + ecc-add-eh.c | 74 +- ecc-add-ehh.c | 77 +- ecc-dup-eh.c | 55 +- ecc-eh-to-a.c | 4 +- ecc-internal.h | 57 +- ecc-mul-a-eh.c | 12 +- ecc-mul-g-eh.c | 4 +- ecc-point-mul-g.c | 7 +- ecc-point-mul.c | 2 +- ecc-point.c | 15 + eccdata.c | 183 +- ecdsa-keygen.c | 4 +- ed25519-sha512-sign.c | 15 + ed448-shake256-pubkey.c | 60 + ed448-shake256-sign.c | 92 + ed448-shake256-verify.c | 66 + eddsa-compress.c | 11 +- eddsa-decompress.c | 15 +- eddsa-expand.c | 20 +- eddsa-hash.c | 35 + eddsa-pubkey.c | 2 +- eddsa-sign.c | 18 +- eddsa-verify.c | 16 +- eddsa.h | 24 + examples/ecc-benchmark.c | 1 + nettle-internal.h | 2 +- nettle-meta-hashes.c | 2 + nettle-meta.h | 2 + nettle.texinfo | 152 +- sha3.c | 13 + sha3.h | 56 + shake128-meta.c | 42 + shake128.c | 84 + shake256-meta.c | 42 + shake256.c | 84 + testsuite/.test-rules.make | 12 + testsuite/Makefile.in | 5 +- testsuite/curve448-dh-test.c | 100 + testsuite/ecc-add-test.c | 48 +- testsuite/ecc-dup-test.c | 12 +- testsuite/ecc-mul-a-test.c | 6 +- testsuite/ecc-mul-g-test.c | 6 +- testsuite/ecdh-test.c | 16 +- testsuite/ecdsa-keygen-test.c | 16 + testsuite/ed448-test.c | 240 ++ testsuite/eddsa-compress-test.c | 137 +- testsuite/eddsa-sign-test.c | 66 +- testsuite/eddsa-verify-test.c | 49 +- testsuite/meta-hash-test.c | 2 + testsuite/shake.awk | 14 + testsuite/shake128-test.c | 6183 +++++++++++++++++++++++++++++++++++++++ testsuite/shake256-test.c | 6183 +++++++++++++++++++++++++++++++++++++++ testsuite/testutils.c | 57 +- 66 files changed, 14976 insertions(+), 199 deletions(-) create mode 100644 curve448-eh-to-x.c create mode 100644 curve448-mul-g.c create mode 100644 curve448-mul.c create mode 100644 curve448.h create mode 100644 ecc-448.c create mode 100644 ed448-shake256-pubkey.c create mode 100644 ed448-shake256-sign.c create mode 100644 ed448-shake256-verify.c create mode 100644 shake128-meta.c create mode 100644 shake128.c create mode 100644 shake256-meta.c create mode 100644 shake256.c create mode 100644 testsuite/curve448-dh-test.c create mode 100644 testsuite/ed448-test.c create mode 100755 testsuite/shake.awk create mode 100644 testsuite/shake128-test.c create mode 100644 testsuite/shake256-test.c
From: Daiki Ueno dueno@redhat.com
Signed-off-by: Daiki Ueno dueno@redhat.com --- testsuite/ecc-mul-a-test.c | 2 +- testsuite/ecc-mul-g-test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/testsuite/ecc-mul-a-test.c b/testsuite/ecc-mul-a-test.c index b206b848..245016aa 100644 --- a/testsuite/ecc-mul-a-test.c +++ b/testsuite/ecc-mul-a-test.c @@ -26,7 +26,7 @@ test_main (void) ecc->mul (ecc, p, n, ecc->g, scratch); ecc->h_to_a (ecc, 0, p, p, scratch);
- if (mpn_cmp (p, ecc->g, 2*size != 0)) + if (mpn_cmp (p, ecc->g, 2*size) != 0) die ("curve %d: ecc->mul with n = 1 failed.\n", ecc->p.bit_size);
for (n[0] = 2; n[0] <= 4; n[0]++) diff --git a/testsuite/ecc-mul-g-test.c b/testsuite/ecc-mul-g-test.c index 1c4d0c05..27239484 100644 --- a/testsuite/ecc-mul-g-test.c +++ b/testsuite/ecc-mul-g-test.c @@ -25,7 +25,7 @@ test_main (void) ecc->mul_g (ecc, p, n, scratch); ecc->h_to_a (ecc, 0, p, p, scratch);
- if (mpn_cmp (p, ecc->g, 2*size != 0)) + if (mpn_cmp (p, ecc->g, 2*size) != 0) { fprintf (stderr, "ecc->mul_g with n = 1 failed.\n"); abort ();
From: Daiki Ueno dueno@redhat.com
In curve448, the bit size of the order is slightly smaller than the one of p's. Adjust ecc_Bmodq_shifted accordingly.
Signed-off-by: Daiki Ueno dueno@redhat.com --- eccdata.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/eccdata.c b/eccdata.c index 9533d783..9be9afb5 100644 --- a/eccdata.c +++ b/eccdata.c @@ -1014,16 +1014,19 @@ output_curve (const struct ecc_curve *ecc, unsigned bits_per_limb) exit (EXIT_FAILURE); } } + } + else + printf ("#define ecc_Bmodp_shifted ecc_Bmodp\n"); + + if (bits < limb_size * bits_per_limb) + { mpz_set_ui (t, 0); - mpz_setbit (t, ecc->bit_size); + mpz_setbit (t, bits); mpz_sub (t, t, ecc->q); output_bignum ("ecc_Bmodq_shifted", t, limb_size, bits_per_limb); } else - { - printf ("#define ecc_Bmodp_shifted ecc_Bmodp\n"); - printf ("#define ecc_Bmodq_shifted ecc_Bmodq\n"); - } + printf ("#define ecc_Bmodq_shifted ecc_Bmodq\n");
mpz_add_ui (t, ecc->p, 1); mpz_fdiv_q_2exp (t, t, 1);
From: Daiki Ueno dueno@redhat.com
Signed-off-by: Daiki Ueno dueno@redhat.com --- eccdata.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/eccdata.c b/eccdata.c index 9be9afb5..97a61941 100644 --- a/eccdata.c +++ b/eccdata.c @@ -694,11 +694,11 @@ ecc_point_out (FILE *f, const struct ecc_point *p) fprintf (f, "zero"); else { - fprintf (stderr, "("); - mpz_out_str (stderr, 16, p->x); - fprintf (stderr, ",\n "); - mpz_out_str (stderr, 16, (p)->y); - fprintf (stderr, ")"); + fprintf (f, "("); + mpz_out_str (f, 16, p->x); + fprintf (f, ",\n "); + mpz_out_str (f, 16, (p)->y); + fprintf (f, ")"); } } #define ASSERT_EQUAL(p, q) do { \
From: Daiki Ueno dueno@redhat.com
This makes it possible to share the same code for curve25519 and curve448 primitives, which use different underlying formulas for addition and doubling.
Signed-off-by: Daiki Ueno dueno@redhat.com --- ecc-192.c | 4 ++++ ecc-224.c | 4 ++++ ecc-25519.c | 4 ++++ ecc-256.c | 4 ++++ ecc-384.c | 4 ++++ ecc-521.c | 4 ++++ ecc-internal.h | 8 ++++++++ ecc-mul-a-eh.c | 12 ++++++------ ecc-mul-g-eh.c | 4 ++-- testsuite/ecc-add-test.c | 43 +++++++++++++++++++++++++------------------ testsuite/ecc-dup-test.c | 10 +++++----- 11 files changed, 70 insertions(+), 31 deletions(-)
diff --git a/ecc-192.c b/ecc-192.c index 5c52b043..1fbbcded 100644 --- a/ecc-192.c +++ b/ecc-192.c @@ -155,12 +155,16 @@ const struct ecc_curve nettle_secp_192r1 = ECC_PIPPENGER_K, ECC_PIPPENGER_C,
+ ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE), ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE), + ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
+ ecc_add_jja, ecc_add_jjj, + ecc_dup_jj, ecc_mul_a, ecc_mul_g, ecc_j_to_a, diff --git a/ecc-224.c b/ecc-224.c index cdb42197..b1ff0578 100644 --- a/ecc-224.c +++ b/ecc-224.c @@ -107,12 +107,16 @@ const struct ecc_curve nettle_secp_224r1 = ECC_PIPPENGER_K, ECC_PIPPENGER_C,
+ ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE), ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE), + ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
+ ecc_add_jja, ecc_add_jjj, + ecc_dup_jj, ecc_mul_a, ecc_mul_g, ecc_j_to_a, diff --git a/ecc-25519.c b/ecc-25519.c index 92de49be..16073ecf 100644 --- a/ecc-25519.c +++ b/ecc-25519.c @@ -335,12 +335,16 @@ const struct ecc_curve _nettle_curve25519 = ECC_PIPPENGER_K, ECC_PIPPENGER_C,
+ ECC_ADD_EH_ITCH (ECC_LIMB_SIZE), ECC_ADD_EHH_ITCH (ECC_LIMB_SIZE), + ECC_DUP_EH_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_EH_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_EH_ITCH (ECC_LIMB_SIZE), ECC_EH_TO_A_ITCH (ECC_LIMB_SIZE, ECC_25519_INV_ITCH),
+ ecc_add_eh, ecc_add_ehh, + ecc_dup_eh, ecc_mul_a_eh, ecc_mul_g_eh, ecc_eh_to_a, diff --git a/ecc-256.c b/ecc-256.c index e757985c..d0870657 100644 --- a/ecc-256.c +++ b/ecc-256.c @@ -284,12 +284,16 @@ const struct ecc_curve nettle_secp_256r1 = ECC_PIPPENGER_K, ECC_PIPPENGER_C,
+ ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE), ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE), + ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
+ ecc_add_jja, ecc_add_jjj, + ecc_dup_jj, ecc_mul_a, ecc_mul_g, ecc_j_to_a, diff --git a/ecc-384.c b/ecc-384.c index a393c61f..006c4568 100644 --- a/ecc-384.c +++ b/ecc-384.c @@ -192,12 +192,16 @@ const struct ecc_curve nettle_secp_384r1 = ECC_PIPPENGER_K, ECC_PIPPENGER_C,
+ ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE), ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE), + ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
+ ecc_add_jja, ecc_add_jjj, + ecc_dup_jj, ecc_mul_a, ecc_mul_g, ecc_j_to_a, diff --git a/ecc-521.c b/ecc-521.c index 1a08f209..9d32b54e 100644 --- a/ecc-521.c +++ b/ecc-521.c @@ -120,12 +120,16 @@ const struct ecc_curve nettle_secp_521r1 = ECC_PIPPENGER_K, ECC_PIPPENGER_C,
+ ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE), ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE), + ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
+ ecc_add_jja, ecc_add_jjj, + ecc_dup_jj, ecc_mul_a, ecc_mul_g, ecc_j_to_a, diff --git a/ecc-internal.h b/ecc-internal.h index ce1e34fb..643277c0 100644 --- a/ecc-internal.h +++ b/ecc-internal.h @@ -112,6 +112,10 @@ typedef void ecc_add_func (const struct ecc_curve *ecc, const mp_limb_t *p, const mp_limb_t *q, mp_limb_t *scratch);
+typedef void ecc_dup_func (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, + mp_limb_t *scratch); + typedef void ecc_mul_g_func (const struct ecc_curve *ecc, mp_limb_t *r, const mp_limb_t *np, mp_limb_t *scratch);
@@ -168,12 +172,16 @@ struct ecc_curve unsigned short pippenger_k; unsigned short pippenger_c;
+ unsigned short add_hh_itch; unsigned short add_hhh_itch; + unsigned short dup_itch; unsigned short mul_itch; unsigned short mul_g_itch; unsigned short h_to_a_itch;
+ ecc_add_func *add_hh; ecc_add_func *add_hhh; + ecc_dup_func *dup; ecc_mul_func *mul; ecc_mul_g_func *mul_g; ecc_h_to_a_func *h_to_a; diff --git a/ecc-mul-a-eh.c b/ecc-mul-a-eh.c index cf743236..e9b22cd4 100644 --- a/ecc-mul-a-eh.c +++ b/ecc-mul-a-eh.c @@ -75,8 +75,8 @@ ecc_mul_a_eh (const struct ecc_curve *ecc, { int digit;
- ecc_dup_eh (ecc, r, r, scratch_out); - ecc_add_ehh (ecc, tp, r, pe, scratch_out); + ecc->dup (ecc, r, r, scratch_out); + ecc->add_hhh (ecc, tp, r, pe, scratch_out);
digit = (w & bit) > 0; /* If we had a one-bit, use the sum. */ @@ -107,8 +107,8 @@ table_init (const struct ecc_curve *ecc,
for (j = 2; j < size; j += 2) { - ecc_dup_eh (ecc, TABLE(j), TABLE(j/2), scratch); - ecc_add_ehh (ecc, TABLE(j+1), TABLE(j), TABLE(1), scratch); + ecc->dup (ecc, TABLE(j), TABLE(j/2), scratch); + ecc->add_hhh (ecc, TABLE(j+1), TABLE(j), TABLE(1), scratch); } }
@@ -163,11 +163,11 @@ ecc_mul_a_eh (const struct ecc_curve *ecc, bits |= w >> shift; } for (j = 0; j < ECC_MUL_A_EH_WBITS; j++) - ecc_dup_eh (ecc, r, r, scratch_out); + ecc->dup (ecc, r, r, scratch_out);
bits &= TABLE_MASK; sec_tabselect (tp, 3*ecc->p.size, table, TABLE_SIZE, bits); - ecc_add_ehh (ecc, r, tp, r, scratch_out); + ecc->add_hhh (ecc, r, tp, r, scratch_out); } #undef table #undef tp diff --git a/ecc-mul-g-eh.c b/ecc-mul-g-eh.c index a945494d..971bc6c5 100644 --- a/ecc-mul-g-eh.c +++ b/ecc-mul-g-eh.c @@ -64,7 +64,7 @@ ecc_mul_g_eh (const struct ecc_curve *ecc, mp_limb_t *r,
for (i = k; i-- > 0; ) { - ecc_dup_eh (ecc, r, r, scratch); + ecc->dup (ecc, r, r, scratch); for (j = 0; j * c < bit_rows; j++) { unsigned bits; @@ -93,7 +93,7 @@ ecc_mul_g_eh (const struct ecc_curve *ecc, mp_limb_t *r, + (2*ecc->p.size * (mp_size_t) j << c)), 1<<c, bits);
- ecc_add_eh (ecc, r, r, tp, scratch_out); + ecc->add_hh (ecc, r, r, tp, scratch_out); } } #undef tp diff --git a/testsuite/ecc-add-test.c b/testsuite/ecc-add-test.c index 54fae31f..8e88a76b 100644 --- a/testsuite/ecc-add-test.c +++ b/testsuite/ecc-add-test.c @@ -1,4 +1,5 @@ #include "testutils.h" +#include <assert.h>
void test_main (void) @@ -20,64 +21,70 @@ test_main (void) /* Zero point has x = 0, y = 1, z = 1 */ mpn_zero (z, 3*ecc->p.size); z[ecc->p.size] = z[2*ecc->p.size] = 1; - + + assert (ecc->add_hh == ecc_add_eh); + assert (ecc->add_hhh == ecc_add_ehh); + ecc_a_to_j (ecc, g, ecc->g);
- ecc_add_ehh (ecc, p, z, z, scratch); + ecc->add_hhh (ecc, p, z, z, scratch); test_ecc_mul_h (i, 0, p);
- ecc_add_eh (ecc, p, z, z, scratch); + ecc->add_hh (ecc, p, z, z, scratch); test_ecc_mul_h (i, 0, p);
- ecc_add_ehh (ecc, p, g, p, scratch); + ecc->add_hhh (ecc, p, g, p, scratch); test_ecc_mul_h (i, 1, p);
- ecc_add_eh (ecc, p, z, g, scratch); + ecc->add_hh (ecc, p, z, g, scratch); test_ecc_mul_h (i, 1, p);
- ecc_add_ehh (ecc, g2, g, p, scratch); + ecc->add_hhh (ecc, g2, g, p, scratch); test_ecc_mul_h (i, 2, g2);
- ecc_add_eh (ecc, g2, g, g, scratch); + ecc->add_hh (ecc, g2, g, g, scratch); test_ecc_mul_h (i, 2, g2);
- ecc_add_ehh (ecc, g3, g, g2, scratch); + ecc->add_hhh (ecc, g3, g, g2, scratch); test_ecc_mul_h (i, 3, g3);
- ecc_add_eh (ecc, g3, g2, g, scratch); + ecc->add_hh (ecc, g3, g2, g, scratch); test_ecc_mul_h (i, 3, g3);
- ecc_add_ehh (ecc, p, g, g3, scratch); + ecc->add_hhh (ecc, p, g, g3, scratch); test_ecc_mul_h (i, 4, p);
- ecc_add_eh (ecc, p, g3, g, scratch); + ecc->add_hh (ecc, p, g3, g, scratch); test_ecc_mul_h (i, 4, p);
- ecc_add_ehh (ecc, p, g2, g2, scratch); + ecc->add_hhh (ecc, p, g2, g2, scratch); test_ecc_mul_h (i, 4, p);
free (z); } else { + assert (ecc->add_hhh == ecc_add_jjj); + assert (ecc->dup == ecc_dup_jj); + ecc_a_to_j (ecc, g, ecc->g);
- ecc_dup_jj (ecc, g2, g, scratch); + ecc->dup (ecc, g2, g, scratch); test_ecc_mul_h (i, 2, g2);
- ecc_add_jjj (ecc, g3, g, g2, scratch); + ecc->add_hhh (ecc, g3, g, g2, scratch); test_ecc_mul_h (i, 3, g3);
- ecc_add_jjj (ecc, g3, g2, g, scratch); + ecc->add_hhh (ecc, g3, g2, g, scratch); test_ecc_mul_h (i, 3, g3);
- ecc_add_jjj (ecc, p, g, g3, scratch); + ecc->add_hhh (ecc, p, g, g3, scratch); test_ecc_mul_h (i, 4, p);
- ecc_add_jjj (ecc, p, g3, g, scratch); + ecc->add_hhh (ecc, p, g3, g, scratch); test_ecc_mul_h (i, 4, p);
- ecc_dup_jj (ecc, p, g2, scratch); + ecc->dup (ecc, p, g2, scratch); test_ecc_mul_h (i, 4, p); } free (g); diff --git a/testsuite/ecc-dup-test.c b/testsuite/ecc-dup-test.c index b92352c1..f987b165 100644 --- a/testsuite/ecc-dup-test.c +++ b/testsuite/ecc-dup-test.c @@ -21,13 +21,13 @@ test_main (void) ecc_a_to_j (ecc, g, ecc->g);
- ecc_dup_eh (ecc, p, z, scratch); + ecc->dup (ecc, p, z, scratch); test_ecc_mul_h (i, 0, p);
- ecc_dup_eh (ecc, p, g, scratch); + ecc->dup (ecc, p, g, scratch); test_ecc_mul_h (i, 2, p);
- ecc_dup_eh (ecc, p, p, scratch); + ecc->dup (ecc, p, p, scratch); test_ecc_mul_h (i, 4, p); free (z); } @@ -35,10 +35,10 @@ test_main (void) { ecc_a_to_j (ecc, g, ecc->g);
- ecc_dup_jj (ecc, p, g, scratch); + ecc->dup (ecc, p, g, scratch); test_ecc_mul_h (i, 2, p);
- ecc_dup_jj (ecc, p, p, scratch); + ecc->dup (ecc, p, p, scratch); test_ecc_mul_h (i, 4, p); } free (p);
Daiki Ueno ueno@gnu.org writes:
This makes it possible to share the same code for curve25519 and curve448 primitives, which use different underlying formulas for addition and doubling.
Makes sense. I've tried to verify using examples/ecc-benchmark that there's no performance degradation for curve25519, due to the extra indirection.
--- a/testsuite/ecc-add-test.c +++ b/testsuite/ecc-add-test.c @@ -1,4 +1,5 @@ #include "testutils.h" +#include <assert.h>
void test_main (void) @@ -20,64 +21,70 @@ test_main (void) /* Zero point has x = 0, y = 1, z = 1 */ mpn_zero (z, 3*ecc->p.size); z[ecc->p.size] = z[2*ecc->p.size] = 1;
assert (ecc->add_hh == ecc_add_eh);
assert (ecc->add_hhh == ecc_add_ehh);
- ecc_a_to_j (ecc, g, ecc->g);
ecc_add_ehh (ecc, p, z, z, scratch);
test_ecc_mul_h (i, 0, p);ecc->add_hhh (ecc, p, z, z, scratch);
I think it would be nice if the new function pointers could be used to reduce duplication in this test as well as ecc-dup-test.c. Edwards curves (curve25519, and then later curve448) should have a few additional tests (since they use "complete" formulas), involving the zero point, and add of one point to itself. But the rest of the tests could be the same for the other curves.
Would you like to give it a try, or should I?
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
I think it would be nice if the new function pointers could be used to reduce duplication in this test as well as ecc-dup-test.c.
See below patch (generated with -b, to ignore the indentation change).
To be applied on top of your patch, does it look ok?
Regards, /Niels
diff --git a/testsuite/ecc-add-test.c b/testsuite/ecc-add-test.c index 8e88a76..05a0562 100644 --- a/testsuite/ecc-add-test.c +++ b/testsuite/ecc-add-test.c @@ -15,18 +15,19 @@ test_main (void) mp_limb_t *p = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *scratch = xalloc_limbs (ECC_ADD_JJJ_ITCH(ecc->p.size));
+ ecc_a_to_j (ecc, g, ecc->g); + if (ecc->p.bit_size == 255) { mp_limb_t *z = xalloc_limbs (ecc_size_j (ecc)); + + ASSERT (ecc->add_hh == ecc_add_eh); + ASSERT (ecc->add_hhh == ecc_add_ehh); + /* Zero point has x = 0, y = 1, z = 1 */ mpn_zero (z, 3*ecc->p.size); z[ecc->p.size] = z[2*ecc->p.size] = 1;
- assert (ecc->add_hh == ecc_add_eh); - assert (ecc->add_hhh == ecc_add_ehh); - - ecc_a_to_j (ecc, g, ecc->g); - ecc->add_hhh (ecc, p, z, z, scratch); test_ecc_mul_h (i, 0, p);
@@ -45,29 +46,13 @@ test_main (void) ecc->add_hh (ecc, g2, g, g, scratch); test_ecc_mul_h (i, 2, g2);
- ecc->add_hhh (ecc, g3, g, g2, scratch); - test_ecc_mul_h (i, 3, g3); - - ecc->add_hh (ecc, g3, g2, g, scratch); - test_ecc_mul_h (i, 3, g3); - - ecc->add_hhh (ecc, p, g, g3, scratch); - test_ecc_mul_h (i, 4, p); - - ecc->add_hh (ecc, p, g3, g, scratch); - test_ecc_mul_h (i, 4, p); - - ecc->add_hhh (ecc, p, g2, g2, scratch); - test_ecc_mul_h (i, 4, p); - free (z); } else { - assert (ecc->add_hhh == ecc_add_jjj); - assert (ecc->dup == ecc_dup_jj); - - ecc_a_to_j (ecc, g, ecc->g); + ASSERT (ecc->add_hhh == ecc_add_jjj); + ASSERT (ecc->dup == ecc_dup_jj); + }
ecc->dup (ecc, g2, g, scratch); test_ecc_mul_h (i, 2, g2); @@ -86,7 +71,7 @@ test_main (void)
ecc->dup (ecc, p, g2, scratch); test_ecc_mul_h (i, 4, p); - } + free (g); free (g2); free (g3); diff --git a/testsuite/ecc-dup-test.c b/testsuite/ecc-dup-test.c index f987b16..784b8cc 100644 --- a/testsuite/ecc-dup-test.c +++ b/testsuite/ecc-dup-test.c @@ -12,35 +12,32 @@ test_main (void) mp_limb_t *p = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *scratch = xalloc_limbs (ECC_DUP_EH_ITCH(ecc->p.size));;
+ ecc_a_to_j (ecc, g, ecc->g); + if (ecc->p.bit_size == 255) { mp_limb_t *z = xalloc_limbs (ecc_size_j (ecc)); + + ASSERT (ecc->dup == ecc_dup_eh); + /* Zero point has x = 0, y = 1, z = 1 */ mpn_zero (z, 3*ecc->p.size); z[ecc->p.size] = z[2*ecc->p.size] = 1;
- ecc_a_to_j (ecc, g, ecc->g); - ecc->dup (ecc, p, z, scratch); test_ecc_mul_h (i, 0, p);
- ecc->dup (ecc, p, g, scratch); - test_ecc_mul_h (i, 2, p); - - ecc->dup (ecc, p, p, scratch); - test_ecc_mul_h (i, 4, p); free (z); } else - { - ecc_a_to_j (ecc, g, ecc->g); + ASSERT (ecc->dup == ecc_dup_jj);
ecc->dup (ecc, p, g, scratch); test_ecc_mul_h (i, 2, p);
ecc->dup (ecc, p, p, scratch); test_ecc_mul_h (i, 4, p); - } + free (p); free (g); free (scratch);
Daiki Ueno ueno@gnu.org writes:
From: Daiki Ueno dueno@redhat.com
This makes it possible to share the same code for curve25519 and curve448 primitives, which use different underlying formulas for addition and doubling.
Applied now, with some additional test cleanups. Result on branch curve448.
/Niels
From: Daiki Ueno dueno@redhat.com
This allows the same code to be reused in curve448 and Ed448.
Signed-off-by: Daiki Ueno dueno@redhat.com --- ecc-eh-to-a.c | 2 +- eddsa-sign.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ecc-eh-to-a.c b/ecc-eh-to-a.c index 2acaacb1..b9d412d2 100644 --- a/ecc-eh-to-a.c +++ b/ecc-eh-to-a.c @@ -73,7 +73,7 @@ ecc_eh_to_a (const struct ecc_curve *ecc, at all? Full reduction mod p is maybe sufficient. */ unsigned shift; assert (ecc->p.bit_size == 255); - shift = 252 - GMP_NUMB_BITS * (ecc->p.size - 1); + shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); cy = mpn_submul_1 (r, ecc->q.m, ecc->p.size, r[ecc->p.size-1] >> shift); assert (cy < 2); diff --git a/eddsa-sign.c b/eddsa-sign.c index c1404f67..e5dc0e9d 100644 --- a/eddsa-sign.c +++ b/eddsa-sign.c @@ -92,7 +92,7 @@ _eddsa_sign (const struct ecc_curve *ecc, unsigned shift; mp_limb_t cy; assert (ecc->p.bit_size == 255); - shift = 252 - GMP_NUMB_BITS * (ecc->p.size - 1); + shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); cy = mpn_submul_1 (sp, ecc->q.m, ecc->p.size, sp[ecc->p.size-1] >> shift); assert (cy < 2);
From: Daiki Ueno dueno@redhat.com
This patch adds the necessary primitives for "curve448": namely, addition, doubling, scalar multiplication of the generator or an arbitrary point, inversion, and square root.
Although the interface is similar to curve25519, the implementation is slightly different. For curve25519, the Pippenger tables are generated through the coordinates on the Montgomery curve. On the other hand, for curve448 the tables are directly generated from the coordinates on the corresponding Edwards curve ("edwards448").
The motivation behind this is that the formula converting the Edwards curve coordinates to the Montgomery curve coordinates is simpler than the other way around for curve448/edwards448.
Signed-off-by: Daiki Ueno dueno@redhat.com --- .gitignore | 1 + Makefile.in | 10 +- curve448-eh-to-x.c | 73 ++++++++++++ curve448-mul-g.c | 74 ++++++++++++ curve448-mul.c | 148 +++++++++++++++++++++++ curve448.h | 58 +++++++++ ecc-448.c | 272 ++++++++++++++++++++++++++++++++++++++++++ ecc-add-eh.c | 74 +++++++++++- ecc-add-ehh.c | 77 +++++++++++- ecc-dup-eh.c | 55 ++++++++- ecc-eh-to-a.c | 2 +- ecc-internal.h | 31 ++++- ecc-point-mul-g.c | 7 +- ecc-point-mul.c | 2 +- ecc-point.c | 15 +++ eccdata.c | 160 ++++++++++++++++++++++++- ecdsa-keygen.c | 4 +- examples/ecc-benchmark.c | 1 + nettle.texinfo | 59 +++++++-- testsuite/.test-rules.make | 3 + testsuite/Makefile.in | 2 +- testsuite/curve448-dh-test.c | 100 ++++++++++++++++ testsuite/ecc-add-test.c | 9 +- testsuite/ecc-dup-test.c | 2 +- testsuite/ecc-mul-a-test.c | 4 +- testsuite/ecc-mul-g-test.c | 4 +- testsuite/ecdh-test.c | 16 ++- testsuite/ecdsa-keygen-test.c | 16 +++ testsuite/testutils.c | 14 ++- 29 files changed, 1248 insertions(+), 45 deletions(-) create mode 100644 curve448-eh-to-x.c create mode 100644 curve448-mul-g.c create mode 100644 curve448-mul.c create mode 100644 curve448.h create mode 100644 ecc-448.c create mode 100644 testsuite/curve448-dh-test.c
diff --git a/.gitignore b/.gitignore index 1f3b92b9..92af6a46 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,7 @@ core /ecc-384.h /ecc-521.h /ecc-25519.h +/ecc-448.h /nettle.aux /nettle.cp /nettle.cps diff --git a/Makefile.in b/Makefile.in index 7e8f29c2..2cf44a31 100644 --- a/Makefile.in +++ b/Makefile.in @@ -168,7 +168,7 @@ hogweed_SOURCES = sexp.c sexp-format.c \ ecc-mod.c ecc-mod-inv.c \ ecc-mod-arith.c ecc-pp1-redc.c ecc-pm1-redc.c \ ecc-192.c ecc-224.c ecc-256.c ecc-384.c ecc-521.c \ - ecc-25519.c \ + ecc-25519.c ecc-448.c \ ecc-size.c ecc-j-to-a.c ecc-a-to-j.c \ ecc-dup-jj.c ecc-add-jja.c ecc-add-jjj.c \ ecc-eh-to-a.c \ @@ -179,6 +179,7 @@ hogweed_SOURCES = sexp.c sexp-format.c \ ecc-ecdsa-sign.c ecdsa-sign.c \ ecc-ecdsa-verify.c ecdsa-verify.c ecdsa-keygen.c \ curve25519-mul-g.c curve25519-mul.c curve25519-eh-to-x.c \ + curve448-mul-g.c curve448-mul.c curve448-eh-to-x.c \ eddsa-compress.c eddsa-decompress.c eddsa-expand.c \ eddsa-hash.c eddsa-pubkey.c eddsa-sign.c eddsa-verify.c \ ed25519-sha512-pubkey.c \ @@ -189,7 +190,7 @@ OPT_SOURCES = fat-x86_64.c fat-arm.c mini-gmp.c HEADERS = aes.h arcfour.h arctwo.h asn1.h blowfish.h \ base16.h base64.h bignum.h buffer.h camellia.h cast128.h \ cbc.h ccm.h chacha.h chacha-poly1305.h ctr.h \ - curve25519.h des.h des-compat.h dsa.h dsa-compat.h eax.h \ + curve25519.h curve448.h des.h des-compat.h dsa.h dsa-compat.h eax.h \ ecc-curve.h ecc.h ecdsa.h eddsa.h \ gcm.h gosthash94.h hmac.h \ knuth-lfib.h \ @@ -363,6 +364,9 @@ ecc-521.h: eccdata.stamp ecc-25519.h: eccdata.stamp ./eccdata$(EXEEXT_FOR_BUILD) 255 14 6 $(GMP_NUMB_BITS) > $@T && mv $@T $@
+ecc-448.h: eccdata.stamp + ./eccdata$(EXEEXT_FOR_BUILD) 448 64 6 $(GMP_NUMB_BITS) > $@T && mv $@T $@ + eccdata.stamp: eccdata.c $(MAKE) eccdata$(EXEEXT_FOR_BUILD) echo stamp > eccdata.stamp @@ -373,6 +377,7 @@ ecc-256.$(OBJEXT): ecc-256.h ecc-384.$(OBJEXT): ecc-384.h ecc-521.$(OBJEXT): ecc-521.h ecc-25519.$(OBJEXT): ecc-25519.h +ecc-448.$(OBJEXT): ecc-448.h
.asm.$(OBJEXT): $(srcdir)/asm.m4 machine.m4 config.m4 $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 $< >$*.s @@ -626,6 +631,7 @@ distcheck: dist clean-here: -rm -f $(TARGETS) *.$(OBJEXT) *.s *.so *.dll *.a \ ecc-192.h ecc-224.h ecc-256.h ecc-384.h ecc-521.h ecc-25519.h \ + ecc-448.h \ eccdata$(EXEEXT_FOR_BUILD) eccdata.stamp -rm -rf .lib libnettle.stamp libhogweed.stamp
diff --git a/curve448-eh-to-x.c b/curve448-eh-to-x.c new file mode 100644 index 00000000..478e5b67 --- /dev/null +++ b/curve448-eh-to-x.c @@ -0,0 +1,73 @@ +/* curve448-eh-to-x.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <string.h> + +#include "curve448.h" + +#include "ecc.h" +#include "ecc-internal.h" + +/* Transform a point on the edwards448 Edwards curve to the curve448 + Montgomery curve, and return the x coordinate. */ +void +curve448_eh_to_x (mp_limb_t *xp, const mp_limb_t *p, mp_limb_t *scratch) +{ +#define vp (p + ecc->p.size) +#define t0 scratch +#define t1 (scratch + ecc->p.size) +#define t2 (scratch + 2*ecc->p.size) + + const struct ecc_curve *ecc = &_nettle_curve448; + mp_limb_t cy; + + /* If u = U/W and v = V/W are the coordiantes of the point on + edwards448 we get the curve448 x coordinate as + + x = v^2 / u^2 = (V/W)^2 / (U/W)^2 = (V/U)^2 + */ + /* Needs a total of 9*size storage. */ + ecc->p.invert (&ecc->p, t0, p, t1 + ecc->p.size); + ecc_modp_mul (ecc, t1, t0, vp); + ecc_modp_mul (ecc, t2, t1, t1); + + cy = mpn_sub_n (xp, t2, ecc->p.m, ecc->p.size); + cnd_copy (cy, xp, t2, ecc->p.size); +#undef vp +#undef t0 +#undef t1 +#undef t2 +} diff --git a/curve448-mul-g.c b/curve448-mul-g.c new file mode 100644 index 00000000..a396595a --- /dev/null +++ b/curve448-mul-g.c @@ -0,0 +1,74 @@ +/* curve448-mul-g.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <string.h> + +#include "curve448.h" + +#include "ecc.h" +#include "ecc-internal.h" + +/* Intended to be compatible with NaCl's crypto_scalarmult_base. */ +void +curve448_mul_g (uint8_t *r, const uint8_t *n) +{ + const struct ecc_curve *ecc = &_nettle_curve448; + uint8_t t[CURVE448_SIZE]; + mp_limb_t *scratch; + mp_size_t itch; + +#define ng scratch +#define x (scratch + 3*ecc->p.size) +#define scratch_out (scratch + 4*ecc->p.size) + + memcpy (t, n, sizeof(t)); + t[0] &= ~3; + t[CURVE448_SIZE-1] = (t[CURVE448_SIZE-1] & 0x7f) | 0x80; + + itch = 5*ecc->p.size + ecc->mul_g_itch; + scratch = gmp_alloc_limbs (itch); + + mpn_set_base256_le (x, ecc->p.size, t, CURVE448_SIZE); + + ecc_mul_g_eh (ecc, ng, x, scratch_out); + curve448_eh_to_x (x, ng, scratch_out); + + mpn_get_base256_le (r, CURVE448_SIZE, x, ecc->p.size); + gmp_free_limbs (scratch, itch); +#undef ng +#undef x +#undef scratch_out +} diff --git a/curve448-mul.c b/curve448-mul.c new file mode 100644 index 00000000..afa814a4 --- /dev/null +++ b/curve448-mul.c @@ -0,0 +1,148 @@ +/* curve448-mul.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <string.h> + +#include "curve448.h" + +#include "ecc.h" +#include "ecc-internal.h" + +/* Intended to be compatible with NaCl's crypto_scalarmult. */ +void +curve448_mul (uint8_t *q, const uint8_t *n, const uint8_t *p) +{ + const struct ecc_curve *ecc = &_nettle_curve448; + mp_size_t itch; + mp_limb_t *scratch; + int i; + mp_limb_t cy; + + /* FIXME: Could save some more scratch space, e.g., by letting BB + overlap C, D, and CB overlap A, D. And possibly reusing some of + x2, z2, x3, z3. */ +#define x1 scratch +#define x2 (scratch + ecc->p.size) +#define z2 (scratch + 2*ecc->p.size) +#define x3 (scratch + 3*ecc->p.size) +#define z3 (scratch + 4*ecc->p.size) + +#define A (scratch + 5*ecc->p.size) +#define B (scratch + 6*ecc->p.size) +#define C (scratch + 7*ecc->p.size) +#define D (scratch + 8*ecc->p.size) +#define AA (scratch + 9*ecc->p.size) +#define BB (scratch + 10*ecc->p.size) +#define E (scratch + 10*ecc->p.size) /* Overlap BB */ +#define DA (scratch + 9*ecc->p.size) /* Overlap AA */ +#define CB (scratch + 10*ecc->p.size) /* Overlap BB */ + +#define a24 39081 + + itch = ecc->p.size * 14; + scratch = gmp_alloc_limbs (itch); + + /* Note that 255 % GMP_NUMB_BITS == 0 isn't supported, so x1 always + holds at least 256 bits. */ + mpn_set_base256_le (x1, ecc->p.size, p, CURVE448_SIZE); + + /* Initialize, x2 = x1, z2 = 1 */ + mpn_copyi (x2, x1, ecc->p.size); + z2[0] = 1; + mpn_zero (z2+1, ecc->p.size - 1); + + /* Get x3, z3 from doubling. Since bit 447 is forced to 1. */ + ecc_modp_add (ecc, A, x2, z2); + ecc_modp_sub (ecc, B, x2, z2); + ecc_modp_sqr (ecc, AA, A); + ecc_modp_sqr (ecc, BB, B); + ecc_modp_mul (ecc, x3, AA, BB); + ecc_modp_sub (ecc, E, AA, BB); + ecc_modp_addmul_1 (ecc, AA, E, a24); + ecc_modp_mul (ecc, z3, E, AA); + + for (i = 446; i >= 2; i--) + { + int bit = (n[i/8] >> (i & 7)) & 1; + + cnd_swap (bit, x2, x3, 2*ecc->p.size); + + /* Formulas from RFC 7748. We compute new coordinates in + memory-address order, since mul and sqr clobbers higher + limbs. */ + ecc_modp_add (ecc, A, x2, z2); + ecc_modp_sub (ecc, B, x2, z2); + ecc_modp_sqr (ecc, AA, A); + ecc_modp_sqr (ecc, BB, B); + ecc_modp_mul (ecc, x2, AA, BB); + ecc_modp_sub (ecc, E, AA, BB); /* Last use of BB */ + ecc_modp_addmul_1 (ecc, AA, E, a24); + ecc_modp_add (ecc, C, x3, z3); + ecc_modp_sub (ecc, D, x3, z3); + ecc_modp_mul (ecc, z2, E, AA); /* Last use of E and AA */ + ecc_modp_mul (ecc, DA, D, A); /* Last use of D, A. FIXME: could + let CB overlap. */ + ecc_modp_mul (ecc, CB, C, B); + + ecc_modp_add (ecc, C, DA, CB); + ecc_modp_sqr (ecc, x3, C); + ecc_modp_sub (ecc, C, DA, CB); + ecc_modp_sqr (ecc, DA, C); + ecc_modp_mul (ecc, z3, DA, x1); + + /* FIXME: Could be combined with the loop's initial cnd_swap. */ + cnd_swap (bit, x2, x3, 2*ecc->p.size); + } + /* Do the 2 low zero bits, just duplicating x2 */ + for ( ; i >= 0; i--) + { + ecc_modp_add (ecc, A, x2, z2); + ecc_modp_sub (ecc, B, x2, z2); + ecc_modp_sqr (ecc, AA, A); + ecc_modp_sqr (ecc, BB, B); + ecc_modp_mul (ecc, x2, AA, BB); + ecc_modp_sub (ecc, E, AA, BB); + ecc_modp_addmul_1 (ecc, AA, E, a24); + ecc_modp_mul (ecc, z2, E, AA); + } + ecc->p.invert (&ecc->p, x3, z2, z3 + ecc->p.size); + ecc_modp_mul (ecc, z3, x2, x3); + cy = mpn_sub_n (x2, z3, ecc->p.m, ecc->p.size); + cnd_copy (cy, x2, z3, ecc->p.size); + mpn_get_base256_le (q, CURVE448_SIZE, x2, ecc->p.size); + + gmp_free_limbs (scratch, itch); +} diff --git a/curve448.h b/curve448.h new file mode 100644 index 00000000..a27831e5 --- /dev/null +++ b/curve448.h @@ -0,0 +1,58 @@ +/* curve448.h + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#ifndef NETTLE_CURVE448_H +#define NETTLE_CURVE448_H + +#include "nettle-types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Name mangling */ +#define curve448_mul_g nettle_curve448_mul_g +#define curve448_mul nettle_curve448_mul + +#define CURVE448_SIZE 56 + +void +curve448_mul_g (uint8_t *q, const uint8_t *n); + +void +curve448_mul (uint8_t *q, const uint8_t *n, const uint8_t *p); + +#ifdef __cplusplus +} +#endif + +#endif /* NETTLE_CURVE448_H */ diff --git a/ecc-448.c b/ecc-448.c new file mode 100644 index 00000000..a70ff7cc --- /dev/null +++ b/ecc-448.c @@ -0,0 +1,272 @@ +/* ecc-448.c + + Arithmetic and tables for curve448, + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <assert.h> + +#include "ecc.h" +#include "ecc-internal.h" + +#define USE_REDC 0 + +#include "ecc-448.h" + +/* Needs 2*ecc->size limbs at rp, and 2*ecc->size additional limbs of + scratch space. No overlap allowed. */ +static void +ecc_mod_pow_2k (const struct ecc_modulo *m, + mp_limb_t *rp, const mp_limb_t *xp, + unsigned k, mp_limb_t *tp) +{ + if (k & 1) + { + ecc_mod_sqr (m, rp, xp); + k--; + } + else + { + ecc_mod_sqr (m, tp, xp); + ecc_mod_sqr (m, rp, tp); + k -= 2; + } + while (k > 0) + { + ecc_mod_sqr (m, tp, rp); + ecc_mod_sqr (m, rp, tp); + k -= 2; + } +} + +/* Computes a^{(p-3)/4} = a^{2^446-2^222-1} mod m. Needs 9 * n scratch + space. */ +static void +ecc_mod_pow_446m224m1 (const struct ecc_modulo *p, + mp_limb_t *rp, const mp_limb_t *ap, + mp_limb_t *scratch) +{ +#define t0 scratch +#define t1 (scratch + 3*ECC_LIMB_SIZE) +#define t2 (scratch + 6*ECC_LIMB_SIZE) + + ecc_mod_sqr (p, rp, ap); /* a^2 */ + ecc_mod_mul (p, t0, ap, rp); /* a^3 */ + ecc_mod_sqr (p, rp, t0); /* a^6 */ + ecc_mod_mul (p, t0, ap, rp); /* a^{2^3-1} */ + ecc_mod_pow_2k (p, rp, t0, 3, t2); /* a^{2^6-2^3} */ + ecc_mod_mul (p, t1, t0, rp); /* a^{2^6-1} */ + ecc_mod_pow_2k (p, rp, t1, 3, t2); /* a^{2^9-2^3} */ + ecc_mod_mul (p, t1, t0, rp); /* a^{2^9-1} */ + ecc_mod_pow_2k (p, t0, t1, 9, t2); /* a^{2^18-2^9} */ + ecc_mod_mul (p, rp, t1, t0); /* a^{2^18-1} */ + ecc_mod_sqr (p, t1, rp); /* a^{2^19-2} */ + ecc_mod_mul (p, t0, ap, t1); /* a^{2^19-1} */ + ecc_mod_pow_2k (p, t1, t0, 18, t2); /* a^{2^37-2^18} */ + ecc_mod_mul (p, t0, rp, t1); /* a^{2^37-1} */ + ecc_mod_pow_2k (p, t1, t0, 37, t2); /* a^{2^74-2^37} */ + ecc_mod_mul (p, rp, t0, t1); /* a^{2^74-1} */ + ecc_mod_pow_2k (p, t1, rp, 37, t2); /* a^{2^111-2^37} */ + ecc_mod_mul (p, rp, t0, t1); /* a^{2^111-1} */ + ecc_mod_pow_2k (p, t1, rp, 111, t2); /* a^{2^222-2^111} */ + ecc_mod_mul (p, t0, rp, t1); /* a^{2^222-1} */ + ecc_mod_sqr (p, t1, t0); /* a^{2^223-2} */ + ecc_mod_mul (p, rp, ap, t1); /* a^{2^223-1} */ + ecc_mod_pow_2k (p, t1, rp, 223, t2); /* a^{2^446-2^223} */ + ecc_mod_mul (p, rp, t0, t1); /* a^{2^446-2^222-1} */ +#undef t0 +#undef t1 +#undef t2 +} + +/* Needs 9*ECC_LIMB_SIZE scratch space. */ +#define ECC_448_INV_ITCH (9*ECC_LIMB_SIZE) + +static void ecc_448_inv (const struct ecc_modulo *p, + mp_limb_t *rp, const mp_limb_t *ap, + mp_limb_t *scratch) +{ +#define t0 scratch + + ecc_mod_pow_446m224m1 (p, rp, ap, scratch); /* a^{2^446-2^222-1} */ + ecc_mod_sqr (p, t0, rp); /* a^{2^447-2^223-2} */ + ecc_mod_sqr (p, rp, t0); /* a^{2^448-2^224-4} */ + ecc_mod_mul (p, t0, ap, rp); /* a^{2^448-2^224-3} */ + + mpn_copyi (rp, t0, ECC_LIMB_SIZE); /* FIXME: Eliminate copy? */ +#undef t0 +} + +/* First, do a canonical reduction, then check if zero */ +static int +ecc_448_zero_p (const struct ecc_modulo *p, mp_limb_t *xp) +{ + mp_limb_t cy; + mp_limb_t w; + mp_size_t i; + cy = mpn_sub_n (xp, xp, p->m, ECC_LIMB_SIZE); + cnd_add_n (cy, xp, p->m, ECC_LIMB_SIZE); + + for (i = 0, w = 0; i < ECC_LIMB_SIZE; i++) + w |= xp[i]; + return w == 0; +} + +/* Compute x such that x^2 = u/v (mod p). Returns one on success, zero + on failure. + + To avoid a separate inversion, we use a trick of djb's, to + compute the candidate root as + + x = (u/v)^{(p+1)/4} = u^3 v (u^5 v^3)^{(p-3)/4}. +*/ + +/* Needs 4*n space + scratch for ecc_mod_pow_446m224m1. */ +#define ECC_448_SQRT_ITCH (13*ECC_LIMB_SIZE) + +static int +ecc_448_sqrt(const struct ecc_modulo *p, mp_limb_t *rp, + const mp_limb_t *up, const mp_limb_t *vp, + mp_limb_t *scratch) +{ +#define u3v scratch +#define u5v3 (scratch + ECC_LIMB_SIZE) +#define u5v3p (scratch + 2*ECC_LIMB_SIZE) +#define u2 (scratch + 2*ECC_LIMB_SIZE) +#define u3 (scratch + 3*ECC_LIMB_SIZE) +#define uv (scratch + 2*ECC_LIMB_SIZE) +#define u2v2 (scratch + 3*ECC_LIMB_SIZE) + +#define scratch_out (scratch + 4 * ECC_LIMB_SIZE) + +#define x2 scratch +#define vx2 (scratch + ECC_LIMB_SIZE) +#define t0 (scratch + 2*ECC_LIMB_SIZE) + + /* Live values */ + ecc_mod_sqr (p, u2, up); /* u2 */ + ecc_mod_mul (p, u3, u2, up); /* u3 */ + ecc_mod_mul (p, u3v, u3, vp); /* u3v */ + ecc_mod_mul (p, uv, up, vp); /* u3v, uv */ + ecc_mod_sqr (p, u2v2, uv); /* u3v, u2v2 */ + ecc_mod_mul (p, u5v3, u3v, u2v2); /* u3v, u5v3 */ + ecc_mod_pow_446m224m1 (p, u5v3p, u5v3, scratch_out); /* u3v, u5v3p */ + ecc_mod_mul (p, rp, u5v3p, u3v); /* none */ + + /* If square root exists, have v x^2 = u */ + ecc_mod_sqr (p, x2, rp); + ecc_mod_mul (p, vx2, x2, vp); + ecc_mod_sub (p, t0, vx2, up); + + return ecc_448_zero_p (p, t0); + +#undef u3v +#undef u5v3 +#undef u5v3p +#undef u2 +#undef u3 +#undef uv +#undef u2v2 +#undef scratch_out +#undef x2 +#undef vx2 +#undef t0 +} + +const struct ecc_curve _nettle_curve448 = +{ + { + 448, + ECC_LIMB_SIZE, + ECC_BMODP_SIZE, + 0, + ECC_448_INV_ITCH, + ECC_448_SQRT_ITCH, + + ecc_p, + ecc_Bmodp, + ecc_Bmodp_shifted, + NULL, + ecc_pp1h, + + ecc_mod, /* FIXME: Implement optimized mod function */ + ecc_mod, /* FIXME: Implement optimized reduce function */ + ecc_448_inv, + ecc_448_sqrt, + }, + { + 446, + ECC_LIMB_SIZE, + ECC_BMODQ_SIZE, + 0, + ECC_MOD_INV_ITCH (ECC_LIMB_SIZE), + 0, + + ecc_q, + ecc_Bmodq, + ecc_Bmodq_shifted, + NULL, + ecc_qp1h, + + ecc_mod, /* FIXME: Implement optimized mod function */ + ecc_mod, /* FIXME: Implement optimized reduce function */ + ecc_mod_inv, + NULL, + }, + + 0, /* No redc */ + ECC_PIPPENGER_K, + ECC_PIPPENGER_C, + + ECC_ADD_EH_ITCH (ECC_LIMB_SIZE), + ECC_ADD_EHH_ITCH (ECC_LIMB_SIZE), + ECC_DUP_EH_ITCH (ECC_LIMB_SIZE), + ECC_MUL_A_EH_ITCH (ECC_LIMB_SIZE), + ECC_MUL_G_EH_ITCH (ECC_LIMB_SIZE), + ECC_EH_TO_A_ITCH (ECC_LIMB_SIZE, ECC_448_INV_ITCH), + + ecc_add_eh_untwisted, + ecc_add_ehh_untwisted, + ecc_dup_eh_untwisted, + ecc_mul_a_eh, + ecc_mul_g_eh, + ecc_eh_to_a, + + ecc_b, + ecc_g, + NULL, + ecc_unit, + ecc_table +}; diff --git a/ecc-add-eh.c b/ecc-add-eh.c index c07ff49a..0b0a1457 100644 --- a/ecc-add-eh.c +++ b/ecc-add-eh.c @@ -73,11 +73,11 @@ ecc_add_eh (const struct ecc_curve *ecc, #define C (scratch) #define D (scratch + 1*ecc->p.size) #define T (scratch + 2*ecc->p.size) -#define E (scratch + 3*ecc->p.size) +#define E (scratch + 3*ecc->p.size) #define B (scratch + 4*ecc->p.size) #define F D #define G E - + ecc_modp_mul (ecc, C, x1, x2); ecc_modp_mul (ecc, D, y1, y2); ecc_modp_add (ecc, x3, x1, y1); @@ -91,7 +91,7 @@ ecc_add_eh (const struct ecc_curve *ecc, ecc_modp_add (ecc, C, D, C); /* ! */ ecc_modp_sqr (ecc, B, z1); ecc_modp_sub (ecc, F, B, E); - ecc_modp_add (ecc, G, B, E); + ecc_modp_add (ecc, G, B, E);
/* x3 */ ecc_modp_mul (ecc, B, G, T); /* ! */ @@ -105,3 +105,71 @@ ecc_add_eh (const struct ecc_curve *ecc, ecc_modp_mul (ecc, B, F, G); mpn_copyi (z3, B, ecc->p.size); } + +void +ecc_add_eh_untwisted (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q, + mp_limb_t *scratch) +{ +#define x1 p +#define y1 (p + ecc->p.size) +#define z1 (p + 2*ecc->p.size) + +#define x2 q +#define y2 (q + ecc->p.size) + +#define x3 r +#define y3 (r + ecc->p.size) +#define z3 (r + 2*ecc->p.size) + + /* Formulas (from djb, + http://www.hyperelliptic.org/EFD/g1p/auto-edwards-projective.html#doubling-d...): + + Computation Operation Live variables + + C = x1*x2 mul C + D = y1*y2 mul C, D + T = (x1+y1)(x2+y2) - C - D C, D, T + E = b*C*D 2 mul C, E, T (Replace C <-- D - C) + B = z1^2 sqr B, C, E, T + F = B - E B, C, E, F, T + G = B + E C, F, G, T + x3 = z1*F*T 3 mul C, F, G, T + y3 = z1*G*(D-C) 2 mul F, G + z3 = F*G mul + */ +#define C (scratch) +#define D (scratch + 1*ecc->p.size) +#define T (scratch + 2*ecc->p.size) +#define E (scratch + 3*ecc->p.size) +#define B (scratch + 4*ecc->p.size) +#define F D +#define G E + + ecc_modp_mul (ecc, C, x1, x2); + ecc_modp_mul (ecc, D, y1, y2); + ecc_modp_add (ecc, x3, x1, y1); + ecc_modp_add (ecc, y3, x2, y2); + ecc_modp_mul (ecc, T, x3, y3); + ecc_modp_sub (ecc, T, T, C); + ecc_modp_sub (ecc, T, T, D); + ecc_modp_mul (ecc, x3, C, D); + ecc_modp_mul (ecc, E, x3, ecc->b); + + ecc_modp_sub (ecc, C, D, C); + ecc_modp_sqr (ecc, B, z1); + ecc_modp_sub (ecc, F, B, E); + ecc_modp_add (ecc, G, B, E); + + /* x3 */ + ecc_modp_mul (ecc, B, F, T); + ecc_modp_mul (ecc, x3, B, z1); + + /* y3 */ + ecc_modp_mul (ecc, B, G, z1); + ecc_modp_mul (ecc, y3, B, C); /* Clobbers z1 in case r == p. */ + + /* z3 */ + ecc_modp_mul (ecc, B, F, G); + mpn_copyi (z3, B, ecc->p.size); +} diff --git a/ecc-add-ehh.c b/ecc-add-ehh.c index 8fdc9ec3..027a6e77 100644 --- a/ecc-add-ehh.c +++ b/ecc-add-ehh.c @@ -78,7 +78,7 @@ ecc_add_ehh (const struct ecc_curve *ecc, #define C scratch #define D (scratch + ecc->p.size) #define T (scratch + 2*ecc->p.size) -#define E (scratch + 3*ecc->p.size) +#define E (scratch + 3*ecc->p.size) #define A (scratch + 4*ecc->p.size) #define B (scratch + 5*ecc->p.size) #define F D @@ -94,7 +94,7 @@ ecc_add_ehh (const struct ecc_curve *ecc, ecc_modp_mul (ecc, x3, C, D); ecc_modp_mul (ecc, E, x3, ecc->b); ecc_modp_add (ecc, C, D, C); /* ! */ - + ecc_modp_mul (ecc, A, z1, z2); ecc_modp_sqr (ecc, B, A);
@@ -113,3 +113,76 @@ ecc_add_ehh (const struct ecc_curve *ecc, ecc_modp_mul (ecc, B, F, G); mpn_copyi (z3, B, ecc->p.size); } + +void +ecc_add_ehh_untwisted (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q, + mp_limb_t *scratch) +{ +#define x1 p +#define y1 (p + ecc->p.size) +#define z1 (p + 2*ecc->p.size) + +#define x2 q +#define y2 (q + ecc->p.size) +#define z2 (q + 2*ecc->p.size) + +#define x3 r +#define y3 (r + ecc->p.size) +#define z3 (r + 2*ecc->p.size) + + /* Formulas (from djb, + http://www.hyperelliptic.org/EFD/g1p/auto-edwards-projective.html#addition-a...): + + Computation Operation Live variables + + C = x1*x2 mul C + D = y1*y2 mul C, D + T = (x1+y1)(x2+y2) - C - D, mul C, D, T + E = b*C*D 2 mul C, E, T (Replace C <-- D - C) + A = z1*z2 mul A, C, E, T + B = A^2 sqr A, B, C, E, T + F = B - E A, B, C, E, F, T + G = B + E A, C, F, G, T + x3 = A*F*T 2 mul A, C, G + y3 = A*G*(D-C) 2 mul F, G + z3 = F*G mul + */ +#define C scratch +#define D (scratch + ecc->p.size) +#define T (scratch + 2*ecc->p.size) +#define E (scratch + 3*ecc->p.size) +#define A (scratch + 4*ecc->p.size) +#define B (scratch + 5*ecc->p.size) +#define F D +#define G E + + ecc_modp_mul (ecc, C, x1, x2); + ecc_modp_mul (ecc, D, y1, y2); + ecc_modp_add (ecc, A, x1, y1); + ecc_modp_add (ecc, B, x2, y2); + ecc_modp_mul (ecc, T, A, B); + ecc_modp_sub (ecc, T, T, C); + ecc_modp_sub (ecc, T, T, D); + ecc_modp_mul (ecc, x3, C, D); + ecc_modp_mul (ecc, E, x3, ecc->b); + ecc_modp_sub (ecc, C, D, C); + + ecc_modp_mul (ecc, A, z1, z2); + ecc_modp_sqr (ecc, B, A); + + ecc_modp_sub (ecc, F, B, E); + ecc_modp_add (ecc, G, B, E); + + /* x3 */ + ecc_modp_mul (ecc, B, F, T); + ecc_modp_mul (ecc, x3, B, A); + + /* y3 */ + ecc_modp_mul (ecc, B, G, C); + ecc_modp_mul (ecc, y3, B, A); + + /* z3 */ + ecc_modp_mul (ecc, B, F, G); + mpn_copyi (z3, B, ecc->p.size); +} diff --git a/ecc-dup-eh.c b/ecc-dup-eh.c index 2a5c5a07..1b9a3f69 100644 --- a/ecc-dup-eh.c +++ b/ecc-dup-eh.c @@ -36,7 +36,7 @@ #include "ecc.h" #include "ecc-internal.h"
-/* Double a point on an Edwards curve, in homogeneous coordinates */ +/* Double a point on a twisted Edwards curve, in homogeneous coordinates */ void ecc_dup_eh (const struct ecc_curve *ecc, mp_limb_t *r, const mp_limb_t *p, @@ -103,3 +103,56 @@ ecc_dup_eh (const struct ecc_curve *ecc, ecc_modp_mul (ecc, b, e, j); mpn_copyi (r + 2*ecc->p.size, b, ecc->p.size); } + +void +ecc_dup_eh_untwisted (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, + mp_limb_t *scratch) +{ + /* Formulas (from djb, + http://www.hyperelliptic.org/EFD/g1p/auto-edwards-projective.html#doubling-d...): + + Computation Operation Live variables + + b = (x+y)^2 sqr b + c = x^2 sqr b, c + d = y^2 sqr b, c, d + e = c+d b, c, d, e + h = z^2 sqr b, c, d, e, h + j = e-2*h b, c, d, e, j + x' = (b-e)*j mul c, d, e, j + y' = e*(c-d) mul e, j + z' = e*j mul + */ +#define b scratch +#define c (scratch + ecc->p.size) +#define d (scratch + 2*ecc->p.size) +#define e (scratch + 3*ecc->p.size) +#define j (scratch + 4*ecc->p.size) + + /* b */ + ecc_modp_add (ecc, e, p, p + ecc->p.size); + ecc_modp_sqr (ecc, b, e); + + /* c */ + ecc_modp_sqr (ecc, c, p); + /* d */ + ecc_modp_sqr (ecc, d, p + ecc->p.size); + /* h, can use r as scratch, even for in-place operation. */ + ecc_modp_sqr (ecc, r, p + 2*ecc->p.size); + /* e, */ + ecc_modp_add (ecc, e, c, d); + /* j */ + ecc_modp_add (ecc, r, r, r); + ecc_modp_sub (ecc, j, e, r); + + /* x' */ + ecc_modp_sub (ecc, b, b, e); + ecc_modp_mul (ecc, r, b, j); + /* y' */ + ecc_modp_sub (ecc, c, c, d); /* Redundant */ + ecc_modp_mul (ecc, r + ecc->p.size, e, c); + /* z' */ + ecc_modp_mul (ecc, b, e, j); + mpn_copyi (r + 2*ecc->p.size, b, ecc->p.size); +} diff --git a/ecc-eh-to-a.c b/ecc-eh-to-a.c index b9d412d2..a2f10649 100644 --- a/ecc-eh-to-a.c +++ b/ecc-eh-to-a.c @@ -72,7 +72,7 @@ ecc_eh_to_a (const struct ecc_curve *ecc, duplicates end of ecc_25519_modq. FIXME: Is this needed at all? Full reduction mod p is maybe sufficient. */ unsigned shift; - assert (ecc->p.bit_size == 255); + assert (ecc->p.bit_size == 255 || ecc->p.bit_size == 448); shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); cy = mpn_submul_1 (r, ecc->q.m, ecc->p.size, r[ecc->p.size-1] >> shift); diff --git a/ecc-internal.h b/ecc-internal.h index 643277c0..b58093ee 100644 --- a/ecc-internal.h +++ b/ecc-internal.h @@ -62,6 +62,9 @@ #define ecc_dup_eh _nettle_ecc_dup_eh #define ecc_add_eh _nettle_ecc_add_eh #define ecc_add_ehh _nettle_ecc_add_ehh +#define ecc_dup_eh_untwisted _nettle_ecc_dup_eh_untwisted +#define ecc_add_eh_untwisted _nettle_ecc_add_eh_untwisted +#define ecc_add_ehh_untwisted _nettle_ecc_add_ehh_untwisted #define ecc_mul_g _nettle_ecc_mul_g #define ecc_mul_a _nettle_ecc_mul_a #define ecc_mul_g_eh _nettle_ecc_mul_g_eh @@ -72,12 +75,14 @@ #define sec_tabselect _nettle_sec_tabselect #define sec_modinv _nettle_sec_modinv #define curve25519_eh_to_x _nettle_curve25519_eh_to_x +#define curve448_eh_to_x _nettle_curve448_eh_to_x
/* Keep this structure internal for now. It's misnamed (since it's really implementing the equivalent twisted Edwards curve, with different coordinates). And we're not quite ready to provide general ecc operations over an arbitrary type of curve. */ extern const struct ecc_curve _nettle_curve25519; +extern const struct ecc_curve _nettle_curve448;
#define ECC_MAX_SIZE ((521 + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS)
@@ -327,7 +332,7 @@ ecc_add_jjj (const struct ecc_curve *ecc, mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q, mp_limb_t *scratch);
-/* Point doubling on an Edwards curve, with homogeneous +/* Point doubling on a twisted Edwards curve, with homogeneous cooordinates. */ void ecc_dup_eh (const struct ecc_curve *ecc, @@ -344,6 +349,21 @@ ecc_add_ehh (const struct ecc_curve *ecc, mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q, mp_limb_t *scratch);
+void +ecc_dup_eh_untwisted (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, + mp_limb_t *scratch); + +void +ecc_add_eh_untwisted (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q, + mp_limb_t *scratch); + +void +ecc_add_ehh_untwisted (const struct ecc_curve *ecc, + mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q, + mp_limb_t *scratch); + /* Computes N * the group generator. N is an array of ecc_size() limbs. It must be in the range 0 < N < group order, then R != 0, and the algorithm can work without any intermediate values getting @@ -389,6 +409,10 @@ void curve25519_eh_to_x (mp_limb_t *xp, const mp_limb_t *p, mp_limb_t *scratch);
+void +curve448_eh_to_x (mp_limb_t *xp, const mp_limb_t *p, + mp_limb_t *scratch); + /* Current scratch needs: */ #define ECC_MOD_INV_ITCH(size) (2*(size)) #define ECC_J_TO_A_ITCH(size) (5*(size)) @@ -413,8 +437,11 @@ curve25519_eh_to_x (mp_limb_t *xp, const mp_limb_t *p, #define ECC_MUL_A_EH_ITCH(size) \ (((3 << ECC_MUL_A_EH_WBITS) + 10) * (size)) #endif -#define ECC_ECDSA_SIGN_ITCH(size) (12*(size)) +#define ECC_ECDSA_KEYGEN_ITCH(size) (11*(size)) +#define ECC_ECDSA_SIGN_ITCH(size) (13*(size)) #define ECC_MOD_RANDOM_ITCH(size) (size) #define ECC_HASH_ITCH(size) (1+(size))
+#define ECC_MAX(x,y) ((x) > (y) ? (x) : (y)) + #endif /* NETTLE_ECC_INTERNAL_H_INCLUDED */ diff --git a/ecc-point-mul-g.c b/ecc-point-mul-g.c index 46fceb81..02cce0d7 100644 --- a/ecc-point-mul-g.c +++ b/ecc-point-mul-g.c @@ -44,15 +44,14 @@ void ecc_point_mul_g (struct ecc_point *r, const struct ecc_scalar *n) { - TMP_DECL(scratch, mp_limb_t, 3*ECC_MAX_SIZE + ECC_MUL_G_ITCH (ECC_MAX_SIZE)); const struct ecc_curve *ecc = r->ecc; mp_limb_t size = ecc->p.size; - mp_size_t itch = 3*size + ecc->mul_g_itch; + mp_size_t itch = 3*size + ECC_MAX(ecc->mul_g_itch, ecc->h_to_a_itch); + mp_limb_t *scratch = gmp_alloc_limbs (itch);
assert (n->ecc == ecc);
- TMP_ALLOC (scratch, itch); - ecc->mul_g (ecc, scratch, n->p, scratch + 3*size); ecc->h_to_a (ecc, 0, r->p, scratch, scratch + 3*size); + gmp_free_limbs (scratch, itch); } diff --git a/ecc-point-mul.c b/ecc-point-mul.c index 2be1c5c4..deb7d8ad 100644 --- a/ecc-point-mul.c +++ b/ecc-point-mul.c @@ -46,7 +46,7 @@ ecc_point_mul (struct ecc_point *r, const struct ecc_scalar *n, { const struct ecc_curve *ecc = r->ecc; mp_limb_t size = ecc->p.size; - mp_size_t itch = 3*size + ecc->mul_itch; + mp_size_t itch = 3*size + ECC_MAX(ecc->mul_itch, ecc->h_to_a_itch); mp_limb_t *scratch = gmp_alloc_limbs (itch);
assert (n->ecc == ecc); diff --git a/ecc-point.c b/ecc-point.c index 31e3115a..4733b344 100644 --- a/ecc-point.c +++ b/ecc-point.c @@ -85,6 +85,21 @@ ecc_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y) mpz_mul_ui (rhs, rhs, 121665); mpz_clear (x2); } + else if (p->ecc->p.bit_size == 448) + { + /* curve448 special case. FIXME: Do in some cleaner way? */ + mpz_t x2, d; + mpz_init (x2); + mpz_init_set_ui (d, 39081); + mpz_mul (x2, x, x); /* x^2 */ + mpz_mul (d, d, x2); /* 39081 x^2 */ + mpz_set_ui (rhs, 1); + mpz_submul (rhs, d, lhs); /* 1 - 39081 x^2 y^2 */ + /* Check that x^2 + y^2 = 1 - 39081 x^2 y^2 */ + mpz_add (lhs, x2, lhs); /* x^2 + y^2 */ + mpz_clear (d); + mpz_clear (x2); + } else { /* Check that y^2 = x^3 - 3*x + b (mod p) */ diff --git a/eccdata.c b/eccdata.c index 97a61941..5c0f3d49 100644 --- a/eccdata.c +++ b/eccdata.c @@ -54,7 +54,9 @@ enum ecc_type /* y^2 = x^3 - 3x + b (mod p) */ ECC_TYPE_WEIERSTRASS, /* y^2 = x^3 + b x^2 + x */ - ECC_TYPE_MONTGOMERY + ECC_TYPE_MONTGOMERY, + /* x^2 + y^2 = 1 + b x^2 y^2 (mod p) */ + ECC_TYPE_EDWARDS };
struct ecc_curve @@ -140,13 +142,27 @@ ecc_set (struct ecc_point *r, const struct ecc_point *p) mpz_set (r->y, p->y); }
+static void +ecc_add (const struct ecc_curve *ecc, + struct ecc_point *r, const struct ecc_point *p, const struct ecc_point *q); + /* Needs to support in-place operation. */ static void ecc_dup (const struct ecc_curve *ecc, struct ecc_point *r, const struct ecc_point *p) { if (ecc_zero_p (p)) - ecc_set_zero (r); + { + ecc_set_zero (r); + if (ecc->type == ECC_TYPE_EDWARDS) + { + mpz_set_ui (r->x, 0); + mpz_set_ui (r->y, 1); + } + } + + else if (ecc->type == ECC_TYPE_EDWARDS) + ecc_add (ecc, r, p, p);
else { @@ -217,6 +233,55 @@ ecc_add (const struct ecc_curve *ecc, else if (ecc_zero_p (q)) ecc_set (r, p);
+ else if (ecc->type == ECC_TYPE_EDWARDS) + { + mpz_t s, t, x, y; + mpz_init (s); + mpz_init (t); + mpz_init (x); + mpz_init (y); + + /* t = d p_x p_y q_x q_y */ + mpz_mul (t, ecc->b, p->x); + mpz_mod (t, t, ecc->p); + mpz_mul (t, t, p->y); + mpz_mod (t, t, ecc->p); + mpz_mul (t, t, q->x); + mpz_mod (t, t, ecc->p); + mpz_mul (t, t, q->y); + mpz_mod (t, t, ecc->p); + + /* x' = (p_x q_y + q_x p_y) / (1 + t) */ + mpz_mul (x, p->x, q->y); + mpz_mod (x, x, ecc->p); + mpz_addmul (x, q->x, p->y); + mpz_mod (x, x, ecc->p); + mpz_add_ui (s, t, 1); + mpz_invert (s, s, ecc->p); + mpz_mul (x, x, s); + mpz_mod (x, x, ecc->p); + + /* y' = (p_y q_y - p_x q_x) / (1 - t) */ + mpz_mul (y, p->y, q->y); + mpz_mod (y, y, ecc->p); + mpz_submul (y, p->x, q->x); + mpz_mod (y, y, ecc->p); + mpz_set_ui (s, 1); + mpz_sub (s, s, t); + mpz_invert (s, s, ecc->p); + mpz_mul (y, y, s); + mpz_mod (y, y, ecc->p); + + mpz_swap (x, r->x); + mpz_swap (y, r->y); + r->is_zero = mpz_cmp_ui (r->x, 0) == 0 && mpz_cmp_ui (r->y, 1) == 0; + + mpz_clear (s); + mpz_clear (t); + mpz_clear (x); + mpz_clear (y); + } + else if (mpz_cmp (p->x, q->x) == 0) { if (mpz_cmp (p->y, q->y) == 0) @@ -604,6 +669,89 @@ ecc_curve_init (struct ecc_curve *ecc, unsigned bit_size)
break;
+ case 448: + /* curve448, y^2 = x^3 + 156326 x^2 + x (mod p), with p = 2^{448} - 2^{224} - 1. + + According to RFC 7748, this is 4-isogenious to the Edwards + curve called "edwards448" + + x^2 + y^2 = 1 - 39081 x^2 y^2 (mod p). + + And since the constant is not a square, the Edwards formulas + should be "complete", with no special cases needed for + doubling, neutral element, negatives, etc. + + Generator is x = 5, with y coordinate + 355293926785568175264127502063783334808976399387714271831880898435169088786967410002932673765864550910142774147268105838985595290606362, + according to + + x = Mod(5, 2^448-2^224-1); sqrt(x^3 + 156326*x^2 + x) + + in PARI/GP. Also, in PARI notation, + + curve448 = Mod([0, 156326, 0, 1, 0], 2^448-2^224-1) + */ + ecc_curve_init_str (ecc, ECC_TYPE_EDWARDS, + "fffffffffffffffffffffffffffffff" + "ffffffffffffffffffffffffeffffff" + "fffffffffffffffffffffffffffffff" + "fffffffffffffffffff", + /* -39081 mod p, from PARI/GP + c = Mod(-39081, p) + */ + "fffffffffffffffffffffffffffffff" + "ffffffffffffffffffffffffeffffff" + "fffffffffffffffffffffffffffffff" + "fffffffffffffff6756", + /* Order of the subgroup is 2^446 - q_0, where + q_0 = 13818066809895115352007386748515426880336692474882178609894547503885, + 224 bits. + */ + "3ffffffffffffffffffffffffffffff" + "fffffffffffffffffffffffff7cca23" + "e9c44edb49aed63690216cc2728dc58" + "f552378c292ab5844f3", + "4f1970c66bed0ded221d15a622bf36d" + "a9e146570470f1767ea6de324a3d3a4" + "6412ae1af72ab66511433b80e18b009" + "38e2626a82bc70cc05e", + "693f46716eb6bc248876203756c9c76" + "24bea73736ca3984087789c1e05a0c2" + "d73ad3ff1ce67c39c4fdbd132c4ed7c" + "8ad9808795bf230fa14", + NULL, NULL); + ecc->ref = ecc_alloc (3); + ecc_set_str (&ecc->ref[0], /* 2 g */ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaa955555555" + "55555555555555555555555555555555" + "5555555555555555", + "ae05e9634ad7048db359d6205086c2b0" + "036ed7a035884dd7b7e36d728ad8c4b8" + "0d6565833a2a3098bbbcb2bed1cda06b" + "daeafbcdea9386ed"); + ecc_set_str (&ecc->ref[1], /* 3 g */ + "865886b9108af6455bd64316cb694333" + "2241b8b8cda82c7e2ba077a4a3fcfe8d" + "aa9cbf7f6271fd6e862b769465da8575" + "728173286ff2f8f", + "e005a8dbd5125cf706cbda7ad43aa644" + "9a4a8d952356c3b9fce43c82ec4e1d58" + "bb3a331bdb6767f0bffa9a68fed02daf" + "b822ac13588ed6fc"); + + ecc_set_str (&ecc->ref[2], /* 4 g */ + "49dcbc5c6c0cce2c1419a17226f929ea" + "255a09cf4e0891c693fda4be70c74cc3" + "01b7bdf1515dd8ba21aee1798949e120" + "e2ce42ac48ba7f30", + "d49077e4accde527164b33a5de021b97" + "9cb7c02f0457d845c90dc3227b8a5bc1" + "c0d8f97ea1ca9472b5d444285d0d4f5b" + "32e236f86de51839"); + + break; + default: fprintf (stderr, "No known curve for size %d\n", bit_size); exit(EXIT_FAILURE); @@ -625,6 +773,9 @@ ecc_pippenger_precompute (struct ecc_curve *ecc, unsigned k, unsigned c)
/* Compute the first 2^c entries */ ecc_set_zero (&ecc->table[0]); + if (ecc->type == ECC_TYPE_EDWARDS) + mpz_set_ui (ecc->table[0].y, 1); + ecc_set (&ecc->table[1], &ecc->g);
for (j = 2; j < (1U<<c); j <<= 1) @@ -659,6 +810,11 @@ ecc_mul_pippenger (const struct ecc_curve *ecc,
mpz_mod (n, n_input, ecc->q); ecc_set_zero (r); + if (ecc->type == ECC_TYPE_EDWARDS) + { + mpz_set_ui (r->x, 0); + mpz_set_ui (r->y, 1); + }
k = ecc->pippenger_k; c = ecc->pippenger_c; diff --git a/ecdsa-keygen.c b/ecdsa-keygen.c index fa559a9e..aa2dfb08 100644 --- a/ecdsa-keygen.c +++ b/ecdsa-keygen.c @@ -47,9 +47,9 @@ ecdsa_generate_keypair (struct ecc_point *pub, struct ecc_scalar *key, void *random_ctx, nettle_random_func *random) { - TMP_DECL(p, mp_limb_t, 3*ECC_MAX_SIZE + ECC_MUL_G_ITCH (ECC_MAX_SIZE)); + TMP_DECL(p, mp_limb_t, 3*ECC_MAX_SIZE + ECC_ECDSA_KEYGEN_ITCH (ECC_MAX_SIZE)); const struct ecc_curve *ecc = pub->ecc; - mp_size_t itch = 3*ecc->p.size + ecc->mul_g_itch; + mp_size_t itch = 3*ecc->p.size + ECC_ECDSA_KEYGEN_ITCH (ecc->p.size);
assert (key->ecc == ecc);
diff --git a/examples/ecc-benchmark.c b/examples/ecc-benchmark.c index 8e5e0953..14ce02a2 100644 --- a/examples/ecc-benchmark.c +++ b/examples/ecc-benchmark.c @@ -335,6 +335,7 @@ const struct ecc_curve * const curves[] = { &_nettle_curve25519, &nettle_secp_256r1, &nettle_secp_384r1, + &_nettle_curve448, &nettle_secp_521r1, };
diff --git a/nettle.texinfo b/nettle.texinfo index 1d7e4e3e..43c02869 100644 --- a/nettle.texinfo +++ b/nettle.texinfo @@ -111,7 +111,7 @@ Public-key algorithms
* Side-channel silence:: * ECDSA:: -* Curve 25519:: +* Curve 25519 and Curve 448::
@end detailmenu @end menu @@ -4209,18 +4209,18 @@ Nettle supports standard curves which are all of the form @math{y^2 = x^3 - 3 x + b @pmod{p}}, i.e., the points have coordinates @math{(x,y)}, both considered as integers modulo a specified prime @math{p}. Curves are represented as a @code{struct ecc_curve}. It also supports -curve25519, which uses a different form of curve. Supported curves are -declared in @file{<nettle/ecc-curve.h>}, e.g., @code{nettle_secp_256r1} -for a standardized curve using the 256-bit prime @math{p = 2^{256} - -2^{224} + 2^{192} + 2^{96} - 1}. The contents of these structs is not -visible to nettle users. The ``bitsize of the curve'' is used as a -shorthand for the bitsize of the curve's prime @math{p}, e.g., 256 bits -for @code{nettle_secp_256r1}. +curve25519 and curve448, which use a different form of curve. Supported +curves are declared in @file{<nettle/ecc-curve.h>}, e.g., +@code{nettle_secp_256r1} for a standardized curve using the 256-bit +prime @math{p = 2^{256} - 2^{224} + 2^{192} + 2^{96} - 1}. The contents +of these structs is not visible to nettle users. The ``bitsize of the +curve'' is used as a shorthand for the bitsize of the curve's prime +@math{p}, e.g., 256 bits for @code{nettle_secp_256r1}.
@menu * Side-channel silence:: * ECDSA:: -* Curve 25519:: +* Curve 25519 and Curve 448:: @end menu
@node Side-channel silence, ECDSA, , Elliptic curves @@ -4254,7 +4254,7 @@ accesses depend only on the size of the input data and its location in memory, not on the actual data bits. This implies a performance penalty in several of the building blocks.
-@node ECDSA, Curve 25519, Side-channel silence, Elliptic curves +@node ECDSA, Curve 25519 and Curve 448, Side-channel silence, Elliptic curves @comment node-name, next, previous, up @subsubsection ECDSA
@@ -4358,10 +4358,11 @@ random octets and store them at @code{dst}. For advice, see @xref{Randomness}. @end deftypefun
-@node Curve 25519, , ECDSA, Elliptic curves +@node Curve 25519 and Curve 448, , ECDSA, Elliptic curves @comment node-name, next, previous, up -@subsubsection Curve25519 +@subsubsection Curve25519 and Curve448 @cindex Curve 25519 +@cindex Curve 448
@c FIXME: Make 2^255 pretty in all output formats. Use @sup? @c There are other places too (2^32, 2^130). @@ -4436,6 +4437,40 @@ This function is intended to be compatible with the function @code{crypto_scalar_mult} in the NaCl library. @end deftypefun
+Similarly, Nettle also implements Curve448, an elliptic curve of +Montgomery type, @math{y^2 = x^3 + 156326 x^2 + x @pmod{p}}, with +@math{p = 2^448 - 2^224 - 1}. This particular curve was proposed by +Mike Hamburg in 2015, for fast Diffie-Hellman key exchange, and is also +described in @cite{RFC 7748}. + +Nettle defines Curve 448 in @file{<nettle/curve448.h>}. + +@defvr Constant CURVE448_SIZE +The octet length of the strings representing curve448 points and scalars, 56. +@end defvr + +@deftypefun void curve448_mul_g (uint8_t *@var{q}, const uint8_t *@var{n}) +Computes @math{Q = N G}, where @math{G} is the group generator and +@math{N} is an integer. The input argument @var{n} and the output +argument @var{q} use a little-endian representation of the scalar and +the x-coordinate, respectively. They are both of size +@code{CURVE448_SIZE}. + +This function is intended to be compatible with the function +@code{crypto_scalar_mult_base} in the NaCl library. +@end deftypefun + +@deftypefun void curve448_mul (uint8_t *@var{q}, const uint8_t *@var{n}, const uint8_t *@var{p}) +Computes @math{Q = N P}, where @math{P} is an input point and @math{N} +is an integer. The input arguments @var{n} and @var{p} and the output +argument @var{q} use a little-endian representation of the scalar and +the x-coordinates, respectively. They are all of size +@code{CURVE448_SIZE}. + +This function is intended to be compatible with the function +@code{crypto_scalar_mult} in the NaCl library. +@end deftypefun + @subsubsection EdDSA @cindex eddsa
diff --git a/testsuite/.test-rules.make b/testsuite/.test-rules.make index 1b9c3fae..dfa6c1d7 100644 --- a/testsuite/.test-rules.make +++ b/testsuite/.test-rules.make @@ -208,6 +208,9 @@ dsa-keygen-test$(EXEEXT): dsa-keygen-test.$(OBJEXT) curve25519-dh-test$(EXEEXT): curve25519-dh-test.$(OBJEXT) $(LINK) curve25519-dh-test.$(OBJEXT) $(TEST_OBJS) -o curve25519-dh-test$(EXEEXT)
+curve448-dh-test$(EXEEXT): curve448-dh-test.$(OBJEXT) + $(LINK) curve448-dh-test.$(OBJEXT) $(TEST_OBJS) -o curve448-dh-test$(EXEEXT) + ecc-mod-test$(EXEEXT): ecc-mod-test.$(OBJEXT) $(LINK) ecc-mod-test.$(OBJEXT) $(TEST_OBJS) -o ecc-mod-test$(EXEEXT)
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index c1ac7d24..762d3f50 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -39,7 +39,7 @@ TS_HOGWEED_SOURCES = sexp-test.c sexp-format-test.c \ rsa-pss-sign-tr-test.c \ rsa-test.c rsa-encrypt-test.c rsa-keygen-test.c \ dsa-test.c dsa-keygen-test.c \ - curve25519-dh-test.c \ + curve25519-dh-test.c curve448-dh-test.c \ ecc-mod-test.c ecc-modinv-test.c ecc-redc-test.c \ ecc-sqrt-test.c \ ecc-dup-test.c ecc-add-test.c \ diff --git a/testsuite/curve448-dh-test.c b/testsuite/curve448-dh-test.c new file mode 100644 index 00000000..7d142d6f --- /dev/null +++ b/testsuite/curve448-dh-test.c @@ -0,0 +1,100 @@ +/* curve448-dh-test.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#include "testutils.h" + +#include "curve448.h" + +static void +test_g (const uint8_t *s, const uint8_t *r) +{ + uint8_t p[CURVE448_SIZE]; + curve448_mul_g (p, s); + if (!MEMEQ (CURVE448_SIZE, p, r)) + { + printf ("curve448_mul_g failure:\ns = "); + print_hex (CURVE448_SIZE, s); + printf ("\np = "); + print_hex (CURVE448_SIZE, p); + printf (" (bad)\nr = "); + print_hex (CURVE448_SIZE, r); + printf (" (expected)\n"); + abort (); + } +} + +static void +test_a (const uint8_t *s, const uint8_t *b, const uint8_t *r) +{ + uint8_t p[CURVE448_SIZE]; + curve448_mul (p, s, b); + if (!MEMEQ (CURVE448_SIZE, p, r)) + { + printf ("curve448_mul failure:\ns = "); + print_hex (CURVE448_SIZE, s); + printf ("\nb = "); + print_hex (CURVE448_SIZE, b); + printf ("\np = "); + print_hex (CURVE448_SIZE, p); + printf (" (bad)\nr = "); + print_hex (CURVE448_SIZE, r); + printf (" (expected)\n"); + abort (); + } +} + +void +test_main (void) +{ + /* From RFC 7748. */ + test_g (H("9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28d" + "d9c9baf574a9419744897391006382a6f127ab1d9ac2d8c0a598726b"), + H("9b08f7cc31b7e3e67d22d5aea121074a273bd2b83de09c63faa73d2c" + "22c5d9bbc836647241d953d40c5b12da88120d53177f80e532c41fa0")); + test_g (H("1c306a7ac2a0e2e0990b294470cba339e6453772b075811d8fad0d1d" + "6927c120bb5ee8972b0d3e21374c9c921b09d1b0366f10b65173992d"), + H("3eb7a829b0cd20f5bcfc0b599b6feccf6da4627107bdb0d4f345b430" + "27d8b972fc3e34fb4232a13ca706dcb57aec3dae07bdc1c67bf33609")); + + test_a (H("9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28d" + "d9c9baf574a9419744897391006382a6f127ab1d9ac2d8c0a598726b"), + H("3eb7a829b0cd20f5bcfc0b599b6feccf6da4627107bdb0d4f345b430" + "27d8b972fc3e34fb4232a13ca706dcb57aec3dae07bdc1c67bf33609"), + H("07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282b" + "b60c0b56fd2464c335543936521c24403085d59a449a5037514a879d")); + test_a (H("1c306a7ac2a0e2e0990b294470cba339e6453772b075811d8fad0d1d" + "6927c120bb5ee8972b0d3e21374c9c921b09d1b0366f10b65173992d"), + H("9b08f7cc31b7e3e67d22d5aea121074a273bd2b83de09c63faa73d2c" + "22c5d9bbc836647241d953d40c5b12da88120d53177f80e532c41fa0"), + H("07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282b" + "b60c0b56fd2464c335543936521c24403085d59a449a5037514a879d")); +} diff --git a/testsuite/ecc-add-test.c b/testsuite/ecc-add-test.c index 8e88a76b..4cab349c 100644 --- a/testsuite/ecc-add-test.c +++ b/testsuite/ecc-add-test.c @@ -15,15 +15,18 @@ test_main (void) mp_limb_t *p = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *scratch = xalloc_limbs (ECC_ADD_JJJ_ITCH(ecc->p.size));
- if (ecc->p.bit_size == 255) + if (ecc->p.bit_size == 255 || ecc->p.bit_size == 448) { mp_limb_t *z = xalloc_limbs (ecc_size_j (ecc)); + /* Zero point has x = 0, y = 1, z = 1 */ mpn_zero (z, 3*ecc->p.size); z[ecc->p.size] = z[2*ecc->p.size] = 1;
- assert (ecc->add_hh == ecc_add_eh); - assert (ecc->add_hhh == ecc_add_ehh); + assert ((ecc->p.bit_size == 255 && ecc->add_hh == ecc_add_eh) + || (ecc->p.bit_size == 448 && ecc->add_hh == ecc_add_eh_untwisted)); + assert ((ecc->p.bit_size == 255 && ecc->add_hhh == ecc_add_ehh) + || (ecc->p.bit_size == 448 && ecc->add_hhh == ecc_add_ehh_untwisted));
ecc_a_to_j (ecc, g, ecc->g);
diff --git a/testsuite/ecc-dup-test.c b/testsuite/ecc-dup-test.c index f987b165..f3402619 100644 --- a/testsuite/ecc-dup-test.c +++ b/testsuite/ecc-dup-test.c @@ -12,7 +12,7 @@ test_main (void) mp_limb_t *p = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *scratch = xalloc_limbs (ECC_DUP_EH_ITCH(ecc->p.size));;
- if (ecc->p.bit_size == 255) + if (ecc->p.bit_size == 255 || ecc->p.bit_size == 448) { mp_limb_t *z = xalloc_limbs (ecc_size_j (ecc)); /* Zero point has x = 0, y = 1, z = 1 */ diff --git a/testsuite/ecc-mul-a-test.c b/testsuite/ecc-mul-a-test.c index 245016aa..019f4d34 100644 --- a/testsuite/ecc-mul-a-test.c +++ b/testsuite/ecc-mul-a-test.c @@ -17,7 +17,7 @@ test_main (void) mp_limb_t *p = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *q = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *n = xalloc_limbs (size); - mp_limb_t *scratch = xalloc_limbs (ecc->mul_itch); + mp_limb_t *scratch = xalloc_limbs (ecc->mul_itch + ecc->h_to_a_itch); unsigned j;
mpn_zero (n, size); @@ -39,7 +39,7 @@ test_main (void) mpn_sub_1 (n, ecc->q.m, size, 1); ecc->mul (ecc, p, n, ecc->g, scratch); ecc->h_to_a (ecc, 0, p, p, scratch); - if (ecc->p.bit_size == 255) + if (ecc->p.bit_size == 255 || ecc->p.bit_size == 448) /* For edwards curves, - (x,y ) == (-x, y). FIXME: Swap x and y, to get identical negation? */ mpn_sub_n (p, ecc->p.m, p, size); diff --git a/testsuite/ecc-mul-g-test.c b/testsuite/ecc-mul-g-test.c index 27239484..0bedfdea 100644 --- a/testsuite/ecc-mul-g-test.c +++ b/testsuite/ecc-mul-g-test.c @@ -17,7 +17,7 @@ test_main (void) mp_limb_t *p = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *q = xalloc_limbs (ecc_size_j (ecc)); mp_limb_t *n = xalloc_limbs (size); - mp_limb_t *scratch = xalloc_limbs (ecc->mul_g_itch); + mp_limb_t *scratch = xalloc_limbs (ecc->mul_g_itch + ecc->h_to_a_itch);
mpn_zero (n, size);
@@ -41,7 +41,7 @@ test_main (void) mpn_sub_1 (n, ecc->q.m, size, 1); ecc->mul_g (ecc, p, n, scratch); ecc->h_to_a (ecc, 0, p, p, scratch); - if (ecc->p.bit_size == 255) + if (ecc->p.bit_size == 255 || ecc->p.bit_size == 448) /* For edwards curves, - (x,y ) == (-x, y). FIXME: Swap x and y, to get identical negation? */ mpn_sub_n (p, ecc->p.m, p, size); diff --git a/testsuite/ecdh-test.c b/testsuite/ecdh-test.c index 5a2b39d5..2b8142bb 100644 --- a/testsuite/ecdh-test.c +++ b/testsuite/ecdh-test.c @@ -51,7 +51,8 @@ set_scalar (struct ecc_scalar *s, { mpz_t X; mpz_init_set_str (X, x, 0); - ecc_scalar_set (s, X); + if (!ecc_scalar_set (s, X)) + abort (); mpz_clear (X); }
@@ -200,4 +201,17 @@ test_main(void) "38072138078045635808869930165213470653418146012939584392304609812494425185763", "10481077163111981870382976851703705086808805457403127024129174358161599078055", "29260211489972704256554624312266763530759418996739976957020673870747051409679"); + + /* NOTE: This isn't the standard way to do curve448 + diffie-hellman, but it tests that the ecc_point interface works + also with curve448. */ + test_dh ("curve448", &_nettle_curve448, + "129458936807933142766404648460937163205634163580407624950524900086792185737444124895392953822100034523565454893159084960036749128566328", + "23903108874160330022289088207864530114505726115081678533913226179385920277612083777349117962138808929878378666596532036566924169949084", + "693683143993815499711046966874265987454661213870193324674425656110752379002105414428569086535475560314058341102862207145978150379762153", + "66424594649188102315894632429895338306697492782714758296415311427244880255966850729749965592839835963032731282879151354354178946253531", + "411851112596680430188999894591634506976361833537024658040418853047370769553774913299417695327870642536912872558385293694714169201128264", + "337433451779159274143076131600929733721586133908369086734805607026091240174740218929467625260731556550599267570314197354864315711490353", + "224725768629972498035446273711269105191383993674106563435257119903436206484342709996926420948730961128941009070083709026343858723205213", + "514544926219850986487923720424370435708360925070646212523588162169142573918197583804309386017625350764529605929374479238949748203847320"); } diff --git a/testsuite/ecdsa-keygen-test.c b/testsuite/ecdsa-keygen-test.c index a96c09ef..cd96782e 100644 --- a/testsuite/ecdsa-keygen-test.c +++ b/testsuite/ecdsa-keygen-test.c @@ -40,6 +40,22 @@ ecc_valid_p (struct ecc_point *pub)
mpz_clear (x2); } + else if (pub->ecc->p.bit_size == 448) + { + /* Check that + x^2 + y^2 = 1 - 39081 x^2 y^2 */ + mpz_t x2, d; + mpz_init (x2); + mpz_init_set_ui (d, 39081); + mpz_mul (x2, x, x); /* x^2 */ + mpz_mul (d, d, x2); /* 39081 x^2 */ + mpz_set_ui (rhs, 1); + mpz_submul (rhs, d, lhs); /* 1 - 39081 x^2 y^2 */ + mpz_add (lhs, x2, lhs); /* x^2 + y^2 */ + + mpz_clear (d); + mpz_clear (x2); + } else { /* Check y^2 = x^3 - 3 x + b */ diff --git a/testsuite/testutils.c b/testsuite/testutils.c index 6f897617..a22745c3 100644 --- a/testsuite/testutils.c +++ b/testsuite/testutils.c @@ -1218,6 +1218,7 @@ const struct ecc_curve * const ecc_curves[] = { &nettle_secp_384r1, &nettle_secp_521r1, &_nettle_curve25519, + &_nettle_curve448, NULL };
@@ -1269,7 +1270,7 @@ void test_ecc_mul_a (unsigned curve, unsigned n, const mp_limb_t *p) { /* For each curve, the points 2 g, 3 g and 4 g */ - static const struct ecc_ref_point ref[6][3] = { + static const struct ecc_ref_point ref[7][3] = { { { "dafebf5828783f2ad35534631588a3f629a70fb16982a888", "dd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab" }, { "76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da", @@ -1330,15 +1331,22 @@ test_ecc_mul_a (unsigned curve, unsigned n, const mp_limb_t *p) "1267b1d177ee69aba126a18e60269ef79f16ec176724030402c3684878f5b4d4" }, { "203da8db56cff1468325d4b87a3520f91a739ec193ce1547493aa657c4c9f870", "47d0e827cb1595e1470eb88580d5716c4cf22832ea2f0ff0df38ab61ca32112f" }, + }, + { { "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa955555555555555555555555555555555555555555555555555555555", + "ae05e9634ad7048db359d6205086c2b0036ed7a035884dd7b7e36d728ad8c4b80d6565833a2a3098bbbcb2bed1cda06bdaeafbcdea9386ed" }, + { "865886b9108af6455bd64316cb6943332241b8b8cda82c7e2ba077a4a3fcfe8daa9cbf7f6271fd6e862b769465da8575728173286ff2f8f", + "e005a8dbd5125cf706cbda7ad43aa6449a4a8d952356c3b9fce43c82ec4e1d58bb3a331bdb6767f0bffa9a68fed02dafb822ac13588ed6fc" }, + { "49dcbc5c6c0cce2c1419a17226f929ea255a09cf4e0891c693fda4be70c74cc301b7bdf1515dd8ba21aee1798949e120e2ce42ac48ba7f30", + "d49077e4accde527164b33a5de021b979cb7c02f0457d845c90dc3227b8a5bc1c0d8f97ea1ca9472b5d444285d0d4f5b32e236f86de51839" }, } }; - assert (curve < 6); + assert (curve < 7); assert (n <= 4); if (n == 0) { /* Makes sense for curve25519 only */ const struct ecc_curve *ecc = ecc_curves[curve]; - assert (ecc->p.bit_size == 255); + assert (ecc->p.bit_size == 255 || ecc->p.bit_size == 448); if (!mpn_zero_p (p, ecc->p.size) || mpn_cmp (p + ecc->p.size, ecc->unit, ecc->p.size) != 0) {
Daiki Ueno ueno@gnu.org writes:
The motivation behind this is that the formula converting the Edwards curve coordinates to the Montgomery curve coordinates is simpler than the other way around for curve448/edwards448.
After a quick look at RFC7748, I see what you mean.
I'm considering rewriting the curve25519-case of eccdata, to also work on the Edwards curve. It's a bit silly to have three different curve formulas there.
Some other comments of this change below:
--- a/Makefile.in +++ b/Makefile.in
[...]
+ecc-448.h: eccdata.stamp
- ./eccdata$(EXEEXT_FOR_BUILD) 448 64 6 $(GMP_NUMB_BITS) > $@T && mv $@T $@
How did you select the table size? I have forgotten some of the details, but for the other curves, I aimed for table size around 16 KB, and looked at the examples/ecc-benchmark numbers for mul_g to select the organization. My notes are here: https://git.lysator.liu.se/nettle/se-nettle-2013/blob/master/doc/ecc-multipl...
+void +curve448_eh_to_x (mp_limb_t *xp, const mp_limb_t *p, mp_limb_t *scratch)
[...]
- ecc->p.invert (&ecc->p, t0, p, t1 + ecc->p.size);
- ecc_modp_mul (ecc, t1, t0, vp);
- ecc_modp_mul (ecc, t2, t1, t1);
Micro-optimization: Replace secong ecc_modp_mul by ecc_modp_sqr.
--- /dev/null +++ b/curve448-mul-g.c @@ -0,0 +1,74 @@
[...]
+/* Intended to be compatible with NaCl's crypto_scalarmult_base. */
Is this true?
--- /dev/null +++ b/curve448-mul.c
[...]
- for (i = 446; i >= 2; i--)
- {
int bit = (n[i/8] >> (i & 7)) & 1;
cnd_swap (bit, x2, x3, 2*ecc->p.size);
/* Formulas from RFC 7748. We compute new coordinates in
memory-address order, since mul and sqr clobbers higher
limbs. */
ecc_modp_add (ecc, A, x2, z2);
ecc_modp_sub (ecc, B, x2, z2);
ecc_modp_sqr (ecc, AA, A);
ecc_modp_sqr (ecc, BB, B);
ecc_modp_mul (ecc, x2, AA, BB);
ecc_modp_sub (ecc, E, AA, BB); /* Last use of BB */
ecc_modp_addmul_1 (ecc, AA, E, a24);
ecc_modp_add (ecc, C, x3, z3);
ecc_modp_sub (ecc, D, x3, z3);
ecc_modp_mul (ecc, z2, E, AA); /* Last use of E and AA */
ecc_modp_mul (ecc, DA, D, A); /* Last use of D, A. FIXME: could
let CB overlap. */
ecc_modp_mul (ecc, CB, C, B);
ecc_modp_add (ecc, C, DA, CB);
ecc_modp_sqr (ecc, x3, C);
ecc_modp_sub (ecc, C, DA, CB);
ecc_modp_sqr (ecc, DA, C);
ecc_modp_mul (ecc, z3, DA, x1);
/* FIXME: Could be combined with the loop's initial cnd_swap. */
cnd_swap (bit, x2, x3, 2*ecc->p.size);
- }
The formulas are the same RFC7748 formulas as for curve25519, right? We should be able to share most of this code.
--- a/ecc-dup-eh.c +++ b/ecc-dup-eh.c @@ -36,7 +36,7 @@ #include "ecc.h" #include "ecc-internal.h"
-/* Double a point on an Edwards curve, in homogeneous coordinates */ +/* Double a point on a twisted Edwards curve, in homogeneous coordinates */
As for naming, I'm considering renaming this file and function to use the _teh suffix or so, and leave "_eh" for the untwisted functions.
--- a/eccdata.c +++ b/eccdata.c
/* x' = (p_x q_y + q_x p_y) / (1 + t) */
mpz_mul (x, p->x, q->y);
mpz_mod (x, x, ecc->p);
mpz_addmul (x, q->x, p->y);
mpz_mod (x, x, ecc->p);
mpz_add_ui (s, t, 1);
mpz_invert (s, s, ecc->p);
^
mpz_mul (x, x, s);
mpz_mod (x, x, ecc->p);
/* y' = (p_y q_y - p_x q_x) / (1 - t) */
mpz_mul (y, p->y, q->y);
mpz_mod (y, y, ecc->p);
mpz_submul (y, p->x, q->x);
mpz_mod (y, y, ecc->p);
mpz_set_ui (s, 1);
mpz_sub (s, s, t);
mpz_invert (s, s, ecc->p);
^
mpz_mul (y, y, s);
mpz_mod (y, y, ecc->p);
Could consider rewriting the formulas to have only a single inversion, of the common denominator (1-t) (1+t) = (1-t^2). Worthwhile only if it brings a large speed improvement. mpz_invert here uses mini-gmp, and is implemented as binary algorithm for extended gcd, with a couple of bignum shifts and adds for each bit.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
I'm considering rewriting the curve25519-case of eccdata, to also work on the Edwards curve.
I've spent most of the day doing this reorg of eccdata.c, together with a few smaller cleanups. Should make it easier to add curve448.
Since it's going to take a few rounds before the SHAKE code is ready, I'd suggest that we aim to get curve448 in first, i.e., the DH functions, before doing eddsa448.
Regards, /Niels
From: Daiki Ueno dueno@redhat.com
Signed-off-by: Daiki Ueno dueno@redhat.com --- Makefile.in | 4 +- ecc-192.c | 1 + ecc-224.c | 1 + ecc-25519.c | 1 + ecc-256.c | 1 + ecc-384.c | 1 + ecc-448.c | 1 + ecc-521.c | 1 + ecc-internal.h | 18 +++ ed25519-sha512-sign.c | 15 +++ ed448-shake256-pubkey.c | 60 ++++++++++ ed448-shake256-sign.c | 92 +++++++++++++++ ed448-shake256-verify.c | 66 +++++++++++ eddsa-compress.c | 11 +- eddsa-decompress.c | 17 ++- eddsa-expand.c | 20 +++- eddsa-hash.c | 35 ++++++ eddsa-pubkey.c | 2 +- eddsa-sign.c | 16 +-- eddsa-verify.c | 16 ++- eddsa.h | 24 ++++ nettle.texinfo | 25 +++++ testsuite/.test-rules.make | 3 + testsuite/Makefile.in | 2 +- testsuite/ed448-test.c | 240 ++++++++++++++++++++++++++++++++++++++++ testsuite/eddsa-compress-test.c | 137 ++++++++++++----------- testsuite/eddsa-sign-test.c | 66 ++++++++++- testsuite/eddsa-verify-test.c | 49 +++++++- 28 files changed, 833 insertions(+), 92 deletions(-) create mode 100644 ed448-shake256-pubkey.c create mode 100644 ed448-shake256-sign.c create mode 100644 ed448-shake256-verify.c create mode 100644 testsuite/ed448-test.c
diff --git a/Makefile.in b/Makefile.in index 80c66ce8..10185bb8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -185,7 +185,9 @@ hogweed_SOURCES = sexp.c sexp-format.c \ eddsa-compress.c eddsa-decompress.c eddsa-expand.c \ eddsa-hash.c eddsa-pubkey.c eddsa-sign.c eddsa-verify.c \ ed25519-sha512-pubkey.c \ - ed25519-sha512-sign.c ed25519-sha512-verify.c + ed25519-sha512-sign.c ed25519-sha512-verify.c \ + ed448-shake256-pubkey.c \ + ed448-shake256-sign.c ed448-shake256-verify.c
OPT_SOURCES = fat-x86_64.c fat-arm.c mini-gmp.c
diff --git a/ecc-192.c b/ecc-192.c index 1fbbcded..319d1418 100644 --- a/ecc-192.c +++ b/ecc-192.c @@ -172,6 +172,7 @@ const struct ecc_curve nettle_secp_192r1 = ecc_b, ecc_g, NULL, + NULL, ecc_unit, ecc_table }; diff --git a/ecc-224.c b/ecc-224.c index b1ff0578..f679c01a 100644 --- a/ecc-224.c +++ b/ecc-224.c @@ -124,6 +124,7 @@ const struct ecc_curve nettle_secp_224r1 = ecc_b, ecc_g, NULL, + NULL, ecc_unit, ecc_table }; diff --git a/ecc-25519.c b/ecc-25519.c index 16073ecf..ac5638a6 100644 --- a/ecc-25519.c +++ b/ecc-25519.c @@ -352,6 +352,7 @@ const struct ecc_curve _nettle_curve25519 = ecc_d, /* Use the Edwards curve constant. */ ecc_g, ecc_edwards, + &_nettle_ed25519_sha512, ecc_unit, ecc_table }; diff --git a/ecc-256.c b/ecc-256.c index d0870657..e9268e76 100644 --- a/ecc-256.c +++ b/ecc-256.c @@ -301,6 +301,7 @@ const struct ecc_curve nettle_secp_256r1 = ecc_b, ecc_g, NULL, + NULL, ecc_unit, ecc_table }; diff --git a/ecc-384.c b/ecc-384.c index 006c4568..4aa7f96e 100644 --- a/ecc-384.c +++ b/ecc-384.c @@ -209,6 +209,7 @@ const struct ecc_curve nettle_secp_384r1 = ecc_b, ecc_g, NULL, + NULL, ecc_unit, ecc_table }; diff --git a/ecc-448.c b/ecc-448.c index a70ff7cc..f98616d8 100644 --- a/ecc-448.c +++ b/ecc-448.c @@ -267,6 +267,7 @@ const struct ecc_curve _nettle_curve448 = ecc_b, ecc_g, NULL, + &_nettle_ed448_shake256, ecc_unit, ecc_table }; diff --git a/ecc-521.c b/ecc-521.c index 9d32b54e..396f66e0 100644 --- a/ecc-521.c +++ b/ecc-521.c @@ -137,6 +137,7 @@ const struct ecc_curve nettle_secp_521r1 = ecc_b, ecc_g, NULL, + NULL, ecc_unit, ecc_table }; diff --git a/ecc-internal.h b/ecc-internal.h index b58093ee..1ddec986 100644 --- a/ecc-internal.h +++ b/ecc-internal.h @@ -84,6 +84,9 @@ extern const struct ecc_curve _nettle_curve25519; extern const struct ecc_curve _nettle_curve448;
+extern const struct ecc_eddsa _nettle_ed25519_sha512; +extern const struct ecc_eddsa _nettle_ed448_shake256; + #define ECC_MAX_SIZE ((521 + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS)
/* Window size for ecc_mul_a. Using 4 bits seems like a good choice, @@ -200,6 +203,9 @@ struct ecc_curve equivalent Edwards curve. */ const mp_limb_t *edwards_root;
+ /* EdDSA parameters; NULL if the curve is not usable in EdDSA. */ + const struct ecc_eddsa *eddsa; + /* For redc, same as B mod p, otherwise 1. */ const mp_limb_t *unit;
@@ -216,6 +222,18 @@ struct ecc_curve const mp_limb_t *pippenger_table; };
+/* EdDSA parameters. */ +typedef void ecc_eddsa_dom_func (int phflag, size_t length, uint8_t *context, + const struct nettle_hash *hash, + void *ctx); + +struct ecc_eddsa +{ + unsigned short b; + unsigned short c; + ecc_eddsa_dom_func *dom; +}; + /* In-place reduction. */ ecc_mod_func ecc_mod; ecc_mod_func ecc_pp1_redc; diff --git a/ed25519-sha512-sign.c b/ed25519-sha512-sign.c index af9de209..c26dc6b1 100644 --- a/ed25519-sha512-sign.c +++ b/ed25519-sha512-sign.c @@ -38,6 +38,21 @@ #include "ecc-internal.h" #include "sha2.h"
+static void +ed25519_sha512_dom (int phflag, size_t length, uint8_t *context, + const struct nettle_hash *hash, + void *ctx) +{ + /* No-op for PureEdDSA. */ +} + +const struct ecc_eddsa _nettle_ed25519_sha512 = +{ + 256, + 3, + ed25519_sha512_dom +}; + void ed25519_sha512_sign (const uint8_t *pub, const uint8_t *priv, diff --git a/ed448-shake256-pubkey.c b/ed448-shake256-pubkey.c new file mode 100644 index 00000000..7cfa54e9 --- /dev/null +++ b/ed448-shake256-pubkey.c @@ -0,0 +1,60 @@ +/* ed448-shake256-pubkey.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include "eddsa.h" + +#include "ecc-internal.h" +#include "sha3.h" + +void +ed448_shake256_public_key (uint8_t *pub, const uint8_t *priv) +{ + const struct ecc_curve *ecc = &_nettle_curve448; + struct shake256_ctx ctx; + uint8_t digest[ED448_SIGNATURE_SIZE]; + mp_size_t itch = ecc->q.size + _eddsa_public_key_itch (ecc); + mp_limb_t *scratch = gmp_alloc_limbs (itch); + +#define k scratch +#define scratch_out (scratch + ecc->q.size) + + _eddsa_expand_key (ecc, &nettle_shake256, &ctx, priv, digest, k); + _eddsa_public_key (ecc, k, pub, scratch_out); + + gmp_free_limbs (scratch, itch); +#undef k +#undef scratch_out +} diff --git a/ed448-shake256-sign.c b/ed448-shake256-sign.c new file mode 100644 index 00000000..f52804f6 --- /dev/null +++ b/ed448-shake256-sign.c @@ -0,0 +1,92 @@ +/* ed448-shake256-sign.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <assert.h> + +#include "eddsa.h" + +#include "ecc-internal.h" +#include "sha3.h" + +static void +ed448_shake256_dom (int phflag, size_t length, uint8_t *context, + const struct nettle_hash *hash, + void *ctx) +{ + uint8_t buffer[2]; + buffer[0] = phflag ? 1 : 0; + assert (length < 256); + buffer[1] = length; + hash->update (ctx, 8, "SigEd448"); + hash->update (ctx, 2, buffer); + hash->update (ctx, length, context); +} + +const struct ecc_eddsa _nettle_ed448_shake256 = +{ + 456, + 2, + ed448_shake256_dom +}; + +void +ed448_shake256_sign (const uint8_t *pub, + const uint8_t *priv, + size_t length, const uint8_t *msg, + uint8_t *signature) +{ + const struct ecc_curve *ecc = &_nettle_curve448; + mp_size_t itch = ecc->q.size + _eddsa_sign_itch (ecc); + mp_limb_t *scratch = gmp_alloc_limbs (itch); +#define k2 scratch +#define scratch_out (scratch + ecc->q.size) + struct shake256_ctx ctx; + uint8_t digest[ED448_SIGNATURE_SIZE]; +#define k1 (digest + ED448_KEY_SIZE) + + _eddsa_expand_key (ecc, &nettle_shake256, &ctx, priv, digest, k2); + + ed448_shake256_dom (0, 0, "", &nettle_shake256, &ctx); + shake256_update (&ctx, ED448_KEY_SIZE, k1); + _eddsa_sign (ecc, &nettle_shake256, pub, + &ctx, + k2, length, msg, signature, scratch_out); + + gmp_free_limbs (scratch, itch); +#undef k1 +#undef k2 +#undef scratch_out +} diff --git a/ed448-shake256-verify.c b/ed448-shake256-verify.c new file mode 100644 index 00000000..4081abc3 --- /dev/null +++ b/ed448-shake256-verify.c @@ -0,0 +1,66 @@ +/* ed448-shake256-verify.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <string.h> + +#include "eddsa.h" + +#include "ecc-internal.h" +#include "sha3.h" + +int +ed448_shake256_verify (const uint8_t *pub, + size_t length, const uint8_t *msg, + const uint8_t *signature) +{ + const struct ecc_curve *ecc = &_nettle_curve448; + mp_size_t itch = 3*ecc->p.size + _eddsa_verify_itch (ecc); + mp_limb_t *scratch = gmp_alloc_limbs (itch); + struct shake256_ctx ctx; + int res; +#define A scratch +#define scratch_out (scratch + 3*ecc->p.size) + res = (_eddsa_decompress (ecc, + A, pub, scratch_out) + && _eddsa_verify (ecc, &nettle_shake256, + pub, A, &ctx, + length, msg, signature, + scratch_out)); + gmp_free_limbs (scratch, itch); + return res; +#undef A +#undef scratch_out +} diff --git a/eddsa-compress.c b/eddsa-compress.c index 40959586..2b36d3aa 100644 --- a/eddsa-compress.c +++ b/eddsa-compress.c @@ -33,6 +33,8 @@ # include "config.h" #endif
+#include <assert.h> + #include "eddsa.h"
#include "ecc-internal.h" @@ -48,15 +50,20 @@ void _eddsa_compress (const struct ecc_curve *ecc, uint8_t *r, mp_limb_t *p, mp_limb_t *scratch) { + size_t nbytes; + #define xp scratch #define yp (scratch + ecc->p.size) #define scratch_out (scratch + 2*ecc->p.size)
+ assert (ecc->eddsa); + + nbytes = 1 + (ecc->eddsa->b - 1) / 8; ecc->h_to_a (ecc, 0, xp, p, scratch_out); /* Encoding is the y coordinate and an appended "sign" bit, which is the low bit of x. Bit order is not specified explicitly, but for little-endian encoding, it makes most sense to append the bit after the most significant bit of y. */ - mpn_get_base256_le (r, 1 + ecc->p.bit_size / 8, yp, ecc->p.size); - r[ecc->p.bit_size / 8] += (xp[0] & 1) << (ecc->p.bit_size & 7); + mpn_get_base256_le (r, nbytes, yp, ecc->p.size); + r[nbytes - 1] += (xp[0] & 1) << ((ecc->eddsa->b - 1) & 7); } diff --git a/eddsa-decompress.c b/eddsa-decompress.c index 75550168..75a38c0f 100644 --- a/eddsa-decompress.c +++ b/eddsa-decompress.c @@ -33,6 +33,8 @@ # include "config.h" #endif
+#include <assert.h> + #include "eddsa.h"
#include "ecc-internal.h" @@ -50,6 +52,7 @@ _eddsa_decompress (const struct ecc_curve *ecc, mp_limb_t *p, mp_limb_t *scratch) { mp_limb_t sign, cy; + size_t bits; int res;
#define xp p @@ -61,17 +64,25 @@ _eddsa_decompress (const struct ecc_curve *ecc, mp_limb_t *p, #define tp (scratch + 2*ecc->p.size) #define scratch_out (scratch + 4*ecc->p.size)
- sign = cp[ecc->p.bit_size / 8] >> (ecc->p.bit_size & 7); + assert (ecc->eddsa); + + bits = ecc->eddsa->b - 1; + sign = cp[bits / 8] >> (bits & 7); if (sign > 1) return 0; - mpn_set_base256_le (yp, ecc->p.size, cp, 1 + ecc->p.bit_size / 8); + mpn_set_base256_le (yp, ecc->p.size, cp, 1 + bits / 8); /* Clear out the sign bit (if it fits) */ yp[ecc->p.size - 1] &= ~(mp_limb_t) 0 >> (ecc->p.size * GMP_NUMB_BITS - ecc->p.bit_size); ecc_modp_sqr (ecc, y2, yp); ecc_modp_mul (ecc, vp, y2, ecc->b); ecc_modp_sub (ecc, vp, vp, ecc->unit); - ecc_modp_sub (ecc, up, ecc->unit, y2); + /* The sign is different between curve25519 and curve448. */ + /* FIXME: Define a suitable method in ecc_eddsa? */ + if (ecc->p.bit_size == 255) + ecc_modp_sub (ecc, up, ecc->unit, y2); + else + ecc_modp_sub (ecc, up, y2, ecc->unit); res = ecc->p.sqrt (&ecc->p, tp, up, vp, scratch_out);
cy = mpn_sub_n (xp, tp, ecc->p.m, ecc->p.size); diff --git a/eddsa-expand.c b/eddsa-expand.c index dc2bfaf1..3e39c8f7 100644 --- a/eddsa-expand.c +++ b/eddsa-expand.c @@ -52,18 +52,26 @@ _eddsa_expand_key (const struct ecc_curve *ecc, uint8_t *digest, mp_limb_t *k2) { - size_t nbytes = 1 + ecc->p.bit_size / 8; + size_t nbytes; + mp_size_t size;
- assert (H->digest_size >= 2*nbytes); + assert (ecc->eddsa); + + nbytes = 1 + (ecc->eddsa->b - 1) / 8; + size = (ecc->eddsa->b - 1 + GMP_NUMB_BITS - 1) / 8;
H->init (ctx); H->update (ctx, nbytes, key); H->digest (ctx, 2*nbytes, digest);
- mpn_set_base256_le (k2, ecc->p.size, digest, nbytes); - /* Clear low 3 bits */ - k2[0] &= ~(mp_limb_t) 7; - /* Set bit number bit_size - 1 (bit 254 for curve25519) */ + mpn_set_base256_le (k2, size, digest, nbytes); + /* FIXME: reduce k2 to ecc->p.size */ + + /* Clear low c bits */ + k2[0] &= ~(mp_limb_t) ((1 << ecc->eddsa->c) - 1); + + /* Set bit number bit_size - 1 (bit 254 for curve25519, bit 447 for + curve448) */ k2[(ecc->p.bit_size - 1) / GMP_NUMB_BITS] |= (mp_limb_t) 1 << ((ecc->p.bit_size - 1) % GMP_NUMB_BITS); /* Clear any higher bits. */ diff --git a/eddsa-hash.c b/eddsa-hash.c index 4fb79f1b..a8d50815 100644 --- a/eddsa-hash.c +++ b/eddsa-hash.c @@ -49,3 +49,38 @@ _eddsa_hash (const struct ecc_modulo *m, mpn_set_base256_le (rp, 2*m->size, digest, 2*nbytes); m->mod (m, rp); } + +void +_eddsa_sized_hash (const struct ecc_modulo *m, + mp_size_t bits, + mp_limb_t *rp, + const uint8_t *digest) +{ + size_t nbytes = 1 + (bits - 1) / 8; + mp_size_t rn = (bits - 1 + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; + mp_size_t i; + + mpn_set_base256_le (rp, 2*rn, digest, 2*nbytes); + + /* Special case for Ed448: reduce rp to 2*m->size limbs. + After decoding rp from a hash of size 2*rn: + + rp = XX || r0 || r1 + + where r0 and r1 have m->size limbs. Reduce this to: + + rp = r0' || r1 + + where r0' has m->size limbs. */ + for (i = 0; i < 2*(rn - m->size); i++) + { + mp_limb_t hi; + hi = mpn_addmul_1 (rp + m->size + i, m->B, m->B_size, + rp[2*m->size + i]); + assert (hi <= 1); + hi = cnd_add_n (hi, rp + m->size + i, m->B, m->size); + /* Sufficient roughly if b < B^size / p */ + assert (hi == 0); + } + m->mod (m, rp); +} diff --git a/eddsa-pubkey.c b/eddsa-pubkey.c index d1546707..55ca3a83 100644 --- a/eddsa-pubkey.c +++ b/eddsa-pubkey.c @@ -40,7 +40,7 @@ mp_size_t _eddsa_public_key_itch (const struct ecc_curve *ecc) { - return 3*ecc->p.size + ecc->mul_g_itch; + return 3*ecc->p.size + ECC_MAX(ecc->mul_g_itch, _eddsa_compress_itch (ecc)); }
void diff --git a/eddsa-sign.c b/eddsa-sign.c index e5dc0e9d..23cca06e 100644 --- a/eddsa-sign.c +++ b/eddsa-sign.c @@ -44,7 +44,7 @@ mp_size_t _eddsa_sign_itch (const struct ecc_curve *ecc) { - return 5*ecc->p.size + ecc->mul_g_itch; + return 7*ecc->p.size + ECC_MAX(ecc->mul_g_itch, _eddsa_compress_itch (ecc)); }
void @@ -67,22 +67,24 @@ _eddsa_sign (const struct ecc_curve *ecc, #define hash ((uint8_t *) (scratch + 3*size)) #define scratch_out (scratch + 5*size)
- size = ecc->p.size; - nbytes = 1 + ecc->p.bit_size / 8; + assert (ecc->eddsa);
- assert (H->digest_size >= 2 * nbytes); + size = (ecc->eddsa->b - 1 + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; + nbytes = 1 + (ecc->eddsa->b - 1) / 8;
H->update (ctx, length, msg); H->digest (ctx, 2*nbytes, hash); - _eddsa_hash (&ecc->q, rp, hash); + _eddsa_sized_hash (&ecc->q, ecc->eddsa->b, rp, hash); + ecc->mul_g (ecc, P, rp, scratch_out); _eddsa_compress (ecc, signature, P, scratch_out);
+ ecc->eddsa->dom (0, 0, "", H, ctx); H->update (ctx, nbytes, signature); H->update (ctx, nbytes, pub); H->update (ctx, length, msg); H->digest (ctx, 2*nbytes, hash); - _eddsa_hash (&ecc->q, hp, hash); + _eddsa_sized_hash (&ecc->q, ecc->eddsa->b, hp, hash);
ecc_modq_mul (ecc, sp, hp, k2); ecc_modq_add (ecc, sp, sp, rp); /* FIXME: Can be plain add */ @@ -91,7 +93,7 @@ _eddsa_sign (const struct ecc_curve *ecc, { unsigned shift; mp_limb_t cy; - assert (ecc->p.bit_size == 255); + assert (ecc->p.bit_size == 255 || ecc->p.bit_size == 448); shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); cy = mpn_submul_1 (sp, ecc->q.m, ecc->p.size, sp[ecc->p.size-1] >> shift); diff --git a/eddsa-verify.c b/eddsa-verify.c index 5541d975..3add4325 100644 --- a/eddsa-verify.c +++ b/eddsa-verify.c @@ -69,7 +69,7 @@ equal_h (const struct ecc_modulo *p, mp_size_t _eddsa_verify_itch (const struct ecc_curve *ecc) { - return 8*ecc->p.size + ecc->mul_itch; + return 8*ecc->p.size + ECC_MAX(ecc->mul_itch, _eddsa_decompress_itch (ecc)); }
int @@ -83,6 +83,7 @@ _eddsa_verify (const struct ecc_curve *ecc, const uint8_t *signature, mp_limb_t *scratch) { + mp_size_t size; size_t nbytes; #define R scratch #define sp (scratch + 2*ecc->p.size) @@ -92,28 +93,33 @@ _eddsa_verify (const struct ecc_curve *ecc, #define S R #define hash ((uint8_t *) P)
- nbytes = 1 + ecc->p.bit_size / 8; + assert (ecc->eddsa); + + size = (ecc->eddsa->b - 1 + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; + nbytes = 1 + (ecc->eddsa->b - 1) / 8;
/* Could maybe save some storage by delaying the R and S operations, but it makes sense to check them for validity up front. */ if (!_eddsa_decompress (ecc, R, signature, R+2*ecc->p.size)) return 0;
- mpn_set_base256_le (sp, ecc->q.size, signature + nbytes, nbytes); + mpn_set_base256_le (sp, size, signature + nbytes, nbytes); + /* Check that s < q */ if (mpn_cmp (sp, ecc->q.m, ecc->q.size) >= 0) return 0;
H->init (ctx); + ecc->eddsa->dom (0, 0, "", H, ctx); H->update (ctx, nbytes, signature); H->update (ctx, nbytes, pub); H->update (ctx, length, msg); H->digest (ctx, 2*nbytes, hash); - _eddsa_hash (&ecc->q, hp, hash); + _eddsa_sized_hash (&ecc->q, ecc->eddsa->b, hp, hash);
/* Compute h A + R - s G, which should be the neutral point */ ecc->mul (ecc, P, hp, A, scratch_out); - ecc_add_eh (ecc, P, P, R, scratch_out); + ecc->add_hh (ecc, P, P, R, scratch_out); /* Move out of the way. */ mpn_copyi (hp, sp, ecc->q.size); ecc->mul_g (ecc, S, hp, scratch_out); diff --git a/eddsa.h b/eddsa.h index 49f1a025..542532dc 100644 --- a/eddsa.h +++ b/eddsa.h @@ -45,12 +45,16 @@ extern "C" { #define ed25519_sha512_public_key nettle_ed25519_sha512_public_key #define ed25519_sha512_sign nettle_ed25519_sha512_sign #define ed25519_sha512_verify nettle_ed25519_sha512_verify +#define ed448_shake256_public_key nettle_ed448_shake256_public_key +#define ed448_shake256_sign nettle_ed448_shake256_sign +#define ed448_shake256_verify nettle_ed448_shake256_verify
#define _eddsa_compress _nettle_eddsa_compress #define _eddsa_compress_itch _nettle_eddsa_compress_itch #define _eddsa_decompress _nettle_eddsa_decompress #define _eddsa_decompress_itch _nettle_eddsa_decompress_itch #define _eddsa_hash _nettle_eddsa_hash +#define _eddsa_sized_hash _nettle_eddsa_sized_hash #define _eddsa_expand_key _nettle_eddsa_expand_key #define _eddsa_sign _nettle_eddsa_sign #define _eddsa_sign_itch _nettle_eddsa_sign_itch @@ -61,6 +65,8 @@ extern "C" {
#define ED25519_KEY_SIZE 32 #define ED25519_SIGNATURE_SIZE 64 +#define ED448_KEY_SIZE 57 +#define ED448_SIGNATURE_SIZE 114
void ed25519_sha512_public_key (uint8_t *pub, const uint8_t *priv); @@ -76,6 +82,20 @@ ed25519_sha512_verify (const uint8_t *pub, size_t length, const uint8_t *msg, const uint8_t *signature);
+void +ed448_shake256_public_key (uint8_t *pub, const uint8_t *priv); + +void +ed448_shake256_sign (const uint8_t *pub, + const uint8_t *priv, + size_t length, const uint8_t *msg, + uint8_t *signature); + +int +ed448_shake256_verify (const uint8_t *pub, + size_t length, const uint8_t *msg, + const uint8_t *signature); + /* Low-level internal functions */
struct ecc_curve; @@ -98,6 +118,10 @@ void _eddsa_hash (const struct ecc_modulo *m, mp_limb_t *rp, const uint8_t *digest);
+void +_eddsa_sized_hash (const struct ecc_modulo *m, + mp_size_t bits, mp_limb_t *rp, const uint8_t *digest); + mp_size_t _eddsa_sign_itch (const struct ecc_curve *ecc);
diff --git a/nettle.texinfo b/nettle.texinfo index 20adc0e6..e32d348a 100644 --- a/nettle.texinfo +++ b/nettle.texinfo @@ -4585,6 +4585,31 @@ Verifies a message using the provided public key. Returns 1 if the signature is valid, otherwise 0. @end deftypefun
+Nettle also provides Ed448, an EdDSA signature scheme based on an +Edwards curve equivalent to curve448. + +@defvr Constant ED448_KEY_SIZE +The size of a private or public Ed448 key, 57 octets. +@end defvr + +@defvr Constant ED448_SIGNATURE_SIZE +The size of an Ed448 signature, 114 octets. +@end defvr + +@deftypefun void ed448_shake256_public_key (uint8_t *@var{pub}, const uint8_t *@var{priv}) +Computes the public key corresponding to the given private key. Both +input and output are of size @code{ED448_KEY_SIZE}. +@end deftypefun + +@deftypefun void ed448_shake256_sign (const uint8_t *@var{pub}, const uint8_t *@var{priv}, size_t @var{length}, const uint8_t *@var{msg}, uint8_t *@var{signature}) +Signs a message using the provided key pair. +@end deftypefun + +@deftypefun int ed448_shake256_verify (const uint8_t *@var{pub}, size_t @var{length}, const uint8_t *@var{msg}, const uint8_t *@var{signature}) +Verifies a message using the provided public key. Returns 1 if the +signature is valid, otherwise 0. +@end deftypefun + @node Randomness, ASCII encoding, Public-key algorithms, Reference @comment node-name, next, previous, up @section Randomness diff --git a/testsuite/.test-rules.make b/testsuite/.test-rules.make index 5b48dadc..d96c4712 100644 --- a/testsuite/.test-rules.make +++ b/testsuite/.test-rules.make @@ -265,6 +265,9 @@ eddsa-verify-test$(EXEEXT): eddsa-verify-test.$(OBJEXT) ed25519-test$(EXEEXT): ed25519-test.$(OBJEXT) $(LINK) ed25519-test.$(OBJEXT) $(TEST_OBJS) -o ed25519-test$(EXEEXT)
+ed448-test$(EXEEXT): ed448-test.$(OBJEXT) + $(LINK) ed448-test.$(OBJEXT) $(TEST_OBJS) -o ed448-test$(EXEEXT) + sha1-huge-test$(EXEEXT): sha1-huge-test.$(OBJEXT) $(LINK) sha1-huge-test.$(OBJEXT) $(TEST_OBJS) -o sha1-huge-test$(EXEEXT)
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index cbcc3fd3..e0d141e0 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -48,7 +48,7 @@ TS_HOGWEED_SOURCES = sexp-test.c sexp-format-test.c \ ecdsa-sign-test.c ecdsa-verify-test.c \ ecdsa-keygen-test.c ecdh-test.c \ eddsa-compress-test.c eddsa-sign-test.c \ - eddsa-verify-test.c ed25519-test.c + eddsa-verify-test.c ed25519-test.c ed448-test.c
TS_SOURCES = $(TS_NETTLE_SOURCES) $(TS_HOGWEED_SOURCES) CXX_SOURCES = cxx-test.cxx diff --git a/testsuite/ed448-test.c b/testsuite/ed448-test.c new file mode 100644 index 00000000..56dc6277 --- /dev/null +++ b/testsuite/ed448-test.c @@ -0,0 +1,240 @@ +/* ed448-test.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#include "testutils.h" + +#include <errno.h> + +#include "eddsa.h" + +#include "base16.h" + +static void +decode_hex (size_t length, uint8_t *dst, const char *src) +{ + struct base16_decode_ctx ctx; + size_t out_size; + base16_decode_init (&ctx); + ASSERT (base16_decode_update (&ctx, &out_size, dst, 2*length, src)); + ASSERT (out_size == length); + ASSERT (base16_decode_final (&ctx)); +} + +/* Processes a single line in the format of + http://ed25519.cr.yp.to/python/sign.input: + + sk pk : pk : m : s m : + + where sk (secret key) and pk (public key) are 57 bytes each, m is + variable size, and s is 114 bytes. All values hex encoded. +*/ +static void +test_one (const char *line) +{ + const char *p; + const char *mp; + uint8_t sk[ED448_KEY_SIZE]; + uint8_t pk[ED448_KEY_SIZE]; + uint8_t t[ED448_KEY_SIZE]; + uint8_t s[ED448_SIGNATURE_SIZE]; + uint8_t *msg; + size_t msg_size; + uint8_t s2[ED448_SIGNATURE_SIZE]; + + decode_hex (ED448_KEY_SIZE, sk, line); + + p = strchr (line, ':'); + ASSERT (p == line + 228); + p++; + decode_hex (ED448_KEY_SIZE, pk, p); + p = strchr (p, ':'); + ASSERT (p == line + 343); + mp = ++p; + p = strchr (p, ':'); + ASSERT (p); + ASSERT ((p - mp) % 2 == 0); + msg_size = (p - mp) / 2; + + decode_hex (ED448_SIGNATURE_SIZE, s, p+1); + + msg = xalloc (msg_size + 1); + msg[msg_size] = 'x'; + + decode_hex (msg_size, msg, mp); + + ed448_shake256_public_key (t, sk); + ASSERT (MEMEQ(ED448_KEY_SIZE, t, pk)); + + ed448_shake256_sign (pk, sk, msg_size, msg, s2); + ASSERT (MEMEQ (ED448_SIGNATURE_SIZE, s, s2)); + + ASSERT (ed448_shake256_verify (pk, msg_size, msg, s)); + + s2[ED448_SIGNATURE_SIZE/3] ^= 0x40; + ASSERT (!ed448_shake256_verify (pk, msg_size, msg, s2)); + + memcpy (s2, s, ED448_SIGNATURE_SIZE); + s2[2*ED448_SIGNATURE_SIZE/3] ^= 0x40; + ASSERT (!ed448_shake256_verify (pk, msg_size, msg, s2)); + + ASSERT (!ed448_shake256_verify (pk, msg_size + 1, msg, s)); + + if (msg_size > 0) + { + msg[msg_size-1] ^= 0x20; + ASSERT (!ed448_shake256_verify (pk, msg_size, msg, s)); + } + free (msg); +} + +#ifndef HAVE_GETLINE +static ssize_t +getline(char **lineptr, size_t *n, FILE *f) +{ + size_t i; + int c; + if (!*lineptr) + { + *n = 500; + *lineptr = xalloc (*n); + } + + i = 0; + do + { + c = getc(f); + if (c < 0) + { + if (i > 0) + break; + return -1; + } + + (*lineptr) [i++] = c; + if (i == *n) + { + *n *= 2; + *lineptr = realloc (*lineptr, *n); + if (!*lineptr) + die ("Virtual memory exhausted.\n"); + } + } while (c != '\n'); + + (*lineptr) [i] = 0; + return i; +} +#endif + +void +test_main(void) +{ + const char *input = getenv ("ED448_SIGN_INPUT"); + if (input) + { + size_t buf_size; + char *buf; + FILE *f = fopen (input, "r"); + if (!f) + die ("Opening input file '%s' failed: %s\n", + input, strerror (errno)); + + for (buf = NULL; getline (&buf, &buf_size, f) >= 0; ) + test_one (buf); + + free (buf); + fclose (f); + } + else + { + /* Test vectors from RFC 8032. */ + /* Blank */ + test_one ("6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + "5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180:" + "5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180:" + ":" + "533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600" + ":"); + /* 1 octet */ + test_one ("c4eab05d357007c632f3dbb48489924d552b08fe0c353a0d4a1f00acda2c463afbea67c5e8d2877c5e3bc397a659949ef8021e954e0a12274e" + "43ba28f430cdff456ae531545f7ecd0ac834a55d9358c0372bfa0c6c6798c0866aea01eb00742802b8438ea4cb82169c235160627b4c3a9480:" + "43ba28f430cdff456ae531545f7ecd0ac834a55d9358c0372bfa0c6c6798c0866aea01eb00742802b8438ea4cb82169c235160627b4c3a9480:" + "03:" + "26b8f91727bd62897af15e41eb43c377efb9c610d48f2335cb0bd0087810f4352541b143c4b981b7e18f62de8ccdf633fc1bf037ab7cd779805e0dbcc0aae1cbcee1afb2e027df36bc04dcecbf154336c19f0af7e0a6472905e799f1953d2a0ff3348ab21aa4adafd1d234441cf807c03a00" + "03:"); + /* 11 octets */ + test_one ("cd23d24f714274e744343237b93290f511f6425f98e64459ff203e8985083ffdf60500553abc0e05cd02184bdb89c4ccd67e187951267eb328" + "dcea9e78f35a1bf3499a831b10b86c90aac01cd84b67a0109b55a36e9328b1e365fce161d71ce7131a543ea4cb5f7e9f1d8b00696447001400:" + "dcea9e78f35a1bf3499a831b10b86c90aac01cd84b67a0109b55a36e9328b1e365fce161d71ce7131a543ea4cb5f7e9f1d8b00696447001400:" + "0c3e544074ec63b0265e0c:" + "1f0a8888ce25e8d458a21130879b840a9089d999aaba039eaf3e3afa090a09d389dba82c4ff2ae8ac5cdfb7c55e94d5d961a29fe0109941e00b8dbdeea6d3b051068df7254c0cdc129cbe62db2dc957dbb47b51fd3f213fb8698f064774250a5028961c9bf8ffd973fe5d5c206492b140e00" + "0c3e544074ec63b0265e0c:"); + /* 12 octets */ + test_one ("258cdd4ada32ed9c9ff54e63756ae582fb8fab2ac721f2c8e676a72768513d939f63dddb55609133f29adf86ec9929dccb52c1c5fd2ff7e21b" + "3ba16da0c6f2cc1f30187740756f5e798d6bc5fc015d7c63cc9510ee3fd44adc24d8e968b6e46e6f94d19b945361726bd75e149ef09817f580:" + "3ba16da0c6f2cc1f30187740756f5e798d6bc5fc015d7c63cc9510ee3fd44adc24d8e968b6e46e6f94d19b945361726bd75e149ef09817f580:" + "64a65f3cdedcdd66811e2915:" + "7eeeab7c4e50fb799b418ee5e3197ff6bf15d43a14c34389b59dd1a7b1b85b4ae90438aca634bea45e3a2695f1270f07fdcdf7c62b8efeaf00b45c2c96ba457eb1a8bf075a3db28e5c24f6b923ed4ad747c3c9e03c7079efb87cb110d3a99861e72003cbae6d6b8b827e4e6c143064ff3c00" + "64a65f3cdedcdd66811e2915:"); + /* 13 octets */ + test_one ("7ef4e84544236752fbb56b8f31a23a10e42814f5f55ca037cdcc11c64c9a3b2949c1bb60700314611732a6c2fea98eebc0266a11a93970100e" + "b3da079b0aa493a5772029f0467baebee5a8112d9d3a22532361da294f7bb3815c5dc59e176b4d9f381ca0938e13c6c07b174be65dfa578e80:" + "b3da079b0aa493a5772029f0467baebee5a8112d9d3a22532361da294f7bb3815c5dc59e176b4d9f381ca0938e13c6c07b174be65dfa578e80:" + "64a65f3cdedcdd66811e2915e7:" + "6a12066f55331b6c22acd5d5bfc5d71228fbda80ae8dec26bdd306743c5027cb4890810c162c027468675ecf645a83176c0d7323a2ccde2d80efe5a1268e8aca1d6fbc194d3f77c44986eb4ab4177919ad8bec33eb47bbb5fc6e28196fd1caf56b4e7e0ba5519234d047155ac727a1053100" + "64a65f3cdedcdd66811e2915e7:"); + /* 64 octets */ + test_one ("d65df341ad13e008567688baedda8e9dcdc17dc024974ea5b4227b6530e339bff21f99e68ca6968f3cca6dfe0fb9f4fab4fa135d5542ea3f01" + "df9705f58edbab802c7f8363cfe5560ab1c6132c20a9f1dd163483a26f8ac53a39d6808bf4a1dfbd261b099bb03b3fb50906cb28bd8a081f00:" + "df9705f58edbab802c7f8363cfe5560ab1c6132c20a9f1dd163483a26f8ac53a39d6808bf4a1dfbd261b099bb03b3fb50906cb28bd8a081f00:" + "bd0f6a3747cd561bdddf4640a332461a4a30a12a434cd0bf40d766d9c6d458e5512204a30c17d1f50b5079631f64eb3112182da3005835461113718d1a5ef944:" + "554bc2480860b49eab8532d2a533b7d578ef473eeb58c98bb2d0e1ce488a98b18dfde9b9b90775e67f47d4a1c3482058efc9f40d2ca033a0801b63d45b3b722ef552bad3b4ccb667da350192b61c508cf7b6b5adadc2c8d9a446ef003fb05cba5f30e88e36ec2703b349ca229c2670833900" + "bd0f6a3747cd561bdddf4640a332461a4a30a12a434cd0bf40d766d9c6d458e5512204a30c17d1f50b5079631f64eb3112182da3005835461113718d1a5ef944:"); + /* 256 octets */ + test_one ("2ec5fe3c17045abdb136a5e6a913e32ab75ae68b53d2fc149b77e504132d37569b7e766ba74a19bd6162343a21c8590aa9cebca9014c636df5" + "79756f014dcfe2079f5dd9e718be4171e2ef2486a08f25186f6bff43a9936b9bfe12402b08ae65798a3d81e22e9ec80e7690862ef3d4ed3a00:" + "79756f014dcfe2079f5dd9e718be4171e2ef2486a08f25186f6bff43a9936b9bfe12402b08ae65798a3d81e22e9ec80e7690862ef3d4ed3a00:" + "15777532b0bdd0d1389f636c5f6b9ba734c90af572877e2d272dd078aa1e567cfa80e12928bb542330e8409f3174504107ecd5efac61ae7504dabe2a602ede89e5cca6257a7c77e27a702b3ae39fc769fc54f2395ae6a1178cab4738e543072fc1c177fe71e92e25bf03e4ecb72f47b64d0465aaea4c7fad372536c8ba516a6039c3c2a39f0e4d832be432dfa9a706a6e5c7e19f397964ca4258002f7c0541b590316dbc5622b6b2a6fe7a4abffd96105eca76ea7b98816af0748c10df048ce012d901015a51f189f3888145c03650aa23ce894c3bd889e030d565071c59f409a9981b51878fd6fc110624dcbcde0bf7a69ccce38fabdf86f3bef6044819de11:" + "c650ddbb0601c19ca11439e1640dd931f43c518ea5bea70d3dcde5f4191fe53f00cf966546b72bcc7d58be2b9badef28743954e3a44a23f880e8d4f1cfce2d7a61452d26da05896f0a50da66a239a8a188b6d825b3305ad77b73fbac0836ecc60987fd08527c1a8e80d5823e65cafe2a3d00" + "15777532b0bdd0d1389f636c5f6b9ba734c90af572877e2d272dd078aa1e567cfa80e12928bb542330e8409f3174504107ecd5efac61ae7504dabe2a602ede89e5cca6257a7c77e27a702b3ae39fc769fc54f2395ae6a1178cab4738e543072fc1c177fe71e92e25bf03e4ecb72f47b64d0465aaea4c7fad372536c8ba516a6039c3c2a39f0e4d832be432dfa9a706a6e5c7e19f397964ca4258002f7c0541b590316dbc5622b6b2a6fe7a4abffd96105eca76ea7b98816af0748c10df048ce012d901015a51f189f3888145c03650aa23ce894c3bd889e030d565071c59f409a9981b51878fd6fc110624dcbcde0bf7a69ccce38fabdf86f3bef6044819de11:"); + /* 1023 octets */ + test_one ("872d093780f5d3730df7c212664b37b8a0f24f56810daa8382cd4fa3f77634ec44dc54f1c2ed9bea86fafb7632d8be199ea165f5ad55dd9ce8" + "a81b2e8a70a5ac94ffdbcc9badfc3feb0801f258578bb114ad44ece1ec0e799da08effb81c5d685c0c56f64eecaef8cdf11cc38737838cf400:" + "a81b2e8a70a5ac94ffdbcc9badfc3feb0801f258578bb114ad44ece1ec0e799da08effb81c5d685c0c56f64eecaef8cdf11cc38737838cf400:" + "6ddf802e1aae4986935f7f981ba3f0351d6273c0a0c22c9c0e8339168e675412a3debfaf435ed651558007db4384b650fcc07e3b586a27a4f7a00ac8a6fec2cd86ae4bf1570c41e6a40c931db27b2faa15a8cedd52cff7362c4e6e23daec0fbc3a79b6806e316efcc7b68119bf46bc76a26067a53f296dafdbdc11c77f7777e972660cf4b6a9b369a6665f02e0cc9b6edfad136b4fabe723d2813db3136cfde9b6d044322fee2947952e031b73ab5c603349b307bdc27bc6cb8b8bbd7bd323219b8033a581b59eadebb09b3c4f3d2277d4f0343624acc817804728b25ab797172b4c5c21a22f9c7839d64300232eb66e53f31c723fa37fe387c7d3e50bdf9813a30e5bb12cf4cd930c40cfb4e1fc622592a49588794494d56d24ea4b40c89fc0596cc9ebb961c8cb10adde976a5d602b1c3f85b9b9a001ed3c6a4d3b1437f52096cd1956d042a597d561a596ecd3d1735a8d570ea0ec27225a2c4aaff263" + "06d1526c1af3ca6d9cf5a2c98f47e1c46db9a33234cfd4d81f2c98538a09ebe76998d0d8fd25997c7d255c6d66ece6fa56f11144950f027795e653008f4bd7ca2dee85d8e90f3dc315130ce2a00375a318c7c3d97be2c8ce5b6db41a6254ff264fa6155baee3b0773c0f497c573f19bb4f4240281f0b1f4f7be857a4e59d416c06b4c50fa09e1810ddc6b1467baeac5a3668d11b6ecaa901440016f389f80acc4db977025e7f5924388c7e340a732e554440e76570f8dd71b7d640b3450d1fd5f0410a18f9a3494f707c717b79b4bf75c98400b096b21653b5d217cf3565c9597456f70703497a078763829bc01bb1cbc8fa04eadc9a6e3f6699587a9e75c94e5bab0036e0b2e711392cff0047d0d6b05bd2a588bc109718954259f1d86678a579a3120f19cfb2963f177aeb70f2d4844826262e51b80271272068ef5b3856fa8535aa2a88b2d41f2a0e2fda7624c2850272ac4a2f561f8f2f7a318bfd5c" + "af9696149e4ac824ad3460538fdc25421beec2cc6818162d06bbed0c40a387192349db67a118bada6cd5ab0140ee273204f628aad1c135f770279a651e24d8c14d75a6059d76b96a6fd857def5e0b354b27ab937a5815d16b5fae407ff18222c6d1ed263be68c95f32d908bd895cd76207ae726487567f9a67dad79abec316f683b17f2d02bf07e0ac8b5bc6162cf94697b3c27cd1fea49b27f23ba2901871962506520c392da8b6ad0d99f7013fbc06c2c17a569500c8a7696481c1cd33e9b14e40b82e79a5f5db82571ba97bae3ad3e0479515bb0e2b0f3bfcd1fd33034efc6245eddd7ee2086ddae2600d8ca73e214e8c2b0bdb2b047c6a464a562ed77b73d2d841c4b34973551257713b753632efba348169abc90a68f42611a40126d7cb21b58695568186f7e569d2ff0f9e745d0487dd2eb997cafc5abf9dd102e62ff66cba87:" + "e301345a41a39a4d72fff8df69c98075a0cc082b802fc9b2b6bc503f926b65bddf7f4c8f1cb49f6396afc8a70abe6d8aef0db478d4c6b2970076c6a0484fe76d76b3a97625d79f1ce240e7c576750d295528286f719b413de9ada3e8eb78ed573603ce30d8bb761785dc30dbc320869e1a00" + "6ddf802e1aae4986935f7f981ba3f0351d6273c0a0c22c9c0e8339168e675412a3debfaf435ed651558007db4384b650fcc07e3b586a27a4f7a00ac8a6fec2cd86ae4bf1570c41e6a40c931db27b2faa15a8cedd52cff7362c4e6e23daec0fbc3a79b6806e316efcc7b68119bf46bc76a26067a53f296dafdbdc11c77f7777e972660cf4b6a9b369a6665f02e0cc9b6edfad136b4fabe723d2813db3136cfde9b6d044322fee2947952e031b73ab5c603349b307bdc27bc6cb8b8bbd7bd323219b8033a581b59eadebb09b3c4f3d2277d4f0343624acc817804728b25ab797172b4c5c21a22f9c7839d64300232eb66e53f31c723fa37fe387c7d3e50bdf9813a30e5bb12cf4cd930c40cfb4e1fc622592a49588794494d56d24ea4b40c89fc0596cc9ebb961c8cb10adde976a5d602b1c3f85b9b9a001ed3c6a4d3b1437f52096cd1956d042a597d561a596ecd3d1735a8d570ea0ec27225a2c4aaff263" + "06d1526c1af3ca6d9cf5a2c98f47e1c46db9a33234cfd4d81f2c98538a09ebe76998d0d8fd25997c7d255c6d66ece6fa56f11144950f027795e653008f4bd7ca2dee85d8e90f3dc315130ce2a00375a318c7c3d97be2c8ce5b6db41a6254ff264fa6155baee3b0773c0f497c573f19bb4f4240281f0b1f4f7be857a4e59d416c06b4c50fa09e1810ddc6b1467baeac5a3668d11b6ecaa901440016f389f80acc4db977025e7f5924388c7e340a732e554440e76570f8dd71b7d640b3450d1fd5f0410a18f9a3494f707c717b79b4bf75c98400b096b21653b5d217cf3565c9597456f70703497a078763829bc01bb1cbc8fa04eadc9a6e3f6699587a9e75c94e5bab0036e0b2e711392cff0047d0d6b05bd2a588bc109718954259f1d86678a579a3120f19cfb2963f177aeb70f2d4844826262e51b80271272068ef5b3856fa8535aa2a88b2d41f2a0e2fda7624c2850272ac4a2f561f8f2f7a318bfd5c" + "af9696149e4ac824ad3460538fdc25421beec2cc6818162d06bbed0c40a387192349db67a118bada6cd5ab0140ee273204f628aad1c135f770279a651e24d8c14d75a6059d76b96a6fd857def5e0b354b27ab937a5815d16b5fae407ff18222c6d1ed263be68c95f32d908bd895cd76207ae726487567f9a67dad79abec316f683b17f2d02bf07e0ac8b5bc6162cf94697b3c27cd1fea49b27f23ba2901871962506520c392da8b6ad0d99f7013fbc06c2c17a569500c8a7696481c1cd33e9b14e40b82e79a5f5db82571ba97bae3ad3e0479515bb0e2b0f3bfcd1fd33034efc6245eddd7ee2086ddae2600d8ca73e214e8c2b0bdb2b047c6a464a562ed77b73d2d841c4b34973551257713b753632efba348169abc90a68f42611a40126d7cb21b58695568186f7e569d2ff0f9e745d0487dd2eb997cafc5abf9dd102e62ff66cba87:"); + } +} diff --git a/testsuite/eddsa-compress-test.c b/testsuite/eddsa-compress-test.c index 9ceb6fe9..834be212 100644 --- a/testsuite/eddsa-compress-test.c +++ b/testsuite/eddsa-compress-test.c @@ -37,76 +37,87 @@
void test_main (void) { - const struct ecc_curve *ecc = &_nettle_curve25519; gmp_randstate_t rands; - mp_size_t size, itch; - mpz_t zp, t; - mp_limb_t *s; - mp_limb_t *p; - mp_limb_t *pa1; - mp_limb_t *pa2; - mp_limb_t *scratch; - size_t clen; - uint8_t *c; - unsigned j; + unsigned i, j;
gmp_randinit_default (rands);
- size = ecc_size (ecc); - clen = 1 + ecc->p.bit_size / 8; - - mpz_roinit_n (zp, ecc->p.m, size); - - mpz_init (t); - s = xalloc_limbs (size); - p = xalloc_limbs (ecc_size_j (ecc)); - pa1 = xalloc_limbs (ecc_size_a (ecc)); - pa2 = xalloc_limbs (ecc_size_a (ecc)); - c = xalloc (clen); - - itch = _eddsa_decompress_itch (ecc); - if (itch < ecc->mul_g_itch) - itch = ecc->mul_g_itch; - - scratch = xalloc_limbs (itch); - - for (j = 0; j < COUNT; j++) + for (i = 0; ecc_curves[i]; i++) { - mpz_t x1, y1, x2, y2; - - mpz_urandomb (t, rands, ecc->q.bit_size); - mpz_limbs_copy (s, t, ecc->q.size); - ecc->mul_g (ecc, p, s, scratch); - _eddsa_compress (ecc, c, p, scratch); - ecc->h_to_a (ecc, 0, pa1, p, scratch); - _eddsa_decompress (ecc, pa2, c, scratch); - mpz_roinit_n (x1, pa1, size); - mpz_roinit_n (y1, pa1 + size, size); - mpz_roinit_n (x2, pa2, size); - mpz_roinit_n (y2, pa2 + size, size); - if (!(mpz_congruent_p (x1, x2, zp) - && mpz_congruent_p (y1, y2, zp))) + const struct ecc_curve *ecc = ecc_curves[i]; + mp_size_t size, itch; + mpz_t zp, t; + mp_limb_t *s; + mp_limb_t *p; + mp_limb_t *pa1; + mp_limb_t *pa2; + mp_limb_t *scratch; + size_t clen; + uint8_t *c; + + if (!(ecc->p.bit_size == 255 || ecc->p.bit_size == 448)) + continue; + + if (!ecc->eddsa) + abort (); + + size = ecc_size (ecc); + clen = 1 + (ecc->eddsa->b - 1) / 8; + + mpz_roinit_n (zp, ecc->p.m, size); + + mpz_init (t); + s = xalloc_limbs (size); + p = xalloc_limbs (ecc_size_j (ecc)); + pa1 = xalloc_limbs (ecc_size_a (ecc)); + pa2 = xalloc_limbs (ecc_size_a (ecc)); + c = xalloc (clen); + + itch = _eddsa_decompress_itch (ecc); + if (itch < ecc->mul_g_itch) + itch = ecc->mul_g_itch; + + scratch = xalloc_limbs (itch); + + for (j = 0; j < COUNT; j++) { - fprintf (stderr, "eddsa compression failed:\nc = "); - print_hex (clen, c); - fprintf (stderr, "\np1 = 0x"); - mpz_out_str (stderr, 16, x1); - fprintf (stderr, ",\n 0x"); - mpz_out_str (stderr, 16, y1); - fprintf (stderr, "\np2 = 0x"); - mpz_out_str (stderr, 16, x2); - fprintf (stderr, ",\n 0x"); - mpz_out_str (stderr, 16, y2); - fprintf (stderr, "\n"); - abort (); + mpz_t x1, y1, x2, y2; + + mpz_urandomb (t, rands, ecc->q.bit_size); + mpz_limbs_copy (s, t, ecc->q.size); + ecc->mul_g (ecc, p, s, scratch); + _eddsa_compress (ecc, c, p, scratch); + ecc->h_to_a (ecc, 0, pa1, p, scratch); + _eddsa_decompress (ecc, pa2, c, scratch); + mpz_roinit_n (x1, pa1, size); + mpz_roinit_n (y1, pa1 + size, size); + mpz_roinit_n (x2, pa2, size); + mpz_roinit_n (y2, pa2 + size, size); + if (!(mpz_congruent_p (x1, x2, zp) + && mpz_congruent_p (y1, y2, zp))) + { + fprintf (stderr, "eddsa compression failed:\nc = "); + print_hex (clen, c); + fprintf (stderr, "\np1 = 0x"); + mpz_out_str (stderr, 16, x1); + fprintf (stderr, ",\n 0x"); + mpz_out_str (stderr, 16, y1); + fprintf (stderr, "\np2 = 0x"); + mpz_out_str (stderr, 16, x2); + fprintf (stderr, ",\n 0x"); + mpz_out_str (stderr, 16, y2); + fprintf (stderr, "\n"); + abort (); + } } + mpz_clear (t); + free (s); + free (p); + free (c); + free (pa1); + free (pa2); + free (scratch); } - mpz_clear (t); - free (s); - free (p); - free (c); - free (pa1); - free (pa2); - free (scratch); + gmp_randclear (rands); } diff --git a/testsuite/eddsa-sign-test.c b/testsuite/eddsa-sign-test.c index c496e6eb..b4471d16 100644 --- a/testsuite/eddsa-sign-test.c +++ b/testsuite/eddsa-sign-test.c @@ -42,13 +42,14 @@ test_eddsa_sign (const struct ecc_curve *ecc, const struct tstring *ref) { mp_limb_t *scratch = xalloc_limbs (_eddsa_sign_itch (ecc)); - size_t nbytes = 1 + ecc->p.bit_size / 8; + mp_size_t size = (ecc->eddsa->b - 1 + GMP_NUMB_BITS - 1) / 8; + size_t nbytes = 1 + (ecc->eddsa->b - 1) / 8; uint8_t *signature = xalloc (2*nbytes); void *ctx = xalloc (H->context_size); uint8_t *public_out = xalloc (nbytes); uint8_t *digest = xalloc (2*nbytes); const uint8_t *k1 = digest + nbytes; - mp_limb_t *k2 = xalloc_limbs (ecc->p.size); + mp_limb_t *k2 = xalloc_limbs (size);
ASSERT (public->length == nbytes); ASSERT (private->length == nbytes); @@ -68,6 +69,8 @@ test_eddsa_sign (const struct ecc_curve *ecc, fprintf (stderr, "\n"); abort (); } + + ecc->eddsa->dom (0, 0, "", H, ctx); H->update (ctx, nbytes, k1);
_eddsa_sign (ecc, H, public->data, ctx, k2, @@ -140,4 +143,63 @@ void test_main (void) "99df1340cce54626 183144ef46887163" "4b0a5c0033534108 e1c67c0dc99d3014" "f01084e98c95e101 4b309b1dbb2e6704")); + + /* Based on a few of the test vectors from RFC 8032 */ + test_eddsa_sign (&_nettle_curve448, &nettle_shake256, + SHEX("5fd7449b59b461fd 2ce787ec616ad46a" + "1da1342485a70e1f 8a0ea75d80e96778" + "edf124769b46c706 1bd6783df1e50f6c" + "d1fa1abeafe82561 80"), + SHEX("6c82a562cb808d10 d632be89c8513ebf" + "6c929f34ddfa8c9f 63c9960ef6e348a3" + "528c8a3fcc2f044e 39a3fc5b94492f8f" + "032e7549a20098f9 5b"), + SHEX(""), + SHEX("533a37f6bbe45725 1f023c0d88f976ae" + "2dfb504a843e34d2 074fd823d41a591f" + "2b233f034f628281 f2fd7a22ddd47d78" + "28c59bd0a21bfd39 80ff0d2028d4b18a" + "9df63e006c5d1c2d 345b925d8dc00b41" + "04852db99ac5c7cd da8530a113a0f4db" + "b61149f05a736326 8c71d95808ff2e65" + "2600")); + test_eddsa_sign (&_nettle_curve448, &nettle_shake256, + SHEX("43ba28f430cdff45 6ae531545f7ecd0a" + "c834a55d9358c037 2bfa0c6c6798c086" + "6aea01eb00742802 b8438ea4cb82169c" + "235160627b4c3a94 80"), + SHEX("c4eab05d357007c6 32f3dbb48489924d" + "552b08fe0c353a0d 4a1f00acda2c463a" + "fbea67c5e8d2877c 5e3bc397a659949e" + "f8021e954e0a1227 4e"), + SHEX("03"), + SHEX("26b8f91727bd6289 7af15e41eb43c377" + "efb9c610d48f2335 cb0bd0087810f435" + "2541b143c4b981b7 e18f62de8ccdf633" + "fc1bf037ab7cd779 805e0dbcc0aae1cb" + "cee1afb2e027df36 bc04dcecbf154336" + "c19f0af7e0a64729 05e799f1953d2a0f" + "f3348ab21aa4adaf d1d234441cf807c0" + "3a00")); + test_eddsa_sign (&_nettle_curve448, &nettle_shake256, + SHEX("df9705f58edbab80 2c7f8363cfe5560a" + "b1c6132c20a9f1dd 163483a26f8ac53a" + "39d6808bf4a1dfbd 261b099bb03b3fb5" + "0906cb28bd8a081f 00"), + SHEX("d65df341ad13e008 567688baedda8e9d" + "cdc17dc024974ea5 b4227b6530e339bf" + "f21f99e68ca6968f 3cca6dfe0fb9f4fa" + "b4fa135d5542ea3f 01"), + SHEX("bd0f6a3747cd561b dddf4640a332461a" + "4a30a12a434cd0bf 40d766d9c6d458e5" + "512204a30c17d1f5 0b5079631f64eb31" + "12182da300583546 1113718d1a5ef944"), + SHEX("554bc2480860b49e ab8532d2a533b7d5" + "78ef473eeb58c98b b2d0e1ce488a98b1" + "8dfde9b9b90775e6 7f47d4a1c3482058" + "efc9f40d2ca033a0 801b63d45b3b722e" + "f552bad3b4ccb667 da350192b61c508c" + "f7b6b5adadc2c8d9 a446ef003fb05cba" + "5f30e88e36ec2703 b349ca229c267083" + "3900")); } diff --git a/testsuite/eddsa-verify-test.c b/testsuite/eddsa-verify-test.c index dd6712ab..bab91509 100644 --- a/testsuite/eddsa-verify-test.c +++ b/testsuite/eddsa-verify-test.c @@ -42,7 +42,7 @@ test_eddsa (const struct ecc_curve *ecc, { mp_limb_t *A = xalloc_limbs (ecc_size_a (ecc)); mp_limb_t *scratch = xalloc_limbs (_eddsa_verify_itch (ecc)); - size_t nbytes = 1 + ecc->p.bit_size / 8; + size_t nbytes = 1 + (ecc->eddsa->b - 1) / 8; uint8_t *cmsg = xalloc (msg->length); uint8_t *csignature = xalloc (2*nbytes); void *ctx = xalloc (H->context_size); @@ -157,4 +157,51 @@ test_main (void) "99df1340cce54626 183144ef46887163" "4b0a5c0033534108 e1c67c0dc99d3014" "f01084e98c95e101 4b309b1dbb2e6704")); + + /* Based on a few of the test vectors from RFC 8032 */ + test_eddsa (&_nettle_curve448, &nettle_shake256, + H("5fd7449b59b461fd 2ce787ec616ad46a" + "1da1342485a70e1f 8a0ea75d80e96778" + "edf124769b46c706 1bd6783df1e50f6c" + "d1fa1abeafe82561 80"), + SHEX(""), + H("533a37f6bbe45725 1f023c0d88f976ae" + "2dfb504a843e34d2 074fd823d41a591f" + "2b233f034f628281 f2fd7a22ddd47d78" + "28c59bd0a21bfd39 80ff0d2028d4b18a" + "9df63e006c5d1c2d 345b925d8dc00b41" + "04852db99ac5c7cd da8530a113a0f4db" + "b61149f05a736326 8c71d95808ff2e65" + "2600")); + test_eddsa (&_nettle_curve448, &nettle_shake256, + H("43ba28f430cdff45 6ae531545f7ecd0a" + "c834a55d9358c037 2bfa0c6c6798c086" + "6aea01eb00742802 b8438ea4cb82169c" + "235160627b4c3a94 80"), + SHEX("03"), + H("26b8f91727bd6289 7af15e41eb43c377" + "efb9c610d48f2335 cb0bd0087810f435" + "2541b143c4b981b7 e18f62de8ccdf633" + "fc1bf037ab7cd779 805e0dbcc0aae1cb" + "cee1afb2e027df36 bc04dcecbf154336" + "c19f0af7e0a64729 05e799f1953d2a0f" + "f3348ab21aa4adaf d1d234441cf807c0" + "3a00")); + test_eddsa (&_nettle_curve448, &nettle_shake256, + H("df9705f58edbab80 2c7f8363cfe5560a" + "b1c6132c20a9f1dd 163483a26f8ac53a" + "39d6808bf4a1dfbd 261b099bb03b3fb5" + "0906cb28bd8a081f 00"), + SHEX("bd0f6a3747cd561b dddf4640a332461a" + "4a30a12a434cd0bf 40d766d9c6d458e5" + "512204a30c17d1f5 0b5079631f64eb31" + "12182da300583546 1113718d1a5ef944"), + H("554bc2480860b49e ab8532d2a533b7d5" + "78ef473eeb58c98b b2d0e1ce488a98b1" + "8dfde9b9b90775e6 7f47d4a1c3482058" + "efc9f40d2ca033a0 801b63d45b3b722e" + "f552bad3b4ccb667 da350192b61c508c" + "f7b6b5adadc2c8d9 a446ef003fb05cba" + "5f30e88e36ec2703 b349ca229c267083" + "3900")); }
From: Daiki Ueno dueno@redhat.com
Signed-off-by: Daiki Ueno dueno@redhat.com --- Makefile.in | 4 +- nettle-internal.h | 2 +- nettle-meta-hashes.c | 2 + nettle-meta.h | 2 + nettle.texinfo | 68 + sha3.c | 13 + sha3.h | 56 + shake128-meta.c | 42 + shake128.c | 84 + shake256-meta.c | 42 + shake256.c | 84 + testsuite/.test-rules.make | 6 + testsuite/Makefile.in | 1 + testsuite/meta-hash-test.c | 2 + testsuite/shake.awk | 14 + testsuite/shake128-test.c | 6183 ++++++++++++++++++++++++++++++++++++++++++++ testsuite/shake256-test.c | 6183 ++++++++++++++++++++++++++++++++++++++++++++ testsuite/testutils.c | 43 +- 18 files changed, 12812 insertions(+), 19 deletions(-) create mode 100644 shake128-meta.c create mode 100644 shake128.c create mode 100644 shake256-meta.c create mode 100644 shake256.c create mode 100755 testsuite/shake.awk create mode 100644 testsuite/shake128-test.c create mode 100644 testsuite/shake256-test.c
diff --git a/Makefile.in b/Makefile.in index 2cf44a31..80c66ce8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -126,7 +126,9 @@ nettle_SOURCES = aes-decrypt-internal.c aes-decrypt.c \ sha512-224-meta.c sha512-256-meta.c \ sha3.c sha3-permute.c \ sha3-224.c sha3-224-meta.c sha3-256.c sha3-256-meta.c \ - sha3-384.c sha3-384-meta.c sha3-512.c sha3-512-meta.c\ + sha3-384.c sha3-384-meta.c sha3-512.c sha3-512-meta.c \ + shake128.c shake128-meta.c \ + shake256.c shake256-meta.c \ serpent-set-key.c serpent-encrypt.c serpent-decrypt.c \ serpent-meta.c \ twofish.c twofish-meta.c \ diff --git a/nettle-internal.h b/nettle-internal.h index 9c4c699d..b2bfe8d1 100644 --- a/nettle-internal.h +++ b/nettle-internal.h @@ -54,7 +54,7 @@ /* Arbitrary limits which apply to systems that don't have alloca */ #define NETTLE_MAX_HASH_BLOCK_SIZE 128 #define NETTLE_MAX_HASH_DIGEST_SIZE 64 -#define NETTLE_MAX_HASH_CONTEXT_SIZE (sizeof(struct sha3_224_ctx)) +#define NETTLE_MAX_HASH_CONTEXT_SIZE (sizeof(struct shake128_ctx)) #define NETTLE_MAX_SEXP_ASSOC 17 #define NETTLE_MAX_CIPHER_BLOCK_SIZE 32
diff --git a/nettle-meta-hashes.c b/nettle-meta-hashes.c index 2220968c..1cd7f677 100644 --- a/nettle-meta-hashes.c +++ b/nettle-meta-hashes.c @@ -50,5 +50,7 @@ const struct nettle_hash * const nettle_hashes[] = { &nettle_sha3_256, &nettle_sha3_384, &nettle_sha3_512, + &nettle_shake128, + &nettle_shake256, NULL }; diff --git a/nettle-meta.h b/nettle-meta.h index 14b5e48e..454ab833 100644 --- a/nettle-meta.h +++ b/nettle-meta.h @@ -133,6 +133,8 @@ extern const struct nettle_hash nettle_sha3_224; extern const struct nettle_hash nettle_sha3_256; extern const struct nettle_hash nettle_sha3_384; extern const struct nettle_hash nettle_sha3_512; +extern const struct nettle_hash nettle_shake128; +extern const struct nettle_hash nettle_shake256;
struct nettle_aead { diff --git a/nettle.texinfo b/nettle.texinfo index 43c02869..20adc0e6 100644 --- a/nettle.texinfo +++ b/nettle.texinfo @@ -762,6 +762,74 @@ octets of the digest are written. This function also resets the context. @end deftypefun
+@subsubsection @acronym{SHAKE128} + +In addition to those SHA-3 hash functions, Nettle also provides two +SHA-3 extendable-output functions (XOFs). Unlike SHA-3 hash functions, +the output of SHA-3 XOFs can be extended to any desired length. + +Nettle defines SHAKE128 in @file{<nettle/sha3.h>}. + +@deftp {Context struct} {struct shake128_ctx} +@end deftp + +@defvr Constant SHAKE128_DIGEST_SIZE +The size of a SHAKE128 digest, i.e. 64. +@end defvr + +@defvr Constant SHAKE128_BLOCK_SIZE +The internal block size of SHAKE128. +@end defvr + +@deftypefun void shake128_init (struct shake128_ctx *@var{ctx}) +Initialize the SHAKE128 state. +@end deftypefun + +@deftypefun void shake128_update (struct shake128_ctx *@var{ctx}, size_t @var{length}, const uint8_t *@var{data}) +Hash some more data. +@end deftypefun + +@deftypefun void shake128_digest (struct shake128_ctx *@var{ctx}, size_t @var{length}, uint8_t *@var{digest}) +Performs final processing and extracts the message digest, writing it +to @var{digest}. @var{length} may be smaller than +@code{SHAKE128_DIGEST_SIZE}, in which case only the first @var{length} +octets of the digest are written. + +This function also resets the context. +@end deftypefun + +@subsubsection @acronym{SHAKE256} + +Nettle defines SHAKE256 in @file{<nettle/sha3.h>}. + +@deftp {Context struct} {struct shake256_ctx} +@end deftp + +@defvr Constant SHAKE256_DIGEST_SIZE +The size of a SHAKE256 digest, i.e. 64. +@end defvr + +@defvr Constant SHAKE256_BLOCK_SIZE +The internal block size of SHAKE256. +@end defvr + +@deftypefun void shake256_init (struct shake256_ctx *@var{ctx}) +Initialize the SHAKE256 state. +@end deftypefun + +@deftypefun void shake256_update (struct shake256_ctx *@var{ctx}, size_t @var{length}, const uint8_t *@var{data}) +Hash some more data. +@end deftypefun + +@deftypefun void shake256_digest (struct shake256_ctx *@var{ctx}, size_t @var{length}, uint8_t *@var{digest}) +Performs final processing and extracts the message digest, writing it +to @var{digest}. @var{length} may be smaller than +@code{SHAKE256_DIGEST_SIZE}, in which case only the first @var{length} +octets of the digest are written. + +This function also resets the context. +@end deftypefun + @node Legacy hash functions, nettle_hash abstraction, Recommended hash functions, Hash functions @comment node-name, next, previous, up @subsection Legacy hash functions diff --git a/sha3.c b/sha3.c index 24581db2..09ebdba9 100644 --- a/sha3.c +++ b/sha3.c @@ -101,3 +101,16 @@ _sha3_pad (struct sha3_state *state,
sha3_absorb (state, block_size, block); } + +void +_sha3_shake_pad (struct sha3_state *state, + unsigned block_size, uint8_t *block, unsigned pos) +{ + assert (pos < block_size); + block[pos++] = 0x1F; + + memset (block + pos, 0, block_size - pos); + block[block_size - 1] |= 0x80; + + sha3_absorb (state, block_size, block); +} diff --git a/sha3.h b/sha3.h index 0c655376..78d181b0 100644 --- a/sha3.h +++ b/sha3.h @@ -44,6 +44,7 @@ extern "C" { #define sha3_permute nettle_sha3_permute #define _sha3_update _nettle_sha3_update #define _sha3_pad _nettle_sha3_pad +#define _sha3_shake_pad _nettle_sha3_shake_pad #define sha3_224_init nettle_sha3_224_init #define sha3_224_update nettle_sha3_224_update #define sha3_224_digest nettle_sha3_224_digest @@ -56,6 +57,12 @@ extern "C" { #define sha3_512_init nettle_sha3_512_init #define sha3_512_update nettle_sha3_512_update #define sha3_512_digest nettle_sha3_512_digest +#define shake128_init nettle_shake128_init +#define shake128_update nettle_shake128_update +#define shake128_digest nettle_shake128_digest +#define shake256_init nettle_shake256_init +#define shake256_update nettle_shake256_update +#define shake256_digest nettle_shake256_digest
/* Indicates that SHA3 is the NIST FIPS 202 version. */ #define NETTLE_SHA3_FIPS202 1 @@ -83,6 +90,9 @@ _sha3_update (struct sha3_state *state, void _sha3_pad (struct sha3_state *state, unsigned block_size, uint8_t *block, unsigned pos); +void +_sha3_shake_pad (struct sha3_state *state, + unsigned block_size, uint8_t *block, unsigned pos);
/* The "capacity" is set to 2*(digest size), 512 bits or 64 octets. The "rate" is the width - capacity, or width - 2 * (digest @@ -100,6 +110,12 @@ _sha3_pad (struct sha3_state *state, #define SHA3_512_DIGEST_SIZE 64 #define SHA3_512_BLOCK_SIZE 72
+#define SHAKE128_DIGEST_SIZE 0 /* not used */ +#define SHAKE128_BLOCK_SIZE 168 + +#define SHAKE256_DIGEST_SIZE 0 /* not used */ +#define SHAKE256_BLOCK_SIZE 136 + /* For backwards compatibility */ #define SHA3_224_DATA_SIZE SHA3_224_BLOCK_SIZE #define SHA3_256_DATA_SIZE SHA3_256_BLOCK_SIZE @@ -186,6 +202,46 @@ sha3_512_digest(struct sha3_512_ctx *ctx, size_t length, uint8_t *digest);
+struct shake128_ctx +{ + struct sha3_state state; + unsigned index; + uint8_t block[SHAKE128_BLOCK_SIZE]; +}; + +void +shake128_init (struct shake128_ctx *ctx); + +void +shake128_update (struct shake128_ctx *ctx, + size_t length, + const uint8_t *data); + +void +shake128_digest(struct shake128_ctx *ctx, + size_t length, + uint8_t *digest); + +struct shake256_ctx +{ + struct sha3_state state; + unsigned index; + uint8_t block[SHAKE256_BLOCK_SIZE]; +}; + +void +shake256_init (struct shake256_ctx *ctx); + +void +shake256_update (struct shake256_ctx *ctx, + size_t length, + const uint8_t *data); + +void +shake256_digest(struct shake256_ctx *ctx, + size_t length, + uint8_t *digest); + #ifdef __cplusplus } #endif diff --git a/shake128-meta.c b/shake128-meta.c new file mode 100644 index 00000000..29c25319 --- /dev/null +++ b/shake128-meta.c @@ -0,0 +1,42 @@ +/* shake128-meta.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include "nettle-meta.h" + +#include "sha3.h" + +const struct nettle_hash nettle_shake128 += _NETTLE_HASH(shake128, SHAKE128); diff --git a/shake128.c b/shake128.c new file mode 100644 index 00000000..75b1351f --- /dev/null +++ b/shake128.c @@ -0,0 +1,84 @@ +/* shake128.c + + The SHAKE128 hash function, arbitrary length output. + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stddef.h> +#include <string.h> + +#include "sha3.h" + +#include "nettle-write.h" + +void +shake128_init (struct shake128_ctx *ctx) +{ + memset (ctx, 0, offsetof (struct shake128_ctx, block)); +} + +void +shake128_update (struct shake128_ctx *ctx, + size_t length, + const uint8_t *data) +{ + ctx->index = _sha3_update (&ctx->state, SHAKE128_BLOCK_SIZE, ctx->block, + ctx->index, length, data); +} + +void +shake128_digest(struct shake128_ctx *ctx, + size_t length, + uint8_t *digest) +{ + _sha3_shake_pad (&ctx->state, SHAKE128_BLOCK_SIZE, ctx->block, ctx->index); + if (length <= SHAKE128_BLOCK_SIZE) + _nettle_write_le64 (length, digest, ctx->state.a); + else + { + uint8_t *dst = digest; + + while (length > SHAKE128_BLOCK_SIZE) + { + _nettle_write_le64 (SHAKE128_BLOCK_SIZE, dst, ctx->state.a); + length -= SHAKE128_BLOCK_SIZE; + dst += SHAKE128_BLOCK_SIZE; + sha3_permute (&ctx->state); + } + if (length > 0) + _nettle_write_le64 (length, dst, ctx->state.a); + } + shake128_init (ctx); +} diff --git a/shake256-meta.c b/shake256-meta.c new file mode 100644 index 00000000..7921b1a2 --- /dev/null +++ b/shake256-meta.c @@ -0,0 +1,42 @@ +/* shake256-meta.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include "nettle-meta.h" + +#include "sha3.h" + +const struct nettle_hash nettle_shake256 += _NETTLE_HASH(shake256, SHAKE256); diff --git a/shake256.c b/shake256.c new file mode 100644 index 00000000..d57de914 --- /dev/null +++ b/shake256.c @@ -0,0 +1,84 @@ +/* shake256.c + + The SHAKE256 hash function, arbitrary length output. + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stddef.h> +#include <string.h> + +#include "sha3.h" + +#include "nettle-write.h" + +void +shake256_init (struct shake256_ctx *ctx) +{ + memset (ctx, 0, offsetof (struct shake256_ctx, block)); +} + +void +shake256_update (struct shake256_ctx *ctx, + size_t length, + const uint8_t *data) +{ + ctx->index = _sha3_update (&ctx->state, SHAKE256_BLOCK_SIZE, ctx->block, + ctx->index, length, data); +} + +void +shake256_digest(struct shake256_ctx *ctx, + size_t length, + uint8_t *digest) +{ + _sha3_shake_pad (&ctx->state, SHAKE256_BLOCK_SIZE, ctx->block, ctx->index); + if (length <= SHAKE256_BLOCK_SIZE) + _nettle_write_le64 (length, digest, ctx->state.a); + else + { + uint8_t *dst = digest; + + while (length > SHAKE256_BLOCK_SIZE) + { + _nettle_write_le64 (SHAKE256_BLOCK_SIZE, dst, ctx->state.a); + length -= SHAKE256_BLOCK_SIZE; + dst += SHAKE256_BLOCK_SIZE; + sha3_permute (&ctx->state); + } + if (length > 0) + _nettle_write_le64 (length, dst, ctx->state.a); + } + shake256_init (ctx); +} diff --git a/testsuite/.test-rules.make b/testsuite/.test-rules.make index dfa6c1d7..5b48dadc 100644 --- a/testsuite/.test-rules.make +++ b/testsuite/.test-rules.make @@ -97,6 +97,12 @@ sha3-384-test$(EXEEXT): sha3-384-test.$(OBJEXT) sha3-512-test$(EXEEXT): sha3-512-test.$(OBJEXT) $(LINK) sha3-512-test.$(OBJEXT) $(TEST_OBJS) -o sha3-512-test$(EXEEXT)
+shake128-test$(EXEEXT): shake128-test.$(OBJEXT) + $(LINK) shake128-test.$(OBJEXT) $(TEST_OBJS) -o shake128-test$(EXEEXT) + +shake256-test$(EXEEXT): shake256-test.$(OBJEXT) + $(LINK) shake256-test.$(OBJEXT) $(TEST_OBJS) -o shake256-test$(EXEEXT) + serpent-test$(EXEEXT): serpent-test.$(OBJEXT) $(LINK) serpent-test.$(OBJEXT) $(TEST_OBJS) -o serpent-test$(EXEEXT)
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index 762d3f50..cbcc3fd3 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -23,6 +23,7 @@ TS_NETTLE_SOURCES = aes-test.c arcfour-test.c arctwo-test.c \ sha384-test.c sha512-test.c sha512-224-test.c sha512-256-test.c \ sha3-permute-test.c sha3-224-test.c sha3-256-test.c \ sha3-384-test.c sha3-512-test.c \ + shake128-test.c shake256-test.c \ serpent-test.c twofish-test.c version-test.c \ knuth-lfib-test.c \ cbc-test.c ctr-test.c gcm-test.c eax-test.c ccm-test.c \ diff --git a/testsuite/meta-hash-test.c b/testsuite/meta-hash-test.c index f7fa5369..c076c42a 100644 --- a/testsuite/meta-hash-test.c +++ b/testsuite/meta-hash-test.c @@ -18,6 +18,8 @@ const char* hashes[] = { "sha3_256", "sha3_384", "sha3_512", + "shake128", + "shake256", };
void diff --git a/testsuite/shake.awk b/testsuite/shake.awk new file mode 100755 index 00000000..af03207c --- /dev/null +++ b/testsuite/shake.awk @@ -0,0 +1,14 @@ +#! /usr/bin/awk -f + +# This script is used to process the Keccak testvectors, originally +# we used http://keccak.noekeon.org/KeccakKAT-3.zip. +# For the updated NIST version, test vectors can be found at +# https://github.com/gvanas/KeccakCodePackage/tree/master/TestVectors + +/^Len/ { len = $3 } +/^Msg/ { msg = $3 } +/^Squeezed/ { md = $3; + if (len % 8 == 0) + printf("test_hash_extendable(&nettle_shakexxx, /* %d octets */\nSHEX("%s"),\n%d,\nSHEX("%s"));\n", + len / 8, len ? msg : "", length(md) / 2, md); +} diff --git a/testsuite/shake128-test.c b/testsuite/shake128-test.c new file mode 100644 index 00000000..3655e942 --- /dev/null +++ b/testsuite/shake128-test.c @@ -0,0 +1,6183 @@ +/* shake128-test.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#include "testutils.h" + +void +test_main(void) +{ + /* Extracted from ShortMsgKAT_SHAKE128.txt. */ + test_hash_extendable(&nettle_shake128, /* 0 octets */ + SHEX(""), + 512, + SHEX("7F9C2BA4E88F827D616045507605853ED73B8093F6EFBC88EB1" + "A6EACFA66EF263CB1EEA988004B93103CFB0AEEFD2A686E01FA" + "4A58E8A3639CA8A1E3F9AE57E235B8CC873C23DC62B8D260169" + "AFA2F75AB916A58D974918835D25E6A435085B2BADFD6DFAAC3" + "59A5EFBB7BCC4B59D538DF9A04302E10C8BC1CBF1A0B3A5120E" + "A17CDA7CFAD765F5623474D368CCCA8AF0007CD9F5E4C849F16" + "7A580B14AABDEFAEE7EEF47CB0FCA9767BE1FDA69419DFB927E" + "9DF07348B196691ABAEB580B32DEF58538B8D23F87732EA63B0" + "2B4FA0F4873360E2841928CD60DD4CEE8CC0D4C922A96188D03" + "2675C8AC850933C7AFF1533B94C834ADBB69C6115BAD4692D86" + "19F90B0CDF8A7B9C264029AC185B70B83F2801F2F4B3F70C593" + "EA3AEEB613A7F1B1DE33FD75081F592305F2E4526EDC09631B1" + "0958F464D889F31BA010250FDA7F1368EC2967FC84EF2AE9AFF" + "268E0B1700AFFC6820B523A3D917135F2DFF2EE06BFE72B3124" + "721D4A26C04E53A75E30E73A7A9C4A95D91C55D495E9F51DD0B" + "5E9D83C6D5E8CE803AA62B8D654DB53D09B8DCFF273CDFEB573" + "FAD8BCD45578BEC2E770D01EFDE86E721A3F7C6CCE275DABE6E" + "2143F1AF18DA7EFDDC4C7B70B5E345DB93CC936BEA323491CCB" + "38A388F546A9FF00DD4E1300B9B2153D2041D205B443E41B45A" + "653F2A5C4492C1ADD544512DDA2529833462B71A41A45BE9729" + "0B6F")); + test_hash_extendable(&nettle_shake128, /* 1 octets */ + SHEX("CC"), + 512, + SHEX("4DD4B0004A7D9E613A0F488B4846F804015F0F8CCDBA5F7C168" + "10BBC5A1C6FB254EFC81969C5EB49E682BABAE02238A31FD270" + "8E418D7B754E21E4B75B65E7D39B5B42D739066E7C63595DAF2" + "6C3A6A2F7001EE636C7CB2A6C69B1EC7314A21FF24833EAB612" + "58327517B684928C7444380A6EACD60A6E9400DA37A61050E4C" + "D1FBDD05DDE0901EA2F3F67567F7C9BF7AA53590F29C94CB422" + "6E77C68E1600E4765BEA40B3644B4D1E93EDA6FB0380377C12D" + "5BB9DF4728099E88B55D820C7F827034D809E756831A334C078" + "FC28ACB76B5ADB3BFF6DD659CAA49CC34F726880F293BD3FC13" + "2027AE7602242064EFEC4D9D656E069D4DFAE0B40C1D6B6CDB2" + "1D89D00E168B0B74D72EBB3B672B57AF3E99C85DA2F41CE7067" + "2CD0E0521678FC56EAB6314A0B3AF8B724376C01433D84943A7" + "3AF703D293634BC24322992756EE261FFF0D71BFFB8AEBF1026" + "A6A345F2EAED505BC7E02498A3225FC91499DD5F5E30E386557" + "C5FE0A88BC2337C80D7EA42B60622960230577CE800CB63594F" + "619B7DE31E026429B7648C5835AFC00559FA4C7695D6DD9F7B2" + "537A265E9AF7A2C986F8B60E7DC6EB3C4D805A6EEFB6FBB5BFD" + "E21ED7E41CFDBEB02B0BAB76F9998BA1E52815A246B084EFAE7" + "960AFFC2BA5C647E7CC05EF8120568432DFDE1D724647330480" + "8985600A1AFC20B99185AF25E89DC2EC6F4880DC79BAD50DFFC" + "C9EA")); + test_hash_extendable(&nettle_shake128, /* 2 octets */ + SHEX("41FB"), + 512, + SHEX("09C9652BB968996A35E4814E27587131F53FD01AB9FE83758AC" + "EB8134FCECA24C84F592CEE43A4476E8853FCAB7DAFEF7B60EC" + "FEBFD70DFCF587B3AF358A286FE3713BF4735A84975BB65E358" + "6C81EA716BFB999626DC973A495A6E0024061387D628E9E59DF" + "D2B39C68C8CEAD665AB43F6D2625A10630761DFB60276EA97B2" + "80442462246C6D74A1960A8419A76A37B68449A9E427D6A7EC1" + "FBDF4760847AD6F6F5A08CEFB767CAEB6C2382F4F3D0E49DE44" + "28CD4240635C9136911A82FF0B9C74569A1B7C8AF72AB1EA5F2" + "F6F6A45E3BB08229ADDFA916B18A74F7939C5130152AC8343A1" + "0694154FDC6E1570EC7ECABBB01EDDC92EF0BB1B3DB914C74CC" + "E399ACC9B766FD7494B2EF27AC57B80D52535942D55E2DBFAA6" + "1CDF3F48759AA612DED11421855AD15FFAB91462A56F873BBAF" + "4FE88457A47B6C0594818D0A9189895239C1429ED8754EEE549" + "8F4D0FB6C9D0DF0EB5316289E72C6AAEB8C61317B409156D422" + "1CE6CFC7C5F39272D87C2D884F88F1B8B3C05CA9E235ED92C7D" + "D7806CDADA7166CC1B9107DA5E6536D4FF111BF9199D6B72AC1" + "7D874323D68D76AEC4650F1A4B067C50215362201A7F71116BF" + "6633AF08D712804B83F08A5DC7CCD4315963106D50453D44EFF" + "59C9C652F4A924BE93C0B958EA286B0A4B597899A28C9BD5419" + "C042668AA7B0CFCAC4CDF9260F2824ABF3EE79FEF53EBE3C36D" + "F831")); + test_hash_extendable(&nettle_shake128, /* 3 octets */ + SHEX("1F877C"), + 512, + SHEX("E2D3144669AB578347FCCA0B572783A269A8CF9ADDA4D877820" + "53D80D5F0FDD27835CF883036E536CE76FEF689A5E7BD646A7F" + "B7D74F090193B2390E614759B7EB7DE915A38328745890B1EF1" + "E7AED78168E996D7AC774D47F8F118B3E00A7BD151131BA3705" + "AE81B57FB7CBFFE114E2F4C3CA152B8874FB906E862840624E0" + "2BBF9502E46D8888433A38E82E04CAACB60019222D433E8F2E7" + "58BD41AAB395BF83611FD0C3F7FD5173306182449B9A22C4013" + "F2263B41EAC4D0EDA16854961FBAA6AD04A89E72A602AC59659" + "EC2A60C1D020BACC74A711D4254A2ECC5F8F0627B4F72AE130C" + "50590F8B91C52957B795D12DA09BDD40D41E3CD48E30E37FE5F" + "D0B86EB38AB4661085EF515E70231A5F11F9DBF7433763B17D8" + "4F36BF42FB6D57789C6DA2BE8D205EAD87BDCC3FA6AC85FCC3E" + "70571EBB2EE4BBBFC04E71B3A88E000464608475C94C7D7EC1B" + "BFCEC980B166096E9BDDE9192C53E350D3B92F3AB0FCEF4E49E" + "05BBBC18B11ECA942C8A0776ED4F293B7FC9B8E7C0303A29A41" + "DE64BFEBD2967875290D471640A914B0775CDFF140B2B66CB09" + "9A05F5357C9D5E7F9F1D78B828CCD23FC7CD58329613DE4BE98" + "69B4F2DB18F5792795C34C43D23E2CC5525B4A363A9619AD57E" + "42C36EC459FFAE56B61717EF36AFC9FBE5A72A7D23D435B2EF3" + "8A2B0E22AB5DFC8BB8747B6EBF17A63F6368795C6A16DEE0536" + "2422")); + test_hash_extendable(&nettle_shake128, /* 4 octets */ + SHEX("C1ECFDFC"), + 512, + SHEX("B5EB987E7CBFC7C9D140AFD20B500E30F2F71188BCE885951F2" + "2FBC35DE40E7411311BC8479F895A069600483751295F5C3855" + "474D65436B347608583125A6BD41CA30DC99CB342B72A96F8A2" + "213E98A16BBB9E38A141B4FBA68C1A723D1D578A91B4A1BAFD0" + "3B25BD3CFB6D4E1E044637889C6D7AF0209DBB5E10837D5C599" + "1D2766012E7E86A82838B455B96D882B7E25C9072A66DA22B0A" + "CB992FD3CCF5FBC28625B896BDF8D4B7358901D12698FD823FE" + "09AFB4F238631EE1277752F2900E38C7FC163381A01601DBDE8" + "CD30A9A8EE8353DEF6C610B50962D0EC1F4F3EEC2AFD7FCD529" + "6E299C23005960C1AABF3408EDE96DE18E10FDE99774B5BD330" + "92639D8BE9D872130C96311EB6DCA82CC28A62C01E3F9C45425" + "1D87FA890284C06187F904CF23CCC62690628C590BC8B84EEE6" + "8371D3412DCB5648A634F2359951CD011028E61C28A33EC4E31" + "550C1C0E4123D1091E22D56BD587E73B7DD43C1B431D9547398" + "C5E7EB6C682EA2FD758C86C1222C0D6AB236B8106DAC19338E8" + "6CB8F6EC0FB607D70C938CAC172C80079B018BB62939546505B" + "8B6E146A3AD7A35F20D7F9A353F1E6535C23AE93CE8F78C0454" + "02E707A664F5918E6836D343240E6112EFA29DFC4D18778C91E" + "2B8530E4FF6E4947623D31DAFAC9B0D194E36C44E10B1A84693" + "5684F89ADB44782E8FFF2E3E62B65D18140F10D36CD817F835E" + "B0C0")); + test_hash_extendable(&nettle_shake128, /* 5 octets */ + SHEX("21F134AC57"), + 512, + SHEX("7BFBB40DA3704A558291B39E1E56ED9F6F56AE783270AB02A20" + "2060C9173FBB0B45575B32348A6ED2C927A39A30DA0A2BBC180" + "7497AD50F27A107754AF62762C0B9E8E62438101DECA378899C" + "521CB76C75D299EDE19BA70E2AB91DA9E39EBDC917355B6FE28" + "EE254C0CD48F3A28FB51766FD58154C98A5C650A4E4841D14E2" + "C8F5BAEBF5AAF2A2120279D2D33214A51CA30C4E05209BBD601" + "06CC343EC867EFFC826CB32A2E736C4AA561FFAECB46FFB74D1" + "B3FD36242244312067C7CEA2EBBCF988E17742C3C80E8DEE6D5" + "09997866A308C101214F860512D38E3B6C307C1CE779FD42FDC" + "B9D909A2D6F9DD5A3687708905390479950D55E8890D10D7057" + "863CF006034A6D01D77FB33C0E28B093FE3337BE8416202DC86" + "6796739271C9E326199092FA27556C9F40D7E9BAC869B6D7E80" + "18409EA92AF2464C58245E89556DA3E80B6B4200B9E53FC80C9" + "3149E3DC4921A5FBE7DF67F1D0B753CBA41B75EE5CBA78A89A2" + "A85A46BBFAA625A40EE62616E68B07C06339717C81B4343760E" + "97E2676C347D9625ECE383FBB8448E7837DC704E2956B18CC50" + "6E3BA1416C936BFD66E9AED3A2C7B0A8DEDADB04AB711D147F1" + "C1C83322EC1E6F1468AD770663C7938D4032758462513652498" + "CF124B6357B4F7C7E4DB0D0C0C1B7247875CB6685E0567A8AB8" + "CFBE9383DAEAA27D224CA9C69C07AFA929FFC09A03E165D7215" + "3AD2")); + test_hash_extendable(&nettle_shake128, /* 6 octets */ + SHEX("C6F50BB74E29"), + 512, + SHEX("8D876C67A5CC15A544EB81E93B6FC15713FD1C55D778204EB6A" + "F7086AF3FE97D12B4DD22C7AAD54EB9C9E391B90A7C55ABACC3" + "C81DD1788895F17033D561060E2B9CFFD47974F196C6907907D" + "FDC65CDF33BAAFA7049635A70353D92A56A59ECF0CD291AB9B5" + "09D296356E8B0C91983D158DB1568681DE035E56B86EAE32AD3" + "E0193CB816BD2D111C266632DDF907BB276E14880571506E2C3" + "28A3EEAA9744210EBFEAD123E241A8C49C92ADA79B718D970F0" + "E8525A60FFE9074E73491E6F0EED1E047EB95CB52C47F6A1BAB" + "77017D020F016B64798E5D7FC360D5FA213D44E5B75C918C9EC" + "BB134CE1DBE13C419DA62326A550AD4A22E171CE75A369BB820" + "CD75FDE01993CA131F302BE7941F7950A9969D78148FE7C45BB" + "D22FE83AD0354194859F2F0DDA1C92F2C8EDFD3F7A9D8F618D0" + "D02222442DF41D858CBB7A46E5B12A0923DCB53587957EE07ED" + "3E1C4A46EB1141CEE394972726DD003239ECFE8FDDC4E58C503" + "59AF3F89FE58F5CD5AEBC0DC6B9D600F3ED08506256F18695DD" + "C1E3B459AD75090F0764FA89E5CCEC98EE0B387B5FB778620BD" + "A72CB3E2AE50DE8B0D6B43F26E13A16FDF08BEA752B457BF486" + "CE427FD17BD4C5890A89AF2C85B292C51CEC75490C1C6DE9D60" + "DC49D3A77EEB7E19002150794234194115BC685E9981F88B0E1" + "D9C6585F2C5F9DC805FF6C7636C1E06D9F5C018F74A2CE92EFF" + "6B26")); + test_hash_extendable(&nettle_shake128, /* 7 octets */ + SHEX("119713CC83EEEF"), + 512, + SHEX("E2A9537BAC3C4DFC9008C1A7ABA653883D7A1DF35685DBF49AB" + "E5A7E93BF044BC3312A5E4D9743D72BD28ACC16F64AC5090A71" + "761D936FB9DA7C782AF9BC1F636D0E17CB41C7E0E9DFBDB2017" + "ECABA6DBECDCE2AECCE3ED4F59324E74D58D434096356E567B3" + "5AC85F7CA9AB80B1C987CE70F998ABE6536FE485A866A22CDCC" + "37DB08CC742B4612121CF34C2D404B37E8EA8D90CA9CFD0C8C6" + "ECB6B44BF73F4D048A0FD85591D8726BE6246DF406472CA05D1" + "8DFFEBEAB7ED991BE6CD2940EC9B26F9C9219DFFFCD721F5DD9" + "3CF5342A89A6C69168871B14934D4F1794E14B92EA991A78292" + "423F5CD0A5D3454E55DEE27077D6AF78D87BB3FB9E139331ABF" + "326FDE2FE1D3B1533AA038BF59BDC2D6333F968611A4F9BA66E" + "FE92AE8C099ECFC1A36BE726816FAFCC0B016C58B1E42D2CC70" + "65E71ABBD7CEC1ED547AEBF46F5DD72BD472CD764CCB3C4AFAC" + "A540BDC27F52F63151E9FD90AD5BBA7F84C9EC7E996692B842F" + "B1A54D2860A301A9DF6F357C2E05C14154F5FB77A86E4DA9E9A" + "039CDDEB10D6E5DE2E0A585B2701D48E8298BF71F5F72351F8E" + "B3FBA5426286A82ABB75EA46BFC0F65A2E49567CFC970C36D63" + "B2CC73AD7F9791179B1A0C4D84651DCE57B966410CA23CFCB9B" + "F5BD70D56F5BF1A7C939DE74924EDBFCC614113C83803B123F3" + "EEFCE2C809A7A9FB01C709BC09B5F7632D6B59E31A6469D9018" + "5477")); + test_hash_extendable(&nettle_shake128, /* 8 octets */ + SHEX("4A4F202484512526"), + 512, + SHEX("977735A853D872FF7C17C4A825AFD9DF886AC43387DF245C37A" + "608AC7F4E0ED015811167222000AEE1968960174EE5A39369A2" + "3C5DFFB4991AD247B8801DE71BEA97069EA77202999F8E8CF38" + "29816EE598B00C4049265DFBB2B138B13EC3194B988242BC099" + "248BAF9997AED80E95B5F859D42B12DBD578FDEAE47CCC2F8D3" + "E90BF6E8D98AFBE2F4813F68B6FBC4C18C9B8A557A0D87D744A" + "4238D89260941030945538B2DF07E05FD45B50BD790A0510ED4" + "430ADB3B7768DF8C4914E0914FB00DA09331F11371052D30103" + "1853C7F3C32528C0622A77C48463CD1CD96ECF7490F70F16E94" + "1CBFADE71DD8477ECFF1177B7193E456ECC42BEFBE070667D6F" + "39ABEE5CBA354B33A83602C1C17280D2DBD0CE597ECF1FEC3B2" + "7810DF38C2805D8B85D60994EDD2C83F5898CC6623241F16C4C" + "92444FB6A0714D8BF189AA5AEC9D5BF1448805764EA0CCC8B6E" + "399961DFA7CB9D8DE8D800080EEB5D010BCACAC6728E8DE482C" + "37270459DCBC80F496267377D97817149372A053B2D53209C2D" + "D61216CC3AAD29C7238D6B142D71A92CEEE4710476C2A48FADB" + "683B9423727CE772FCE2BDBCF781C119FB43526B8EAAF1D10F2" + "1E586952227E29BAE61FA2C7EDC6260F76AB543244E538180CD" + "90C207330EF29CEA987F7ACDFA028A78D3E93F11EA159B21BF3" + "F50FAEB7961874E816162D42735C9D3567AFA45D1D8B66CEFB5" + "8678")); + test_hash_extendable(&nettle_shake128, /* 9 octets */ + SHEX("1F66AB4185ED9B6375"), + 512, + SHEX("1D96E0454BE037D890FBEB776CE5C922BDFB827AF1D1ABEE1BC" + "8B3AE95453532D40C0B3F9C93E400FF70F6FBD4DD0470DF1F06" + "E04AB4A596B6F92BBCAAD3650D60B940096260226913435C9BB" + "F5F29DE8BCC9721748E3F1DEB7FAE88741084507E1BA72A267C" + "2C2276D8BD8ED284578B46AE81230F383214137CD7C19052481" + "8576F77B0A53C3421E0476D91E11BAE79ACC4995A24FD1398F6" + "F67E22033BC381ABE6DE4E0563238FDC39A1B305FA9403EE358" + "00432999EB3421C8CC17F77F2A544957AFC2CE9496D2B739511" + "B3CC52DB118EE874E43E95FA69D7EF024931377AF86A9448F38" + "99DD0A87EDCFECFC1BCF7C17D470C71CC488744F2B627626112" + "AEE465ADDE9C6719AC0F6E928C77B0BA0AE8A5CE20005C46768" + "021438B611826675E0B94FDC7484A3854936216E2239650C794" + "EF001EF8F9F4CB440664472445875D06C519E14C957D6FCFB73" + "FB72B46CFAC4548BA94B95979FE5FEAC07035E0FDD21AF7E3B6" + "9228AFB2D97F2A333A5D40A84399C6D4F5A7EBEF9ACD08D66C2" + "781EB9085A42E38C434230816B90DD838A2F10E727EE5F58D74" + "69B47FD5324EF53A88208C44943009AE7A2803D55760A6AD4BC" + "6E961C8BCC7F7F5BD07DA63709D85832E26772E01886B2D5B73" + "CA488B8402C6A15D2AEC605D154F9A41EFA93601D26374D3FE8" + "A5337E98BB7A1B5F0071D3C8BCB69CBD0B3683E7A494808C9BC" + "4490")); + test_hash_extendable(&nettle_shake128, /* 10 octets */ + SHEX("EED7422227613B6F53C9"), + 512, + SHEX("0C5DB5EB4C5C83FDCEFE9EF623596F96D2078C6DCC5D9B5E4F1" + "EB5ABBEA23ED4478895D9D9C8FDE4733933986C6CB4D03AAC65" + "DC7BD628169785CFC5D9D4D33ECC7C6AC98312F020B117C831B" + "2ACE85E1ADBE0A5349BBE9FECBC6E998C6DA1E2F333C1053625" + "06766D105F707D905CB616D8BD4B23ED5072E3F4D42412E3ED6" + "C894CD37D8F9A46BE6EF9A53D60254F4E9627625A3671B23466" + "4740C24BDA608A44EDDA0CC652B843DF722AD38B9FD7F122C89" + "D8DF0A68E03FBC0320BBA016A0F3C36FBA6278F9C2AF9BCFC9F" + "312CE55F011255332505FCBAF0ADC512864D633CC0FB4D81BAE" + "980E9522AEBB2A07199B238592E4379537E045CCDE8B0FC44B2" + "781421DC657938851324F5FB6E1B7D9548A50CB6C02A71B16DA" + "CE90B84EF033594B2F0A688F6F9719A1008C1451353F8895AE1" + "B7B16B27AC94B67F390D9586B7EE31AF7B6E7D110813A6A4E01" + "D4C94F17A1EDB0633A1C4F69DE184BF4315DC98BD453FC22EA1" + "1F8EA5F5548C5DC09D3F186B40C4783AAA4BDE1A8F2AEED007A" + "0BE440BE16649111921F779C7E284B8326785D87C3DF06A05B3" + "373E88526D9E8AFDAFD8E673D1876711FF2F68ABADB7CAD4545" + "F0DFF64BBA98C86D7422C4DFCFA8F2BF7D72FF0617BD076B4DE" + "0B457F5FA2B881FCA5722864EBCA11602923BD0D6B21A9D7101" + "ED1F34AD480F8F73E2ADF821B2B259D6DC535AA94D3CAD7158D" + "F14E")); + test_hash_extendable(&nettle_shake128, /* 11 octets */ + SHEX("EAEED5CDFFD89DECE455F1"), + 512, + SHEX("055C0A829125F20A0DBAA6106DE95579BE4188363C7D7E3F3EF" + "C40AFF360298897968B250B8410829CDDCE5EDC80B764A5AFF1" + "6FFF1C3D29614C6BC4C80D095F0C73443E8FE596C86C83AC1D9" + "BA69847F6E64CA643EF3D7010C5F9944A660B14559FF27D4A5A" + "A9862CFFB67B47810D04C736BF842450A7E5239C5D2C6108788" + "8EB892B9BA495EF7031FFE2A56BC4E8FE4CA92D908666091D40" + "F8DBADB0186DB30AF31A4BCD3FAF962B56271A4C5C4A02C75F1" + "1D13F3DEDB0F57EE554B9AA47B19109D3CC2AC58D9C55653B42" + "BF5CC3C8143481146BB54B6284077E94A6B2DAADCCDB3E85FDE" + "BD9003C12FC62DFD07DCD9CE747893DC611EB71580F2AFFC624" + "958E1C78C1554706A1582359F6962ED70FCF82FCCDDF9FBFAF0" + "023FA1FE771D358A5D69E6F8917EC3425543557ABA96D40303C" + "5034FC7A873CA12D485998A856DB5724009B884590C284B685D" + "E5677C76944D07DB1FF855743587374D9F0AB70136AFEE1D1ED" + "F962D1AE9D9DB036F28499ADE8386E78D2D54F8F54A85EF0D77" + "1750A5D51511439ECFAB2A486FA1CF77E8973E977BEC186ED45" + "F6C49845E9E19502CCB3CFBC4F2576D9D30A003F8C00DC209EE" + "68F147CF17BEB5E5E410388A0CEC4643A3BA24B6532CD73DB04" + "9B74E4EC5DB415586095378297A60C2EFB70674C473488385B4" + "7EA9E9D39952AE9A515E139B20D76A30E65F09B7D701B317289" + "9643")); + test_hash_extendable(&nettle_shake128, /* 12 octets */ + SHEX("5BE43C90F22902E4FE8ED2D3"), + 512, + SHEX("9F8F1774FBEA8EC70D0661F8DCCA2953EBD20FD73BFD74E6BF0" + "37B4FBFEF17177F1A02E919FC2B40BEDCF640BE5F191D6572BC" + "57C0F5EA29CDD413E8A97BC24BD490B221FA452594F78136C68" + "B21984DAEA6B61899C386963EA6F078A9A903F05506D0C5592E" + "341A798DC46C0198C039FA2913B7F7560CA6A703A6A86B18CD6" + "7ADB53A13295ADE0BA89522CF98263094B362C0635890CF4FD1" + "4D0CE5DEAE75049C5AF37EDBA5C0803B26EBE951996018D6639" + "0FBD37FF9F24FC5A7435513D3173E26E1850EF3AE729EFF8C38" + "AA18A41B97E11A7AC452445D7EC617B8E0894153B067EB380D8" + "3209D05BC1B18B41272ECBEF29472EC90686256F0CBBF9F5089" + "A78D853B50772E494BF27FC0DBD3492FB16B8AAD6D7AE027D41" + "AEB633CFA3CA931CDACD968C1F24684267ABF45534F89A362C1" + "195F8CB31F1026D3D554AF70DECA0C5FD3973F55F20218056FE" + "70B74A3311AC394EFE4FC0130B5BB092B33BA3B91E2288815BA" + "C931C5625297C2F3180DAE4B824409B435842AA12F7F01A185F" + "699FDB2C6A9D42CB475B0493EB6759FD5809781560626FEF4A4" + "522EE06A2D3FEE7CA2203EB84B717A1A825A2965D2C1C1CC040" + "2658EC5D2448961F521AC318FA4A672F0F8051AE59C05394F84" + "D25A1F9E27B21550A71EC285C8B2F86BBD8FC0DA09614BBB635" + "F905AAE3D401E7969DDC9FE0837959A6749AA76FCD3A7092076" + "6662")); + test_hash_extendable(&nettle_shake128, /* 13 octets */ + SHEX("A746273228122F381C3B46E4F1"), + 512, + SHEX("E73D11EF660C0F9B35CE16C12C58051953C229AC29229FD38E0" + "0ABEA6FC7917427D30952DC52FF435A928F34BF14EA4EDF960C" + "78A5008F4678727BDB4C591D47C0D3A1ABC314CC475E47CF68B" + "243A0F193B5A0FE06613C2715829E672EAE605905E6F52624F9" + "71731AED8D1CC022CF166C7391E249626FFC578F2CC48F89784" + "D7F38DD14012151834DDFDAA245922A27FDDA1465A8056C511A" + "72A784095496FA0258007394C193ED705588607DF19A6452F4E" + "5C890FE648339A597418BA2E7E706C36D3DC493A3A6842F3940" + "9CE186222AFB81EB044081C6145CCF8B0E852DC602A2B703135" + "5911A7C1B16ED74E8BD6C4EC8AC56511768C008BA25343FE5CC" + "7AC262C4662AC803EC1082A52A0530F0C8431F68EF9F7C4C7DF" + "C9C05228E3638B7A26DCD9FD28331F7B04BEF3956D6C49FC946" + "DC97E935A76B3B2B4DECDA6113A9DCAB916538520B28DEFB05D" + "B55F2D168FD6FAF678C6ED335A33C5DA6B575FCCFB64FF2EFBC" + "5BCF2500F006E2F3DFB4C60A2BABEC8240143C779A3D9753F10" + "7BCF9981206922757E04FC93083ED10A77D5C603EFFF8592AC3" + "902E2D07B72A5C75C71B631DFDBF3997744FD63250D2EBBEC2D" + "D3BB10E05FBB3A993831D62A6C03F403E30EA3B80F2C8A3B804" + "73C2D2F2C51B8B5563E46A0A57A02C4E73DA0491312865E15C4" + "251D3DB6516A51DCFEFB1167CEF7021E570FDCBF862BB5B81B4" + "61E2")); + test_hash_extendable(&nettle_shake128, /* 14 octets */ + SHEX("3C5871CD619C69A63B540EB5A625"), + 512, + SHEX("B28D5EF1E7CB85B4406FD3349EC1D5F3727A9FC9C7132EF6593" + "779B0D3677512D5F10A6022DF96AEFFB4252159CCE5562008E3" + "E6BF02DC91A1DA479B5B091C88B65C80F4E8D83279DFECCAE72" + "DA723842EDCB2BA02C4E3E9325804A04366E7FADCEE8BB2D678" + "E31928D59F2F0A546C742D8120694F5F02810D5BCDC32085516" + "4F60226865BDCEC1437F262D6D222D1CBA8577910847B75D5C4" + "549BDDDCA32C3768F1B789CEF62F56993CB72338274E5740062" + "BE3EC7AFFF53215E894600B35DDEEB1AA1E9962B22329FC41A5" + "696580DCCE450DE6C11F92332A3FD959CA5B367B9EC156FAD03" + "18191314E98C1E2F82FCEBAFCB6523693A0C633B82251AA5AB4" + "801B1AFB004FB28DE7B790E65F50E0CC85181FD914C76D915C1" + "E220A53070D73BDC1C1BF2D0D9A3EA45697C3538AFAB5F577E0" + "9483195EC8B7737236491143D7AB0F81228031CDCA4EBB2442A" + "D5AF92CAAEC92CC1F72E32E573D57BB48EB58453B0E0D680B7A" + "3D46B4A5716B7756F8F73BC876DE181C443C082022C7A332205" + "9F83AA16FCDFF5E078AF2F85562F0D60632F4A76B29F27BD913" + "01B276CC414AF7C7B0A20FE0D0540DBC2B7A4F6918B37BAC345" + "411247F2F7ED5AEDD12E72ADE756DA4962C2E19B998AE1A29E0" + "DAF6379A45ADFEF26AECC80D9ED1714582F7D40DE0C3BFADF4A" + "35DA62ED4357B88C45227810D63F33BE90529F426B6AF513C1B" + "43BA")); + test_hash_extendable(&nettle_shake128, /* 15 octets */ + SHEX("FA22874BCC068879E8EF11A69F0722"), + 512, + SHEX("D7DA38E9032FFCADF7CB93C9969171A0493525F8EEE3073DCC9" + "AFC83C704843A8173EF5374C4D564BDF246D41AF6EDD0872E5E" + "E43F5D2C5C85134166F9B2AB9203CFCA96A405F934F3B834299" + "C954A3D30A2CC6737935DB8C094636D659D8A3192AC89258095" + "67719FAF13AD40CCBE7FB1099BF4FCF415817B32CE923B1AD76" + "4B88E6FA24A9F0876C84D8B6FBB0346A87248A99E15C528D8EF" + "B167F6F1F00099D67F5B879FE8B7943726F648158C0356985CC" + "48D92424A44B906B14EB8217B5C75D88E50311007C1CE7BADBD" + "9A48ECCD4F8936B81D0C2A76918A06E3D2B2936C5A157D93750" + "58162259D7D0AD25DBA2490AE1BABF69176B394FE2F00DC000E" + "DA5A0DA049153C077D51A89100DD5B8EF4EC3868F5C9D8E4C18" + "75F292C4FD22C51ECFFE30AA40EB4FF50FA00A61F6116A337BE" + "D4D13B52E12F06BB4F8A88060B77B9F1300B5D895F7314AE728" + "421CA951FE8DA4BE55723AE5533E59E06E0BC8D828603CEDDDF" + "DFB9D82506141E1D90FFCD65403A94586C9259A6CB18550BD22" + "B241112DD9D866F12ADF2B009740AD71630C35B16E062460C70" + "8831DF28918A5DAE14BAB1CA781EFFAFBD267081A7FCDB41841" + "7717756F34BD98A799B02FF2E275193B0C1B721C2696AD732AC" + "77AF212DA45B22F27D54D1559A1CD7B39A49A6286D305DD4A25" + "7452E930D5F2C3CF16C6674ADF81BE1D8231DB6C1B8A9CCAFA6" + "E98B")); + test_hash_extendable(&nettle_shake128, /* 16 octets */ + SHEX("52A608AB21CCDD8A4457A57EDE782176"), + 512, + SHEX("3A0FACA70C9D2B81D1064D429EA3B05AD27366F64985379DDD7" + "5BC73D6A8381045C2AE2E9C723462EE09EFBB1C2A8ED7A0729D" + "0D9B20F03BBCF55A86859ECBE80C8CAB60BAB4C5D063DEA224E" + "825E38642124EA705327E075B61D08E0B49DC184C5194292BB4" + "A797CD24D924CC64816BF911FBF4985130A59D68FF0673CC8C4" + "A390AD593BEBF16419FF464ECB3FC78C160B6DB9F755A5FAA7A" + "9365B58CE7F90465AF960C48B771699E0EB227F5370387E6248" + "E17EE192007128EE7AD3D94BB9A2193BBD4618AFB3A399CB201" + "6ECD5F9E41AF10701FF1915A6E091F44F193B0F729CC4AF5FEC" + "F683B1C7DD2644D7458C45FFD635EEB85C79E241C1F4869CDA9" + "E77E80F7B878C24E9AF77D22D8C7C0C406C8AAF50F57BAB68FC" + "6C3A20274B6BC353E6D60DA40E8369139B4508DAE96DBA12DCA" + "9D80A19041A3798B252FD24BF2BE64035CDA6D95D6E570EA868" + "EB8808193B3792897A2147396A47D27C81D40FF4BF9212AB239" + "D7A789D8CDD545A98B447F6ABBFF4BF6FE631CF2483881E933C" + "1E62A21BEC503A6EA60F3B179F9CA6852DAABA4CED7ADE5E35E" + "960463FA4C3A32F4C580F03CD2E45F10E32507FB2880827F56B" + "FC5030A4CA94635EDB134580715A23C87D755FD91B1566D1A47" + "1F310EDB2C12AA11F2D280683F43155D67E2EC04EC2CB2CEE53" + "A4D00F77AA73DCD6CAD61D1AB7C30A627CC75F83D48BDF9A76A" + "B456")); + test_hash_extendable(&nettle_shake128, /* 17 octets */ + SHEX("82E192E4043DDCD12ECF52969D0F807EED"), + 512, + SHEX("3D62E50DE92BF40637D481CEDBD22F2DBABAEEC0E94D1F99F3E" + "F2E68B1F55D97ADA13D2372104D63946E3EB7C50D7E58F5AA0D" + "5730E4366BBCB6CD332AEF45DA6C4E5EFFFDA948E4E7E6FB9C4" + "9B46AC954CBD53A925C8EBF73BC4FD53ECF34F0D67026136E8C" + "FF3C8B8661C9D5D19420509B47A19D4C848C83B791D1F843F8D" + "F7F69F736A414BB9075B4BB6070FA094A0095F101FE569E45E4" + "E7FDD2B3622B5B912C21BE28208CE90C7C342E6DE485D7344DC" + "F3E89D9C71F320001C52054EAD0EC37B4CB356CCF80088DFD2E" + "B63823210CA3767ABB13623C9BAEA9BE5ECB8DBB8D3DC97C88F" + "6BA9C4A9C443A00E9A476FDAD93ADA9F64D12803DC7FE1C7126" + "D23430CF680F94F0B218A06D5FB4F7698DCB5C896070A03D5DA" + "EAD54E3624EA55E966EA64D0714AAF9E17FEF5DA0998F6A301B" + "20E988579FD98831649B5F71B67CE86F65003EF5F160B18CA21" + "8D446C6A18F341282CC89E585894A2CDB24E107BCEBE66D3265" + "895A622E51B617A57020B29E236DF78271B1B87C5FFEEEFBDF3" + "F36EB3152687209929C800B9CB4A29CFE7AFF4302C990E60CF6" + "1ACDBABC3CD7F98BFAA55BD61C7D97B3B0A935E254D1D46801F" + "B6A02567DE9F75343B612F95DC555340BEE70E61BA8B3E1D747" + "8D77D52C5F395301178D42FC3DDDD1322CD31ECB8E236F17482" + "60F45AF38A57AA8DD1796BDBC99AC14D1801BE95A08C1C6C61B" + "70AE")); + test_hash_extendable(&nettle_shake128, /* 18 octets */ + SHEX("75683DCB556140C522543BB6E9098B21A21E"), + 512, + SHEX("D062C8F1218F1DC5F3CA5C2FF3F33847F3F74C6A40A3C2C6C15" + "E316B6C9FB36A7C1DA9C25833D25C8DC7FCF4F852E3955B4C92" + "46F4CCC3FB9BEC64990E5D84730D56E5E4839EA23B258BE3660" + "014C49645A268EB03BFD932D879B2260BF4C6CC4EE97C8BDC9C" + "02E609372D1FC24029193475992A27C52C20F1F821F285BFD1F" + "4C6ED944EE89A96860364E44971E0B6AAECD446D868C9F7175C" + "7C23E980ADAFA860E690EBA14B71F7EEF16DA6017BA3FAFCE89" + "628F64662AF12BEA0DC93222FEFA733434A4778F0F2F5C0DA24" + "39C5C577345B59771A4991A56EBCAC98961E7EF8AE3F1F8062C" + "1268DE1E6CA5291D4D7F1C1C4652A49AEA180A5685F9E6C8BA0" + "1F8E3BE7C1E5D40A9A0CB8661FC77F624F373C90DA1876218A7" + "8BE6507C2E999A25FE87E5F334ED83689936AD06A7F031590AD" + "13105DCDFDE7554D42F85BBA80A03D3C1459A25F07E93B77293" + "B48E8D831EC371E268E361454CA01539357D4C10255E3DB0576" + "CA7F9E6F4AE766822274A6669AB218474F9D0CB5B96FD0A55D4" + "F454C6EE31E3A040568CF77F97D5B8C4FA783AA5625BD8EA951" + "DEB4BEF186F37663AE83B2CD27276A390D730EFBDBB798049B1" + "51E4962B5B17C4739F9127B87CD5ACB00C4CF04295ACBBF5332" + "4C3C539BDED5E64FB4A3BC08076F52EB0A4BAB60138E50DCFBE" + "48765047FF4468404820088485974F4C4FD8546538698EA3904" + "795D")); + test_hash_extendable(&nettle_shake128, /* 19 octets */ + SHEX("06E4EFE45035E61FAAF4287B4D8D1F12CA97E5"), + 512, + SHEX("ABC182A9D28B3E043F887C072ACEA1E0E6C26A90BF6FE9E1BF9" + "25D20100C3F8E46DD5634CE077F6768450626105210BBD36789" + "FEB64E9E0A0EB5007EAE54D2431156A6BAA49D85B31A716B693" + "36DBCAD7BD43F0C9AFD4D62BBE69D5EA276F01B1B39C637BA13" + "F9D5CFD637FEFA3D80706896F47A58D602166645AA5CAFBF5C2" + "80EAF765A47F4981A9673EDB27089F31314A6367BFB333E4A93" + "7CCC3E704218696F998A3269518965BEA095A934C171F78979D" + "6CED938F8FB3D6CC8F61EDEABFDEA038DBF7159917E3F941C2D" + "17E351390AB77678477B11D2DFE2351180E305025403FB82625" + "5DEF38AAF0ED06BC2AF707337DCDC1E5A08FE03E9CD043D5A15" + "2EF37FD4893266ABC1875DD28E2C7160700899D5F39DF5DEAC2" + "E91131360922F2ABB6BFC49A8FC0B638CD13B6037F99BD0D72A" + "56346804E146E8B2889AD843813DACB56FD8D9909A989C82064" + "E4838D4F01C19A8E8D1B189EB060F642CA5CEF14A2F361C1F34" + "D968FDCF37D7837E3AA9B866935095966109C763C8DD1CC70DF" + "91FBE7B5AC7FC6433F5DB4B780BC9BE4EF862B596E08AD32C20" + "1A07F04E267EE2705245C48918B71C84D78BA48AF70A4776523" + "D37A8B90D53AD45465DABA2B48CE0C09978FAB5F4A0CFA6174D" + "55612B7102CEDB7A591EB6A778BD41CF3C289D06E86B4D329F7" + "1DC6C3BE75D7E661E7E9B5F4CD92225FB5991F73237E2520B9A" + "A604")); + test_hash_extendable(&nettle_shake128, /* 20 octets */ + SHEX("E26193989D06568FE688E75540AEA06747D9F851"), + 512, + SHEX("BFCBFB531C1689126C2323F9294C1BEA280013A2315A596ADA3" + "4F022BB6D3D8A699BA8E2C54AE3BB7B32C422C727B41678F781" + "D652DCBF1A40B8627B56E004AA5F1753B1152920121B1A2D8CD" + "5E9CA02929BE7F2EB433BAAE2FA41830F146C72A12AAA97E8F8" + "B863749B3026E99E0BB7E0A937F003604B470C913546E73413A" + "86EE2E9892FCA2A7839B20309AFC1FC9A0EF14478CE0CCB5CCB" + "E37469B7DAC3A7B74B253CCF2ED085F9A0BEF3759A4002E2E67" + "F81D953E9BD53A4D39A267CC0D262E5D80F50F8B87D816C91A2" + "C64D798784A5677744EE02B5DA2CF07D79282BF8C791433E0B3" + "E296C38AD9E0162BAEDC89F1B368537103EF797AE54E68AABD2" + "3DE81B760689839341155930796AD7A49702113F737D0812E20" + "B850C38C3767421177B39FB60F3FCD0B81A50A8624E57B67620" + "3BE7C8BDC66BE9ABB5A1AB175705DBF65BDF5D119F331205AA7" + "4E6E04C766E408D0B2651511CDC513C75C6E326220DD3DA4A12" + "C82317455D450F44F5F1E55BB7A91BAC1C34C1E405BAF53FC8B" + "CBFF7EA119CA53F6DDFCB5E4F2892B837846CEAFD8ABF5BBACF" + "09A3127685B8B40A2452E52EA6C006F22EC7FD9DF925B939570" + "096E5E0AE74D67E46E5402DC94D4A47E460D718C98A4426F3E6" + "8DEAE1A4E509707A20B136FCCF3C26C8956C14312BD855F0B3F" + "C6A97CF1C7E9ADE4A4907A7CCFE6EB5830D17451378ACFEE388" + "4E8A")); + test_hash_extendable(&nettle_shake128, /* 21 octets */ + SHEX("D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A"), + 512, + SHEX("E3A05F6157BA90878E8C394E09753A69D271C77B233799E0D68" + "A32209F0CDFCD5E3F41DC9109F836A4C45043E7EABF41946FD0" + "5922723B0E6526E5B99B10E89B3C4CA6CE5A2C6C431FB14E6CB" + "C7986C4CA691037B1F306F8ECAA146D3E0B5736A53A2BE74E17" + "04E65864C3ACF042459BBFBB440EC73EC884D89AEE7525CECBA" + "651429F2CD092E4B3BF24AA144873EB870749564A52AE62FC86" + "674B0D9FCEE67DE8910DFD812CA75A47F8FD0B2393E616FE825" + "0899C36C27DBC30716C9F5FA181AC6A6065B73E3DDB94447E22" + "EB858E8D1E12C24B80D99D4E6291A0D588508319C5B54E61627" + "0FCC504D5925B0ECB12F211C3B63286383498FA1A7B4B1BD399" + "934DC6DF4B7A6BE0F42934052AAE7624EA4B6837E07EBA9EF2D" + "066A911CF71776A2EEA41E04122E5AFA6F91865DAC64686212A" + "93CCE21305D925606FAAFABF7C6D27A8A91C5BD24730E2EF0F1" + "1A9467F7661736123E7B8EC29B4ACABF9AED239EBF3C79F4C37" + "F54DB912916EBA3A91AD6362DC616D7339AB457629BDD0FB97B" + "8AB605B9FEFB65E2E70FEE3F2A29A3D6D487682BEE87D5C6158" + "70CB615ADF197AEC1E5EE35C242149DB2D5DCDD598DB5981A5E" + "C57D31C9644CFBDDC03FD2F5F8881D2244A094FF4140D252E25" + "05089337B925D84E3EF632C96888E0FE5C23B1D67A64FF3269A" + "430DB1927CECE798ED159DAAA3B69819FED596EABA5B6BF4FE3" + "E688")); + test_hash_extendable(&nettle_shake128, /* 22 octets */ + SHEX("57085FD7E14216AB102D8317B0CB338A786D5FC32D8F"), + 512, + SHEX("2D81F6711464AD6B3DE6F985E02D52C30DDB350BCAD92FC15DF" + "3A67290E4D74E2EAC52EBF9479DC223770D6481B1A640784B6E" + "4A31EA840692E625BB2D400A5C0C7966E5C4AE2A4CD0A3204D7" + "DB266745D64122F83141FDDC676B57713E45CA04139D49BF42E" + "DCDF443B5600668C1534953AA95FCF4BF9A8EE8B52680C9463E" + "5CB5AAF09F18EEB2885A061DAEE4C3EE5DD6E824BDEF31A93E0" + "92236F91B8E2ADE094E718F8E203E43EF00A843A2548457D0EF" + "2315FF91E5221011B874CD798254FB4A2E4C65405644E0DEAC6" + "529EF59EE52F2496D9B19485E8128A76548C212D667637213B6" + "37919186AFAF827A1A0CB5F584F475723D7D2EEF4162E05F9AC" + "D221C3416E7E88D22D4C471A05EB0DC70822E912942261E9369" + "C0D35A672ACC5A48C86D6835ED99BC201A02CE40E86E0C096B2" + "C34E5BCA207E5C5C90CF86BB3CCD7FB89613E53EC90245F9D83" + "15D1102462CE10AAEE4608101AEDB37857DB22ACCD5B024ED32" + "3151D75223E6CB0EF402F12EE2905869396EF6AD09F6FCFC573" + "10BBE46CA7817021DF43FBDCCD9D62158AFA8F20300F8FA17B2" + "02733438C1F6B0F1D1FB1FC8AD8414E864DEBBEBB5F96367135" + "224581B9B8E54E64937F708A2CF07573A42C45444C37DDB1287" + "D4D27CD3A9DBE476EAB7C39A37722BC4A1345A34C168DC93D48" + "BF719E79F25FF112FD687B86C20C98533CA4B0FBC1F3D4A6CA4" + "69E4")); + test_hash_extendable(&nettle_shake128, /* 23 octets */ + SHEX("A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0"), + 512, + SHEX("CFDDA60353118CB298A271246886E4C7F976465C1B65FB51E87" + "F7E5A9BE050B38BA3EB23F52116F0A13AD802E12AF81A0626A5" + "1C17E9EDEF5CFD1937BD774B4E63B19BF1BC61A4ED23A2ACF45" + "869E4EFE9CFCC8C89AF6861E4122515E2B5EA8DBF024F36EFED" + "B7E6D6DDA829A5E45E21466F4BFC55596748A9FE0A61B3B9B9A" + "B2906008DC3B8BFB71761EEACCE68FED2F0F0B380661831E475" + "4175AE79E9C093DB7F2219C39CC36EC72EA39C65128D835127C" + "3808DE4F3113E9CE42BF1F86250919C8907E21B0905D960480D" + "9786ED5BE6FEA4CA1017708E1A153846AE80F8C81DF6118DE9C" + "25DE8B72473E5A2F40980417259CA2D3FAC3AFCC42E1D5DDEF0" + "3673CC2D9A7E6170357085A135B31B6E8334D331E222055FE01" + "AC3DDA56472572CFCD908797BBD7B8DA672E2F9A10497E423AC" + "9E84C17C81F81A944952C7511FC34C5626471B85D80CBC618A6" + "8DCC343575219999F28D01F732E76DCD6B056F60D0A9CEB822C" + "1BB772F55BC85FD122A0972B0C0FE8B88D731887656036A4A42" + "78D0F46B27B93530D3DDA7A689DBBB73D9DE39A6F96082C8D9B" + "9AEC1FCEF64C7434C38B132A66B3E2DD51367EB83FEC5E6AF8B" + "18A151058D092ED381AB4A86CB542F54EBF5B0824DF726B91DE" + "3BD088CF8D1E55EB1F2C834AB5AB9E25BDD0A4445C692D568B6" + "458BC29CEDB6CB5C5E7C29F16E1B95F22C2752FE1175FFD41F1" + "12EE")); + test_hash_extendable(&nettle_shake128, /* 24 octets */ + SHEX("AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6"), + 512, + SHEX("8FDB0BFC41E23944858401D837455D17966DB41F4B9D2BAB52E" + "208B2E32B22E1FBF3CD83F13B6B99F14BCDE767B286F7D16331" + "FD56DB42A4ACD9C370BAFA8C99F91A5CEB24D52B52CC6576861" + "63057471F2D8C982AF779B05BA1E49114BD55BD59E1DFDC69F4" + "9EA96F771FB4F6B67D1606E6D652368A31CC3F7418427A8DF6F" + "FF8E0B5E43EFB6D9795D766017284879AA199B6726C84623ED6" + "9288633A34D3742D20F1249E1C70370BB19320627598D208A75" + "31EA233E772CF7F3994C06FFDA7E63B85BEF873CB89A8349917" + "4B461B36A375FAE6D5779E23EED9D6624DE2EF309721C428D8A" + "64A2FA7ABDE1BB56F66F04225E30501AAD9B9D9078CCEFC8F72" + "1252A232B82D984DC5D1A03E9F94630B4023CCC4BA6A47FFBBC" + "ABEDD754BB403C25EBD27D445743E17DEF49EB16A75B25921E4" + "9373A4A669A3B3C6BF5ACF72FAAD2D9E0AEC3723FC07E541B72" + "EA98DC3E7903CC89DF00F6B20F147302D6AF18FC94FBA446D37" + "F5EA3A49A9B2942DC4926E06F6D385409753E3ED1C9E1672B78" + "3E491635B2701FCEB0F133C1CDF9364B7BD55CF1CA89DE5ACD1" + "3FD7B94B3EE849E789454EC39474636522FE41EA3504CE13461" + "0D675D5CF299F3E94686F1AD9BE58AF227928B9033823CA7195" + "E6856F72008B31F4AD7095F98B4A5256D2A676817E02E7839B2" + "B875B59AD020B97BCAEFD515B061F49526821043B3B1A1F29B6" + "1F5B")); + test_hash_extendable(&nettle_shake128, /* 25 octets */ + SHEX("AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55"), + 512, + SHEX("64C80B3CDEBA491185A9ED7E0B5EFC031E36D4F22F9B99A3023" + "7C5459C7DA37B16296A7D2E221B314B47F524A01D94845F7B1F" + "38D7D52DA83860E576E8910365A217EBBA342C7E26A350FFCDA" + "54FAD792756EB1D87096F0625D6B237E77060E350B9CB9179DB" + "967BFD8C63E15AAA24336B8314B692F027C99EDBB757E572B0D" + "A00B45D90200BD778B396D18375D77E0CF32E7EAC5003794A01" + "0B3A1DCC5968F59A0CEDD4B2EBF4F0F151E5D8F88C297506295" + "080C91CA11DA2CF32447245E0667D1D4FB619C514014ADFB773" + "3D972198BA4846D57EE8D9FF73D543CB32CB6822996D04B08AF" + "13DF3A696DF38C29B677BA6FA481A5A22D2611B8D721EF11C43" + "61A3205F75C90B7B439B47893CD5C38462646355800EE91DD93" + "66D8CA3C2EF754B8DDB4FA83397FAAEE9BB24EE4FDA89532CD7" + "E1F05CC4D52754ECB59DC6BCA363D9E804B32C47664BE92A230" + "23BDEBABC70DC45F15A708D5A0CA7E6F461C825D58784748284" + "722DF182296103D27A2868C06DEFCE8F0669A173A9EA7C9D7BA" + "1AD721A48A7076CA7E005D0BE0C6F5DF889747A581B54674DDD" + "18A3002662A8D1F1373CCF9C0760B008A805E737660CE28BE2D" + "B4FDFCA40BFDE0357615B8B09B264B9A9C3EDFB70F967BB520B" + "09A76654ECA9FDF6AF19B298DC3348E7A5771F3C3E2ABEE5768" + "19A1C59881E6B8FB1DB1B114D746E90CE6F9F6C09ACB5C46B03" + "653E")); + test_hash_extendable(&nettle_shake128, /* 26 octets */ + SHEX("7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15"), + 512, + SHEX("50102CB39FFBD98F3499FF53914870CBE4440CA8B6D61B79B7E" + "6481B943D8E532947D06A5E04A6EC8E595958245088FA807600" + "B1300ED4DE47A2E800D812BADA538E351DAC64DD3043E7F655B" + "411241C9031ED2765264E372C6F59435988963EF83098452029" + "761D43E4D329CBBD04825719ADAB1920DBED999C1C82BC9A362" + "AB6C0DE15A65EA6E7EAF9B75FA15543910E7CFC214F25CAFBC7" + "71D9E641FA65A6F52FA97CE428910972EFCE8C23FFB56AA5ECC" + "A3EFE08E12125E3C88C652C89765AB1B72C9D16AE3CF4C8A413" + "ACA5675C18439F3909BC8DA92ED71C7219A89DCDBB3E07A3A8D" + "4145B2D65E9525D3E583C70589D79519793F463DE6799D682E2" + "4E83E91A96E866BBF0BD72C041DFD44FF345FA83C24C13AE068" + "9DE442DD01C85179E69FD9E07FE2E2AF1F5D1B5365FE16C3D9D" + "A5F1D83A6BD71923252371D230D20DE8A76A810EF29469A370C" + "C552BC0FE8329CDF85905134BA4F7C4F77FC83BEF84F7560ADC" + "BBF8D384267AE24EFCBD78B8DEDC130BA739C5CE96D8CD05299" + "C50037B94F9B48012BF346E079C4599C2DFBBB1F3980A1800BD" + "593ACDF5C7E355D3CC44CA412A3565FBD8B2A9E8A9E44667979" + "C9B261AAD8EC2B201259A2D7E4D5DA6D5DE05AE61760EE8DEA7" + "0CE5F380BF3F1620B3C67D8EC5DCD47EB14C078EFF113A952B7" + "C77B8E832DFCBB5E7492F090D8D4A9893D222AB77BEE17501B8" + "CBBE")); + test_hash_extendable(&nettle_shake128, /* 27 octets */ + SHEX("FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843"), + 512, + SHEX("EA2A6C14ACAA13B8CE15F4363206525A44AE834D82B000EFE04" + "38A4321EC1EB6DE31390BB495EA7F067D4A3FD9BE173981076B" + "BE4928F2E9173F4A3158DC4DE9F940BD4C8E76C2F886C5D4C07" + "A28E6CA1B35A4C31C153323508DB12D63908ED758195CBA55B1" + "B8C9687D219E4B053849D5134D3BDD8D8B0ADB2C02793677853" + "D6FB496813D72DD415F9EE59B6C30AEBE1BE2CC5FC3D9B4D445" + "6AC65BE1970E5853F87C57BEC289E995FAA9FFF16AAB0ECA5EE" + "E8319897D24E6D68F29B9A8937A0D98717AD61370E25C0F0B68" + "974D41ABF5DBC3C05A26C4B5BD4C60F5D2F2F0126675B785CC2" + "A0D0BD1B2EFC2BFD14790AEB55DB281535950891BB90A6A0227" + "9852BC07D6F03F7C42B4E2B4DA0008E6CCC0A8FDDE198159F6A" + "2BCD516EA80D48F8EE63580ABF97980530AB589FC2158705EB0" + "B5015D6B92D41D4D985661BED07CD1E43595C1A9C902F08976F" + "22E01825CD2C9970A2D09FA0AC68C3428FE2B4957E528DEAB2D" + "1324DB176761ED9A3CEFD129EDAA882C848E994B45D7DF77A48" + "9569B1720C183902A5A7E8116223DC3CD0FE84826A28D226683" + "4D0B09AFF134611203D8704FEB7F1BE1736EC9868F4F638598B" + "D530F6D0DAA795EA85C2954DC188A27A14AACBE2EA7CDDF85B3" + "DC9F2DF61175530127AF3594EA39186F9A18348F9D60DD2B32D" + "B207E5398F59DBA345511D9798613D66318C7F3504A431A0CB8" + "E9D9")); + test_hash_extendable(&nettle_shake128, /* 28 octets */ + SHEX("0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E"), + 512, + SHEX("3325661A828829064E99ADEF00E99E8B9B08A53A4C6B008FAE8" + "DB1A833CF26D83F3F8C613DEFA9885593996ADAE75995DD1968" + "93DE7A89718296F12611B3315E22218B8E26E8124BA7604B4CF" + "E5F427DAFA90E78D0B5E14351D52F9B8EEE659B54E07F1A8AA0" + "8281B2D8672CD405359A681C74E84B1F6F6553ED9B5184D10EB" + "608B37807E5A824C3F0E1126824ACF192C9767919F1070E77E2" + "F81A1B5E5DDAFDCE09DE562CAA1470BC1023E0EDB8901EB9CCF" + "B813366EF60DECF20D0BEB552E7883EA4063383B123D94C35F5" + "D00D57827D60DFB3550485B75D2235400A696684289962C2F71" + "227C847548961B4F3631C656ACCA90F9AB21547A99197C32FBD" + "D410FB7DEF62D1B293BB0FA36921BEE609A6D7C2C9D6ABB287E" + "B2920003C1E965BDDE75A90A41518855039E3EDFEF1A3DDDAA1" + "92FC6198ABA7C0631949F140291FCDFB8D387AD4C19F71B6EC4" + "A6C3F5B22A0F8BBC0F852E03953057CEAC0183569815625F566" + "F050AC6B14BD87D3056A8FA5D99E621632AAABE723189B0E87D" + "CD3CC3D29A4E3ACF2EA915A8A7E0ED73AF0BB905A4E8B0599D2" + "0D699D2C971BBE338C964BB735F72540D8DFDC069F950AA13C8" + "14F46866A32C3EFD0EC5D28482298BEE0CFED7B8725E64C75ED" + "0A35D8DB157278D169849B56AFF015603E1006C168276D96AAA" + "91EBCFC6C6890D5382CDF1C6C5A1BB6A3C090F37ACA605E9E74" + "59EE")); + test_hash_extendable(&nettle_shake128, /* 29 octets */ + SHEX("A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04"), + 512, + SHEX("1ACB385112F369E6D00420FAF1291B1BAEB428C09017B647D73" + "43DD2FF50870CBD47601EFE679AC0724DC63CBF543C87DF5060" + "CB0F11C786E97844A02BDAB528D3FA5890DBCADD9EDDF2DE00A" + "639B0FFB8FB2CDE673F66C54BD554E737B5F370F53823B135B3" + "257AF3394408A853666BB00139F147C6EC198A5829E8A5F8527" + "9B306A428DC2579E66E1E18EB3C4971644DBEDF4F99BDDC9E40" + "96D0BC915AD1F72D522395C6306D047C399BB1C4877BD8278FD" + "29926C3B74AAC5414E9E0936E01DAEE1061C5CD243C380AD802" + "459972D3C2DF479719A554CD9318A8FAA3016AA6EE057A4E57C" + "CCB698A4B0EC411F31D11F0642053880662EB3E098F88F74C65" + "225669A4CC8F3A04E23F6E5E40F9A3C7FC2B4993782D58B27F8" + "0040DD94475A85A14BC792C6B86525D359CAB32744E2BDB4890" + "A392EE847C065364BFA18C85D7E328E5ACD9F04E6A6542C8B73" + "4A3E3795898D7E48FFA8686CC12497883092395239A55E56AC1" + "8C4D63A9281FB8AECA2C099BDCCC65CD239CBE597CF5D577585" + "FDDE3F4B573A666C2D1E3C611DF94C9C519DCE3110C33EA697F" + "C1955127C91BDD420DE5EB667933A49E15959EB3049C7D265CB" + "638BDFE3D6425E20DCE650892E0FC346922A4277C1CB1ADE598" + "86F8006F0D0074937E852A0542B5A111CC4ACD65F3B2580670D" + "FD41C0C9EE3CA5FCCDD7743D131EEFBA0543646B31A9EAAC4CD" + "30DE")); + test_hash_extendable(&nettle_shake128, /* 30 octets */ + SHEX("03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C"), + 512, + SHEX("3C7002A2ECED36B19A3D71464F86A526D0F2A92CA76FE392810" + "616E75A25C223F06BB1EC3BB5BA0D00A51958789DE67724E1D5" + "7C4806F6752E610327B4C84E9C5E815F8765E6B452376CB1EA5" + "E3151C21E789FCBA16ED05306C53F2F089B21F2B5590CD4B486" + "47CAAD444450A1A60E1CD0BD87465C2A3C2D25B15146767B6DC" + "EA1A8AEB8B717410EEBAB139B041FBBA1F654A7136B70715733" + "16B3A7E5BCF8929CC1465FFDE55DF7449C7068EB1D74C0B1241" + "8B50046FA2197A47F4CD15E7D3702E260C188CFDFBD55CF4332" + "BE6CBB157FA8E62D003D902433719B516C59D31F8F935CED0F0" + "10EE66E8E48448FB9BF3A855BED9CC604DF713A689009223F85" + "8DE44137CFDAF2B194131B84559A98AFD4F86AB13D7A1DF01E4" + "14A10768F6D48E426EA64A0602BDACA1CA56C903940A35F2884" + "2922C114F25F7000D720EDD40AAE30F300ABCE4FA5A3B6088B2" + "7377D7767762B220DA383308D00A43E3B9EAA1899C3D4E261EB" + "132C41029AC024D781001B56A1127226C3517A015782097D754" + "233D83D3237A04754F3F22547C4321FC175F9E83E679B0EC756" + "4D942D77F64EA480780242CCA0BA64A8C41C7E94E575CD9E60C" + "229E4765C8BC993048A81EB4D9A7F1F1FE449ABCC1CC5B5CF50" + "0D922A3DD26D6ABC62085249AF7A60271177B19F2D150495FF3" + "B4E8AA0414C58FC1A1979EB9938FCFC6AB3AF97B9A7C8C94D12" + "C821")); + test_hash_extendable(&nettle_shake128, /* 31 octets */ + SHEX("84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29"), + 512, + SHEX("E22AC7FE9DB19147B2DBD586D6C5837A5DD3DF2346EA61DAC75" + "3B0371274DC110612AE3DB350EAFEEB89BB1179EB9D84A0590B" + "243D0DD9BAA00796030D2782F0163E85328A0AA06974A7321E6" + "6649281DB8C506400310AB3E21243F4C2CC5CD8B36AC7C35C23" + "5305E6B1585B33784897D82A2D31F664D963ADA323A9C922A61" + "D9AA5BEF0B90C6B7183F1FD0ED4128B2FE0E12EB6B461176C52" + "AEBFD608C00C7D79799071AB30DA33CA9AA26932AEEE0D58590" + "5BBC853E80AA746706FAF7BE50C90C1FBC18E290505277E9BB9" + "BFA9C767E952A68C4F93A044F62E066E61A0AD301BBFB921C81" + "8690BF6D116C6CBE7DF174A7E57E22294303820494757B3254A" + "C40404A7F4A6D1F9624E5CF3A770392B2DF9FD1FFEF01AC9AFD" + "C74442C0EB6F11E1EABC59270B4DA6F2D6356E79607D6462C08" + "A6F29154BCADF4FFD6E20ECB700E188E523B3930E35C8990AFA" + "D2141FF71912ADB07DC00D5BB78D7FC5590467815BA9F46CE4F" + "5CAD34910A574687D8F7FAC2F60B34D4C3BA6D25D3E5118B851" + "BCB73C1B1004A623F8DDC8A0D07AD21B45F543CA8E705B3864D" + "1C4FE024A19ED5FB0542DBA0C39FE0A82D83266D9C124E61DDB" + "107D8E0AB57C970CFE5879DAAA7170022408F7A9A228196C5C7" + "AC614CB98CC276D1F5ECD79347A41D97360A19E65681A5B75E7" + "8C7F79ADDCD401DA6DE7DED3B1DFF1F746806AE03F496CA701C" + "8448")); + test_hash_extendable(&nettle_shake128, /* 32 octets */ + SHEX("9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10"), + 512, + SHEX("FCDEAD82F39CDFCEF99C1BABB674A9A8E24AC594646C31D020A" + "4CD2BC2554AFD78C4E413F7804FA1708B9F4000FD860E3070F2" + "E1BA9EEE3805352AAD655B4B0A728F2D5FCC43243825BC0DCE3" + "3CA716626DC76E920D72575E26DDD7110D0F991A91200B513AE" + "E23AC9BC7043A152ACE0CD0B49181D2BB6BD36E93C0B627ACA9" + "C6AB6C85ED70CE762429C8F262708103284C0A792138F10E856" + "8EFB2399B38A31055C1188BA59344E6A2B73D5C04AA52405664" + "9844D1DADCD07D35DF5D851EBAFFCA5703B80153EA627B1BADF" + "B2885F70F786D34F5650FE73E3690A8A96610059253DD3ABB5F" + "A7C54CF6E77695D24A6594077EE4D3673F9FC56C62FC7F710CF" + "872014C0A7DE8B1CA6AE8CEFAADEAF5F4D055FF765AD418713F" + "2DD08EAFB5E16EED9FE344EE8D4388FDC22351F63834017B539" + "E3FF143F394B5B74D06F65E96A7A3D028FD14F6C7001EB7AD2D" + "CFCF4B2447AA173A2AE8EDB581B5BBD89E8A468FE0A38507530" + "B9795DA3BCEC6DDEBCE9EB3132EF18C9C2A8B936A431C8B121F" + "A996FF9BA5CE522986B678A5EC99A103A91CF33196E08C82DC6" + "5E68AED238A9316A73E71CF5A67CE440B93BDB845B3A60539EC" + "CDCE41BC723EC9A14EE4E082F60C0BE3D5E50DFC8BE1E86A97E" + "CEE9D88E2BB2A3AFF47FBD6D6675D81EFE0708926B81AB314A5" + "24FC745090162D2AC723C4326E0F9E16FBDBA2B1E9914BBEEDF" + "F96B")); + test_hash_extendable(&nettle_shake128, /* 33 octets */ + SHEX("DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE046"), + 512, + SHEX("F9A4D63D82C6EFA5B1FF90B26510ECF06C53BB1C3B7427B64C4" + "1DE1FA03BC0728085C972E94A7FBFE5F3150A7B9FD8477C6CC1" + "C250DC6FE017B0D0668ADCA12E3C1C9BDC78247529DD1F69198" + "BB0A371072F0225420AFDDFD64AC1F7A8F06FEFDE803579491D" + "8BF61D6CA84E985B1EBC7F0B48822B8BDA9CF9AAF75B7C33C5D" + "360547A34C68114E8A894D658E4F27E3C137E1B2A203293C015" + "975AEB49AB315D142024767836EFE41DDCF42458C5B5238ADE0" + "7302A0EDC28A5E4F686D1F98372A179DCDD2EFF78914AEFA492" + "C05AFF03A5CA3E188F611AC24922CC28AC8010572F406C0ED1B" + "BA849664952AE23842454F60D7F4091D0A4BC2CA6C7B3E1C7DC" + "72659DF6A709587BDB30FFC3BFE6391FFE3D94084D93F218602" + "4B9AA7EB52D5CBE760E5E3A49496A2239C9C71FD2C18C199441" + "F7509108B8E32BCE086A110507038069F99477DD9F75EFDAD8E" + "D861C38C61E2888F7BA3E1AC237A2703BCD64F19BEFE921259F" + "88D225B9B5461F070297A28908A35D78BD66165C8CA532EC58C" + "64DA1988E39D1237588661933320C80B30C183126A10222D6C2" + "DEBA60A55EB6574AF1050AB4A6253817EF90A1DA8B42633B97F" + "792950364D1E7C490A5A2BBB8C3412289329D2B0A644F8A447C" + "5CE8A420C402429B94F4FE11BCC71FA2314D4692DB47EC2EB58" + "C32513B07B7CF7DB276D1AB7190232E7025F805CA2FF9F27AFE" + "C20E")); + test_hash_extendable(&nettle_shake128, /* 34 octets */ + SHEX("62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676B5A0"), + 512, + SHEX("CB65EDDD9ED9FBB19E03DDBEE2D0EB5F0C2610F0AE9F89C50A4" + "63A303C3CEBD64345F39F1CE7E04BD5AFF16B15D5DED79E717C" + "E07ECAEE9B7BF1841B17A1266B5F92F2A92D6BF964E53C3727C" + "50FD9418C1CDBD06F0F0510FEF3ABED7B4CC31534E885EDD00F" + "B1316617D6433B249956E1565BE72E5483EDC6E5E90B470CB2E" + "089150D3B3B70FFF3227131E0DFA12A2248C064DFC83702FC46" + "2FB2165CAFDBEF309EDF1BB785ADDBE17C6E6DE702BA4BE1229" + "A7AB7BE122306E306E92D0DE7020FC1CB568F5EAB5F0A2140B0" + "10587DEBDD8404DDA2C4D6E728A4F1A55182E018789CFE03600" + "301641D5DE2DC58FECADA9A9E1425DABF1F00EA013C05EF3D64" + "113FF351F10916438C6B92B6B6BC5FD3D6CAB43669A1C60ECD3" + "9829C327899885EDBA19B8A9B4992805916C460E5B5F72F5324" + "2D206D2B3DA3A976784FC40B6A4F0FCDE7422453565398A040F" + "9E5545C482EFBF9D3110100DFB04DBFB24A94FCF3FA05406EE9" + "B7E677BA0D3A52032AEBC2CBA54DDDD8CC0900C90F48CB9AE10" + "7DE01C3218F0EF5BD9DB9D7DF8E926E60A384DCA52996104133" + "16BCCAF2821B926174EFBB791D465F887CE3020B908B07E545A" + "386283E17F980639E81E71B0203A3D22EF233B4B2E593FADB04" + "503F0CFC5EAD74075767228458B1EF4C5DA77D126D6DB7EAAD6" + "A2BF5FE9C18E562AFE5671DCCB60F8DDEF168375BE45EF2A391" + "556F")); + test_hash_extendable(&nettle_shake128, /* 35 octets */ + SHEX("B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5BFBAD4E"), + 512, + SHEX("7A3E2CF760D677AB42125BC78324A8E42866E2C148087F92FF2" + "7E149DCB2ECC3F3209D3000583D96C60ACCBB637714C4175B0D" + "B1F982A99A7D121774AFA37ADAC741AD9CF72BFE7175F591E18" + "256A95A0CBEEA06B5CACE02C7903B1448DED23F3A7AD61F9C5C" + "E0F61235520706667E94062CBA04F735CFF813A5B7501975BB7" + "DE70747E619EFAD4D548CBA8FA818A0F4B59F8974429075DC49" + "2E014436CCEE77FF6947FE3702659A14BAF89FDEE45DEDCFE4C" + "FB1D45D59EE5D79DDE87C187AD1E04F06217C41C35F1185E63B" + "625E30E67C5377A11909612DAC6539F72A6BF46EFA1674D41F0" + "0FC2DF3A603A480517894B88556971B793FE3D14E7699762641" + "913ACE9460A4791487937FC6C94B6A0A091C465A3EF24EC55AC" + "C8BE486255848DC7BACE4A3F860C7DF0307B70FB33D8164FE3F" + "EA9ACD2BF3484BACEEFBB4D24D77BDE756CF7614BC2F4D037E1" + "6943E08437695DAE204CA08972BE843F59D608325C7D6D64B13" + "6148887B49FC71ADE52B11E80576FACBA740D88993DC77DF9B7" + "ADEC54A6DAF3149B21B9D0D910F2EEF2C39AB3304F2E5656DF6" + "46E551BAD1E4B2BAA3C7BA7857CA2387F516A0DE8600F14B653" + "055DB1221A57CEAE2E4AE4D3102B60BEE67A5456E0E2C0E5A0A" + "2EC249A3AD11B533005946BC6038A98D129FC696F48F05F0914" + "913D45BD7626046ADDB5AE3BB4C4E1BEF5332767B49D8B57695" + "3832")); + test_hash_extendable(&nettle_shake128, /* 36 octets */ + SHEX("47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835ED2C2492"), + 512, + SHEX("0622ECABCDD9A8C2BC20FE0B9B39CE1A6A835B5181327794DB2" + "E1B40070FD9D89A498D242AAAA8FB5063D5E2AF45A1CD04CB28" + "B96EDF844AA37C7CF6EFE39363AAE56E1E6C1E537CF8E58C20D" + "5AF57AA0687978E8EA46936DEFD6A6F3486ABB9E1F04B612871" + "0F75314DF64706190F4AACCA8FA9F4E1008385E641F40FABD22" + "8B9DD421E30184995720D49112FC429165AAB6DADB0CFB6F986" + "E11866D138DDA8A5B4656B062D73CFCBC8B8873509FEA2820E1" + "50672AE7C01EACF5D9575EC6B1DCFF1F55E6C2DCA4ECE5FB4A6" + "F1EC7BD089C24149F1136AF9018920977519F390FB7929FE842" + "28D5ECBF8FCD5291791CF7FB6CA7208350CFD5D7A761CB8B652" + "4DE5A85467DEE4202232218CE6B39E5505EF02452B4FC0A87C3" + "2C9B9C9B8BF5FBD5755313F551891C5D11E26FD57B65A42DEF3" + "BEB07C88D117CD168335A7749B97B1FDB04C7ED3D2AA1A2DB4E" + "70226F3D8B87ACC19A1F34F60BFC1CD0EA1864C5A991CA21C72" + "C163D0B6BA5833D8EFC7AAADE5BC6D335E62852ADDAB38831AA" + "04DC4247DC7E1CA5E0B2DA9ECC5358A889EAD2F2CDFB538D900" + "FACE60AA53228145644FC4AA2BE363655ED6CCC47D23CCAA0EE" + "A0048887E2C670AB4AC85BC71D1CAF7A1C02EB3C784FB189AE7" + "56EE9133115232A92105B033148C1C9806821BEB545035A1359" + "CB4290B736D3D14C5F990AD2E4FB02A1780E34DB86FEE3BD2A3" + "A9FD")); + test_hash_extendable(&nettle_shake128, /* 37 octets */ + SHEX("512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C6B2EE4E542"), + 512, + SHEX("0D126808ED2AC9458F8002CF172966C8DAF02045518EDBCF87F" + "D315F31EA781C73579DD9BE6A3000F7D6E5C400970D4B6731F9" + "0D75CA01E55EDE430D8A459A98C71D9CE16BCFC334BFA1CE8E1" + "8A70A50E3B795B810FE3273B9EB7DE8D9B7175F97C32FB05767" + "8D819B1134AC30797F6FF7B622CE48616436FF7C38453029DD7" + "B35E648C14AC725EB49067DE2F0DFCED2CB89AC6988CA178E72" + "D0D19ECC481748BE17E8BAAABDBADBB84D0B2F2A49C4E60C000" + "18ECB61D2CD25D8841157D9B6ED74C70C7791F6F88CE61B5FE0" + "F28DDD2B4EAE5E2A71DFF495907FD883CCD522EA1DD55291A5B" + "274B4333EB62650D55B0CE61EC1761CB2D5EA39C71236530953" + "7918EBAC6EB8A0BE3D19CDD0F32FCA2C32FDA5DEB68EA99FF5F" + "7B66EC4FDBC2F8A829A4B3512A52044A7F7C567532376D971AE" + "504601841C8091695533266D14A14AC46A7370372195CBB4BC2" + "12EF72A18F7962EEE6738EF1A669B663B336CB324ED808C3AFF" + "E2F39514BECD5D654715C85F3E5CDBD9029C1F589CD0D563AA9" + "8C6FA99769815922CA7A30F13F55843DD952F5724CCDBB58A26" + "9DA7D066A548540C23F4A740D82F90246D193C22A0CD0601C20" + "30E08E5F0A9AB7B468DE0530F50B156C38DBF08217B63B726B8" + "5227A5FAD8BF9165E76B02CB00CF7DDFB03D9D38C882E81E657" + "FE5596B66E777E672FF416A3155D4E2EBEEAC5B49A8AE3851AB" + "13BA")); + test_hash_extendable(&nettle_shake128, /* 38 octets */ + SHEX("973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E2A1493D8F4FB"), + 512, + SHEX("863DD45342E1AF41F682C138EE8DAF96308B1973B3740CEBE9C" + "2999D4190B05C7630EDC87F9942F31A089712BF2B705F1F3D83" + "5E25E51E8BC6D5FFD017A5FC2F30ECFA82C6B9033AA336ACAEC" + "58FA5E0D4F4B40BE4F60B0AB303AD007336B5D08989E635E92C" + "7C0F22CBEB049BB4761E786FDE0E7AA378F6C492B3357916DE5" + "30E7FDFAB45D2116B3137B0BA6BBC5A04313757B26CB3467031" + "D82A98025E628F0A3BCDB234D4E7FAAEBD7F7F4E94A2C4DDBD9" + "47A3AD2E66F7D45E66C89AA037B956AF67D7A2DD696D231D311" + "59B5E217EF4A911A24B4C012AD67152C9A1FBF85BFFDEF65236" + "29BAF766E22F009B6371A4C9473A42AC84E2BE89D2698E66837" + "3A01A2E8EDF60F9C7D83BA415EBF8588C0812A4409A5EE205D7" + "94EC5E3B5A3688D8520C98D516C877F5448B6CDFC1A1DF44500" + "8CEE775160096237EFC27FD32E1629835B6663601647AADE495" + "A117C025E03C80D8DC2F31BBB7CDD4D2C50C7987E8003AC0422" + "6E5E051E8D2930F93C143F2804DDDB343591CE11FE55BED40A5" + "DEB0728EB575694D4F62B7E7901E3A005A306961051A0219FA4" + "9E263E85E87B2880CE9C9CAD37F5DCF001DF265FB448093CF08" + "EE592C66D2BDD37907D6492B05EF24E96B08DA4E55A289E6A2C" + "CF65624257A754C133B54DB543FFCE3D11093576357C75D09E0" + "E5D18D95D2FD5206A1F5750030FA789B83A81B6E81D98B1D360" + "C179")); + test_hash_extendable(&nettle_shake128, /* 39 octets */ + SHEX("80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E30A934467DA4B0"), + 512, + SHEX("015BB0DE6A28737D365353E9F0052EDB5272A67F83863341A7B" + "798CA9197A051039987E22E6FF95F31EF2BE455956F7C5704FA" + "4108F600DB247802712ED268F35B27AB89AD0116245783DC7BE" + "9B511EE4A0388A7EF9A234E1161F69910D3C0C76738DB4BE448" + "0EA0E8BBABB081428410C34CB54968F7DBB8CDE3336317B6D81" + "3A9A859E4AE69BFCD855D261EC89A54C510C4DD2F68CD5D607B" + "299204654F01DE5A8158F2E2BBFCB20857F029A579CB769B3F2" + "32A17F546A653D04FEFFBEDF3C6875DB3B1905E73A4C7BB383A" + "6B825C240F047A2B6F6B944B3C51362DD2DCA46D23CB502A726" + "7ACDE99A8E76E63086461EEC706612452E240F97873CA213F9F" + "E6A72E66D91BD3F60D04F7DA7CB059258875F0D458120F0800B" + "DFCEBDFFE2ABE784189406C9BB63F3E807BE88C72CEEA54A552" + "44B481875DC2C736D899D9A928CF02C2B5176D8AC5B64BBA7D9" + "49C974E613F41B5CE1B687B91DBEECEB66AEBA8CE8799B3484D" + "9255D54559ADB01D960710D198FA8C5A18EFF47E3399A8E2C38" + "6D846BDA56E5D9E7C9478DD563C50D840DC664D105EA92B62C6" + "656E2CCD31955EE7C438256B2275036DEB2380C08D26D26C1E6" + "38F7EAE12F5E8539F74516F1340DA7B16A4EBF8ADC93F690FF3" + "9B39C612D42F8D4CBD764B2F7CECD12250527810C490B0FF8A3" + "991E3924EAEC03F67BA99759232D00CD58130BB3BE9235E1477" + "2462")); + test_hash_extendable(&nettle_shake128, /* 40 octets */ + SHEX("7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3C0308E29446B8ED3"), + 512, + SHEX("9CE519A1F37B2C70C6F641C076F787E8AB26186EFABEB6CE18E" + "B8E75B0A8EEDE06FD78D326EBB3B049AE484D6AF7B1DAEAD737" + "653717796A34DE1DBCF900FC59B299756398EDCE063C5654205" + "C5FD268AA71A639C35E35D4DEEBFB8DCA17686B58A639F0DA50" + "E1A7938B47A466D03DE7041B5192FDAF036547B7F22D5A23F8B" + "6AC48E7C67B7372AF0E358CF73D2FA922AB3CE823A68B95BC3A" + "543BA236E413A3CC2B3181DF4D3649474213A0F8148836230BA" + "B4AD722B2A3FC446C395977CB3875C06C0031E807C24BE7EA9B" + "025248F1A99C494472CF417A803C69B3FF8880C0D364512166F" + "7E34F9837B5C66931017A4DA3E63998D0F402D5A75212C80427" + "12AE4AF4B4900EFE6C9E1EC5ACA07FC230E6E7834A5A865F2DA" + "71EEC9054427945A913C5345506EE32E6AEFE4EA3E488BA0745" + "5D98C94B5078E75E2304F2E85DD9DD4BE18F023D1AC6ABE5924" + "C8E7B8219E3248F14EB4B78B6C16FE2C3AA40B97566AD3BB891" + "54926BAF8820D7E8E4557F8138EDAB423CC0C800DBAEC892482" + "B6155422D2AE3C1E90DFC96AB800FD35DF97092AB0A83A40C7B" + "925514CCA3833BC1FF6B7E25469D6744A117699C481E4EDDE08" + "2211E9D94A73A0C29FECDB271E75AD038EED0C7D5B856C1768C" + "4B9749B25811F16B1C408C1F2E3F2BFDCFC8E5A329B675418AB" + "C4809DCDF2A3C4F867AB9E0C0AE28924FCE90802715FD5424E7" + "83C4")); + test_hash_extendable(&nettle_shake128, /* 41 octets */ + SHEX("C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46723B20F67BA610C2B7"), + 512, + SHEX("648167774B09A9FBFBFD351051D18F9112D63B066BEAF5070D3" + "780189658FEBEA0A4581DAFC6948EC1FA96F0364EF3D1F2323E" + "FE5294BD76C28632FDDEDA51079E9BCA5C1EFE95F76BCD45938" + "36B9C64D82DD6ED02AD07622BF2B1F7F0B0738E0E3929F49EDA" + "C321268C78D47D853390FDD8F1BB29C6DF469360E75E96493DD" + "4FE5BB2D0816938D5642B87F0344FE4186DDFCCA06643A691BD" + "9272F407D6DF7A1633550F076042277C325152C8673F3FD6C98" + "0D6BDE4EAB43018E322DD3647DA183910CF4BCD3464CDFE0D02" + "83E79201553BF03B028FE6F4862953F865C6108BCE672C4DB55" + "03C1D969F87BDC310F7B78D9DF08ADE46F54EF718083F90E605" + "99E41CCE34110BEFBE315E8A0BB91D428DF35AF59CD4F0C8059" + "B6ED68339307280B05C3AA490B7900C13C3E12F1A4A3983DB5F" + "0A620179AF9EF900535E32146C8801C750080E363A6A67E4A90" + "37FC4301FB28B006822598B38DC38DEE16AF9A1127518684BFD" + "4A0920C7267AD52A447CBD6178A0329D4DA146657549CDCED7E" + "CF9C2053541943AFCD508F677549F364D7F793A7B7BB8FF12B7" + "594FF768FAF6DD77B3CEFE97715FE70D8CE8468AEB8266CB09F" + "21285A001AE13D0FC8F29CF8380685034A886DDFE8D3AD57329" + "E6FB92D2A079E5AF01F77AEFD78A29D294A6A8E37E20159408B" + "BA4F10F6FBA5D54D4C4D93B1ACD65D84088ABA61EC29E122EFD" + "CB6E")); + test_hash_extendable(&nettle_shake128, /* 42 octets */ + SHEX("01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E6038210270C834CE6EADC2BB86BF6"), + 512, + SHEX("BE4DDBAD9BE9ABC823F65A647910AA06265B547B0234C1AF6A1" + "2987000F710016295EA57CC5F30656C56A66F28E85C24567ADF" + "2224011191A045C23D4491E444114392B74BFBC60858E719A67" + "BFDEBC135725DE961EF7A81AB90CE4192107A5CA84AABBFD919" + "BCDB8270E8079E29EDA4C22E130A1F046E5A87A4F2CDFBB4DAF" + "AE337C1FDB5BDD9DEB321704C585D632CBB7A0438427A86CCF7" + "575856B535B2E92A3872F2B5D3C945C16F3547B4779E5798BC8" + "2883E850585A7FAE200A47B68FFBAE54B17238D7CB3FA2C9374" + "942523584D85F1485969BF61AF5E117275FAD27577DAAD38EA3" + "702B5DADE3D27B4A2E2A66F88CCDA568D5D4A11E1DDA5D8BA7E" + "D9CBDEC91487C19E1F9A57D59AFE374741D8FC9DF32B3BB60F8" + "FABEA1EAA95289B43D1FE712A50B73BF68CAD16AA25A1DD95D8" + "0A0F174061A01D9F18509589188D186BDB991AC9A41423BAF91" + "54210ED6CB098D6844699F07A388EEE76E8DBA801276F6D2AA7" + "965065F3C923AB64620DA1E17A444790F9B7B326A3579B9A5EA" + "5FEC313D294F97FC846D721945B6ADDE91B66454FF2F2A81CFA" + "19F6B45C51D07BE8216FE7C1E052A24904B2EC2E9929314CD9D" + "A48450BEB8FFED8C499816C078AEB2A1B52F07B5917DEC0A7BE" + "EC2B83F778BFB15CE413C9A4307CCB7C83C879824D0CFCCC4B3" + "AECC519326FFAB353E37C59BB99FFBEB44A95BEB1DAD25843BE" + "CC51")); + test_hash_extendable(&nettle_shake128, /* 43 octets */ + SHEX("337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD21540D29BA27AB8E309A4B7"), + 512, + SHEX("2378C76E867947E94C0383861E60E659401B1177BDC1133FBDF" + "BA3552B458DCF1BA41C825ED8F41F7F8C8986B0A47B25BFD5F0" + "294FDC707C8389560BE932C582E2B5C63CD85754E9D96A9725C" + "12AD234B887FD5E96CCD52507BC564F59E2E0A8FE89A444AA35" + "42C2B302D1B9F8F3D41F1C960E1867A4FE64D5F6216E64199F3" + "D66FE4BD22ABE7B23EF97328F5FDB5CD502A118000E0606D315" + "60C2CBD4CB7EBF90A0AA1826CB32AC85156B678198D225F4D58" + "D3076FFF881D9E6815DAE811E7A04191602E4287F72C95A497C" + "2DC47C925B7B1B78BEF334B153566A8B46AC8F6CC0765300E97" + "0B12ADF8E0DFACCA6A59092891D73ED55DD624A2464509FB561" + "0BE2AE0696097D5645CBC9E992B7F1F39005EEA0AE0A8B55ADA" + "1F28EC2A544266462E6A3BA97A000EA722701690007EA7FD41F" + "B3F83BF85D5E19AB140F2FFE6DD70F199B7995997EEC43B98AB" + "CA0E7902442D0F14E7E4B288A83F8E4F5287F78F57A2DF951D6" + "2BDB9B9CFDF3D28F0374BBD3B4AB955244AE444E23988721E5B" + "3C4F536A80FBB7114DE769D587600C92539D92C3B2621C67906" + "4693BD9893BED3C353AF5347707B6586912D6CED5903ABB41DB" + "CD5B4BB67EF2A315F8BFD23073D76715E869F474DF6F5C98E3C" + "1E65117B1844B03835187A6B2AE054EAE51797DE704C7D4C88A" + "258EFB12D1FD618D9E95C4AE37EA0F54EFFE216C71A0F0514BD" + "569B")); + test_hash_extendable(&nettle_shake128, /* 44 octets */ + SHEX("6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B32B58EBC38FC2A6B913596A8"), + 512, + SHEX("66C5253CB16C479B2D7B63E7DB76CA275F14319DACC1D00C08A" + "7E170D97366638949FE0FE252448D9749EC105105E8BB483224" + "076FA9204F9A4585F150EAADD931B5D895EDD8F2AE37E30FD99" + "1174064F7CD93B03434C22A8E5CD27CFE19B5D8F4BD405A9D18" + "2E4D7F9A2B009C68EF4798A469662E40467AD626FDD0553B0EE" + "86320B3DB087C096B54FD9F367199AAE4490F796BFE72DF1075" + "6BB10E336DBA6305B686A291D1097FD9DCB1A629F38D2ED30B8" + "7A8F5C1EA1A2AE384BD5F316BF112F6BED8DDC50B4E17509C3D" + "194750D02AE76FC1105753B07130861E866E89B2DF9C498C87B" + "A2B9161753303E0DB34FA6A523A6BBCB262D3C644D1EC88F9FE" + "1710A65290DB69FF847D850107E028EE6CF444E5AA986C98D3D" + "5585D66B4FAFA1331FF4A6F54EACD712F39FCB234F4D4CB8C99" + "2D079471A269CD3D3F733F0806A78BFC30F8FB3AA97F2F2AD36" + "E8AB019D7E833855299EBC91CA512FB226D7972264861531338" + "58649C31CE43308E6E0499EDE16AF5FCC5CC9593A71BEED6206" + "063D471A79F65E640B8C20A131FB15439B9F35D6053DBA46B2F" + "2682281E9572720BD3945CAC603E61E82BCE2144A19DC1F2541" + "79E011D096BD9FB2CAF77BDA529BF7F654118D5DB1CD2F973F5" + "5EC7B11AB616E731955752FD8347718CFDB2CF6EB6551C449CA" + "601299166DD7E10EBA447DF8C29E96436B6834F162D7987D9F5" + "5B12")); + test_hash_extendable(&nettle_shake128, /* 45 octets */ + SHEX("F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB38467205F5DCFB34A2ACFE96C0"), + 512, + SHEX("0128B09A01815373846EB62037245B4BF522303FFF74A76B0AC" + "17482AD79E0BB2686871B1916DF154A7506985F2A3A6D86074C" + "988C2FA255DDC266CB8EFFDE2D0275BD3360C1E920595E185ED" + "A95B54A0B02D6BAD88F63509C5B816CD375C0281D1FE29F1131" + "8BD35E4AFE0CDF51B9C7CCEA285787FA74A72878DD387856560" + "6F4889D3454913B0DCB7ABC4B2F08FA3F2AAEB6856A25185A00" + "B1BE8A8BC7A9A34670793923647AE426BB98C75E45896D4DB8A" + "990D2712401694E202EF2E3F33DF1120EA9E821A874E67F3764" + "8A898CCD759A1DB6FA6FD5C14756538F725C468BD3C0B6973A7" + "592C8CF0091D347174E8D954E5795D360C4DE1D0785FE45B71D" + "A884659C98BAC3005E5BD88817450359B51510AD95F16F08ECC" + "64CB9842F0F8EA005315F6CB17C1CF6E01BA64F6847EBD4472D" + "B1AFFCBC0E7B7F5EE8DC5DD18B148BC542CF0987E294AFF2EDB" + "3EE60C8AA4B8BFBD42433243D55B4B9E00CCDED77251F789AAD" + "74681880AC765B21E01D499553ACEFA48456A7E70A9A39163C2" + "E089F26C94733DD63EAC1D2BCA7082145402FD762665C3F7276" + "0DCFF13CA4E80F504148144054B714573381C7770C33E07D3A7" + "87ACC072F3C35B9573FCDC352CD87BE8653618D159F78BAF16E" + "CF6F8E316A97ACDF4BCE2C65CA1BC98F257914FCE9BE62E899C" + "A3BA40A98A57AFC3D63B0B0B92B69FD0DF0451D7F34297523A9" + "9D58")); + test_hash_extendable(&nettle_shake128, /* 46 octets */ + SHEX("CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77B06CF0F5A0EA15CA907EE1C27EBA"), + 512, + SHEX("FB206D80AA1D2AF8CE64890D3FA84600F80423AA98447792F73" + "2FCE4716E559F7FD4338BAFA60937781B68736603B7A86F1688" + "A2EC60880F6A90781DC8BA3D9B329D662DE842961AC84D8FC87" + "6449DD8C393441767206188D561AF59BEFE6B91E365413A5F35" + "7622A670E22E730183358F9689E70F1B0D09CA9924903379394" + "F516003E37B800602EDB84912492288A2E09B46BACFA3F4677D" + "2B24605A584B3CE3174FCD1AE4DEBDC99C9A75EA7F4E770E2EF" + "184F801E4D111EE5B11950B29376FF19B30A50C4DF93A82EC89" + "1A321F9A6EA1E0F96EDA2FA0C2FC176D5151A6DAE7C9536AB17" + "BA47AE31AD69B2AF9248E5236AA58D7B864202512E5356DA226" + "D5750CE12C062733BD73B7163812EFD452FFC4CDD8E5611996E" + "23CC0A5824C5AE4ABB59A5DAE40563965483B66437B1E75369F" + "F6AB31ABFB34581CCD00CA76CF72AF7ECA65824A46A48FB88C8" + "ACA06CBC5D3785DB3AB78BB1174354C7AFFA85086444D3EC925" + "38CAB178023E46C7E5E5EA2FEE1A970F41D374A73FA6D477D22" + "4F095A829AE8E0835D197DC66D1DEDAB9427DC085A6A95C4F06" + "5CF656AD1146ED0C45EE7BCF9F6185358702685E9539C921501" + "E3338C2A6DF7B5F25BB248E567F2173164CDCBD8DAF0130879C" + "A8362CC6CA28F531D81D607258B66D589EAA9CD5A22FD7490B9" + "A01CB6C0958C2820FF832EB94F0E0CA959B93DCAE56A4FB5298" + "1F09")); + test_hash_extendable(&nettle_shake128, /* 47 octets */ + SHEX("1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730BCF84D0D4726364B9BF95AB251D9BB"), + 512, + SHEX("EB74359AE344B26E3533947E26CEFBE809935CE7CE0D597D1C4" + "125542FFBF1783052E0F90A402D7888CCA5F96CE9D874C600B2" + "E026BA4E79ED427F3DA96448BEEF4701C27CA31860790156E93" + "B12A9F42929A8F8D9771CA3BB59ACE00C4732983997DCAC1046" + "E574EB9E5C912AD4E3813001C86C91B6385E92DFE92FF5CF906" + "52680392A33F6A1937A77DF9B9EF2556643308029DC5B5FE23A" + "C9B567E6C81D0E909A279E58215D22132ED83DCF743065C0CB1" + "6EB7B991F842125254BAC71D80B64F205D799F698F0FDF7EA19" + "C9234357C5838A0BF6ADD176416DB3324CB07B543156C38C2FF" + "B0DF104FE3884A6B8F03B0E751B3824FD097FBD3557C5B9C962" + "E9FB29175D1F20799FF6AD9843E1A5B64B2E69FE39F77C2D1A3" + "FD3ADB8672D1771FD6769C54775DF97B0964E14B2B326362D97" + "92C0C4CDC37AFF30DC3D007AC62141D370F0984F4B3D16B87FE" + "F8028792CA92CE6620952D766474566C1E96DF672F3C335BF29" + "49228006BE2B1912C0DDFE66BA6648EB6EA8624B5DBBDEC70BD" + "0A745434DC5404C7AC7DCC94197F8C48FA381A5E8E7FFD1C354" + "42C04EE2378D2761B3647A7637423300CC09910B9A4EF90D499" + "2A8FF8FAA3B6138AD01E7C3C89660E963BB2422649589DF53D5" + "181479CD55A55B1B2807ED120FA9777ACFF785225129AB1802E" + "C247C48DB4BBC284768BDC155D77B072D686462D831491C8075" + "2E13")); + test_hash_extendable(&nettle_shake128, /* 48 octets */ + SHEX("D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7C7F157298EABC4DCE7D89CE5162499F9"), + 512, + SHEX("691033AB5C34D52ACBB6EAE6A669CFB53C39A8020A6EBE9600A" + "CA2D9A2ACFC898A0DAC7796D46E6F304550A8894A9E1C516A1A" + "127287D4EF74E9A403D326DABE1FC548D1AA1323C2AC4093870" + "8D7872960E11248235D2AA39CF3ED88A18F8A2FC2794174DBD4" + "C1FB8C686B37641C7CDDC565683F0D173952D2C1DC26ED5F5B8" + "06C127114910892B1BA0B0EB07C20AEF016AC83A78C152B4C4E" + "C41CCD8974D93E686F52CA8656DA6D85BEBDE10C44470052786" + "30595379F57C529C4EE94B8E4100AB930206D9CCEE8811FAC2F" + "1B5425B6F0740FBAF2F8470A9985B77865750326CD60F855F44" + "27F6EBBAA27CDF0A0444FF278BC22A55BCA5F90A58B27D792EE" + "6E8998E94819B673B725079C95F0EAE473F62C09D9BB1060EE9" + "F6263950150461A13D758B8DA498284F8F355259B2B332AE911" + "7D2A35E0E09BC8CA406C14E8799CCBF0592BFBFB40C1DA7B5A8" + "8609D71093B46A91FBE94C78A6C9CE9C81A2E189BD832DD746C" + "E19CA3AC9F56572FA691CB506CAE417F405088BBC6425118BDB" + "C0C99F97702029C177D8EC398DFC19A98AE3A3F86AE1A8122AD" + "C5952B1891269C46821C1561B21E4B47F36904FF7C6814C0A08" + "B6045400BE72EC1E647887E27AF46EA49C9EC4FF621E544390B" + "F60429CDF1307C93A3A1C8FAE2EFB6062B9314A06FAAE8F8448" + "1A369B64234ECEA944EC6FB3CFA31258017DDB373C55A64C0F9" + "E74F")); + test_hash_extendable(&nettle_shake128, /* 49 octets */ + SHEX("BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8BEF788CDB5CF4606C9C1C7F61AED59F97D"), + 512, + SHEX("68E791106DA01933EC70EB650AC2F03EEF1685213522F2E88EA" + "7F8DFAF92AABE75EA0D169D9BC11D13E294338A57295279B28B" + "41D8A4B738CFFD629FD4D7D5D8AC7B4304E384DB31B0328391C" + "19CA9D381E66D41816E647ACB66F312A418795C0D65FDAA6E25" + "AA24811022C2BE529C83BE47274E8C01D4A2710D6AB8BDF0955" + "66F1B3DBDA7D4F1BB5BBD3EAFD4486AFE67B682066B8CECD447" + "B9C2E9E9416F2CE5CA8CA1282B4AE9BBD7C842F776BFF737259" + "1CB3EED785C82A27076470ECA15A33D5B38AE02FCCCE396326F" + "1BBE28995C0F8DDE42C09182995F143A0F2D4427E8F2497F0B2" + "57CCBBA286C2FB7885B642494F933B584B0CA83B545FF1521F6" + "7EC8E5AE4D93FC82544FC20778CE197F3A2F64EF3D9CA583A0D" + "821A5151F462CD70C83724F9976457EE49D3CAEDF9B6CF0AB72" + "FE7DC0C9F41F9C5ECD12D5F2D8BD6EDB2CBE11F0462D36CF248" + "A9552B0265E386DD44B9853F0AC63FECE4F860107903F8DB2E1" + "F6F4017F05338FEE8467C0C40720663B54F556464F4E87F2019" + "2299EFC178BC73FBBF350782520900644265863223BB42A5ED2" + "E416B9D31F3021EBDBA693CD56C4B17EAE16D1A10A381713AE3" + "9D5AD6A220CDA8A91ADFCFAC51C65D03910DF4AAB7F7BC1CA49" + "CA6AD08EDFCC976DE0229AE9D379E067AA9B3FC3A6CD0DBD7D1" + "FC63C4AC2116F9BD3CD70B94A53B71987C17F65D5E77AD5674C" + "C16F")); + test_hash_extendable(&nettle_shake128, /* 50 octets */ + SHEX("7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D3786E779CF053C77785AA9E692F821F14A7F51"), + 512, + SHEX("3AD90F57FCFFBB40076CB98869510BE446F8161AE4F37F57939" + "F8084CDCDB4E64DC7F380FEF8B68CF274780A6A5FF31B1D5739" + "42E717470742E891B084E24F9441D27F7FAE86A8278E84601B9" + "D4830AD9FAEC738FBBF86AA299653C2ECA3B233EA2D1350DE9F" + "EAFA76FB8986010A26EDDFCF33FE976071B3C719EA15A2298D0" + "60F5AF88E3F06FFB4C70AB13886686B8643843C65BD882C924E" + "760B9D78D705B78B2ED14980E9E89D6E99E8945B3A92B9AC282" + "642651D94600D8E5E583A59BAE4CF6C4A38353B90894A7AFF28" + "81BBE06464FECD3A54B2726A55FEC0FE5BB75F403DEFAB989F7" + "5DC04123F5563999D1503413412E16D671969AD0D97A6808B19" + "57A7481D32BCCBDEEC7809A90343EE59C84CD6AD134529CEC5E" + "42A31843BCCA3449DD3A2E075998788811A601A3661E241A884" + "06071B90C88799F370DC83B440C9247DFFAB2955DC5EF8BAE47" + "C1AD9157CD0F5DB61FA245D7179A8768BB3B2DA7AE28129258F" + "B8A22F9FD4A7906432EAE33158D4AC1550E379EFEB091C883A0" + "102F7DAEBEC2AA4EACD277A7E45DC03CC85FE952D326C3521BF" + "F980E16BB00426D2138A9F32593CD1355EB7CCDE7FAFA16AD86" + "38A9C16CE34920879E753C723C494E4F8B18251D20EC437FD42" + "FB178017E7569647720D309097C982AFF3D6C54AB23DFC66502" + "3A01B3990E6A8999E7037C0405A4CAB91876BB660FAEE8AC30F" + "DB9B")); + test_hash_extendable(&nettle_shake128, /* 51 octets */ + SHEX("9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB443304FBA401EFB2BDBD7ECE939102298651C86"), + 512, + SHEX("58B040B46002BC13D05C76E840037B3EB08DD51881CA6281595" + "D39B8B12D1C15F9CD40D94DAD00469BF5EB73205FC649C501B5" + "7A33F4EB39A7FD76769A6EB0F84BCF985C6ACB281E4989F5EDA" + "5E823C31E94F41E577B0069809E1C3B09F4480677D56C487CA1" + "48DD5260027BD9EF399A3F08F5F5BE869AC7A403B53532B9775" + "DDEF6B80918BF367AF8700D6B9E75FDCC45EB405D37E9A9D7F9" + "BFE2517FB5BA5225C72AA292AC7835A5BF4FA245E782EA67081" + "448F31854F91F21DF99BC13C615A67ADAD644FA6336B2288F1E" + "29C649341C6A4959E5060A99F69981A10FECC30E29CC7784153" + "816BD228FD7859186375FD66DCC78EE4AA5E9DC0B190FB8A6CF" + "2CE15C7F3E0B54597A559BDCE7BCFAB8FCD25EB0E0C7DF02882" + "CA67E2F04E6266558C7F36FD0A2BED459B50FA2D883C9B86AC8" + "E40A8E92F4099CABBEE9E7FD1282F06B3D590897BDAFD864372" + "9B09B47544BA3F3AE28DEFC3DEE3CD6586B340835F3AD34D6E1" + "6053E2AC94B5CBD4FCBBCE2D0245421AF021E6E0C55C53584CC" + "917D99818D4F0585AD66500AFB13C7CF90B233D01DFDDC738C3" + "25E20B63CF82A307F44C543BE58974110BDAECF43468C902429" + "DBFB0458936F67CB59C4E4415B5D03109E88451989CCED136DB" + "A9002752CF608423CA52483B4253D24E5B45443016DEE2D75E7" + "EB9DE415A148C439052621AC1DF79E60CB585A4B08CA70286C7" + "7949")); + test_hash_extendable(&nettle_shake128, /* 52 octets */ + SHEX("C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E787D68D28CC3897452F6A22AA8573CCEBF245972A"), + 512, + SHEX("D0E4650C52BD1FF64C2F5B7853E8A906D7457B67CBEA12322B5" + "D1D5BCB8C3EBF49CC6DFE8FB41895131956661C772D2B90DF4B" + "D6B379715278C9E72B6FD93C3968FBFD3194C2C527D15C6311F" + "1990DC2ABEE5B6645711251B3D39202C9D3FB147B39D1D3DA10" + "8254FF8DEADDAE6599E17C301BC18DEEF2A9BA8FD035A084D59" + "17FB9E4E56FA6EE7731332B50CA3D2BD069F793AC6867448697" + "395CC5147481F9F6499433D6242502EA1E6226A88068032F656" + "FC8D509D041F1D0978EBD4F2EB347E75758A29287F5BE37F9D6" + "C14E4934E5E16806D6DE41FF8268BCAEC27E999A7BA73B21311" + "47FE05F9EE8A491E47A3A7C8CC93E6D2DB374BD5E091810F0D7" + "103215726A6F80D62C19D9BEB92DDAE8C459002376F58511792" + "CFBE7A2158EBBA922656ED88163072BF6667F121747F05B84D4" + "70193ECC8BBFAB750D162CEE7139EFECF889ACCEFB6CEC328A1" + "84F5CBAECEE51119A87CD21110FC20EE85560CC979362C12F1C" + "7665ABE62D5ADA62DA0FF3682B32C6DA7150841205BFC437357" + "41E07363B9CB15DAEDB03352BDFF62CF00399CC429A8A25CA1C" + "C765AED117B72917B25CD2729CF46F92D8D3F1131AF9B6BF162" + "26140CB57BE5C96CB2E4A369D226FA82BF0DF3FE2A4EE373434" + "C5CA68682C0C594B783A0B2FA6604EF3828510E1C360A617588" + "AC81BA8D1C18C23A30D245DADCD1C6893D3809D6EB305E538F3" + "9DCA")); + test_hash_extendable(&nettle_shake128, /* 53 octets */ + SHEX("EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52"), + 512, + SHEX("1EAE5DF54490647FF03985658785B5BC1480D5DDF3EB3A1FE64" + "9520E07C0174FDF1DDE9A8518879833D64A99F3255568223E2D" + "D0C9A67BAABDF222C2A314936CD57578395288D40DD047D67AD" + "F8289207C6C672023E25A5F66D2BAADBE2972EA32516AB753CA" + "37AD5F436A94CFD62182B7D68EE0E7A016C8540840D1EADB3A1" + "58D88A9E7C90F551FE857C17265AC59BBA6947F245823194908" + "17B99A591978CA945D4D0F23499DD3AA73216B7C28EEDB5C8F3" + "C0851859D6BA9B04DC67FDB4BAE4D73BA540E66536BEFE2FFBB" + "5DAAF91CEB627CF4869327C5D3C2CE79700795E7975A8C6F9C0" + "7B95265614DF45E50EA89DDF9FF5F2AB150629937B9197E543C" + "A30086E829AFBDE5524DC1064AD96FFB4D83EA91CE7CA8843C4" + "B1A9722872057B0AC9CE57E7C97D22CC06FF1F74658AA28BF39" + "8EDE9F186AF6E485D6408CA4A4564689183AD52EC0F38250CDD" + "837D684A1E4FAE12306D066F2F1ACD56797F1DE2A9DE8095DD4" + "64BA58D5B2D58F9312F1779EB2B2ADF1773F82FBAC43B18EA5B" + "0CC9FE2FFBD9D2AFDF61026363817B795A2590336EE1855384E" + "2A26C7E15E8706AEF41C671F2D8E2A0EA2B0A558CB35A809528" + "25C845875B2A907E84397E2A3D125F64C313C15DCF0CDC66371" + "76A58FF6C0BE30315863C64A21A1FA147AF0ECEDC22FDBFA9CB" + "892FB17D26C460B7ECEC9713E90A46499BC30CD2735FE98B13E" + "5FDF")); + test_hash_extendable(&nettle_shake128, /* 54 octets */ + SHEX("0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7FFD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33"), + 512, + SHEX("A8A37D45AACB607C3A2DD97A43E22E226F11EAA21DAFFB8ECE9" + "7E42DF057DDC9459EAE2AD1C04ABD300833E6D63600320EE9E3" + "68CD2DEB5E38ED7726C583FC9EB411C193C42DD8A1D5577ACA2" + "0B889A5382C0F1A59256BEE99AA09A6B2CC7296A8DE514CE141" + "73E683268746738C2F8EB29D6F51AC434BF51872BE626241E43" + "183F6C7621479B62739B975B6F25E63D9668D3198E82E66E9E5" + "FB871DF0AD3A06DA385C4A7FC914CB371DC1EAA929583F14DB9" + "10C8883C7B90635E5D3FB5A3652E98AB62AC884C885C4606E8F" + "453B89BADB15F7B9DE49EFBDBD210859AFC079FD2A1FD82ED87" + "949AF0906B5E75E561102739D4CC58AC9420694F5C043DDC463" + "E0438E3851AB841CE31D994E1FE378EF75E7F979B7801A284AA" + "8BE26222B2BAF06857E8ED6765C9C040798B2A6520E56877C1E" + "4297AA43A860F734A6667C1613C0EA76EB70435BD64D34B1172" + "8113BC5CA24734A41F3203641D931CFC74E46F3D23037E38787" + "40A6B152A77BB10791E09420B288D89E06DBD6B882913589D82" + "DCD808918AC853ADE79B7B8104637F8C73940890AB44E31DEA7" + "830F2BC08C26EBA38E3B1B198650A9191F366D90BFE1A4CAA7E" + "03DB8357BD8258F13E5BE051E638689E99BFA6DBB5E2A623BA8" + "B2107AB7A4C7551918A1C023F1FE7DD5564861FAFF0060E30C1" + "4941379117A3D1845842D935C4072B28913A3C89D1A63D46580" + "48B8")); + test_hash_extendable(&nettle_shake128, /* 55 octets */ + SHEX("DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C9E880B96C574825582E8812A26E5A857FFC6579F63742F"), + 512, + SHEX("140DFA98962AB4D69B6063B0252DE5E4D65E4C00A9BE1F8EDE7" + "81A54011D1DB01366193A4235F6E7D684B847B2DC4A0A523958" + "9B4C0266817DC37D850E5B23A40B50A6D9D1BAE6E64FDA20A3D" + "27F933AE866F9C8F00D455D97BC71D5F5A7C9778CC8FE159619" + "1C2B1882DCEBCD37A9A8C3605359E886942B04EBBCAC83FE730" + "B84BA3B4B3022E0B1A1110EB4D23D2E2D05D77C230E36A1ACCB" + "885C0FAAA312B7F975CF8DA5D6B118ED773C5F1C75366E16A1A" + "C75BE309EB328DA88C9FEDD1A13C84E2F856EB0DBB249B3C166" + "F9CFE917A93A3EF624DD4782B1F84B3E2ED70E493615D6BA992" + "8886A59617A35AEFED5B46D773FD5B22CBA302205CCD97426B7" + "095872BBC7D1932F6157BD3FC9D4A2182FBBCF4BEAB71A026AA" + "212BD8CCC81EEE265E4F53390740E3E9B1E37CA3A7C3A4FA824" + "D0AFAAAB7CC89C35756D8F80896E8686260CCD94857870490AA" + "8AEE2FD3842C62A256107A7A06F87894EE70D218B6166EEB67B" + "6F711D421C45FF2CCC903DD1683D12EB5EBB9464EC0B3C92CB6" + "2EA6CBF37591B61E6BE15FCEB0C1731B42D8D3587762167C3A4" + "3F62FF57D58F2A2247CDF43CB756F6A25FCE0084D74BAA73A8C" + "E12E41953C03C2A9FF94468A69C03C2B5F6B85A2F16397326C7" + "DD562E90F8439E720C1AC0B4273A7DDCB71581DB1D6A57BA4E0" + "28BB96462DC54CEC9EBE36C704C44E5F60D04B993454DAF4057" + "95E2")); + test_hash_extendable(&nettle_shake128, /* 56 octets */ + SHEX("EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF"), + 512, + SHEX("F0FC5662D4D28B3235E49CFF708D90BCAB50764C4081E2F30F0" + "479573ED4FCADA1A85443D1369E09CAAD970570A4CE3D8EAB46" + "CCCE3E48DF5F26C68C7485911286DDB1B369D13079498653B21" + "E3BA7FBA9007500BE927490336082C1D7FA5B78BB741C459177" + "C05E6294DEE054FBE526D983B496E731B3379DE525493733305" + "DA1E1E09612CD179EFAB1E6E67AFCCF60776E319651CE1A1FC6" + "6AC945BEC6C45A99A5BD7763ABA920314F04E67EE193484E544" + "61C68E67A922DAF9205FAF10F4653541F2A5CAAE6D28449CC91" + "9341CE63939A0433A9DBD307020E80B65AB7B2AB39A9C29D167" + "DCFC05624860B50B0C3FC3986B020B48F5FCF00C3A6BD8FFBEC" + "6A34ADD7E97B106B4C1DAA9E5EF91B797C55DE36B88E9AC19B3" + "01979BEBF36FB86F4F72A6560A4125BC1F657769F89CFB1F3A2" + "9B2A0287072740E52A60C1C898EA42CD9FCFCB3987A015DEDD2" + "97F8382D639CD7118CA85255D1F98ABF1F5D94649A161082D7D" + "5944B2B4EFE4975D5EA38138B91AB5B61A790349D5463D2DD27" + "8196364115C18B95F916EEEBD71A21DE18C9AEB22566D3AEF00" + "9A84AB5479222EF8F37DD29C7B22D0F1627C25EE467607F86DE" + "BD8267A493CE5C361A6F6126DBC8263B6FA5D5C9B9F8AC9FDDA" + "42FAD433BC9A76A218C1134C1CB5F03F3F7387E245089A5B18C" + "96DF31211B5983214B64FF3E1D90BC234A2F5EF7E993C8F4E5F" + "A9BE")); + test_hash_extendable(&nettle_shake128, /* 57 octets */ + SHEX("416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC25497D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E"), + 512, + SHEX("AAC37FF9FA6F64049B4D72457C87BEE3FFC23044ABE0F1D1213" + "92401B60E3FEC089D4AE3340961915BBC79DCA9337C4A02EE99" + "AB932B346375169057E8BC731FAA49422CF5296122471580AE4" + "263B6C01D8BF9C7F736A4CB652AA5E3521BDFCE2CE11332E532" + "36EE4F613B2800C28E5907D2C3214F6071611496F80594193DC" + "C09AFCE3EAB1769A5FA2DF9ABE16AB019759A07154D21C3365D" + "C20BDD7C9ECA82045092EA5405B56861BBA693F322871BDD64E" + "2E41985775ED7A3F1095C74EBDCA15B9EB9F2B86234967DB868" + "A082A146A439746901EBA5DABDE0F133D99C89A4D6F769D1C6F" + "B1758B3CB1E8986A025F5AC2A8D6F1A9AEB66DD3C41D4122170" + "6A4824CFAC6A6DB69E3D157244294B9D25B59274B1FDF992988" + "F3F18B91FD78767ECCD352B7CCD335F96D3B3913902C885C470" + "C2F7D2B00A92269709863E77D3FB4EA1C80CB58C9CFD996E0C6" + "FB85F3BB5308B95E8B43555CCD4B589829DA442BBCBF0A5C7B9" + "B24E3DE846E9E8433F1A4A326ABC7AF83A5BBCFE9B4BD848414" + "B2560C58B3E9A3CAD48F860BA46A5111D0AB629B91369A964BF" + "22B5C2C6DC5C3A521DE18DFCC43BB2E641AFC466B75FC3529BC" + "4B99B843A809773DD2130452E61EC162FCCCB0A94B3AB0848EB" + "D59C9FC25E84349CD2154E5E326CF2B97071E7C47F0F574D117" + "29EEDADB3D0DD0FC69A7F7224891EFABE76942808D6459217F0" + "6A7D")); + test_hash_extendable(&nettle_shake128, /* 58 octets */ + SHEX("5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66CA376460E100415401FC2B8518C64502F187EA14BFC9503759705"), + 512, + SHEX("3930D75F8AEC436928F62AC548FD6B215C2E6FC22E918690F0C" + "D699A0CB1AC218BE324232295546CB3C421E939222827890A8F" + "C563F6DC455B7D0CAF24C7B1BE44256DE645EBFD281F263C900" + "6F78A69E8939809538A74E646E75C4D23CD06EF68B617E6C5D3" + "6C85348373FCFCCF19AA3BD69E18CA670091D2B50B0C2A3AAAE" + "21FBEFF894A189512F4EEF17258AF048D073179F450D366295F" + "609567EEA83CB6A2E2B8170F69E739DB47874E1F249AC959544" + "2571D100CED32C151ED4399F5AEC97875142EC1E8B748A9FA5C" + "3EDE5548B875E60A224D9830419E233FC9A88CF0F937566EB28" + "9591916C1D159BD68B380F784BD3E6A00D4C785694F38FE3D8F" + "BFDE5063B91FA397AFCA0731B97294269EF8157B531B08E15CC" + "52AC8E5E768E6DD3905BB9E1B462481AFA989441CF0780CE6B1" + "926D71940D4EC82521A4347992B37AF9970F47658B05AB54A61" + "7275F51FD723A35E72F9F965BA4330569573A58A0021E1DAB0A" + "F22EA03E1BFE1E88EB2D2B97E5857793FE7B63371F3569C77A7" + "7E331924DCFA9FB8072F4EAF3A78FB6462A5C68F26D034BFC0B" + "3BC8ADA4992C66B4C8B2F0489A446B26333146B4420CF2B5AEB" + "41934B3CC05B7ACE62AF74997B797C82845F4C4D7FED571879D" + "255EB34482B86383E924D45B4C9EF52E76FF236A0DAA1C9F6D3" + "42BFF82305FCC88F8B13FBB724A9FE732CB33A6D53D95753FB3" + "50C4")); + test_hash_extendable(&nettle_shake128, /* 59 octets */ + SHEX("7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA83161066DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A"), + 512, + SHEX("1C8C8643B1FA6B0D217D21E542850127895DD4E455DFD136C4E" + "221787A8F3CAF76478BDE517C7DC3EDB97C8AD824292EDF671B" + "C4874044B96A109BB5821858E544090E892B3EEACB739AF35EB" + "05DCE51B131394C9972247F1C0D7D335D18B9355509BBE94C4D" + "EBB0C1B18614CF3FA8119B70FCF5B59E37673B470CAB14302D8" + "05BC32352B340FB71F7E824EFDF2732EF3D74998A5AD7089811" + "5C9CBFF3D5067EF05D859FF932304A5AC5F6AFC46C879F0BEF3" + "69ECD7B5065ACB19C655F7FC2DEA4DD7AD38A2AE841A67EC1EB" + "4869EC285B5A517C930350D7CBB9C61CDBA188553B9D4EF140D" + "D1A8ED312822E79EA68662BBB1AC3643AA56DE5991F5F128F03" + "6B32023CE34B7A7AF7CC43D6B67DEADA4849BFFEC361699AC71" + "75311195822382051BBE20565552014D6A4343CD94F7F4AA705" + "E1D5388AFE2D96BBE8010FA0E82305B94B70AD954BD5F6FBDEA" + "F090AC510B75CC91DB450EB522183371D6B9D09D3FCA171FD10" + "174ACF3FC47D915619DC0D06D8567C4E8875D0216DE9C7AC1E7" + "D1758DD59573273886897382CE8E77552961D51ED0B87FFCA38" + "BDB6734A23FE0C9A403ABB4FED73DCD504289E7E14906A10B12" + "1A57B94C2C37542EA833C55C1130AD70F753C9A368F7C7D1B51" + "450BBBE794F2824713153F83FE6AF09545ED91F0E39FA732205" + "025A49E1538FF7DAAED5B72EEC88862DC0213A012239DEBD24F" + "CB07")); + test_hash_extendable(&nettle_shake128, /* 60 octets */ + SHEX("2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D14C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D"), + 512, + SHEX("1DA38DF421AADB3DA692F4987E171113E15D3685DB1017EBBFD" + "07BB68DB236903F3CD3EC679B6BC9004072E90ECBD0FE0F2FC4" + "F5531D24FA6F25BC6EAF4B545A2149517CE19971E3AFB866DAA" + "702DCB94982446E7AF77418164C5E92EDB14D98EA0DC32A3E0B" + "FEA4E71E9C8F58A751578200772A1E0460083021552FEDA426A" + "EC69346E0FD31FAE18B894B67DC38D7E54B662CE051A8453C1D" + "B20F55095C177F5883625D40BC4B49965C48C4A1188954C50DF" + "AE423A12315DEEE0FEB3548AA9752432CD6857AAF42BF804721" + "78D0714D777135898F71D838058F9F31E6AC92D819C44775C2E" + "DE28038E565DC33F1A157D8715AE67AB993179469D6C98E8574" + "A7D8FF2A5F12353F18544E2D623AA42AF85159438F247AA9479" + "22A5AAF98BD562AE54599783853CBFA5CB67EB1FC36CFBE5AF1" + "C18C99D867CB02966D90EA8ED648831A2228657972642A17DD3" + "4FD43C11CD7D407CAC86E20D8816E69763B60294C19497C1516" + "20A2B93B3B3E87639C233C17B9B865E920F6EAB6C72218A182D" + "D46177A7AD18E3775FC0A5A0EC956B5E92D8B48A22A6364006B" + "FD2843B3EA4CB63B8C0AC10970853D196918DFD513D4E1A1558" + "EBD3D4C60BA253078417304A50851BCB6E41B5758A08BE338D6" + "2B0021851A42962313C11BAAA95E434F6329FD5D6C85D67A665" + "A675CA527C555C77C7435786BDB8D9642050931C57CB79AEE59" + "73AA")); + test_hash_extendable(&nettle_shake128, /* 61 octets */ + SHEX("95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFED51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D"), + 512, + SHEX("660BA471FA9414C985A47B1941804295ADAE88BC1BA145DEFB4" + "07AD66F193BE41EEE4E0F71D175F6D1D65C4B227A899E0D282A" + "C714E50E3002AAF8696B00A736A60C9CCF94D15E46DB68228BA" + "174DAE1575138D3F9EB76CB16FB09A50A6F7024206D4A02277D" + "2D0B53F189CD8E45E85F4C0FADFA235C963A9A63743D88FADFA" + "6CB99BF47F32488B4E009B47F7BF59A01BD92C0B6E771E8784B" + "67A0AEED96B29E6A1B110B868B144105B85C11CC01C589A8934" + "2DD456E154A0D2A638FEFEB03058CCB301FD551294251D32B3F" + "03BD62AC5ECF5A249940C2401F751A9FCF036A384ED26F569D2" + "27235CB47673F7003C4EFB36676044D09CD586A54D744AB4922" + "BB337D4436C4BC76CF4A478D1CFF7F7D97EE2DAE912C5BEC910" + "FEF7BAFF0BC9E32DF5ACE8DAB30840A31CA192E258A41412755" + "34361977D2FC22EB1C1BB62A21B893A65B16C45ADDD3032F2CC" + "AE38BEB6DE32E1B5FC70214E2BE1B7BCDECAFD744F82EDCEC99" + "F92D46AA66044EFFF26EF3BCE081A19F1B7392C68D2414D92D4" + "26D78B4BBED4AA32D05BEA547A8DCCA688CEF6B0BC754FAE7C1" + "3915B97478BFA72EBD409FBA5AE48CC89B37918F04C068AA188" + "3F2A950675761120989A9F7821799F5EB64C07299ADE85E1DC1" + "BB488BCA7B96BA7F04D49CAB2B41803F17BB94CBF04B641E140" + "D8686EEDCE954ED1A712BDE789C31F02F721F467E167C3E9B03" + "5687")); + test_hash_extendable(&nettle_shake128, /* 62 octets */ + SHEX("C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB32530C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D"), + 512, + SHEX("9D027F5434C6F6EC15B26BF3D61F31D81D46C0FF426D4209E0F" + "D3F9A3E01D0AF5BAFEA98F9E3FB66E8390AA2ED009C0D6DBA82" + "B3E36CED600FE79C0F50EB1C1F7530F20D51782C13A79AB1D0B" + "C655112D745043911B5A9524E6EC88122CDDAF702C34FA8840E" + "8785A7046B6794E623526826B471CD9F62CF9AF02E398C077C7" + "F8608730578AD22A44CDA39DF8F101CCF21052C52FC12967DDF" + "C77C153D8068A2B0B783376FE56B1DACD9A0B3E87645132BEC0" + "F3C2C9A521DEAC286750C2C42B4A29B29144FB1B0F5CC997AD5" + "7D04BEA965343843788DABA5600A7AC5403D649097EB402205C" + "E4BB12EF836FD4B7CEFF704F8A2BACA5D6381504793F1C6B47D" + "15DFA45F749A28C7FC16C695A0BEF69437AD3F8C8D3DA5386A6" + "D9752529EBCD84CF92D641A4CA1755177BF7E16CA144E270E41" + "91EA26BFB144528521D32DFA8319FE37CD026E5F707F81DEE84" + "327CD0B74C05CF69543E94848CE616FC118F73206B132F02579" + "25B8D93DB60FA6E034D27A65EA0B2EB18056CC4690BE78D9BDC" + "B4DEB61FE5089C58AD8CD08DB2AC9A2C2B0811EF71309DB1831" + "D9ED1032A1267D3152E4ADBF2042EA48069D0519FC5B03A5375" + "EB355BCC327766B4B3559737DD4EACDBDF5B28F121E7C13EEE9" + "A8C10E66F22CC80EC40AE72CEB0B2821BB7215CC9E645B65E76" + "6076AB78D04771DA21B501987F8BAD685C6EEE40C9F60605DA6" + "31CD")); + test_hash_extendable(&nettle_shake128, /* 63 octets */ + SHEX("F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA"), + 512, + SHEX("3951B52498F3C2E30411A6D89C55340A73066B36B1AE55D9C95" + "142FA1EE13EE8B7296074D82E44D752EE29705606D823809786" + "DF5A2312F8922E4C50FF0D7297B864FCC3BD81311D69D265716" + "9773C41A8F7F0E62E076F5C0055DA042DDE07D82172BFFEFBBB" + "031FB715546CA47903895DCB4807B9C435D16F90C41AB7836A5" + "3454E089A25951545F0B39A849F329AE9568A3640F08329B042" + "2807AB15461F6C67E1A1E5B8439F4D0613C5B4A8CE10AC1DB59" + "DA2CFDC1F8FA78C60E88A7E6C0F2488AFEBE16BBCA680EE65BB" + "53421E29C8238B7F0D1387C60EAC50ECB43AF4FF075520199BE" + "E31641CA433F35D62B96FE477C304265002440018E4A4C65667" + "9189ECA635FE4090724784F56DB38563EF05A8EBDA4271ADCE1" + "4B8644BAF09B83574DDB6803997AC473BF537F0F93A2FBBD0E0" + "C75C387F21EDB2EEBE0088CE8886E6FA9952DB209BC16E624A7" + "2DA33878538549AA8F955CABA17947FBEB6A304EB9B1B494A19" + "7814EE4281A74334F71780455A352EE1586BF298361C40140C3" + "B6A384167632D7EFD7F3FD327E18769DD481444400B669BE07E" + "DDFD2783962751896B703B3E196EDC111411DB17531B96D0557" + "066DD6D2FA3EABE0E4735837D1DA7BEA7543D6B591E55B2D95D" + "46F822CFAB994770F8F51A58BCFC10B4A7DC9C8A645937F5AFF" + "66A59687457CA35C42DC2C9D75EE0AAFD9BEF334D12DC33BC08" + "81A9")); + test_hash_extendable(&nettle_shake128, /* 64 octets */ + SHEX("E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7"), + 512, + SHEX("B21B2ED68FA53BF4EDFB8EE5282964C8FC370A702A229D3C4BF" + "87DFA5279B1AE2FBC85A00067F8407F586B52B5F1AAF9771602" + "5EC2E292206E18570AD50CB51E072A7A06781EB9E1B1B23C576" + "C689DEEC4DA40513361B413F513A0EC21491F0E6EFB79268851" + "9C1E6B0760B3E1DE34890C2BBB5C3A44DAC9B0B0EF2B1B4CC4E" + "30DA7F93F52D656712EB12DFCF30C80273FE5A8F42B909AA2C9" + "E1E9C82199418AB858E1B8897AD632C0C030C9F56776378A86D" + "F63A5CC284ADAFCEF50DF97847DE927F296E63933FC174EB300" + "9C5580CFE39B77BF359A865DED988D3BB631256DE6EB736C637" + "693DC5798429498609A6201C6E9CACD7782DEE77B3BD4728BA3" + "2A0DA88A14212BD204292B6EEFD0C7EC1814B7002D8FCB08975" + "D4A9C62100F94404CFD32EBF49407BA4C6697CD65D7C40951CE" + "7774234C4A793265CAE9037020E35D38C9C016B15D214550A94" + "F6B245DC4F5B9B1C8298D683AC59ACBF177F266F1818628B417" + "4D66129C057B1336F718F67D5CE7A3627E31D8E64CAB4BAA5E8" + "9B7B2971B4C82D23C36305B01D30F830BAEB2CACA3BAEDA18F9" + "12E4DBCB1F5CDCFA9F562E3BE2B01826EEF5CF0D80DA116765E" + "0D467352264C8A9C1242F74D98D35F77472CA4DF8234E76F760" + "0B6052E7516C514695BBCFC1793A9C9AF512E1D2EDD7490D8BE" + "500710B305F9F54FFE4D87B50776A29C222B09F1913E71F63AE" + "DB32")); + test_hash_extendable(&nettle_shake128, /* 65 octets */ + SHEX("16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652BDF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC00"), + 512, + SHEX("0A7A5CBFC9ED4A55B8C8CFE99E9D71D4EC34AA1C4FE8A69A39D" + "DD2C0E1923A3D4D7EEB8769709172866F0F93D96504307700D7" + "5F4922EB0CC199ACACF31E8BDBFA166342CD7294A7236085287" + "32BC85D7AC57307C37D07AC03D99009C2052DE7536B9049B075" + "0A5186855BF41FC58560EEBB743F6572C102F21D3A92F890843" + "4519D8F797DB47CFB93BBE9A567ABA819FA035F64E2A718497F" + "D815968F70869066AE8DB9314F006466FBC53660BCA5CC65B65" + "86CD75E58427DC7B3F7D1A7F0A5804775234C8D0907C5906AEB" + "4EC4DF01E081695897B324A97485C22F694E48EEDDC010D198E" + "5DC4C65A24F62D6FE7EE0E60B2E4F79A6BF349F9612303CB272" + "C0F1D0A952312F151EFBDE16D17D3B2F2BB9729F444DB0B1B99" + "3A6CD2EA973D430291D276CB479D8F07B9FE022F384743EB3C1" + "593F062994D2853AEC6267E68C724F959ED98D9DDC0919F53DB" + "D54E28BBB28AE5F0EABBC36A81E25A02174C14387E8C1695F97" + "DE66C74BA20CC8EC1EB5D3DAFD147A894AAAD4B20DF7A06EB9B" + "676846133868F02EAB7102E6D7EA8BBA678B0DBBF1F6D6D6AD0" + "FA43412A8A53C6D814BA26388BEF08F89042E573FACAC5588E4" + "B5C4E2806542F2E68148F4B7CFF1EC3DA21F633372B567005F2" + "CBE81DDDD450E597FAB577A1935281F758193CEF43961C380B6" + "2F0CFD084FB4FF19045CEB3422C01E5CCF9EAE9C3B300A117F1" + "D81D")); + test_hash_extendable(&nettle_shake128, /* 66 octets */ + SHEX("FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE37FC"), + 512, + SHEX("0F001A78A98382078267D5DE881F8717B55A31C1781473BA089" + "C72CDB201CE93B943687E3863BC24BE5D255A4C02E43EB498B9" + "EE4D8A0CB4778A742051DE21C4FC7745525ABF188F38B7B46DB" + "5DD7AB30906F7A31E0B030DDA800C7766EB48E0F4B12C474C35" + "35441985F40376EDB99FC2A0BB2BAA9ADAEC49C1F5FD3A604EE" + "8DB5D0C51AF7EDD29306686B3795653E2EBABD2E9118B789868" + "A7F821FB5BC5E4CF732456448417F43F6027337B4E1D481D65D" + "239DD15EB66F5C6C289EE85E065FCA3DAB1126E4522DFE9A1B4" + "28310C7DF543BED5D4439E87549AB0BE6ACA17180714D2636FB" + "AD2F7BAFDBB1961764F48518EA1ECDBA3328DE8A6684730E747" + "174345B77052E8CCE9765ABAD9F7B3AC4E8C2155FA5AF14FBEC" + "002B20BD2EE417F6CA5EB8B95087C34EA52C8D1DC95453F6744" + "272BBD1F14A1AFFEBE475EB2D20CC26C5893F71995B63E725E7" + "B02FA02B3145944D9D8A32F898DFE1F7FD7A73ED1D67DDE341C" + "4F95B603597F74269835762A1F348E10BF5FF15B7A325077AA6" + "DA99A8B92885A344AF35D9FE34A5B5549D37EC1C536D7B71962" + "E1A54E2601E0F0EF19A2F81151A477D35F36374E7F44E00B25C" + "2F7C4FD804490BBB68BC755F19EB25F04FF370107237153E50B" + "B1F8867917CBB70332B41441B6434458C848970BBE860A07DCC" + "B6E6F9C076998B54AD88D500634948A73A3478AFB1CBA9FBB39" + "9D39")); + test_hash_extendable(&nettle_shake128, /* 67 octets */ + SHEX("ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E3322FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888599BA5"), + 512, + SHEX("D442B526EE0DE0A7977AC04F9C822EF3369CD2CEDACC05ABEBC" + "71128F0C0A2F8D5C2566CCDFCCEE773AFDD2C0F8AAE2E59B569" + "95F219A9B06B638DD91D0C2AC8D11ADA3CC491A5985255716C7" + "5B474FBFE4DF204B75176468511807478FF873F17225D022A78" + "141B962E1A4EDC7F93BDE19DC7D804C11C49942A54CE6063226" + "93845C11EB0E20E60AC7A15287848C37EACEED986F98476AC62" + "A23E366804EBD5690856D69E82CAB976A79931FD5058F0562B0" + "06E822087DD8D277338A6E555C54A536D29831D6587B4796179" + "A6F45C89DC9E85DD3067ADF043E3CC90E96391D60145DB31BE7" + "778DF6402D7808F46E42C8BBE987591EDF593CE50515D4DFD64" + "7AFE7A65579E894EC6951C2F03CCB4FB4F4F212F3D87E953D4B" + "F6093E4D390260791924EBC438B56693ECB11BEB8B10B85CD56" + "D39A95BFA7924B9F78E181337E550AFFE40CFE99C709994EB9F" + "81BA4E14C6663733477320EE3A62955975E5F3F25EB3922DDB6" + "7F0A312D916B8FF2C14493981C7A6FAE0E14F222F194B674173" + "C051EDB795DED1041073BFAF62B76D3623D065F797A82BA490C" + "ECEE1136C08193D46FF6BB06B414C8A861A4604A4CBC87CC652" + "EAAE3D648E4D2CEDEA13344AC22CBD4DAC4AC9D6662D3694B38" + "BF12169320B5249021C85A7477E2587DF9617D7D44E09BF7FDA" + "ED71E3D5818DA093E6D019243A17D9F32A5046FC6BA19EDB0AE" + "6349")); + test_hash_extendable(&nettle_shake128, /* 68 octets */ + SHEX("36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D440706B05"), + 512, + SHEX("6EC28683A74038F869A23B21669F27B746A1AC2BD41E3BBAED1" + "CFDCF79D7D1A9499F2AD4701F64830F14C27FEC0CF645E553B3" + "D76D8512B879D2D19E37D93B0E9357160FFC00F20CD96FC1AA5" + "20B0870F853B3241B687549DC2D1F119198CFFAE38402CE4CC7" + "7A973CF49F19A52EF7232E39B5638C680D44334762657397CEE" + "9DC65FA37CF9FA1F902AB290F8CE4CEC82ABA455A794B576BE4" + "04ED24BD50B9A4923D04C3F19CB812E00D6D9DCA00A906EC0F3" + "460F14D3CCE6CFEA1C78E8400C0FC1361A4A60810BF51AFA3CA" + "21B18C7DF5FDFBBDD8FC1671D21CEB404F9DD37008419CDFEFB" + "F1D57F7AB7665BAEFD500C38A5AB04ED47E4B3256B0B015D051" + "1657290418D5DFECCED4AA47FA14A9A0E9766F3123C80B65FDC" + "07CBED2C8B0753F2B20EE271D11D28FEE068BDD3C4F44997346" + "3C17F21F60A5E59BE4FB3A3490ED87AA1709A62643E65FF82F2" + "980BF2460FABCA0719E575614A1211D256C59F86ABBCA382B36" + "F970C489660C484CEAB850A13011FAA07C93D2FC2E8E447A997" + "B0BFC286769017189A68D7DE05CDDF696EB93FB8792F25B2979" + "AEDDAEA7A935589BE4825E83E9BB302C3A6E88D83BBAD06BA6B" + "A274A672CED23276A499DAD01555D85C620B6FC64C62282C545" + "195EEE61C8A127EA8994AD5A706A2DC17AE5C6F165B477655D0" + "67267D88374F674BE12F58A35DA878346BD48351175EA72A0CB" + "5E40")); + test_hash_extendable(&nettle_shake128, /* 69 octets */ + SHEX("ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E329C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB31D06C77A4"), + 512, + SHEX("FF0DB45E2E8959375D3915DBB45FC32DC6CFE7D2BB227647F68" + "77619BB6884D8BBF9668F407784739D34975576B99AB1325716" + "C2B83212DBE9E5E33B5A6EC68FD75015124F1DA731F519F983C" + "C783F176286228E59068AEC6241B24808406CD60F67D5A1AB70" + "83D7854984A1F7030B7D700D5D48EEFC6BE0AEA46C802225686" + "6CECDA897DC22D4A18B28126444D956B93190D7A060CEBC2E8B" + "E65D90CF7837A90DFC9ACF4BE4193A892DBA8B3A068E7BD20D1" + "2C47A95E0482A2CD4252A34E1F13BCBCEB9C0A12E719A27E275" + "9FDE1B2F6E75A0A38CB80EB44C023FB0EBC33BC8290513D95C4" + "31D72450951EC1A86A89D59D435CD3D4B4E069556A00A443F04" + "5224D46A8DBA8CD7E8BBC89A21D3CA024C4EC96BC7169E6AFFB" + "B05DEF58A0F2535997F345C8660451E7CBCD83C622EDD0D8A8F" + "30D8377BB31BEDEFB546C989231C53447B7817AC3F822D596B5" + "C746D5839D6CC8F6D45C48281357E87312C33F62EC568DB4AEF" + "7F194DE67981D67B2B6659268556EE38DF95FEC4BC340A3BB95" + "39EB6143BFDDC12BD233BFFF5FE0743DA3DC89F57DD159A475D" + "6D8882BADE66E4C93D6950ED026C747968F84DED68284F5F02A" + "9F7549B88F244FDC261B34BD66CF2FF5A6925565A08BC8A5F88" + "28775A5A35147C57CF327C49CFEA4797CC130D1E8AA278256FC" + "BE416420FB7683E6D0A5B1466A586E98C144F4CD5FB277C1E59" + "B190")); + test_hash_extendable(&nettle_shake128, /* 70 octets */ + SHEX("94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760A259FC4FBD72"), + 512, + SHEX("5C00245176070CD2F23F1C5E15B21A9161BEBA24BA71D989BED" + "890782ED39EB857E325AFA269ADB03FF1AEF7D26EE524D6CE82" + "1D2C842C43D0FAF47B602E55B7960FB0A9638E6DA8272DAB5B8" + "DB784DAAC730BF0394D50A59C87B422080191769C21BD08A32A" + "F4C263B09D61A13D0EC26B6D1D63A2EFA5B4FB9CD4214EA76B2" + "C915F20E242D104745EA9AF73251F2CCC9E78AC8FD3C5EAE80C" + "A665A87C517EA620CE5217C215AE38CC43F2756D9331B0359FD" + "EA9CEF8FBBFD3606AA5FBE2D5BD31411A857B3C8E79A2FF1B00" + "E3EF56BC25D0D83958B64DCDC095241837E333E58E4DA64F3B5" + "B57308B165924B4C5F70567779248EF4400BE3E80F699FB3B6E" + "40C36BADC2BFB504BC777733BA9B59659F8661D57B3543BD261" + "01FC3DFD6CCF430036776DF0F2979B03DFF7E6B2E98F161E050" + "A38F71EE438088D953EF72D5651B5674EA6FFD3440AF8AC94D5" + "A808EE426959131E460C858A77C4690801B5B3A28C6BF555F02" + "B5C60DE30C4301363BD6322A289F36B30E00E152627FF7485F0" + "32B61041D4C1EB872365B8BD22F1A6308F5CC56D4707752DC3E" + "32315C8559A3B8083D2F743779A3EAB10394F8DF71A878CCE87" + "1E0835B57DE865CF16AD2D2BD1E5E5705F68C6BAEE103C785E4" + "3F3582F591DA55077C6B9EFA8F93300822C6EAAC9B5A71FB676" + "C0E73928ADE3102B61284C676C140F33A17FAB48002394EB362" + "65D1")); + test_hash_extendable(&nettle_shake128, /* 71 octets */ + SHEX("13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFFC3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CDDBE5FE9694AD6D"), + 512, + SHEX("812C14B78AEEE6820EA1CF8E0F3C61AE7CBD2AE493017ADE075" + "6FBC57545830910DDC27F3183DF48C1E1D6D1A9F3DE220F1740" + "2830AC73F77AD2977BDEF013C739CA0E9EC11AC4FBEEF624F0F" + "BBC534F0467F09E775BDBB8ACBCAC8B3DC6ECFA92F35EBD729A" + "1BC90236F57AD32FFB46C055C93412D33CF612059C4D5BEDB6E" + "45807A7CE2E5029C0594CBFAECEC3F9178EB01D60ACB5A72D5D" + "BABD6F95691A1F949E4DA7B48AA78C1BEE810B175218C590275" + "3B88253FEF57681E60FDA1851A18EC1F3953CDAA6B9C32D085C" + "7EF9BEED9598354CEA388F3D8EEE372312168B590ACD0C33081" + "6949211D8CEAEA737EB87BF9E6D4929D83B87E287C887E32B66" + "FAF1540B64C53593BCE073AAE4BBF711FDC7AF6E7CB0FE938D2" + "F87643FC4DAB4A7D4154015E82422C14600E44E41D005DB80CB" + "B4C297335EE0E616E32D7E9BA5BB0D88FBB05B4D5799DF5462E" + "4544D3883CC2C4850FBE5B43613841B0D515093D246B714E966" + "56E1F6227341E76051D5C9C52730D66D075DF0A9EDEED5D8E87" + "8A1FDE3AD2C962608CE17655AE769C484E676904A29F22A3B45" + "24DE2894AA633DF9F65CFFA329AF056E9BE4E67E7EBB786AC35" + "41C00A792B4217E5EA2E51FBD979CC8C6E40F59B6A665F1BE6E" + "6F2FF4D1D48250BE44572FC5B731707B8611E8CD7679037D565" + "BA7B066781437FADBB47F68AE752E879286A25020F8E00FD7E6" + "2AF6")); + test_hash_extendable(&nettle_shake128, /* 72 octets */ + SHEX("1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801CE25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC3237EF57B91397AA8A7"), + 512, + SHEX("CAFA188EBD8CDF392EB8E67776D6F574F72615ABBB5DA359995" + "07460FB1D357938F521BB18699510D353D3B42EF72E704EE769" + "C02A1EE7E366871F28B25F798725CA3FD147F7DA2B49329FC5A" + "00E486A19E9465B782B1176B84465A96F083957F3D55512F6CE" + "F4AF5E891108B468326C1051EE1519C21051353F1EAA2AD39A3" + "2E5ADFD30026D4B56A2498309C27B03A195FF5A7CA27E5184E3" + "22B9B783C44C4E0842F6695BD89D5648BE09B927990DC3980E7" + "F818392380840E1C4310EA67ABF7285CFE20C50933A92E74FEF" + "83AFA6B6CD6A372AAFF36DC582040B34E8521285EE9A67235D0" + "16CAFC9478B80D7B9778CAF5DA4E7D1865BDFB903DEDD7FB847" + "7F007E60AF960BC04A81E77A74AD25641FDB9D81AEC87634D69" + "2E445807C0ACE094F99DB07FFA01C2DA7517D12C830973D4258" + "39722EC0C5A2DF093F01EB9F5A6D2E075CAEA8C7AA69BC89946" + "3D0E55C81596907F1B0F81BAEAE734B24FAE3D99984D5E39EB4" + "822C4ADEEA640228D72387656938CFE5DB953C1ED993FD9705C" + "A9C9C70E6DF0075392F965682BC163BD85911C99511896BAFC3" + "5D9378B12E00628EEF3EA11E908F92498C90314C55698A6B9C6" + "D8FD88AB4D7250166FE57E9C106FA674619C1D53CB3DE576806" + "742FA538B5653BE7D0C08282A0159E7B4F3273C4CBE1735F3B0" + "7AA0004CD5C7F763983CDE554AD9926FCFF1D1AC48B9777C726" + "6C8D")); + test_hash_extendable(&nettle_shake128, /* 73 octets */ + SHEX("BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C644B78B2D48DE1A08AA"), + 512, + SHEX("105ADA0018016331E288A355DACA7426116C7C0AF86060A1A65" + "2AF34C6D6BA4504E5C681F493AA44BB869997CF024403FE9516" + "112C732C26DEE54865ADF6594BF7A546B5998EA1026FEB209E3" + "0D3BAA289B81651B29916EECB48E6B4D6F8CEE317F46732B2BC" + "865D78FF0237DCA71EEC837215D67F9B7C244232529FB180128" + "2F77CB08DD3B4992A0B4A551175173BD50FE8798836C60BB748" + "E6D3112D7EAB27F0AC52F48FB776F92D89C895D7B1F148F27EF" + "57B47DFEA43AAEE0C8507654DCA384FC7C64B39227B6E750B43" + "1588D56567EAE250ED6AED8F987D5A6140F0A7C9A4D47DE2B20" + "36038D43D9630E849431B7A3F7C853399871BA3601070099051" + "64D9707C0A81D00A276699249ACCEFCDAF118A8D28FE791FA0F" + "C4D4A2CA862913400FD550513D0CCEC4A487521EC53B33D4FBD" + "2D5F6713F0F1F3C1E6A2895C4E2B56D86904CADE3EF04AF4CD1" + "F3E8AB7876DE83D133170E3918639F508858A335D4244C8DA88" + "93D51A7D6CAD5A2411DBA3B95EE3B95F3B2EC6DB652868A8158" + "FFAD739199C47C32D9A4917AD06CDD7149738E8568B0EB6B7A0" + "252E151538286D122AB6A6A68A6BBABA4958C0572625E7F4837" + "BDF970DB69A943E5C80E5F98DD0FCC590B782308650B86E0C12" + "A0CF2FEB059A2857118507639C4B56C749F3840AD13325C5E84" + "3ED1895F6CCD47BF2FD68D708C1B2001A083777896BA92BAC91" + "E280")); + test_hash_extendable(&nettle_shake128, /* 74 octets */ + SHEX("0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1B3A6C9FED24D70749604"), + 512, + SHEX("B37F11D6837064D393422AA32CA502E6FC0DE85697E9DDF15B4" + "5648D99CD2B0E35653FD071546D893ACB91EA8438E768BF4467" + "81A2BAE49C6CF7E589FE80B2C6F35628A9577CC1F902F061E42" + "5A84D224D2D8C5FD4C06F1C7CEA72BBF53F982626DD1208CE37" + "5EE4F593EEDF93F72011CAB8281049A76EC1F90528D53AA2E05" + "89BF90440907B0F02C51A1A1D9A4C4B31FDF378A548C4D65CE4" + "EBBE77B4F95E9AE29A3CE0172A4D80C370D6967BF27DDDB2906" + "5566B2C3205FEA1E2871F6726DFD8FB5BE9199C31E77615BF06" + "0A33F3ADF9A1C86D205C2496DFA694D343C058F7F212D9E056D" + "6525479DF0C4C184D2D8191A9FA849FC0DBB2BC27741CD5B43C" + "65DB771DD99872862546B5D1C313456423E649E9869A43B6ECA" + "FB030897D049907F307C767885014F7DCB21FC4C7E52E1F6E95" + "A017F9AAD349BFE109AD8BCCCDA1E4FA761317BD7B7036A0909" + "5164A79A7A4952FA2512A5B826009414BE0C504A27CC3AF0697" + "18DAECDBE4F43D93A1AE4E1A9B28A48F69533E6EFCEB17520D7" + "8EA41500797B18E193C98C574A5339D2879DA6340D8EBE07723" + "549E51F71BF956BD90E74325BD912FAB8C63150BBDEDD455973" + "C084A6E96BE7AA3B8BA503D5215B77151007A7D32ECED117503" + "F1F509A2F6750B242AC63D2A53873D8CBD3A30F105078F0ADCA" + "870DC906C0CF7CBE1197C13C0C65FD8471BC52ED07D8090C83C" + "FFB4")); + test_hash_extendable(&nettle_shake128, /* 75 octets */ + SHEX("BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D8B033F77D384CA01593C1B"), + 512, + SHEX("A0042E6235AFF4430623E540E15655139EF9FB84BF8199702EC" + "9A68D4802E7F37328A5CD7AF4153CD203938DCD947F0C7CB7F3" + "98A4867FCB38694BC3CFF4C10971C44EC166F225CD4B0F1C264" + "743815CF7BF37933EDC38C3A1453852E3B220C5D5263D67C82A" + "7E62FC19D24C9B32C10A8A6B2DBFA059197C97DEC62A05456A2" + "6CB555546A4219A905BDD2A0FFEFD1D63A56258F5A9FBD53527" + "6A163745E8911D55A5E47A4C3411A128F461149B3FF20B9EB42" + "2661A67B4785F38CCC43F7B87F5844D8E4665B0F010AFC1270B" + "14176913DD56B76BFDDECAD17374553FBC5C31A7A28E98F5803" + "6171BBFCF79CE10861CC0CF343822399546E100C532BA2E5013" + "126976E02C7783193EC43C7E35FC2DFF6AB1483F7B5E5955C91" + "F7F7ABCB52A132A038FCE9387C4635E1A3394BFE589D6C9561D" + "05CB210B25D575BFC0251374E541D72DC2C43E8FC51F98DBA46" + "BDBD7A4C6EFD775E1E5CAB94C8E03540FDF4D1EA7AEFE829895" + "8B618A288A31BBC9FE7B2381200652D5B2EAFC6A89F806102F7" + "53824ECEF4CDCC3E7329DC8F7C93D94F98BA5CB51DB8F615D59" + "476B32BBE20111DDEB7AC6B9AC8CF66CF7B338E225BDEDAD4A2" + "C5F0C2941808EE7BD2D2E59DA7010CE6656F6B11FE5925508E5" + "A266E0C6F079533C97FC0FB5559E06793AE9BFBFEC8BF4D3114" + "783ACF6D0E709AA1144326D08D415E7AFCA80725DEC248313E9" + "82DE")); + test_hash_extendable(&nettle_shake128, /* 76 octets */ + SHEX("90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603013C23F1E9611D595EBAC37C"), + 512, + SHEX("439E31ECAFD806B8E573AF44AAD0B7143D82FBC725C963633D6" + "7665A2116949EED1BD5338839CB0F41FF79E4B5A7F0B3A2FDAD" + "CADF52D7379A935AD0357E7658FF2538B99A993EA6E9AFDC9A2" + "B1DA9B68F9C9377DDC1CAABF7334099043E0997F446DBBAEAB1" + "4A507220CE36EF110128E0ABDD3DA6F98D2413E4742E82D7494" + "33C545EABA95151695B38D1E485C49CA747A11B83CAB42896CF" + "35B275490CBCC856B227C0BBB11EE110E37054B9D8E64E645E1" + "BCE138EAE18118357C362AE2A729407EFEFF38AD2ACFA4D1720" + "3D17B933479946E39C4E4BBC467C7B623042C4B770C179991BF" + "159F8A1DF1D3A13218A441C7A3F296C34B1736A62F1C09005CB" + "F972A66BB46D7DC124BB43CEDCCD07F9C7993C9E365A13ABAF6" + "4859CD4244223D074005906558147EE618F8C68403B3733AA63" + "3DF77F4F743652EE53C26FA64D251C09C8ADC99AEE3D6CA13CA" + "C5C6A4B95B389E2FE51E11D85E060CB76E331628D0494216FB2" + "378917D09A7558262DE00A345D7AE026BCC7938BC3BC039E9C5" + "0A62F8FA7AAB5AE44E8B9A1FCA0B65DE335F5D72FCBEC9010BA" + "19040C38B5B37E1F03CED896106C3254663A5AC8A547E5E9473" + "8EB86787CB237A2AE65A0D7DC3EF44711325BD1BD4DB4ABB1C1" + "7DB9FAE2C7DEFC2CE08AA1E7B68654F936355EC50ABBA8A1AC4" + "5C9D95F1C0669E8812F313D63DBC7F7DC40D2EA71DC8F9F1581" + "F43A")); + test_hash_extendable(&nettle_shake128, /* 77 octets */ + SHEX("64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE324EC5A49FFDB59A1BD6A292AA0E"), + 512, + SHEX("91349C4ACA2EE1A2646A6A92E4335E7C1DA9F8482C2791FB967" + "34E3301123E4059F603BB4C42B4FF5584CCE75960B5AD5F667F" + "AA54DA85ACA5FEBD5908FFE7A1EBD05AD9E4DFA8C8D8D92B7F9" + "4666C119DE471326E1F673EA67EDA5D66C8035E047AB08157E1" + "228B4B09309F19A0208EFE7BE1788C2F77347C644B4394933F6" + "AA3E10C1B9A984D12A6D0C68E280785EFA11F1731580D6C71C9" + "8D6E6FCBCDF56DD55D87865ADB395E7913DAD6E9A4EC938A1D7" + "E2391FB11CF6007FC9C02EA70F44B67EDB1206DC86C00D1DF69" + "06C878FFD93B034F830C05F8571A6068D87A2AC42692DEC62F4" + "318F8FE6DF3690C480E48FE406B85C9FCDAF558AC040FF15011" + "B6C1AC183AEDA7B00BD48E16B7977098BA9412B470B7E7F4016" + "209A02F0F585C29C554B5CF8ABA78E7E5E71447929E598046BA" + "E2BC32958E65A7F7AA29A29C2EC8B34E521BD3601F755BD42ED" + "F60B0D04539D4BF63ECC09943E0C12860F0C5665797A840E854" + "96C4E3DF04B36CE8FBA42DDA559D630BC2CEC7459020FC32F15" + "45B520B0806BAC854E6974A28FB95B41EEAF1CF01DFB3E89B88" + "61F205C100DFC063CD8393330F6A00FB379901D0C47EC2E4EA5" + "D96722EF13FE456E03107AD1179625F968864FB40D7B6487953" + "5CCA63CFDD660651FAC389CE4864BC3B382073D74D5346E6499" + "801FBBDB590C1D4D983BEA74FA6A26FAFA4E57B65BE886D55A5" + "4622")); + test_hash_extendable(&nettle_shake128, /* 78 octets */ + SHEX("D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAAB725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4498E1F6C82C6CAE6FC14845B3C8A"), + 512, + SHEX("5F8ECC71A5D264ABDDAF1B4895CB11EC9DD50F3DCCB1E1562F1" + "840A0C196A85181BE2B69011DE4A3C75087A3A303555C074A28" + "1BEE10E66AA2F15E6A531E5133B6075F84A82BACAC7D771C3EB" + "C74DA2A1CC1921B3C20E99E2866031BF725D08B4400F38BFEFA" + "0F810F82FD1E4BC12DC9E20B3295745B7F132530583C44A1880" + "6F537D96B3F352E61ADF285810D32758284D29AE60FF4845893" + "ED07EAF2720282016CF95E28C9BD49F0AD80B87A4C71179ED9D" + "5744843E811D9C162CF57013A7FA9AA9D0A313D44C6BE7FF069" + "506067817BFEB731EAFF820C812765614F3C1A33ABE050DCDE5" + "6FD5C6FAC1A43515E2F5CAFBB00A75DB2FA51145A994045B8F7" + "1A6998E6FE47CD467549E548EC4FB43C23E7759445BB36A444F" + "B0C91DB3F9A81F1048E21CF32BC3E427A6109DE84FD0EA8B006" + "CED78D08BB7C5678EE401EB2B73F0CD2638B2C7134EDF7F4016" + "6EB23D56F7E4BED122B70981F8133B594121ABEAD3E6C96E0C2" + "D76D93B4323DC8CBD869A1811CAB6285E0CAF2C021792A759F8" + "FB907FA45E2B276383F6A385EB299FA5C070AC7B1B713685D64" + "54AFB9AE4850AEEBA6A042F25B1902D18CF5069EDEE770CA2B3" + "42B3D3208BDEBFD50822B1CA0C9526306C061B2B4EC6724A35D" + "86B352504D79F44EA7B1A8926C392001EAF2018D4840500E550" + "0472AB05593F3AEE0250C27EBDB3EEB5955DD7D73DDA812D988" + "FF45")); + test_hash_extendable(&nettle_shake128, /* 79 octets */ + SHEX("12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C588435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F5B01FECFC146BDB251B3BDAD556CD2"), + 512, + SHEX("FF65B09E0A806202E10997EC4F42A049E0A97654626056EBF7B" + "92A44E06AA3D11769160A5EBF6357DD6591B373F9943110F609" + "BA15B5893E7869B17C381B549267130047C1286ED9C56F83776" + "A0F99124F8E8939C8EAD777DA433F8C786BEB7B16B3CA4E4F13" + "CEF93B4236D82E870CD3C6945FD7B8F0CA527AEE5BA66B753D0" + "E6DC84E4ACC7D51686C2D9E7E3A31BB0731FD0EF488F1CAE2A8" + "CA588B428068E09E63696F05B71BFDBD89F4E7DCAC2BB804939" + "868DFE7849FC68B095C8C6E7BFDDB3F35E9A8C1B353158C1F35" + "33A0A327789CA271F6B5EE1711ADBE112166ECF76BD0BC91BF9" + "57D4B60D84440BEACCACBCE2C2775AD1A2437FFA3B7DCFE2B4A" + "0CBDE28B09E4C306D8133ECA952810D22C132BDC680CFC7E74B" + "F5949E7D532DA24AA71B22B4576CA48EC1FB264D157A0CEC813" + "77ADC125F29B27CFF0640E0CDE89D3875B749E412A50A919A08" + "586A62B8788C4ACEAACC2842C7799D125E99C6A2C1F6150CC50" + "3FD420F5900DC509B4815A54B893B8F36B1FE27052A5C66324D" + "7EAE83957DB1FF627508B77FA072F2A01C4F406B6FEFC5F552C" + "B38EA06FC2DBA6A9428F4980D880751E459A1D5B9B3E637917F" + "177920314C7882AFC3298B3E21E18CC126E690A594FEFA0AB72" + "2E2B1EDD1C24C0EB118F9C16E4964D637C4BFC6865B9E290C4D" + "B71C510A1CE623132FDC742CCB5C5BBBBAEFCFE6F95F40C8619" + "64F5")); + test_hash_extendable(&nettle_shake128, /* 80 octets */ + SHEX("871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2AE9CD5CF0991878A311B549A6D6AF230"), + 512, + SHEX("0C3F7284A63D46A75707ECE96D5DD51409A0E601765E8760F69" + "6175433BF34A781B7DCF131E425F25C5CCE52FB457CB5745E62" + "E7A8F9BCBCB9113FBA1299D82E403E34A6E7438660D0C7930B8" + "A5CF3F127084885447A91D1F5D5F117E3EE8E2C529ABE188745" + "609E9948E02D82F1F87855BBF46E8E4FD39402F749AD00FE886" + "759956FAF77E0689485C08022343167E23180F5F1B1D33B8BEB" + "5F73EC818B92426CE60F5016B8E644DBACDBA9900CAA61D7598" + "5B5D063A3BBDD5B95937483A970BAC40A0664E95C7C4F26A279" + "1754D77A6FE5C8A80DC3D7321BADCEE567B7950A686B1490FB0" + "CA411F08FDAA06753B67477F67A1CAAA38F09530FE58184CA55" + "2DECC0E54B4B0073E77FF4351FDFC5F7C6E6F153935C1E5288E" + "CB57C3DD6022DD0854B2F986E292FCAFAD0421AAEB47A7BA53C" + "981DEFE9CFB53C95EAA02AC7F1DD155E476B6746DD2F1692A7E" + "2D6EDF79E795924A0B919BEB278A2E65AF71FA1CAC81C5D5EFB" + "138B1DD374F98B98CB5A14D96D9249F0F9CD42856A275F92075" + "330B1926DDE0BDBF123A8BECBB6B6B3797DD89BA4EAC728E6B5" + "6696A752A07EEB1A09810D450B2682F2699DC6117BFB45FE306" + "ABB889976838DD1BF31791402CE24F2895F70434FAD1AD4DC86" + "F0F309EE90FAFACC7E72C0B717289D695E4000FADC058A119D9" + "C4BDE9AC0F8B45CAD48C78BD2686105D9A27680CB8280050991" + "4206")); + test_hash_extendable(&nettle_shake128, /* 81 octets */ + SHEX("E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615B50C7C681E773D109FF7491B5CC22296C5"), + 512, + SHEX("88C391F4788DBBA363859497F71794349F3A81CC9D1746CA273" + "208680A0CE4ACCC12021E1EFA31AE40EA75A009E95DA25F9F0C" + "F451F658739E2453280EC6253BFC1D8DD72E91B4ABDCFCB240C" + "6EFB4E829934BEF46069274A60B268DF86A7F265B23089DCC09" + "D77B8BF9A02A84ECFBCA193208AED46101F48C10778619C154F" + "880893FC0C440662AB04106B272A9FD18B8723EACDB8AD190DD" + "58E9514BCD43A9299FB361DA76F7E079A0E83615B6CCE6E69CE" + "3E724C36561C728010134ADE4C44B18D1FCE86289310D30195A" + "936BB1E23C0CF98DFAD41E6007E56C905F5DB8DC13B56E16C34" + "54146C31C9866628736B5F537268E0FFE463DBEB2F3DAF103D2" + "4F95CF5BA0A4D94C68D61B6319389761EF1A0F22B3D416E67AF" + "916AA4772277F4E51D3A8DF919300805A0CAF8C36A43215E730" + "7B49AA9697B6FEBEEEC4F4F5F7F664C120FF27C8DDCA2224CEA" + "4733DB2D1A1C28F8C030A23039BD0514AD6808805FB5111F514" + "A10EFEC4F425E1C91B0EE3DBFF70CCF6346E6F4640DB8184DA2" + "8FD8C63156B28226491C1922B862203F23C870A2D88EB5FF5A6" + "930820A4D81A62DD8C4F381F35C18012336011DCF71D58D167F" + "8C5BBD3E5F0F278507D085F01B0DB2EA2860490AABE253DF469" + "4288EA862F9AB78FC60827241768DFE617E725482DF62275031" + "474592A57FD33FFFDD837654C22C96424A09A62A5F146FCBCE1" + "F2AD")); + test_hash_extendable(&nettle_shake128, /* 82 octets */ + SHEX("E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA9702C7CA303269ED14014B2F3CF8B894EAC8554"), + 512, + SHEX("20F8FCA8BC4274E6CE95C558FCF5EFE7F6A43FB47BA3A4AEB4A" + "FBCB53DBF5BF224654A242DFC1F318A4A26924E5F2759ABC96D" + "8B9C50C7185B5A7C3ACE2BC0ADAF1E39C6EEFD79CF89D2F3A88" + "29F180699DF802662F285960EB6676560655FACD507528D8624" + "73623AAE970E559117687F87AF4A981C7F2F1E40A1E01F2A3AC" + "0E89D1C62ED751B9B178155F2A72F215E51E49A4E585F4422C7" + "57F891AD4004FA618DA654BA3CE4C6A7614924B9C0ABB8B2C6C" + "DE9B8CCF22A1E30A21A33723992ADE39424252850535DA5FEF4" + "F047CD998EC7AD87DC784DA7D755BFB9D5F6CDC9EE52BA15CFB" + "7F1429A15F8F0C67F98D6E44CBC8BA16D0DFDA6D72FBC1A4493" + "2AEFC2D8A618814957D8B748E0CA0D3B5095BC8785B6C20053E" + "4A204343316D74FC96E16C775AB43CC33FF2B4F4CE85086D47B" + "CD132C0B0E196344B01CF6E8BDA3E06E2618D5604BB50404744" + "13FB54669BB744704D89C5B06DEEA58D4E29F6DF9C926A6CEA1" + "297967DC66583654FDD3F6449033A496199E4B6F37E0FB31BE5" + "0747376122951575095467010006D5F9EA709D0F15927A060D8" + "28AF4180393EAAFA27701B919DAF424BFDB3F59AF0B40D0A489" + "0006C98894BDF402861C76655414AE631A50FD80F0E5C63002B" + "604AD1AB9684C094BCDB82C0540FD6E5924AC51F3FC6DA074AC" + "7DD7DA1A87A633C16ECDE716641975182803039231320E9FA16" + "430B")); + test_hash_extendable(&nettle_shake128, /* 83 octets */ + SHEX("6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983FACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA21C7F8016B93BB9B9E078BDB9703D2B781B616E"), + 512, + SHEX("F0E4F184D33E8B5F8AABC173B04E61BFB420E34AD22E3E8AC31" + "8AD06D92E8B5DFDF4B0F28157FC9E7D64545F527C805D9F9536" + "26BC35923C922FC09E7D2947D342BF91E54EF34FB5987704F7D" + "0C36C9A9347F3A99027E192907342B2531BD1DA066D34ECC1FB" + "50C85C261DA65F4AF9C2C9E93775F39D632E3DFC1216ABBBCC8" + "DD2680F8081A2816BBDC1646540CEFE4881FCE2ED57B4822E11" + "461B5E6443AE2DE5CCA426258D68B01520594B9547A714B0A37" + "7AD398F42599358F7F33855E64F12F88D9E2909E6397ACF34AC" + "F79632AFDE5711858814B84F472EBCD03EBC9671F3985C99DCA" + "B92FED40DE97A3C425D38DBC48ED34C2023771EDFA4F988931B" + "7BAB6FDD612D4AB6DC39D43E66D74307EA8A9359AD73E0965E8" + "85AD919F12E6C645C0DC9925CE65F5F3EB132C7090BDFF4230C" + "B16B6C9567AA62DD92949AF10A6FE66CC50B29CF189DBB52147" + "7A99DC45C937856DE855C303A5EEC572DA0CB0F584961971A15" + "D8B0907151A046CC1B193E55F7E8419601C1699DB52BBFF3142" + "270F22D628F53A18E64736C1DCC09F7497CB56ABD9AF5917EC0" + "7C35BFE8D041D00B379067F2D85E05732D5270C61C592F8088D" + "EDA0CB76BB2826492A61BE9270A8CD7F9D26F51DB2207763BF4" + "1A465ECC8B877FC53139925D45541EC090DEB2622864D9E3529" + "F0F23B090912E04BB95F56B1BD33381611D973AE347FCC232CB" + "FF00")); + test_hash_extendable(&nettle_shake128, /* 84 octets */ + SHEX("4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF18F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC877437BE5C2436CBF300CE7AB6747934FCFC30AEAAF6"), + 512, + SHEX("1893FF8490BAEF747390ACAC15D42CEDB909C2FF3D30B2250A3" + "F9DE11E79943B9AAA5C5747736E29E559F93115B0C029AD6AD8" + "779804083C3F211C8D6CEE56AE65F0B650CC45B9DF543645687" + "9F62648EC81FBF968583582CF4063B5F007E1B04A9BCB224983" + "3170C1968E3040C808F2D9EBA238E74931CBAFAFD94690A275D" + "1A1C1C29F71B8DCCCACC4E9543FF05900417D7E46C64FB4454B" + "3DDB7A0BC01B85A0AECBDF9272EEFBDA881D2ABE77ADC9F17A2" + "6C50DE64DEF1AD2A09A79EC9F9C64895540FD56E93423DD7DF3" + "E566D168E2560D8336177937F46DF87AC29F9FBDEE919DD8D24" + "62FC1DB70E27B992E35F1376459FC15B76FDC3C6D9C3F6D994B" + "300423F154B6FB28F845AA3DC8537DE62D81C78326BBF8A89E3" + "9C865F395BE31B38BAD26CFD4CD866B872D427ECE798968E666" + "58839121301BC52E07CAE272B6C373B01C4ECD42F75D3CD45B2" + "CB1131179A9F21F8CC84C08368547DACCCD56985477B4067B86" + "5B0268C1366D35C59D7C4EBE54E0C7EB383860EECFFE308A2E7" + "1858ACE60EE4A2898FFFFC507F0011F47B16BC9D696955C8E2C" + "7FB64F4EE9DC9F9CF9987EE2CCB0FB780BFF780C4253E398763" + "AC6668FF7082A848BD5E1E31E6B5E1E771F7AE21918C1ADA32E" + "788D89822ECD3029AC5604132A681AED4348B631A2C9CCF19D1" + "4CB10F570E3B7F9F301B041E6B901CC007CDB125AD9CFDF7A88" + "9AEB")); + test_hash_extendable(&nettle_shake128, /* 85 octets */ + SHEX("08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D32785EA51D49894E45BAA3DC707E224688C6408B68B11"), + 512, + SHEX("56758CE6042783CF0D18A2C44FBF953065571BCFC3D19DEEC28" + "F0D6564B18B227B6DAEBAE658DD065F414E4FFAF756D10820FE" + "38C61A767BF2FD0C242EA3E994CCC6516FCF68BD7514833E061" + "A65392D175CB6EB87374DE426730E4E771C7905706BB5D7E336" + "4F946B8A061462519D0BE6F72B0220451F2C6C6E5CE21726232" + "3E4FC81DBFF169DCA043487D88F02BB5C22434FC31043603A51" + "40364B7C2CF179FF13241CED0911ADCE30C4D7B7EEA34E094C8" + "6B522EA88F0126943FC2E3F8C1C81753C4A10B844ADD7868457" + "DFC91094458806B2C115A052BD616161AED4BC1690E5DAA09BA" + "DFFB3BE59318D7ABEC04E7B5B439B92E63BA3EBDE71AAE8C5BE" + "C81C9073072EA49E85B53539C2462A446448F4D362136638EEC" + "10F227A0A977B3460499A77A9E951124B55340E49F9D2B0A608" + "08153D357B585F2C940398B12BB807E730DA556C3D156D84E5C" + "0BE2C625E3FA725AC5659E07348894842711A704A15201C72F4" + "FD2E54CAE47531C07C7D1FDBC61446E35666175B2CB7B25A5FE" + "EDC1E5FEFD2547F408F0E91D65C7AD0E636FC7D8BAFBA355275" + "AACD0E2BFAAE9FF7B750AE20C828D66793A7D275DE882DEB8A9" + "7002C9B7B90F5ABA4D1E7B9D5E4BAB59DCC44E487BE10854C76" + "D2EE6EB5628F1E791B731E5B1CF339270E90B3F25AA78B28EFD" + "B906AB2D5560D976AA8FD4A560A29DE12C47A360131BB5F1F8F" + "D71A")); + test_hash_extendable(&nettle_shake128, /* 86 octets */ + SHEX("68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C49138E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB04E18D475920CE828B94E72241F24DB72546B352A0E4"), + 512, + SHEX("D5076FE06DC454041F41D77DF1680958CB4EB8311940D58CBA2" + "D6CCC1B57EF7D66D0D947B068928E0284A292D6F3610BE7CCDC" + "D2117D59EDF468F4CEF33DE2BE52ADFEA056F586047F8FBD3BD" + "FDED58237C4CF541200488A3DE301D5F36C735C387DD8529596" + "09A9609D370F63EC8E1649119F6966887C38C99F94B2293CE52" + "EE234AA5AF55B0EB3AFB8B5A1D283BDE8F3580F5AD1951D8BED" + "B834EECBAC86CA72435B52519091D94647ACBBCB1B55DFD9A53" + "1C6C966B481FEFA1396CF42FBE362ECF403FB046AFF1B080D47" + "BC282F4D053BA30C2A00364E11EF82FEFFC4096DF1F8AB109B4" + "5331611A8AC84B8DF0B7B94952A5AC80B075BFFBF16065D8E5A" + "47F771C0F983E045D4104B7E8E5226EBD9D7ADD387DE852DF26" + "EE9DA3EE70C7E20B877A45797DE836548664026A380F3067052" + "32ED37F4104114D58065B1C74441EB9CBF00B8073325B40851B" + "44033FA4E65148161B0DE0C1517B6830CF5417EA3C004B7465C" + "48F9B2766C43CCE5738E9EEF6D9D0F296DCBDB41DB35924EC1B" + "746225142775268908A63EBE1240CEC4F02972523C8C7DE4B44" + "530D1821BD43694647F355FC0473D7BD4D3E6D30EA453EFDEAC" + "396E0DC03F796F70709F118920F8A76D4D85DA2B5DC2964A882" + "4BB96AA892E43FCAD95470CDDE85433D5CAB38424609A9682E1" + "FEDF7776F2D77F2FFD9707FF110387DE49F9422F11933D6CCE6" + "DDF1")); + test_hash_extendable(&nettle_shake128, /* 87 octets */ + SHEX("B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2FBC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C"), + 512, + SHEX("904786DCB5A8F3C4BE4DC96CF168C65EFD3DE65FBE92DFD96B1" + "CB99F33581F561E02A9D85740FC7295726F36F966392956B2C6" + "1122481D7DA372662D0F2B42BEB4228877BB85A3AFB52C689B3" + "DA75637B52B81B9182EA56980E2C0AFD0D27644D0CD86B770FB" + "3F4FF2618FF000FF7846055449E1ACB3721F03A0E65FC377F18" + "9824E06B13EA6A797DC7E8A8AF064075A9424A709456CBA62C4" + "3B51F4145D6F5456159678B09FF1A97BB19F4A41A836B0E6090" + "617A2BB9B9ABB7D4B6777489FF1CC36E6FF828BB27B26DD6124" + "5A3F583839F4EFA1C453D6D5E9B2B3947EEE25D006DE476BB37" + "D505FC5F0AC0AB97F8B56B8587A8FF2EB61C3F83598120B469E" + "9CBC5FC03AFE2F72EE0B117F818EB8B33CD538AFAD801CB75D4" + "B2F51578D628A1701DF56B9B9BBF10A30DE0893B6E3CAD4E264" + "C5829B1C5C35B3A1B859BA7E49C29C93F98E69EBEBF8909F535" + "956DCF767C51E2AFC49103C052AAC1A39D02909383AC02AB822" + "0E4985872916DD6DEAA9E3F57475A33B0DEC69F266F1B990DF7" + "F9F85EAA82FA226DBDB94292B91C3F124B8BA13C3ABE0908E52" + "B67EA7131E61AFBF20293A61CB3659415EE890C151A5628225D" + "61DED612DAD545B62D819A4F3D1ADE9CAE43B9CFDFA4C32A8D1" + "6116A58EE3743483663E9401CF1280DA465025EFB103139E4E8" + "850D1329F1B9BF5E1A8C05D20E963E824EAE0AF586635D19D13" + "244D")); + test_hash_extendable(&nettle_shake128, /* 88 octets */ + SHEX("0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD18744C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D"), + 512, + SHEX("9FB52B8120553CA1F4B801FCB753DBB0E45AF3F160749A05FC2" + "ADF8FF1F507DC304214D785C5E0797C2F6F767D76A3EE22CBE0" + "D114F5F8C32BBF8DA8505090381E16064C001F1807289D0DB58" + "6C09A85EF727F393BD2EF1F95CDC1777E137B43DE60D425C5F5" + "D685D43D5F6912458FDA3F4ACECDC2024CB7E6F4340FCF6333C" + "B29BA1801AA80C0F8A248A21305BA62D62E689D55D905EB0336" + "8783CB32F765A55D3061774C9344E85C35F8B944420F47070B3" + "4C9E8996C281D890E591D5B5CEF03463D86E88211917E7DB7F5" + "BD4F36565BD855EFDDB859C97C206D5F3836840FF3863B93E17" + "AA19281202AF6EC0B1B5DCC7C00D9DC08C2DCCCAE41EE2FB8E5" + "91A4AADADF2B28FC2133067D45F98B4ECBBB234593159888F83" + "2CDF1BD4864B8B720E42219A220C7FEAF6C0D6A1C14AF2F1020" + "218C65A475386A71788F7BFDB172B12819F2D78D6D200382992" + "D9F39500C4F15E44E1E48FD5734D110FFD1967E098F67349263" + "0074DF33434C36EC9FE067E8E794794191F355C2D564FA4BB69" + "1702DC55F4E6C83D1C487ABB281F0246814A1EBE626F05F06D0" + "9A371AFB4E746653872F83B42509504B057DB7BF06AFDC913F6" + "79EAE1FA4D945B93C4BB07E70F48F147BD668B121B05A777A56" + "37CFE24A2BC155C97B9330B3E3B848F689A00AB1F916F321FEC" + "05763DDC6D6563E7AAA3CA309ACECBB0884DEC5815558D8FF72" + "E820")); + test_hash_extendable(&nettle_shake128, /* 89 octets */ + SHEX("1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C5125185104F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD"), + 512, + SHEX("906BFC0B13DBD86ACC32B93C56C7187ACC1E5984C1A7AB8CB4E" + "C39A00355837F70B6790360AC9C447E28E93CDFB58CFAB3DC8E" + "E4C2378E68298ECA240869FB5652803F590245F8F40810FEBD3" + "3FF25794E39758E9984E47626EEA8AB2145CD2E260873D45247" + "59A855B2DA0C8A80C6C365E76E8B37AB4B9A6D9882870DC22F6" + "1A341FC932152BE5C84AF645EB71E6713B1D9B582491653A836" + "5BE531D565B27159F9C5C7FAECA04FE1E626C1C9A7E7FF38826" + "62B084B827BA96E865B753FE73E3936E47EF9F1EA151878F671" + "AF51722A4755041960EC2A7C2C4CD364C4914F64E90BCAFFBEF" + "147E935A6B03166065506FA7F20A707AD4771FF026D7BB0DB7E" + "744FECD63782DCBD9DA7573D77F82E6A5446B1595F7EF81084C" + "AEAE91E522FA604A370612A6BF464D5872ECDDDF46285A407D7" + "835E22438E82E62CA0F1FDF7B420E15F9DC061A3519B8F38902" + "2BD06E9B31A34F854F0F75FB9CC538ADC0AE1D981DB68C17E6F" + "3A91D6C60EFBAA357A49FBD148AB7EE2D96EAA8909782E74A98" + "95890D02FE8C8B09B8A9F2A8E18200825C51896C42C59AF9AD9" + "3D847F4A4FCFF008D1BB8D6BB2E7C75912A086A23646939DE69" + "D7BC42F568FCB076EF9C37912BCBC0259FFE04CA17F799FF7AC" + "A1D34FBEA76EBEFDCF8D22BDA634DE9B6852A5DA831EDD0B92A" + "C09D9D8235A0AF2BD5FA6B0157722115561EFE7C14C22145137" + "D729")); + test_hash_extendable(&nettle_shake128, /* 90 octets */ + SHEX("B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7"), + 512, + SHEX("E2746CD339332913E436FDC5B21215B39D0326E95882F291849" + "BEF33AFC6C7B9A02F438C2E6F4175DE5FF04B79256B845213B9" + "17B34A0111814AF58B06C8B5AF9D2478AD18F012373B9F030AB" + "B79BD7BF380C2C2EF07061E75D7BA113845C80E43BB71837773" + "2064B80339E8316068BCFD37ABE6AEA6EDA3C58BBF95A777991" + "55B30FD6776012F098EF9F29DB911E11BAA67937A52EE25C429" + "836FA45A2ADCFBC704A404AF8421FB3B75DFEA979F65415CE0E" + "9B6D17B2E5825929115DAFA8E9A51E16F8E2563876702E04854" + "D48AC2159BB782AA6B1B764A8359F7EC423CB00E9915BC63B27" + "F6E758402B56799D7C3093B1A222FFB8C0F08273A6D5115D2CC" + "7429B9382763807FCF97BA5EE82F78F835BCFA65645AD36F56D" + "595ED06924574B581D6C460BB0209CD69581732EF9D1DE78F0B" + "8109A6D4C271F2AC07179A84BF36AE328B1D0862F65B4ABFFFC" + "0E4B6A17FDE288304234CC2447ABAAA223D16DB5AAE8E026D17" + "A9ADDBA9C51F3B63446DEFBB9CC80323E6B22DFEE9D9E438BCF" + "5E14EDDC490D9DCEC2F5C635D32A1B6C64D1CFD07DC72E954C9" + "7DB2A6E82DB75575172F6AB0D4519158F84C836F3B7B4830CE0" + "856C37839DD7D7FAB6A9AB00F9DBC020AE45C6450C257B7C066" + "1CD75F515EE380C2864F0610A682D49CB4D19409A317AA0D666" + "7E3E61FBC2D9027F4A5BF4FB1A0D142183F84FFEFEB92EAD6EC" + "B2A9")); + test_hash_extendable(&nettle_shake128, /* 91 octets */ + SHEX("CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E05077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE8727B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F"), + 512, + SHEX("0B82455171770082FF4A4FAD8A5DE99DF716033D27071278E9C" + "1256D63C34778980889FDB7661153982EEB0FF904E24D31C8D4" + "8D89F412178E527D054F822DD2DF6C4FD555E55CCF3452FEC05" + "F9CB3BD4F0B4D2EE851EE3E22ED180F0C02E618563BA89E42C4" + "C6A7DA1A9256029B6449A9C63625CEFCD003F936613092CF59F" + "676AC91298C820436F58BCBB2F61F3945E67353C854CC384D60" + "7DC11B906A1C1A5143D9AAA294CBE03F946CF2703C0983727FA" + "ACAFAB85C6725E8A9CAA7AA69891799C560BF6B885255674A29" + "40DEAE220BBDA252E636C4526449BA895DE17312EE0BD0520FA" + "68DB28BF122219E571C081DF18C2437E4174D1D6B529E394C40" + "90E5FA957A996564D11A3B4652522FE2999903F6095422B4AEE" + "2D47F2CDD4301BBE42AF671F58228D76D7CBFDCE870242872EF" + "85D0D1E18CEA60C87565E48A1463030566C9E34DF8829A58FA3" + "6770E861D6543B50AC6A439ABC062236A065BBDD866A237C098" + "97F3CE2EA5B0B1D8B576048685A53DA7A409FC6F121DA36AC23" + "B9419F254C76E7024FAFF9D45BEE4392CE4C968E737E8F9EECD" + "4800F7C928E30EF664FD4D2A7150954E0599CE5C4F07B9351A4" + "08CE35166DA4240F1E751CA4A7CC4946F5451A0BD137857DC00" + "3B61424A6682D942F4DA9644672ECE7A1EEE295EEF46B5AABA3" + "F46099E93E01BE7AD9A5E27D378701CF9514B374204D3871453" + "49F5")); + test_hash_extendable(&nettle_shake128, /* 92 octets */ + SHEX("072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523"), + 512, + SHEX("4167BCE24865262ADADC78E611A960807758EC6D0D46E3CAC22" + "1B4FE9818937092BD3AC5219F0FD765B613F2EB7E36A5F48FCB" + "E3CECC67540F9282DB1842F95CECF0648C12E52E7EA0C96FF72" + "49A8446D0DDD7625BC55568642DA2F2CC897B14D2995DC38229" + "3CF2DBA9A63EAB9F6940AC9CA87FE5CFFA196DC930FF3353E34" + "313894A3D2A0A86B0FCF7631735A2C663BCB71D5947C4B2E974" + "41982B791A4F20BB86F7FB033210E4FE58DCE7256309FDBECD7" + "D7F3FEF2D1DF7E0247FF981D417C56EB7B14B7C9453786C7B30" + "F173C372275324E834D94DBC6D10714407EA7886D92F810F2DB" + "AFD57484A09D70951CF85C0B7820643D0E7EF706934CEA0CCCF" + "94B1D1F75F1E05B5D033A5CE1F804C3BC7A9CCF00C8CFEBDB62" + "F8C654805C5ACD4FBEECB6745803721D17F2B8303A98ABB9B86" + "18107B4493735B4001757890D772F78093AAECA244E5297CFBF" + "0B9442370C9FE0EFEC199201E8667D61FE4B9CE20EDE827433C" + "91F521EF2B296B15CFF658E18226F17DF114675F57E988A14B9" + "F104F933BB685A3A9DBDA96A9B87F2EAFE028A7C65630081469" + "2C3DCF00D9F07CFF361F601BF2A1FAC9EA58D7543604382ED7C" + "F35DE7AD7355247318796466081FBAA05FDAA65665448DE1FE6" + "7AB560250A213FE60F506E9EEE720FA762AF7D2A23492597BF3" + "7E0067997095FFD63480BFAFF67C084EDC5BE6C0BFFF969BF06" + "E25E")); + test_hash_extendable(&nettle_shake128, /* 93 octets */ + SHEX("76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26"), + 512, + SHEX("4EC44E5E1F62935ECA450494ADD6AEF7DB1C1C8353F1354C4C9" + "366E9E56A8D5BDD02383B9A04BA4927959531B9169606CD982B" + "6B72927D2E433D900F3B402D7F5BCA979B3742E2E2C1DF8D4E1" + "63628357AEB37C94161F8A9269832DC28A4E4983B45140A5A7C" + "9A4313FE39BB2C117453C2E5CEC3C0D4D5C1169B042E319C777" + "12C0171E3487C590FE9B223B7F681F6C4B46ADC912BABA3F1E1" + "90CB66DA0B38B3389ABCACA3D4EACC26046CC71C4B3EE1520EA" + "84A1B8897A7E39B9EFD65130DE8F694A0A81F4CE994A0F4FE1C" + "D94439D6551CA8B695A5F22EC51022ADA24C3EBF42840C42B2E" + "345F8AC07BD5561DB40D66DA87FFF248909EAFA8D35C380133A" + "C87303C83A8368492406B45424CD0C7143BCA5BF6DDB6B2FA45" + "FDF45B96BD1CB33F16C1843985C5A8B1B902361D10B235F3965" + "457CCBF2ADE247CD371B9AD808FECFD503272D4918BC3CA6EDF" + "09BDECD56DFF372DE8E2E1D35CCF55E7E81AC5DD717C49F492B" + "D1B242331EB66287F10E15D7BC69DEE9C3F1032C162B0845083" + "ED653D38F270747510F82E43F0EAE6EBDFCAF296D360998A5AE" + "8E735FCE78AEE2332F7766FA8B289B46CD1F129BEC02DD6C3D7" + "C63D544C22687AD7E4802E0363D05B8B7965C1D9C9EE8D08B0B" + "54A8D55D2A52E0A053D31857EF350C713CAF7D7B00FA5513CBB" + "D6FCCCAAC97501E3964DDB3012D2E101C59CB8FD8B28AA56729" + "2E27")); + test_hash_extendable(&nettle_shake128, /* 94 octets */ + SHEX("7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90FAE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374"), + 512, + SHEX("4D2597545337647A12662A7A13065021A6D206EBD13459DB348" + "C1F5361C5990DAFF469677E61DA9A4ADD24A1B4ADC67A092BDC" + "F80D98C0A858EA96B0BE188619A82A1F5055B461660CF805AE7" + "5E4F869CB830E153E840D6F164DEABE9065695F6C8F982BBB7D" + "2ACBFCD7DE93E8028AC978E0D78CE878D3F813ABF1E1B518060" + "99DA8D76E16C47D0C1D6CB70E766F5F3F2336642B9BDC2958DE" + "EA3D6EFC30FC4E54A90FDCA6BFA5E8D4410D38CECE522B3A32F" + "11D4599D464E9CF16949385110D71D86A2943C03E67B19DA04E" + "CDF7D30A3B9E16D256D5CB1545B1312B6E62AE028D61317E689" + "CC3EAC351B034E83CBE91140E20E292A3AF44C27A026DCA5674" + "B9497A10876CA0F21D79184922CE71FC11AC98072C2368F70D1" + "13A413E2B9FAF616E3729E515FE22146A35CB93D0178C1C07FF" + "9F403BA947759CA0FBB09FD66C7EB562307F46C074501EA7418" + "FC64911AC940C28E75E2146231E0B94893EFDB0DED97478796E" + "87DD906FFFE9232368CD0673F9966E7B312C44F26649355448F" + "E2FAEEA198A5F6EB45040D56068E5B98C02DD948277E1FE5061" + "EFFCB028B61748E2D10128E0E0F7B70EC8CC6FFD071C65B5C1B" + "9CED47C9B0DF76D3B0A5255E27391409B07B0C112CA444E2E92" + "6BFCFFB1AE7B00252F6831FFF4992D63BA2114502DF0A3489AC" + "58F463C8F9A1B3CBD3C8836F4CAA301B7336D8DCD255C0762C1" + "5E24")); + test_hash_extendable(&nettle_shake128, /* 95 octets */ + SHEX("E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE1988E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD"), + 512, + SHEX("05A819096B5B6835090CAD5109CD34F40A234F1569B226C42F0" + "207AE06E6EB37A50AD688C81A98C9E747BEB1BB2AD741454430" + "C0E36A8B4DE03A1DE7C3D1FBD836F90DDBF10B10AD9DC427F00" + "39DE7C0A8336B10A5F2A24EF2A0DE7D5765ABE3ECCAE743AD33" + "39521D78006F5859339F15B5A4C82FE758294CDCAD306D30E57" + "EBFCA0C22042FD0CA678BF2E5D59CC39CF1174B1629243115B9" + "247B620BB14217C7EDEA7CBFACD209FE77206275CA39D15F699" + "5E27108C9740A27E98BC205606D68F4D5592756390DCF9C3B5C" + "58585142BB6E31928AB39843538001D792DB744145E5E148F15" + "336C1D6F334608D514C8A0D28515C17CD88C47AAFC95A7D4278" + "5D8425AAE5D2D8D74A90914AA30BD428F0282E51445DEEF80B7" + "C1A4429E4E810C753DE4AB21D2E6E895FA4797F3B4C267CFB12" + "3C337CBE0ED977A9C3D4147780DD20B2E0C1781E3A8EC690F3D" + "32F38D55D8AE641F61537E0649FD681857156837DD46D1E6005" + "F5747882F895684A6817D40EA1DF7B6B049DB621CA257A37058" + "96DA9B5E38A6D5EFD1D2FB4906285B1AF522D34A5F141C1B72E" + "74FBF02C9BFC38D744C4D6B77C32317774F4F3743B7E684A72A" + "B54BEAE64994F20DC8AB350FACAB35726B55667ABCDC7CDC185" + "76076B5FCAAB6264687D497D32EC0D0A5C42FEF8899441F36F7" + "B72925326885E1B67D59D7BC7DE352F8844F44C3B6347538128" + "44E5")); + test_hash_extendable(&nettle_shake128, /* 96 octets */ + SHEX("69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D59081587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600"), + 512, + SHEX("B83D4F95FEAFC7E5AA60BB1035F69C8074B1A25FF516AD6A18D" + "E1808AE64AE212B63FD05F983A65BAF28B228EA3AB587B163E3" + "34A70ECEA2691A77AC940259827355C5459D074532A3EFD811F" + "419E29FD67D8CE82BB4F79451F6AB0A8EAC6BC48713A04F318A" + "A45DA6246FB8CD9C866FAFC9A48C5E6C6D05D501D00E08F7D43" + "20E5E294FCA2B6439DD7EA3BEF65CFCF256E9C4E6F902BD9F6A" + "EFA2AF303E0028D0DD0B7E266F31E21A23F546FC4CEB9BEA5A4" + "034D3DDF7BF63B546F8A1D73F9F56E1C70B6B5E1ECBC2446513" + "22025086A933D94D1F21C9BA03493E38D28CDDF351F4DEC99C7" + "34589CC45684DEE9AAC79F367B940D6E1AB57AFDAFF422F9D60" + "E83FD6A080D60267D19DE6626FCCDE0759697DC7CCEC6384B7A" + "C7E936A7F12E134C053B80CFDC38609149B277B9F6881495562" + "EB466B99D4D4A1B80C3751F51B3D53261DD5BBDAF1B54013731" + "40C35D31907EA197397DFEA7C420A80C2151E73E0EE8E27495B" + "0C9EDA13B93E8DDF9426C26995317CD273960301973FAA9AAFE" + "BDEC14D92466B059D3FA7CDD533075F5861C538D69DE08F4906" + "16B650AB5A0FD177B500F05E011AE3AC06C2480816770D0EEF7" + "908761AF08302DFCAC984BE0B3E60AFFCF5281FC6E28AEE3042" + "1E1DBEF6775CA9BCB2803954C0BE501D55D5D0A1CC7882AB5F1" + "287B5A3EF564B91735B9CA85D5E7103D0175B2CA00EAC7B627B" + "AE5E")); + test_hash_extendable(&nettle_shake128, /* 97 octets */ + SHEX("38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D10FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F49"), + 512, + SHEX("5A81FB81F8CB6473C04930BDC5C0A9CA96D4A500A7BA5A91674" + "91573AA7178101D64F46A93486406614AB9F397E78B0198FC98" + "8CCA849EF70C39B0B3A844493439CECA2B7CFF8A32D18285BBD" + "32B1E5EE26AB0F82626F4130C1B40CD6E2C9DBD6677E6644A1E" + "D6A016DBDA139B868FC2F7C9263BF4535E8ECC24DC626B1F3AB" + "F4B08E229CCD076DFCCD89C8EDDC77E9FF0252BDEC35DBF712C" + "F0A5BBBA7B4C7B702CB9353EA4BA3D0E0DF48D6C56D0B51CA26" + "9C9E428B22951555C8CE65B5704CC3F4ED38649474C4C049A63" + "894405186E116E616D686C7C033CFDB75B8202FC6B6EEAEF697" + "A4F5277DA6C5E7EB9814A6798262535292AB6791633CD687E68" + "EF223464493AE8D1E27F8B2F483F5B137E48F4390CC27D96A69" + "4971B28C9CDB1A24648A0E0573141DA6A1AB54789199E8E909F" + "6FDB0766DEA735E2D87CCBF975FE8CDD6C728DF888FED6F0490" + "08D349A476EB63A87E0CDA622F9B611278868E8396BF4E878BF" + "B58AA847F04C2E3A90DBF386954874BB7B1E8CEC42F1AC16C18" + "24F328AF9CB154CAFD4C9E2348A02B0F9638C8562655CD5E3FC" + "2BDED644DB61EA0C4DD27E8B79C7BE52F55C321619B5C8BEDA6" + "0D00DD3DA3C19D4C226ADF2D5C4A66518940F2441BCAFFA704C" + "80900512516BE2710301579F023393892FB27EE9DBC71AD34EF" + "26651E133B3C21D8914BB6E9446F11288E1A76431C399968688" + "1D62")); + test_hash_extendable(&nettle_shake128, /* 98 octets */ + SHEX("6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB72D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F624955B52"), + 512, + SHEX("E41027E76A055F0A826481C650FC24F7816460ED519AF8802AB" + "191E411ECA719CA1696EA14CD62306071D4E1DD65333619D019" + "3D9830B6E8796234F892010681923BF30A1A0AB89D82E36DCEF" + "3ACC00DD286B84240D0282F5AE182FFB84BDA59531C519374ED" + "5A2E80DB2137BEE790CF49B9FAA524F75ABCDC5AC3C3027F6DC" + "A443B2CB5976B9B8D66E9EAA1F9F62A23D5C9A9D5FEC16A5925" + "ECCF1021D3253BD67F471BA1530C0601DD96A4D7ED6E37DEA3E" + "FB24284B61002158AF78E35F8BD617C9E7D33FA4128C31980A6" + "D8631A009FEB0039B635D1030C200AB651C3701CEBE8F2CAABA" + "57E452C0E8FE41FACFB398A2769AABCCB21AD2AA39DDB53EC70" + "6E796E7327E30FB4A631E6F2A35A8DCA86769BF6697F8490EC5" + "980F3143EA2FB79FAA9A5F2AC7B5030170A4548AF817CD80C26" + "E1B013BDECE9CBFC553464F1597077E3ED435804DCFF5FE05BD" + "39E87B9B35D9F2810C32EEF8E30459566EA3CF380A7F9E1E2BD" + "3E4843D06B018B55006FDB22EE1CCC0AE615917E8D17FB019F7" + "419FEDB242F0676FF4815989821135073E5CF91DF42CC6C6F53" + "2D3BD8BE9118EA6E583D360F1F8C20600A740D9310A984AF3C8" + "2A48FBA84A84AFF42F2F1EC8C4115B5704704AC2073F2014BBE" + "F1913FEF7862F514B198983BA63F4D38E81D822CFB548AF76F5" + "61EBAB987B208B11824481309B7AEDF0EF44376847162326193" + "DCAA")); + test_hash_extendable(&nettle_shake128, /* 99 octets */ + SHEX("6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBADB885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B2089CCC1"), + 512, + SHEX("28E204A3450796BA182A339CEF54A3B224626681C51297A71C2" + "BC0ADD56BF57C7653BADCC1438E3CF7156EF7ED4EA9A084F304" + "1A8157E1FD2AEAD827A5E79257C1BF7E37D4FBC089422ACFBE1" + "16A2E3889614B8B01BDDCF63B66589061A690790357BC31C680" + "14CE422060CAB07F2A254C83E1A7A9AC1A0807462E6DE48B194" + "AE5FA0D6BBF39AD1835C86BB25F5C273CB266DD5167350904EA" + "22F912343E261E38B298495B38019724A1EEC356ED016BDE8A8" + "1B3764A39D153A5691C196557E6FD50DC5E42B6E6376E388D9C" + "14970B67E9910499D94F5839ED933246DAFB712A122043D7D50" + "47F1B53923C14979244DFED3CB742C1BD30176985AE2F76B912" + "A6A3AB059F2BDC49DA4EB6A9D3FC9CBA1DFB1ED0A4ACF46829D" + "51FDA861B8DCD62424A6E4272A1BCF28AB878FA9709DB43D800" + "E9E6E33F6D644B62EA30BF758E496BD152E41715E6AADD766F1" + "FC6BB95DBF19F497729BB30B29FDC4BC4F5502396969CF6957B" + "E8FA7F17A4F04A6FDE71264B0F1B40EFFDFD560868056DAA10A" + "6CCE695AA8A815E43121C971E4C4A3FC5E6EB27170D4539F3A3" + "7A4665F179CC6C804DBFB199814FB2D5121FBF93A472DE6F4D1" + "DB176CED29F254F228538B065F8494ADCDC3D1117B33A1A51EB" + "1AC3F6D7C8315E5A674703827C0C506977D1CD68873B4F18D9A" + "03CA54F74D7F82900A27E8863CE13E92E0EAA86C2CD5BC99121" + "F1D0")); + test_hash_extendable(&nettle_shake128, /* 100 octets */ + SHEX("433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B98214B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E0846DCBB4CE"), + 512, + SHEX("FE3145A2E9E54B8888C1FB87A70402EB4600B0A2D636DFB23F8" + "69583900544F602B9DC325B6A9E8C0A9192602EB5EE581E3B0B" + "E65E918DBBB49EF017F174C3AEB12C20D13D20C3370E1CFC196" + "34899833A91375631713DB2954A8E33CA839EE5F12703C814A6" + "3496BB438195D89AF5CDE1F22ED8AF340B72B6FD95660BB3045" + "68AF54F162D47CC3783806274F967835038858719A4E3115E76" + "690B4E848FD6ACEC695B3174C7BBED140DB8FCC2187FC0585F4" + "E975FA5EF3907588E415638F1487E6244F3A773F8E2B3D9C23B" + "4154509F87564BC76FD437C718BFDEDBDAD24E3393A851EB30A" + "82A641D3B144E3D9D223B1E92813DE477DAA28BC9CB621F8B3D" + "06B4A3E3F9A52EFD9095365976144325269160F7B859EC570A1" + "4DD43057BF4AB3CD2ECF13E921FB8212F4379C59B332FA18173" + "60747F58A63E0F635FA52C59E31962951AAA64264DD3F26ECA0" + "AF7C423C0D3DCA624A4D33C383BA0F4E04630D74A40F7603491" + "16D6CC1A8BA17F228D7BF24AF707D130D13AC825DB8E6ED4B97" + "B4AA589230CE9A471DECBB2DBAC9F68269030ADD24C712F1C2C" + "E7E6DBD330DEB3249F7AF42E31E717666236DE7299283063D3D" + "D6CC88D0096359A1E83795844714BCC9D88DA6FBA06D1156114" + "C62FFB5D9A58274AE471D544D7E9701ECDAB9B63B2EC4FEEB07" + "126F8C1CF8BCAE823E7BB18A9566627CF95E6D8AF7BE9427593" + "2629")); + test_hash_extendable(&nettle_shake128, /* 101 octets */ + SHEX("A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B147A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2BADF45685F"), + 512, + SHEX("4A021C69D45ECF926FE7592AC05951D86FACB97509B459D0459" + "CDA7DCF2B084B91C8550A9F2A92C490C270CA90C41018C4F205" + "E5A33B1584FB54BB1F163A3BE83DF0C721235E24D4410F73B26" + "80C0835B840DB4C4244C1F85598C2B3A50A896F40C8FD249E99" + "588A8AE1FD6D706A394541B942EC543343FB377854141A35BD3" + "5F10983543B17FC5C30B31F86C48F601506C21EA462420C5992" + "F5B5DD12AE33CDD99BDD92667D4BC87410B1456929350D06C91" + "A558A2A17964C3EAF7BDF67F743AF6ADAAA92766F36655A9496" + "263B38F26A7F1DADB95B6A5B63F3FF9E0081F61D0351EE55719" + "9851596E5D221EE891CBA27349B4BA671EAE59473FF0C30F0DA" + "A2F9706977C79746C8C1B70AA1397DF9F692DC4D1182EB479C9" + "8343DE7BC11D940DBB778AE8A75FF09D3BA328A032122318C02" + "1BF07AC179BEF0EE42FDE3D8A64FA0453057B1B2FF6804AC671" + "9F6823270647E142BE5D338B1458F8CC7AD7637942AD4F0FCAB" + "36EA6FF768273362B8EF001D50C4E5BDBE74F48DD91854A92FF" + "02872C0963A2C2C52D0156E58BA1DF0B7FD9A178DE79CBCDEDC" + "20CA2A226551C86835AE9ECAE09FFF19AEB6B114F7CC602065C" + "BF6A6A740874FBD6662A3EE1D407337B935C4975D269DB7C54C" + "453AC4674B9CFF128DC20C62CC86B9D14259E06315EAC81923D" + "415E1F35BCCF48F48BF655E6B87F8A0B55A21AC760BDB828BA3" + "51DF")); + test_hash_extendable(&nettle_shake128, /* 102 octets */ + SHEX("006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE394096C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C9B62C60A4771"), + 512, + SHEX("2D008F8ED51C6A86910C30ECAF2B6441262D7CC66E54B39B9AA" + "BCEECAF2E96A0B5F1CBA234F45242BD8F96A57BAA98CAD30281" + "4C95E067CF8F47B2A4E6FB6BCC5C70A7A750F754824E9F970E4" + "C54D43CF8F4E0D433B931DF2B6BEB10FE5B28F2A6B5CCE24D0C" + "6B414DC8E3C064BD3B26BA82E4464B34C3735E935EC3B7AA36E" + "6AF002A0AAADE986B0A15AF0E9F1AC5B8CDF3E9022CB6D2BE9C" + "F5B30AC8E2BB5E766F528802FCAB3C3C3405F25367FEEFC12F1" + "C7D99717F2EA62D7001B4845793B288DD9E777270608FE40586" + "605AF8C9FF52D0FE4111E8DA8C315958694ABE386C85A86AAF2" + "038DF6281D8CD73E201973704D314DFF7A5C3B4D6543A34C6FF" + "C561195CB3B782C1ACC2793BA6A75974126BD3E4188FAA0E69B" + "255336366DED52D809D6F70DAF11BA57B604DDC8359C1E5D9E8" + "F2863EDFE71935BA18A4D373E4ACB73CCA7887B0F3A84B2BFBB" + "5340AFB87BEAB7E3708484BB4EA2E17CFF49DAB7236BD83DD11" + "B2761AF3E7E58452E9BAFE5C665ABC543F41D98C6478465BB67" + "C6D9ADFFDEFECB1ADC2E22B97504590D07FC112E03D1E221CD8" + "60928D13995FF1DB025927B2B7EDB434DF01F1692AB329D07A1" + "C6947E64258E53A8082EA6945E1FE21ACBCC1475054A0A9493A" + "CF37E5B607C79A54C985E70A99041F3EB3D5511390A1F81FC84" + "5C9E29FC39F12D019A0DE262FA9426C123EC8C2C733ADB2217D" + "EAAB")); + test_hash_extendable(&nettle_shake128, /* 103 octets */ + SHEX("F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6CA58D5DAB38ADB"), + 512, + SHEX("7A46B367BAA023EE1922A3408B145DABC97A55EBC78CFFF95FD" + "8D6206E5C10EFC9CBE3644A49C200097BA79F68B08193C6914E" + "016DAB98361705D27B8B046F087DF7DD998C02BC80BB1737728" + "43645C4F93080B0EA657EB0902AFDDB28963BFC845ADAFF3A43" + "1705C74D92346BD678EE699FC12E9B06E0C0E08785A419CBC94" + "4E770CCBF89203FAF5D3B629D541BD51EAFA5857F585537CA60" + "ECE26E09D6B9D05166360417B5259DFCBDDC5B6FA5B653423FE" + "052E98387C97AED7DFAC41274D9BD912BDD661A02CB80CAAE1B" + "D1704320BA54ACCA5EC6854D4F83E938F8535EF287AD26F9D47" + "D047C74FF6E4EC338222BC7A1E346ECB50A72572D3F7A9621DD" + "0574A9A109979992F18690750D035A65B29F0387FE78E91948B" + "8EA8EA31A074FA405AC30D44FA3CF16BEC6D44B5C5791DC2376" + "BD1C192175058C4CA5B1E0D989D866D9E076E8252AA53C5B89D" + "7AAFE5B753705020DD7F79C93D31F768ADE1F54496B62F6D7B1" + "26A2558E4B2A3B7DFF1F046F9FDC7BB2902389E1C0FA49E00F4" + "E892D75FBB5A18B22F863B7D57A8F1895B13AC99042B8BE1143" + "08B730ADCC2B8E5C2E6DB1C7DF35CC9E8160DF55BED2C9083A2" + "BF79C8F141E44D48AB49DA6A77D7AB22F4E8A6401C9A600657C" + "4E3D66700F452219BE1B5008344FD3B6E76D10445853C2814D7" + "EAF753F57A70E0644C94A2E3D21478ED44D6C5D568E68231AA1" + "80BB")); + test_hash_extendable(&nettle_shake128, /* 104 octets */ + SHEX("E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826DB923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A21691E1069413848"), + 512, + SHEX("224E3495D98A8729F88069BC2578F98F76EE3D73B1309F75357" + "EF595D217E4D851BEEF015DC7BB03F9B8C80AD1B132AF1B99F4" + "2459527FB67ABE4B5EB3DBECB90E679454903BFB51E9ACE93A4" + "784722B2D0453F3400632A86870A427DF2AAF93081AF99CFB01" + "2807766C440A010E6EA068C2BFE388F26D95BDB1947BDF1E364" + "D252C81835AB7083AE5CDFC12EEE193016E5BC5A90C2529419D" + "F2C0E14F8FD900D4B9519705221C70DB7178B81817B0BECACCE" + "E975B396E63383F03FC8097CE6EE9A612D53EBC572738B17442" + "C8C5F2D8E7C67073B6FE241E6DD00D356641552EED0D1C32A09" + "A34223F1D3E0305A38675EE066B63155BC2B7851E0F51967DF9" + "0AAC3ED7F88B1EDBDF123D02C2F4BA23FD2F1DA2CFC2410CAD5" + "188975BB5465F502B33A4F41D7B2DBF63B71085DDEEEEB6B9BD" + "0C9F89F4424F55DDA4804E86E2B983130B46403FDE7B70C5006" + "FEA04CF3350FD6124C735613DCEC7696FC3F75CEB8238D09D1B" + "440E759AFA129788A91C43FF7423F05C6E9132F644458CE8369" + "DD714CA9E4841DFBB29B942475058837FFBF1F59706915EBC47" + "3868A718F2887AAC888D2C7FECFC1F8E5CFDB5D3B2C71CF1CE4" + "00A0CAB18982BAA41B84415A0A49A25E18A8F4575B46A544F10" + "79431E5F07915B92D8BA512340F2E43B689DEE6118786A2410D" + "58CE5EF6E8446EE49CCD2A50557D32FD1E9E0954A4373545DA2" + "50CC")); + test_hash_extendable(&nettle_shake128, /* 105 octets */ + SHEX("64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207CFBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924EB57D6D0C2EDC4E78D6"), + 512, + SHEX("CB85425A1CC6A4FA6D8593BD03206867737F8D749D2BD7135AD" + "E0D7A1F216FB92AC5C4897CE355835490699A0F715A2357100C" + "B8932BEFADAD55C0B5D90C909F0272F16BEEE79CA7F7F1002F7" + "11BFA3BDE142FA6D5C908E8F5923291E0D48495E50DE065CFF6" + "09A24AAF17491D228E5AB226E21E790C13F8917C1284BE0434C" + "8B2B2A3CC672D484A25A47820390FC50F2736FAF26E65E09DB6" + "8F52A9A65280789017F1336250D41C0DF4C93AF9E94036E598E" + "6F06494068F4A59813D1396B00E65E179572FBEC6D30DDAFB3A" + "898CC244E1B0E82043C1470B7602D0A65E455D297770265F72D" + "82D584657316E52CAF4C8BA8CB4E3ECD82433DBDCE526EBC602" + "17529CF03548CB114D7208B93726B5556E4DCBF276471214402" + "4510AF30265FD4FB13E38BA677B34D69409F91F6F44DF602C9F" + "84362767D1E1B587054FF7CAB98A3CD4BCD2319278F0144DA88" + "4306660DADE52096A10928C5AF800819E3D890DBCDBA7CDF1BF" + "A4D992074D60CD6BA33C98CE2D9D849D60EDA8307B0F509AE78" + "215BA900D5A571B3EAB6DF1575D7D2B8CAC2F03C4B552E5247A" + "AFE2349F5EEB0AAA56627EB4D5C33C92D8B1FE5D591FD25828A" + "5114C0F8B3B6E799BB69ADCFD03566C7959D1DB21B6FEB79E02" + "006D1920CA35CEADA75B22A0B8235E9C6182872377B56A762AC" + "54A719D8AED8DBA18AD925FD21C77E84D92A75F3FEB8692144F" + "7D28")); + test_hash_extendable(&nettle_shake128, /* 106 octets */ + SHEX("5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA268CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20CD19E781AF20454AC880"), + 512, + SHEX("93BF13DCDDEF177EECFAC1D8731237CBF8CE4459ADFFC342890" + "16A689E88E5B000553F08989EF2B007ACB4AC69EDEB6CE2E5A7" + "F85C9D75F7656858A7B824472BB89C2D25701CCEF18E8707D2C" + "3444A28AE245D337CB3DBD4E2000D7C44D474CCB34033AB203D" + "9B1CA69816ACE4569771E1F7F66C7E482F81A332D8D16D0A4AB" + "5142DF5742570ACD048C52E8BB777D68041A67E870946AEC83D" + "B5464AE2863020A4126EC32E1D64B5B1A21425C66471C7FB6C5" + "CACA4091A96ACE9BB25DFE5627562892149EF463ED60D03549C" + "B9643E9BC7403B244A0E9A5A8A38FD785984661C926FD959117" + "C229EBD357847F853768F632A0A2A0F1703AB5E130524A33F82" + "5731740AD0B08DF92F8FF6EE73C1E60A35DED2882675C6A7941" + "DEFF0D934BC2BCE9005DFD49A9CEB0F08A27CC972A66232A068" + "A93C2B4A143C57387C257218E850CDAEB93C474C8B5AEC355BB" + "A3A4D0B09FA9F7F32534CAAA727120C2D937CEE1039DE63AA5A" + "F5803F7A1BB2F203C87DAB85ACA2E68A88C9C7584C144402410" + "9F9E02CB994CD7C89E87B976A6BF7D75E570D4A11D15640A423" + "5667669BAFAD64CF940158BBA56184ABA70E6097EE4F2379727" + "F7BFC5FF67595B3DBBB7EFBC13EA4AA9C1093EE2174B5F0304B" + "10A089AD1980C8A64A9B4E29F68F2BCE9AB7D31AC30B9ECB5E0" + "09169413B64D661E7BC6D909396C25EE3E64DE744FF937F2498" + "A361")); + test_hash_extendable(&nettle_shake128, /* 107 octets */ + SHEX("03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666FF5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FEBF0FE3C32C17AA188A8683"), + 512, + SHEX("0DA9BF94215FDA7F85A36B7D31080F48FE09C92514A844E7F8E" + "5A54E422997BE17E0EAD0C8CAF75A27B4D721F63DE3F4A9326E" + "74081EC77A71DE52AA4E7DF346C7206C8ACECE21F739352B2EF" + "D6446878075B585735471A189B32F41CF0C48C0E92BF4927527" + "92D05E324FDDBEAA786DECD3C0E24BE3CBFDF160F45CD87CF73" + "E61C643E46772EF8C62DAAE119E0010FD84530025ECCE198B2B" + "86FB6E8EE88F6C47F6B4710E5764F405E7856688EF030E5FB84" + "B24B48292DF29260B918DD4FC54C325708B83A9E44AB92F6721" + "7B9EA0A488C9B45920B76A7644C38D36F9AE1A48F56284CC354" + "BF35CB53F0E7A5745955E0E9A77400ECF97B0DEE9F4B32E8E7D" + "BB100A1749762821AC0746CCAFEB49162B0115B4E3D26EB3B9F" + "BF662CDCA1CEDAF5AD8933C7EC1CE6EBF154474FDECACE144F8" + "B86E24B85C4FF0EC29736BB0B778AC071D2286EA20302C98B68" + "83520D5B4BA22AFBEC4B6188FEFEEFBC487D147622B3E97DAB9" + "319DCF6C7EFD3374FEC69D575BDAC70D400923234CC41435A80" + "3DDA6F1C1E91802F56D048B5147A1B9778FDCE25AFA4B0846D7" + "D5FBD04614EA62263370B4CAA6E87E0B6D2BEFCA78E6A0B7E5A" + "6B5E891F7BF4ACCB221359C98B3091C75FFD25805EC452F7251" + "D8720AE51AC49620C6AD376F13A16A269942842FACD25C2F68A" + "4B93A5A7CE9ED38C7285B2777AF32307D84A84CC5F937B79506" + "89CF")); + test_hash_extendable(&nettle_shake128, /* 108 octets */ + SHEX("F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E00A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE04292E937F21C005F17411473041"), + 512, + SHEX("5BC15E410825D711C7219161491C5F068DC27D0B66B5A7F0AF4" + "F86DBA7392037E886D236FFC9EA19511AA43FA27DD2C4B8026D" + "074B3033D7184C95858DB5F237A84E93065F9AA4B40123AAF31" + "8356CABA01C20C97DF8ECF528F56B22A927C705F6DB6C2E64B6" + "0D36FADB2D867C0F5A515A2DC7DF26B151D700E43540B82A0CC" + "2E105269EB6CABD3148871CCD3B2F36B101D051D60E28FA838C" + "67E8F655B1532976E512DB752A2941DBF6FFBCFC0AFED99D379" + "D4E86B8C32327F6105BB75D7669A2D69BD7A2C40DF3B1389937" + "7A29AD7D724574F545CD91A67659B3781B788B4E9EFB137BE1B" + "3B8D93C491BC70581C241B184C915B651737A0B2A99B50E8786" + "DF067CFE443879D4BF2EFA9970A2C214E538C2086AC7BC47DA7" + "06513BFCC4CBC6D5F387A9E3BAC080138F2D713C6C9AAD2E0CE" + "7A938ADF4BFA3CF688CBE7E22FD5707EEF2D707E5004CF90DC8" + "80E3AF23A435A2682F9C117BEAEB8F5A57F521708EF7233BC6A" + "D5750DF2272EC379142283BF5EF492240335740F43DD5042124" + "C9B37E726438357472013ABE81ABE2C32E8E859E4D064C3C422" + "0E5F0B5DC984EB1A8BBFD6DB41470174BFB8A1ED5DF559A65B1" + "FF02CCFEF42DD546CFF79D34FEE13317BE00EABE8C6FF6D722D" + "048EB757E7A38C65CA1A7B2418994D53CE8090122C94A934554" + "D0BC3856E041D0A29F8539246924F7634B5265708208B4C59DC" + "C084")); + test_hash_extendable(&nettle_shake128, /* 109 octets */ + SHEX("758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D896762992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF612F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D29F695815D866DA99DF3F79403"), + 512, + SHEX("D289FC6490F9DFE3335FE9F43131ADE538280B78DC2E16822D5" + "FCE70E0BB307FC497E1390E04108C66C682FD6EDC0B47450AC2" + "FCA43C151982F2EDE9F82196CAB4381F873AC6E21085B2B64C2" + "1A1A5DC59C440ADF566159798D6773A09FC737B6CF1BFE0CD0C" + "9B90346F1290DE5E6AECC1F464E1B3E522DF1A986D8AD7C2A42" + "B1A6067A3448FCF9E4BBB2335A3E4276B330C421894BACC448D" + "B09F72751D2EA50873A9DF900C775D5E36579DC26830C37851B" + "F456085925185B91CCF9A35B36E5358C4CC4F1C807D28542119" + "2BE028CB7D5D3DB67AA11AB666382641ABDE3F1690490DE0D55" + "6B0A25016D5B7171AE26592B5C460E41296C01222D074B8C53A" + "9F73AEC29C63E54EF0D68FA1E57C604A2F4302B7AF05B20D28E" + "5722B0229EAB76FDCDB1D2F7E58EEBE4BFCC82B4E4B6D5E6FAE" + "F0AC442B78B483622EBCD98EFA538527D4C0E72526D9CFD1F13" + "E24613BE03A79CE2612B19D7C9B639D3C2BAD28E968E7859D22" + "4958C017637458526521C770DCAB61A84181CD0E92AA485AC2D" + "3883070E8DB9FB5F06EB5E71D10C175E0D7EC69947D1FBFF8A8" + "57362383368F52C193EFC3DF83F5A9B6DDD53D736A3543D4638" + "8B2845632C00F0676715CE8C1AA3329515495EEAF860A9AFDC9" + "630B06E9B5CEDCC7CB571179F35735D02D185D7B03EDA48D30F" + "C86C239AA3580816F3AF360FE78E84364872C2CD9AC5EBA876A" + "F94F")); + test_hash_extendable(&nettle_shake128, /* 110 octets */ + SHEX("47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D33109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C21BB15B447589E86E8D76B1E9CED2"), + 512, + SHEX("B8C21DE1F120C5744352EB71EAEE81E9DE8A8CF6EE3E2394438" + "013D9B1D7780803C28186E334A34B4CF17550AEFB58DE785E35" + "8D2AA6A61BD59BEB1B2F494CC9976D67085210D64FD1C8FFB0F" + "E69814C2048D0937B17E79AC9CE6303562065D4C79438E87C76" + "87B8B10AD1E8F9364EB9EF997B09B963C7A57FA9EAFED8571F5" + "FF9B7981418AA8904FCC2267F3723FD67A427E7CD3D5EE6620B" + "E53367ABA1BF9D2EE74C33BE1049356CD8A3B4AE48174887271" + "7394D6793A25CF02F95B6EE62EFD8E269841234F07041D5C394" + "0C7BDFF37686B8E72C23342578FA0DB4DC21F4DC03D3539B851" + "F5441B54BCD991322EF0FCC85C14DEF9BE72B8B4294EF34A662" + "0854C291F91CA67152B48560683DF13F4DE00216180391AEA39" + "BDD22D563E48CC622BDC72C990F795CC6CDC280BF917743A048" + "54BBCAA2CF64128DE9C42E38B40107A97F71CD1B89DFEAF1946" + "74CDB35E036B45CAC35C45EB2ED6BD9F8ACB9402BE9E57ACC00" + "E0AB6C5B32EEBB9867878C23F4275DC2A8754328DED15E206AE" + "31B60BEEAF27F7E2A571C42994414355C28715621D39566FCAE" + "BE6251EB5955FB8A9B1BF4D897A4931C5E7C29F27F28AB4D2B9" + "950A81DABBA7EE63B679DF6E5C1DA4E23BB9529946E4F467A73" + "EF02D1FF59D7141E6D59E14450B7A35BB4795EAEEE51545563B" + "DF99BDB5DC0B17CC60FA04DFB3070930EE46577250FFA863528" + "A498")); + test_hash_extendable(&nettle_shake128, /* 111 octets */ + SHEX("F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618AAD3D7E886DEA4F005AE4AD05E5065F"), + 512, + SHEX("F1E1E702011F4A39197D769A6AF63160BED980DB70888266AFC" + "B744A8FE41F1BD9A1B668B4A96A6C3C2FEA3EC1564592134854" + "B26E31102D1B95F112118C959475AA6F2DFC300E389FD061FD6" + "667DB36C32055901609EF59B3A8DE4F9BC05D52745C78E8D155" + "738F30EB3A8E3B61B36AD34A6BF7C59B59C1F973B9F94C9ED61" + "A746F85610B060E8BD04CC9691E7979EBDE5E9833AEEF21F9DC" + "E96F61A21D2B8864F07FDCD6D3F2BB3DB29CECB6670E859A496" + "2A5FE0179236BE7426E9C9B2A0B97D11B6C9E049ABAAB494513" + "128471F88914E506C6A5006ED295F436410CD24B4CD1EC5AA0C" + "A7A66E29DF6C362389C7A9B731E0720400C0923BD8C4A98A651" + "B62AA8AADAA5FAD481E08A17A2B3F86AD23FF6303463DA6300B" + "47483F7696962D33AF1DE2739C30346665F60C90FA35B74CC24" + "0D3831C01ED8CB91FA34A584DEA37846CF4A0B43B5D1C26597B" + "2AA1C973A070F120F08C78A9FC8D524FEC1F10274F03A4A7E8E" + "8C4C1FDB415A1AB18B4C1F07E1936F81FFE7F2A0A1A815E2F29" + "334F1B1E8029E7E12A798187CCB20F6C1EAF91B14B61B2FE4C3" + "852BC670295BCDAD418CA7FCF39C69FA9F9CE54AF17E695F1D6" + "14BCBD49FEE3935238CE59D9E378F3E596B34149149E14D9B81" + "F0BB09C2DF8E6E632436EBD525BBDB657822940D25713B737A2" + "DFDCDF0B4F6DD7920A8D1E69EAF7B764D0A469CC1CE6DEB70DD" + "D69E")); + test_hash_extendable(&nettle_shake128, /* 112 octets */ + SHEX("58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC268A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7EAABC35F5C2B0A0F2379231953322C4E"), + 512, + SHEX("98326BE2F713456EC96C941FA0B58E311C226474487F78734C8" + "D0514AFDE43293116D6C33FA3EC687D1E9087572C68479AE108" + "0FF8B2238C11AEA13D9A020A7B3FEEE56FC2FA69914489EE11B" + "17CB9D3AF448525C3992232B58F2182AD27D93AB88B22DC9436" + "8D10B112AAAC096DCD8AB76250984EE4E4D3CCAB7FA3124F7B0" + "2D05111D97EF0CC52C5B8221383A6256C42762E546ACD6691DE" + "9810FC2271D92834DA1992CF4031B98CD0919E01D35DDDC738D" + "6A305C6E400049A97E14AFBF40822558832D23165CACAF16A51" + "4EFD6D207A95F97C330CA333C810C19AEFAE12F3AA267CC9FCA" + "B0B73D2B7E5F3B007CD8055D0C4665C9C53FC818A53ECD9C0DA" + "776EEB3904409ED63B337F755CC7783DA8CB713B51C720C2826" + "711FF36D98723C8B00C4853EED1B3E2F8B8D74ECFAD079A49F3" + "7665DE5031F2FBF54DA6F1FB796913B9DCE2BA1206E4255F39C" + "314A34AEEA01F1965C36CAF89A2F7FB9EAF7E9C97E2B70636AB" + "F0ED00F59D1DDAD409AC33055E6F7517E962BC535EEDFCBAEC2" + "03F91FBD2B13C26A20F9C2236C55F4B506C7AEA579ED3A0204B" + "C67002D158D80139379DC23DA06B0DEFEA079E8FC1D51976757" + "E9A455719C45B8965959A2958E75B7E6DA966B86029D22FA508" + "41494303AB6B16600324EF918AFF9DF161224F1A7F26B7DF364" + "772724D4B1AFBA11B5C114563F9DA2604A2D1B60BCC3C116A5E" + "9C58")); + test_hash_extendable(&nettle_shake128, /* 113 octets */ + SHEX("BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE14E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E62BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A159388D5C3277E227286F65FF5E5B5AEC1"), + 512, + SHEX("D539B406312A6A14A2CB8C2B2BCCB28B7C164DCA4BC34564E65" + "B807F59809E0844FC897BBDA2FD7A0082BE317B8CD94C2B2DC8" + "A625691D56AB21A2C854CC6952A4374CC34374AAAD9090326D4" + "93EAECC945848FC4653A15E2566A960CDEFF139508882B766A1" + "ED60CD292C696CC75136A6DBC0BDA628ED1E16129A9025D715B" + "7F83CE3A35F4EFC7178BDAD06FE6030E086D416775BE9DF9DB6" + "6A365F56129F7B25A8701502BD36CD439A4CC122DA4D78B1D83" + "2F5033123D9A9D72EDE2ED7D7815EB7A3EABBD21E2E507DE4EC" + "4AEA0B40792337953DCD9D7BB952F710F8BBCD7E8CC1ACF3B7A" + "B4EEA9C066D9D0D27AAD600405AB5DAAB1FE4551CDDEA659307" + "B7ED1913BD8635AA409754A1860377E0453A63EE7C2C6CD1A33" + "099A81240B92382572CAF3698C809237548002EAFCEA5BD042D" + "B3A7506189E3FBB4DDA6DFB1C95BE136011FA127B0FA3A4A386" + "DA3C327B072417BBC5346A5060D770933142B6CEEEE1021BC0D" + "E076C2FC8ECF7A16A6CB752F39B8FA1EAD88A7D4364204BF613" + "F5B108E2FB60854F801210180B9DC4757D145E715D4E2D79A7D" + "4E8AA891977DFE08A92AA423A05D22B06C6A3D1EA5953214855" + "BE7CBE9C2E62F2A7171BF014F3F077AD244FABF9C1584EE12DF" + "CBEA4E4816C470AED4FCB900A5175C35189380829E92805E479" + "69FF5A1C3B52FD850FB404BFE189866844E7B586DCDCBB23691" + "0011")); + test_hash_extendable(&nettle_shake128, /* 114 octets */ + SHEX("8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488DA73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1BD168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65407847DD0DA505AB1641C02DEA4F0D834986"), + 512, + SHEX("60565A24B70C76463CDC5397BD0C077B77CC70CF33128A0366A" + "7C30161E21C32F2F024511A9605040D699E1410311EC3E89529" + "38C91D73AD71803BE3F7AB60E2AAC7A91D62FC0729294BCBB03" + "1DDD5926F775FA85D25C85E1CBC349237F9D1E400E64C15A797" + "C1651FBE5B8079D586BB751E1B765C36A40008C9C612A8A67C4" + "9A2D4C15001562D7F7197CE107AA7601E490FD3CEE738D397A5" + "D9E1A9568385A243975B9AEF5E24C4235CB3612527B7ABB7DCF" + "D22A124F9BF5E1E169F2F58512B8AB04F4953D40E6B1D4FFB92" + "0186E4C0751F5D8516F142C426F3893B6B4F455674610599683" + "69B3D333B74F9A596E7585C6646AF458173500B052213EC6074" + "890AF149A6554A92106868A64C3957F43C8730DFB3136040EC6" + "88ADFD0E79EA74E07F6A6418656343D24E446013ADD76058241" + "F19F5CD42F256F8E98C7A5F7B9C4CE3F5D19CFAE69AF8DE868F" + "FB5807DDE0C4A5DAC1409297C5B8AD27C1E1B8FFD570BC41F71" + "F21AF7C9639BC6502511FF9D6CF63BFE2E8AE791B50527D7933" + "4CB87D9BCA919833D7123B8D77F96D07106BDB50A3C4B9860E5" + "E1CDBFE4B49CD4063D0C4796BFF2FE1507F43CEE6CA6BD19038" + "CD6B7118120C25EA0DD1BAD05018DF08DB67AF168880C284DAF" + "7DD33A7BF18248BA7E79BF18B68C3E14664D0E1349D458CE7E1" + "28999CDA5EE706FD48FAD8D0489CA8C5718CF3D2C16563178AE" + "3309")); + test_hash_extendable(&nettle_shake128, /* 115 octets */ + SHEX("B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD4799223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A7630BE61CAABCA69280C399C1FB7A12D12AEFC"), + 512, + SHEX("7FD57AC85310E74667C025609A2CD37D12EB3FA49F9D9B9AA45" + "68C1300C4B5FA69B6591F82D4C7C5B25EE6F4A6E2521090ACA1" + "588D75B4F6BC1D58B106E825BA2409F84BE64AB520CF4513A7B" + "FF52FA7A67A761B86E9D749FFC71532F202A2B619FF772EC25C" + "00C269E7FF10EC38B93999DD8BC7B3DB40CBE870CBCEE6C0A68" + "42A72F978BA9AF677CF4F055762ABB1C8DA60CF57E9352C48B0" + "BDC0031FDE8A146B8D881DD4D0D05BD5D14B52C89ADB6A27CFD" + "A2B3D7650EA650BB75D86748A722D7E3003E10E43D89AE21E91" + "55231556B7335F576A922248EA2040DE648A0D49D8EB88DA240" + "E586DEAAF9895CB2F35CDFE60E61D6643E5B38FBE40E82BCC84" + "62FAC98F078DFEF5D42E1D562997EBBEAEF637FA8F65510E604" + "E99933D92798CA05DFEE0E935910BE5086DBC8BA9493CE52CC4" + "9B85B062164F6BE8EBFB4F0C27641B65C397B92182A47D4E926" + "C6D6947AAB598EA0D012EFC47556EC7F6407A2DFB3CBAE71237" + "D968EFCF9192379384FD2DDA510BAD5B30F01852064938A17C3" + "8B6166170FE15F09F645CC740383715DC35C98F6E2738473D32" + "4C7C6F63E76124824554B0EA34120FACD2826C7F2A717D2817D" + "871BABACF1F061CAC045EA61BED8D4AAAA1D41A277E50C09606" + "B1786BE65E1ABEF10F6DC6D28EB8206D3E3B8A56FC837282914" + "20ACBF606C34B2B3E852381EF31556FDAA341E05BEE90DC9AB7" + "173D")); + test_hash_extendable(&nettle_shake128, /* 116 octets */ + SHEX("2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183FA201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3205AA1615DB44057DB991231D2CB42624574F545"), + 512, + SHEX("CC03A5BACC26E1580F37813E60005111261AE521159086C7A6C" + "3087E238D2731A02BE233200FA54BDED93D6959DD03B71A1A4C" + "7CCA20E9685406F70D722DFA1718B3A169BE6A8C5FA275EAC81" + "667046A605AE8514BAC24F216358A27F036BB618951A1FF5AEC" + "A2F64FE1571CD01EC7139F86D370BCBA6A721520BC115330398" + "F55691D7A212BE824F27AA10305523F7C11262D2EA2520D72AF" + "1E34A887BBB4A8DF9966FDEA757351EB67DF1DF9F9DFD7D7892" + "D3CFD1F0B8A3A16AD5055D5904DDD900E4A5F94941FA796E8F3" + "2A04E807EDE1958191D58551378A57087A62F48E3AE2852EC03" + "654CB142D2B851C5995324D15927F3DAAAAB188DDB6665E0859" + "6B71D9C2B740A15F8E78F02C6A820C79C3223A98D79D225375F" + "6375EC21A5216A9D01D0238FB456857E7D6611CADC2DF844D99" + "C6380CF59E7BDC268CE91D733FE00EE99A50ACFBED98E6AC17D" + "D8A377EE4AF9F318BAF14143AD4873422DC56AA6E4DFB6B0C31" + "2AB14F16105D8CBEB7F57DA85644005CA4294FC8667C1CC1FC7" + "8256562CD7AEA9779899F431FB581AD6CE91A46F003248A42BD" + "286E9F4A0909DDE99E2FF674D4D5E71EDA126995DA15F9C00F1" + "1BA6691E3614CE6FFF05AAD6B7C63A72DA235E900698D09BA37" + "87742EF61701EB25C3D70927272441709D2625B23FC97FBFEB1" + "FC06D3693509424FF5DBF005023CE06D80D7956D1DC0030BAE8" + "D0BC")); + test_hash_extendable(&nettle_shake128, /* 117 octets */ + SHEX("DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D"), + 512, + SHEX("FDAED26927DC53F12F002A9C47467A4EB53D941B08106D6CD0B" + "DFF6021B6AE116562D2255562F70BE884427A8B6D593E0CB704" + "0ADDB87663E5F03981992435C2BAACE87C49CDABDA178D0663C" + "F81E96C2EDFCB6D50D48ED128128F6F3B56E33BF33187BCCB5C" + "2BCEB418DACD4C820EAF880B80E32F00B7105615CE305065716" + "316221019A84CA2D29FA57565CEA5239484B8E9740AE07048BD" + "0F75B50827C138979FC9671B4E684952DF9A681E0C7ED8101DF" + "50620DEFD82132EC81F5073991E65E1DD72A52B596CDAFE6C5B" + "6D9205533EF15D137A1FEEA7564C03E3A19E2B9F40600FF1A66" + "A241737EF7FAA29EB83793BC40D1E48CDACF3936C499B572AEB" + "F2DEF5086354DF7DFE682B9C281F4CF68405D0268168F549591" + "3F930B6009357867398ACC5F951D55D854B0C42D2E2127CAC73" + "AD0B75139111414F6D6A68E01CDB794EA6E524E45A62A82970D" + "22168F37ED72575A513751368718AF490E28ACC47D2BB7D59F5" + "67DAAED80093929FAFC0EBA01F66D67DAC97A99886D0B11EC0C" + "4C23A593BBF05F3F80A047A07C883063A9FB967CB9A796D1816" + "8D0A7F731132AADB3D105B1475C583BCD4B939015F460FEE9B6" + "F23B0D3BB3E2E7B7C5615AC8EF7305567397EC4C1DE8EF5A05C" + "2A14196AD00660DD0FD11838A707C0FAD38D343AD9D65056A4C" + "3701490B3CA235063D7D21BF02FFB2E0DA3D9B9092E20DA716B" + "F450")); + test_hash_extendable(&nettle_shake128, /* 118 octets */ + SHEX("42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F3120EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D27240BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D0993BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7"), + 512, + SHEX("F375FB504784706DCD5BC3A500BAE8DE6630009D865739A0B30" + "C81C74E0379A59996410854FDFF996B46F9F30BEDD7DBA1C580" + "1A68D1D3792119D7FEB29A648E08502CA04637AFB9427027D59" + "E9DA235BAA4D602AB2FF257BB5FBA4AA79C9D285E99FC431468" + "5181020C2E9C1CFB22D1E7B1ADD9C037A7F81B7E0135F9628CD" + "67B8591271BC12D025322BC21E7BF4E91B049E291DA2828DE01" + "2384AA65E3CE26F98186828A3C144A095D82BBF5A325E41DC28" + "A33828D9717BAED4BB8BC50116CF39C8EB6DF037E29ED6A32FC" + "5039EC1704E199AFF83768E58F1858ED741DDDCF75E8B2621BB" + "BE14420217CDAE7561C24213F76530204141EF5C7CE0A76C587" + "C2223181F5F2DF58BA5D89EBD209C004F5A2155CBD896A17701" + "B19D5CD5D555F2A964BFBEF27D22FB428DB161C0AB99D040AF1" + "96EFB7640EFC55B7CA8E1BAC86F4368F612EDB120E2A7CA084B" + "9F5EF8DA0A11136C760DCF4426CA98F20514049BEE2F9E6F66A" + "AFC4225CFBD4397BBBFBA872A47BE903EE0DBEBC7EF85A1395B" + "14504C18A8B5BC5416739DAA543DFAD6B4B8A88BB87B388A697" + "4AB90756E836DE528869EA2734E75D8AAD84EF1A60BD3711908" + "08436D5C7632A2F027C3CCFE8F3D94B0C262FB7AC99103B0688" + "238BE68F26B8CF35876B6E214ED1973FB44B9C3F3DC7D7296BE" + "8E150F82E80594E34A3E008EF40D9647EE26E1E4CFDD8DC673F" + "2AC5")); + test_hash_extendable(&nettle_shake128, /* 119 octets */ + SHEX("3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6FDD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F46176EBF044C4784467C700470D0C0B40C8A088C815816"), + 512, + SHEX("98D27AC62145261BF2CDF99F8F77AC04697D2FE6F1531D3B1E1" + "13A7BEA4B9BE780394CDE5EC43EF820B0D39E20A287B29390A6" + "8091A8938EF5640437A0F09F5262BFB4C55F703D44E7E21EB69" + "C27566B66BDC95A525B988BE281243DAC0CEF5E04195B318CDC" + "96035205CCC556AD42B220FCB0E01516E66D8CA2D045AE0AF7F" + "FF91119CD4C92E664FB339203E8C0B3766C78874DC85D48FE66" + "8BACE760A96F5D562FE4ACE97FB33C93F160057C0475EC44011" + "1C46777B0E2C95DF666EC753057596713FF452EE59DD7E1D4DC" + "278238518E23C78E8882393B86427E8F6188D7A08D770B2D19E" + "08CA672C89582431F30CF4A0CE89E87A635EC2E05765DA60011" + "5B704E35B787FA90AC545877EBC8A5616EB998380D4EA1C6B12" + "7844A422789B9B3A41DAEE940F75CF975B464736616D80D8938" + "7C171D919874F38453AF44ED16888212AC279D4890CBB567225" + "4D76D5FB922412A2EEDA598087558B1E89528FB1EA285303ECF" + "4843B18EDAF6130D1374273DEDE9EAAFD6E6F448547E96AA385" + "235919600E4BFD04CC2BDD89E6860ADAC61E73E37C563709F31" + "87439A305B9EA8DE8EB552A615712451D1DA495A8E02B9733AA" + "1F7B78DE6C0F0CF6A379959EFBFA8A78CB6E93A758889D826D7" + "E3DC741A10BFB55544993683B2383419D3F5BFBAB13EB1EA057" + "5E528FCDD10FEDB0C0133C8E78FA0DDE413FD951262E0CC958D" + "2850")); + test_hash_extendable(&nettle_shake128, /* 120 octets */ + SHEX("D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB1910094691ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E653441187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840"), + 512, + SHEX("6095C8CAF02D995DAAC5F6CD94A33FE0CFC2743574B352FC35A" + "056135D20BE12FA7826DD41BACCA18C90060C08C5BAC8B3E706" + "622A2BC8AAD1FB6EF93259A5B8092540F68497F09E47476F9D9" + "4111B2FAFE27CB04DEEAFF43A435E2A5C0E44AAC6DC31044538" + "96C9C702E8F59BB61A62ACF889174955BEAC0319FC897BF989C" + "97307A997F4570F3544E5A003F22A7C5295705201F025EE7D6B" + "5B278DEBA559FFB82F22AFF5DB6D534E6C50FC4E55FDAA0DCDF" + "977178DB7AC2D98416A6E0F5AB5A49C29E414BC0AC0122D608A" + "592C605E418EDCD083B26429BA0A1A53584EBFEB4FC005F144F" + "04CEACC971C9EDD23950A1B7E6A4A9308C517FF80EBB1610F8E" + "78D963E222BF148659BEF6B0C8BE1F466FE786128431A9950D3" + "C70493D1CD72731D0A3C956E34F35339AEA578F614806DBAD3C" + "02389643340DB162661003D2CF42F1C913A7FAB77EC3B9E8E31" + "77DC0394305C21D6E9713F34516CEE321992E4BFCA4DB5DD03E" + "240A7FDBC83826EFFF82E2B36BDA326D8FD0C858B00E02A83D0" + "DF7216A475CDF0A37B0389095F501CF47C497E23F199D711991" + "FE71DFB56D789F30C86D3BD17C8BDEF8A797BCFD3EBCD5E62CF" + "99BA0403B79BBC8A0FCF4FA7C4E65B674A796AF85E7D09134FE" + "214CE8355EE337FAF6F04660753C1A96D95964E587F72F0FA5B" + "FF435778084EADB1807DC66772850152AEA381866202C8A3872" + "3121")); + test_hash_extendable(&nettle_shake128, /* 121 octets */ + SHEX("626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F21B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC06624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25"), + 512, + SHEX("765A48E25EE43AC1630C65BF5138F5F792095E182483DE8887F" + "0F56ABDFC0526A5B9EE792A2533409F3FCAD2B9CD43D7CFB545" + "4194344169DEA3FC67CCB5B9969449454E18869E7CFD821ED0F" + "3D655F5B33C528BED1778BD504B2C84BD38DBCBFBF5CAD7E46F" + "37394622C4B065686773AC0171EF70717E8C6A887AD952343D0" + "2EE96B4129B3F189C631A719910F543540DE4AD65993B634AFC" + "F313100771468C81B0E270769ABE2BD6603E525682AAF172CED" + "EADD12D9389B86DD6459DC490CB89A637F6E24C5819DFB51C81" + "7A3AC9837092D408C6816B57A4B0DCD0FD1C7AC49FC012BC9C2" + "2D16C779066A670252515938764F4E05FC57908FB67A3C6927B" + "4639014AEA06EF91F8D43E507C48A567F36B94591EA1319D7F2" + "66722BC9AD6F5CB8196994F7DDEA570720EDD94E6C56D215D82" + "90CF0227DE007B71E80B65301D53363D51C73303FDFE76A064B" + "B1169862A02F541D782FC64C3DA45FDFE2FEFBEF8A9383690F1" + "D6C695855387CC206B9E7266D6E6C9A2160074A962DE01FEBFA" + "BACC6E88CF7F724CB4B2F09862D63CFCCF1D880D956E7E5381F" + "44568DE6BADA3923F2F09CAE80D25661B9431201C1918DF1E44" + "2F26710314D8B3F88E94502E6E9514C2EFEEC7A816E82517767" + "BF7972D6329BB54AD1BF67842C449F54C8CFE2FFA312129995F" + "17059F59E7AE05D21EA17F8E93C1FF4D9E2E71C9ECC9DD5512F" + "D374")); + test_hash_extendable(&nettle_shake128, /* 122 octets */ + SHEX("651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA19D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EAC6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940"), + 512, + SHEX("270EE64E434D9CFA8A81B256AA86959D6D9E92B10325A181677" + "6A309002E7C9346F21BFCBEFFB2FB31BF7214572A7F437E3450" + "AF26743B418CDEA45AE28557078D8275E406864BCA916F17818" + "1CAA3396B8582B04148249102D761111507C48722506D0314A0" + "5767E89B3D9D5125A43A2B13EA8827CCECAECA6CBC864B8B759" + "1B15BBE0BF1093CD15C5C14B4B3705E37CD97752CFCCA1C1A43" + "40C02298B028A633CAB0E218525E94C3E150EEB8BA36C3AC4E8" + "EAFA5ED05D9A79519CEE2A8B8EEA9D8EBAF54624ACB2BD593CB" + "B353BD2F577CAB60508DAB081BD29200E9A9E9357978CC15F4B" + "98A383C4A46594303143AD019D5BCB052504EFD2ECDABD1731D" + "B02D6FA4AC9E1D3037B75B7A5CFF8702F8EDA7F2CE848A0B96E" + "C2F7C62BDB1E23DEC39AF110A4E6C0597D61C8AEE900276FC7B" + "1AB2F63BC9874A00C79705D87DE2135218EF233C8939671399A" + "32C02DB4A6D779F7F933E7F7A467D236178E2137F1E5FF53A3E" + "8FBBDD8D01B737EA95C762B4D4D65BDDF50C527E01DA1A32215" + "1757E0F10525196D3293E1443BC7282496F3DA971869DED47DD" + "FB7BD99E799EE60FD3CC31BD4B3956DAF6D70F79D4A5E434800" + "4F526D90CA47D7C3A9EB09074EEB00D799F14DE7AE5A4615D87" + "496FAF2C60D1074C194E7CDDDC0765C7FE7C6FD419335189C2D" + "584438D3879C50D43E6CB25D5776B4802819C5DEC7CB2197B33" + "4615")); + test_hash_extendable(&nettle_shake128, /* 123 octets */ + SHEX("8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F"), + 512, + SHEX("652A6B87D0E770909BBAA2172F47CD05B7A07B57D9EC47396E9" + "CCA40EDB76B99BAE0A8FAFA517D12ED62B5E95AD89560F3EACD" + "241A2AF24BB1F02BDA6F0A5ACFA85F4F86CFF75BE9E7A57E0F1" + "82890C39ACB6DE889D24EA360DD5A4C59E54DCA7306AAE46768" + "205C3440AD777A853DC8FE2D2EF2E6A5FDEF23BF514472B8940" + "5FE1B7342AA4FB448E0EED8A46B6F259073057571B03A4DF2EA" + "F696838A51449A5F7DBE9644A9D092AC68B9A30034460C1891A" + "389D06A2AC3165ECA91F203DED47B5192C8F6AA2E5FABDE178A" + "012D94A8A35A1D446D08EDF55F4E4163C2BB9C46025D8253B3F" + "062926D17F853728EFEFB10D69E6846BCE7E7A037996654E1C3" + "6C3A55404A1FA579A1D55FB95B30EB61EB14A29BFB54878C0D5" + "9A4209E1C746F7B2A2F2A28BB19A5F0342026BD807BB3663636" + "23BD68D4C9D9BB42D2AC67DF49DD3727F4D2AAB52A678F6F988" + "16FC86BA0073F4AFA336A32CD55DAAFFF5D993926522D770AA4" + "4D62F6AFF7E758AD33DAE3C642318894C2DA99F43ADF2F97E53" + "BA48657604259A8BAC4268933F1B97BD47FB30F95AD284F8345" + "D6E013AEB9DC2478CE49CEB054555D25E36B13B322E51BF1C1E" + "7C062E328AA440F87EE883C7760FE2F86B487BBA73163A13755" + "E6CBA804F0EA6399E875BDB2966D427933D66D82C4D17FAF6CD" + "FBCDA36F09621A3923B4EB93A27E44796CD1C1770835B83E89D" + "28ED")); + test_hash_extendable(&nettle_shake128, /* 124 octets */ + SHEX("53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D69688F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C531564D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E947CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2"), + 512, + SHEX("2716A3A219BD690B9B0450CC0BF4F0713C46C4C02744F8F71DE" + "261B94159278566583D4DD04CD573E79C576C1F25834C91D3AF" + "69F3A301AEFA516082869F3CEB0F916A903D902175EF29A0B29" + "AEE92CAD8555A26E7CD0395BB937750246A8D5A722DCADE4F44" + "459A15ECC29B207FD8FFB8510722D925627372D86528B9B5139" + "67B5BCBBB233B459AFB5AEACE48E5355C3E7A387F9DCC9A5577" + "3276D14C85B8EEBE3D211FA08CBDD8AAC4656F028FC16A6D608" + "3A969BD6EB5247695D8F6DE51C036A743D2DB7480DEA41C228F" + "FDFAF129BCF0D0D5F7644405FF8AF778AD9A63EB54F62E1517E" + "A4CFAA92F2F25E5F001A562B6B4D28BFB398C26DF8E88C288AE" + "D5B7AFE8686AA4AAC77C032D21203FB7BA79707A7E00371F56F" + "DFEB0E607252448CDA319C39447ECB7C69F36424D74E33D723A" + "E53996B35E5554182015493AE03DAEC5C31B00D481CD430F472" + "3677C7B33F6E325A855300E66DB559DDBCCD550DE02D797D6B2" + "8A1EE01FA13A62F721BCC577A6C3363A03ED976391E969379BA" + "3BB6BBF99271F3E5DFADDDBF0BB32DB9ECD658F0DA2863FE8F4" + "8CE2A13539D8E8276C083C4CAB1AA9D92914ACB238C3EF0A595" + "2E5686E39D2804DED740E0457F69FEE9489B7E548514FEB18FC" + "E21F265DCD56F0081528A24FCA7595E96D31CAEF0969F56B122" + "749C74FA108C41D34902828B22F814BF352A1B5B52E9C65F75F" + "232E")); + test_hash_extendable(&nettle_shake128, /* 125 octets */ + SHEX("A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301FB4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E"), + 512, + SHEX("6995A90158EA5FD54F6D4DA0C129B92EA3E716E196DE4AC014C" + "AF106EF4CABDFB9ED799545A0E53E32ABA2EA78A6C7CB936947" + "F79817D200F32053E81D10131278CBCB903980E13125C99B169" + "6F26D355882A107FA65FA43766C929485696D56D49D371643E9" + "D360E25668B5B7BC7CDE13B678723FDC4598B60B6B19B47791B" + "A99F4258ACD94604F26D5587EE8DFF613DD53E083CB2B0A2029" + "30D61435601A1D3CA8D97C198CC278967BA493B675D2F42CF4F" + "41072B7A9403DF36E0E15B8811E37CE1119542C5168C9539665" + "3F72FC9E59727DE36B693CA58FE374AEE8DEFC657035FC874B7" + "851EC0DEDE274BE064D258C0B39A238D2863BF8B7EBD0F7E2C3" + "FB2A7EDA6800DAB2DEF61FA8F5E6891652796C2E9CF586BB054" + "9F6F73B3374A4D7C6345FF73FBF99FB25CA47823A4B0470738A" + "A67CD26D2EB954EF40A4121DFED58A1741EF335E8ADB32A5884" + "52774FF26B04EAE29EC1AC3BD83D2F3A27AF2A464D29589AA83" + "7890D7711CC0AF76ECD6142EEEF1C904C0CFBB287BABF951B8A" + "10281A7CD1B49D766704350C7612A74606D2BB80DE11A37CA9A" + "AA1CCB91F4AAC8D382A5A16E0CC7B426065F3AF566592C51B52" + "BBBF007F4F4B7910DD0C7042406F61E5EFB6E04EAAC76E07A7E" + "86C6E3A5706B833C52BDDF814E1261724F97DA9B7887399B7FD" + "CFB14321D8A16683C1DC615EA8C738F0BF6076E05855F80D8DA" + "43F0")); + test_hash_extendable(&nettle_shake128, /* 126 octets */ + SHEX("0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED54A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065"), + 512, + SHEX("791C8B8021BEE5393FFAF003B9C429A5ABD2E35C5C7F556E843" + "D735265C5B7807343EE946BFF31F45B5626555CFD792F55465A" + "D9FF95647A41D9759DE484A0564492236FD770ED3F78C92514B" + "90636CEEC76D3FC44A6CCA482BCF45D3B5BBCDBB1EEF6D5D6EA" + "BFD0FD10B0B4AEA88C5FA68182A8A9805B5E90B1767C9E79500" + "237D07BE59C0F09A9AF2236AA954F9DDAADE492D691E36F3F40" + "43F28BF0BA6349591700C4211185D99CB25553E2F6F405F9D8E" + "00FB658BDF4A091CBC7092934A6DC6D65E42CC9042F90D16966" + "2F80D66386489D2E7F750251130E1529CD8BA70929252551B06" + "17C960203EDE536CCA5EB0C5217E9E4756D7B57CCBE5087A4FB" + "9710EE89FF62355203DF415975AD106D84DD5526B3EF3432770" + "B163856B4D46F7315F1ED70055CBCC4C78C5C0CD4B19FCED545" + "EA00F0E2E9752A227445DEC6D50B3D73ABD2D81C9AAC6B53E10" + "8DA04C42D491254AF39584068E34CE2F4026FB63C29A52B913E" + "5D2FA42FF7ADF413227B784711A3513BEA6AAA97DC019A25A0F" + "09EE27A46FEAC4EC13B43E341C505C308ADA1DB5D72E0609A0A" + "68698C809067F2EF17434F3205E03BE67433C1D67072E8CAD0E" + "2276723AE7D9F552DF19C142A68A7B875CD7A73FB586E128856" + "A9259F7373242C498E621E7F16E7AF57F369530019251158069" + "72ED2795B9A2F398676BF37F2EF8FD4325863D599E10FD84D8D" + "77D1")); + test_hash_extendable(&nettle_shake128, /* 127 octets */ + SHEX("A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC288207944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B"), + 512, + SHEX("42AEF4301642ED54CB1FF9B446BFAB73CDFAC0320167CA3460A" + "9AF1995B5DD50C1ADB402A55A3E5C4F7BE66BB2041F3E4C9EDD" + "F7F08826F8B9C1163B0CE8B31769AA72AB4C598B3BB1CD5791A" + "6BC30D11F0591D0EAAB34D80F134734D792BCC6EA61AA535F4F" + "28331AA6E9A572D43F776341C971829C67C0E7D9321B0980796" + "5E1E9C70E611A4BBC3C42743A2D04F50804730C857F02E631C1" + "B81DBD33D3EA2539F9AEECA9842B3C95FA1B8B1C330926FE5C6" + "A396214537BD06B49B7951AF0F9AE04D158F364757A52AB1F21" + "B4155895929480D87AB365A7950B321D5FD0C18FE3FF63B10D3" + "CFD74AF45774500AD3FAD98DA5D240D613B386E677D57211B87" + "81AEA7EF4052A25E122064BAE6DD59B00D533E6B041130B8977" + "8DB87F88DD37DEB78136B55A958744B9769612A0DC6D29B6C0E" + "F863934302029C800B50AB385DE742D436809C7665B868C83DC" + "450E438E94EA3124DC080355AE5931797E75DFACD09A7C97345" + "608E021BD2034F7660ECD194F628A9868BC0DEF0231DA66AB89" + "E2DF1EDA2C403203F971C1E61E4098FD306202B9F96C78CCC37" + "EFAA7983C5D7712034328D1E65FBE96DB94B3BD88732E60ACE5" + "EF946E896ABD4E1F6978700C12C4A8A372CA54B6F8EFB3402B8" + "98838A26D8900F69393E56D2ADDD2A0EA26E7F630BA6D19C46D" + "E493C516277FC491F1FE273D013F4A32BDE43994B031EA51C2C" + "C8F5")); + test_hash_extendable(&nettle_shake128, /* 128 octets */ + SHEX("2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C14129BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CAE275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF28198E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817"), + 512, + SHEX("5E0693E64DBE678055A31D80DA85A81A1BA5EB1CB6394B7B1AA" + "2ADC2B8C1FEE4F41DFF3623502FCC349D4B2BEBBC1311EF291E" + "F47F490C6FC1323075B519C87DBD77CB94C213EB548278A6C11" + "B0C321C941FBEB9742B690A9777875D8A1FD0627B5CE3679A6D" + "BCC8B53D775E73AC9F951749FC353EEE7220CAB40F4F7C2EEA3" + "11CD0B50974AF188EA9742509C4121FC07A70FC28F0633B56BA" + "BB451554BDF86396594B57B1F88DFA07DD4F8C47AB5FFBAD03D" + "A1DA642EF4A6E75A952E8ACB3989136B8A792E6F33B24DA2CC4" + "E422192EEBAF121561BD33A6D79DF6517B3F001E674F39BB98D" + "9AA0E15226389B17655E7B2796D75EDE0430A0E7D07039B8E35" + "642570F6457F8344A59DBDD5128F74F9AB83CD152DB17987019" + "AA0B27B6E7951CEF67B574D05535CEB5EB023A39B5731B6AFE6" + "CBB8BFEE0F71819D791C288BFE9EBE6706778FE62A80AEF22CB" + "9C0920938502F30A20FB4A4822D0C0D42D50D67FA6A76EF919C" + "985C6306FEA73A3BF41006F0FE60C0D92B80106D8C715B97E35" + "E39FA8ECA59220B86C2C46B9C61EEBCE07DA4B64CAD247A6711" + "2F6548AA693BFC4BFC9AE78144571CBE7B81B83C8832938A71F" + "D3AC6B8E4AECF17FD2848FD9558DC5DDB261CCAAF083AFFA341" + "EA295C7264F35734F5179038AB70C90E03BF53E3FF438A9C065" + "5EC38F5B9DAB7A4C3BA852A2A0593C80999818B460015C79093" + "B1D6")); + test_hash_extendable(&nettle_shake128, /* 129 octets */ + SHEX("10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD23431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CCA9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4AE2"), + 512, + SHEX("B620CEAA437E16A85BE761A8563AC80D9C49608DD0EBF9A4F04" + "9B9541623F4A3783C9E67B85820BA44A80F1AFE3FD835791D9F" + "3C785BD8A77C9623EAF11F695675E3A2FB951D54050D0500688" + "860BD270D3B723BE51579B81CF4ED94CEBC294A97BEEBB5A851" + "160012514D3BAFEE6E275ADC7BCC64EB7879C32D8E060524178" + "6DC3CC1BD44DB64BBB2E9C6E1FC581A5124A734625CD811B6BB" + "E00B203319A736EEA07AF977190D777C12465E1614FCA56DB71" + "54F9C456F59989062D60899D7CD7925DF1E1AC2EECD9B070F7E" + "380B0775089F303B864D5CE049C55177E3421443B508EDEEDAC" + "6307967A4321121EE2227C47E357FA92B741FAB390957CCD933" + "7B42BC18E6981FD9EFC9241FDD24BAD0C6772216BCCCB92C2EA" + "CAB3A312CE020216DDC9175F3F86343E204E1A76573294DE6EC" + "6BB75679379645FB973C37354323E15202415172D7F3D6A1060" + "FCD35DC011B3B2FB4FAE21C69AD0119191BA4277ED6F71045FC" + "D69F267E667DC4D219FA256BF35ABFA06A05738D212C42EAB91" + "C2C993A5B6ADF9ADC0F276E79EC9EED6F115AF4BCAFBA9CEC43" + "B0532038E863B2686996E997807ED67DE7F48C14B17D40CFCCE" + "FD9A943CFD7C96FC665EABC70E606213DA37CD7EB6F942A6A56" + "08305B8CD8B9BD4D625DE5D7DCCB554D3CE466D6EA8C1D9F111" + "FA4E96B253EA11B4DEE3BE218C880844006D6401659C35C2A29" + "3DA2")); + test_hash_extendable(&nettle_shake128, /* 130 octets */ + SHEX("9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C651CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC41361EC"), + 512, + SHEX("224D0DE7B21690B72A375907A10A4284E9E730A20CB3B4FE396" + "CC6078D9DDA5D1A8E81934745361D8EED0B31B6276DB8F28010" + "4CC0E0FF4B36723CB302381A9BE703B0DE4C624A27996155599" + "204DD2E219FF77008463BEB4461DE2DE3010A002FDB300C24B1" + "A80C8DF311C80D174590043EC365FAC147A671DAAE41F38914E" + "1E6614CB62C4DB154735363D7C7B7135096D7EDC6DBFF1DB407" + "C0061C3135BA4577D5682E57007AD6E5B9ADC87DC27EAC3D03B" + "3FECE4D9B4C2B2667E6D9311E342D037D58BF67CF38A4AB448A" + "A4DB2C847E678F66AB45F0BD1B581AF6E881E63FC170F44FD0F" + "8D87D6FB160A78097A4896BE055D0167007D9CBA610DA08C8C3" + "42E4BCDACEC6F0BBB30108F29A21947A9D842510E68FB175078" + "B9064364046E544023CCAE9448C0727E8FD26330F26FA60EF89" + "1489B8CFAA623086372C09C0373C9FFD7E3648EA0F8DA7FA99D" + "9F2D6617C0467F2F069F85ADEE5535100C519A528C690EE9192" + "A888ACBC11BEFEA2B81E8FD380CB8679B6D80E37CBE3271AD1E" + "F633204A8B97DA2E05565F8500DB9B1FD8032C69F5740925193" + "2CBDF046E0AB99896109F2EB1217351B242EAF3236139F20EEA" + "C594750231186628453970F3C8452E454BE3D4D80E99503F350" + "BE1EFF8778ED13F3D8828768E2F66E03C246B4FB59CC2CED5CD" + "D266D320195A601C4E4928D84C62CDD8AE2EA357E4A8F34223F" + "B18A")); + test_hash_extendable(&nettle_shake128, /* 131 octets */ + SHEX("E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C39031549CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B72DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B9B5EDC"), + 512, + SHEX("78023C45DC98541F14C21DF4148A80ECD01F52EBEAECF7C28E9" + "FE2B2C69B4B882805515064800089E6F18223A624155DE37EC8" + "EC07E68E282204F3AC9BC33F8ED6DD98ED2FFD9EBBD0627B0EF" + "C88F7BBCB7815795928766698DD530BD0AA461AD9499971FE93" + "5BFE38B6A84ED2D842572EEB97D7290ACE13C41899656BC3031" + "7A95EFAFE163494EB7E358FC31A39A20012A82F564813234D59" + "8EFDBA11EDD2B0F3A2554BF4FB216084772DF94E3D43E55F188" + "BD8B8B5B297E406F2B8407FFDEDE7EDE9227ED6AD78E098147A" + "658269C26CCC0F2988F06DE00651A7156407CAD75884EDDF56A" + "755EDDD45030A4C43A82D55600D8FDAD155D13014CD27F827A3" + "0F6031E0173A2E8DA9A8FD9F7590ECA5F37747E5ABCC9C0A0EA" + "589422BF9647F3FA9893BA3616C38C15ED6CF1F9EC2A64B616A" + "3C5E6C5862FDEF36E2A44A911269F4ADE8F7B90272EAB51FDA3" + "6D9CD0B88DC8951088EB0D7D68BEBB332D22C4240F5DD354CC6" + "7650CFE4659D354742ADA6828A7CDFA82F77F1C846361087D14" + "173775F44C8601A56774280D941F256A89EEB850056B3848097" + "2A6BC0D893A2105C584BCC3E963DF2DCA0B39B82823F5A4261F" + "B9D4412ABABA7785FCA635A84BB757E1380531F5EF986F3A771" + "E4948653178B240A32F8672B8B655F0BC832F853C206D2F6E73" + "DBBDC2669DA67666947EE50CA82CCA023B5A3C485A9D21623D8" + "A3D8")); + test_hash_extendable(&nettle_shake128, /* 132 octets */ + SHEX("FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB75542D75D68"), + 512, + SHEX("31EDB63FA182A6DAADAE56C08BC794E74677457C69CB23EC82D" + "2B8F74B8649F79754A8D9BD42BA3BDABE0C4A161F7464D2CD80" + "972824E6A04BD9CECCA798C2E26937AFA93194246468D66BC87" + "69A26088513962435D3DAD9B1DB5544E6A2050238A242397FF6" + "E7419569AB3CE2EC14C54481D634F56D1F32D453AAEB23B2078" + "502190C8D1CF54E467CFD51DCBC6E82F95197AD1F6CD301849B" + "76CCDE540CFF8403D19ECB88DB81A45FC13629800D000FC5CFD" + "F508014D4324FF6D2414535E5EF3418555B81AA3CCC74FFC80C" + "6F4F170A3DDD304D1D5EFACF554164E0EA798572DBB3393F63A" + "7B9C066AD68CF25AF0D36400E427A5DB9B3CE639BE2DB8EDAC6" + "AB1EB2E362682D6B0ED0D2B84CB28B56F1AF4F4A9DF0FAF3447" + "DE9A2841B49CB2AFF2423A2CF58930D0BE6331349511C26D6F0" + "7A0ABD32A54F70BFF5F43C599AAD00931EA7F28A85010ABE8C9" + "3F941B4B4931813796419FB41F3BD0A6203B14BBB288116736B" + "3A31CB53FF26EBA377624C1A0A280B768DADAAC7AC69835D8C3" + "24234EB907B64053678F629784C6CF34E0AB5522D6E9326998A" + "AF24D1C1C62B93652896CC6A9BD7DE4F4CE7F6D309AC957C2BB" + "446E6BEB8B026537F7FCB7E45BA1083F1D690BCDA15B1487DEF" + "BF59DCC1A5A6EDB3DFC783B4224702A7F6E466B4E48DA6C1ABD" + "D918512783B6A7FB6446D32FB580FD292F2EBF8E3D0302545B8" + "C163")); + test_hash_extendable(&nettle_shake128, /* 133 octets */ + SHEX("59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587AA1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA7815BF3C49"), + 512, + SHEX("2611992C1226B5B402F19662FDF3D9C44D118B949C8AA1073B8" + "BF8A5DAF30D9802DF7B1ECFE6A9A1E9DB9AADE3B308867397BD" + "48B89EEAF36C3EBDC97B35EECC2C241941CE702A0AE96F02E88" + "1F82AE2842E1A7BA19D3390B2D4B5E2BF3883ECADC81AFEB654" + "3DCE3857FAB5F926B1621D32AAA0B1BE10452A4E4D2229B0E50" + "B478E28595E564122318ECA4DE680E354A745501A8A11AD263E" + "22B5A69E2F70A3F53594540B2B9160C3057A32E633C616F6DBD" + "F8D6EE19936CE8EBE8BB7BBC118D720EC88F3536FAD10FB6238" + "01C720D07365148672384BDC9039F0118C356CE20EEB8CE68E7" + "C85A0E4BA3AC5BC7B21E6B567F13FA1D5A4DB953589913CF242" + "4B7B3DEF3B234388B7327A4E737B590B9AB1EE126D949C63042" + "0A04C32EDCE22DA326236980734249CFAE18AC0FC2A253CE77D" + "2813694FFC66B0E60D3AD245AB4ADD0BDB1CCA7E4228B73C183" + "35558959A06BBDF24DA8095184B31CDE2F4DEAD983C9E29DB2D" + "4A3C5C40C7775EA30A80CDCA44B4DB2783379074017FFB6F27E" + "45B86F26CA42742DB1B11E11BC5B99D5642E482409AAFAB2BC8" + "33B31774A8AC578BFF32131D714B2F8DFE91F4DB4448C34E341" + "D26FB64AE00E5E985F16A35857E44B9A846402858A192EDC0CE" + "B7A6FBFA90F0EB6D743BDA4BB9C9E621D7433AE693CFCC991B7" + "1EEC3B03DF1FB03BDBA05A63B9BF17C3CAABD40808CBEA2DF06" + "97C8")); + test_hash_extendable(&nettle_shake128, /* 134 octets */ + SHEX("77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B328561531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383EB497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958951CB2068CC6"), + 512, + SHEX("6E722A099B2B47E38C69A0B967420FC5C1CA2926568BCE435E5" + "F97D945B261C61483B45F517827DCA03FF3AE670883077D5625" + "112ACA377E731364932767E5B3AE406ADC06283549D64FBF3EE" + "AFBD79064420EDD544914FA479355F6BC6CD0A88269EB1B4C5E" + "6E2F43F380BA5C1D343338FE73DA047E9AA9A06C4A14AA7096B" + "5AE025759244A99A8FBE61B7E326841EDD3779A84591E9E44E8" + "10CC24870B42BCE705F06039FE93627B51DBB8163CF8D4AC0AD" + "3983ECCD3A90A85C58AB222463323D5F786292DFFE07E607C10" + "0D2C830436AA1E4741ADC7A7439053045EE3538822CADFE3741" + "3EF7948B67F858951DF901A7E3D39EBAC040EAAF4C6277656EF" + "F711034EE862DCC247672DD0BFF9B577286750083FEF332F630" + "348119461CADC2089C332F9A0078D074CEBEE2E8B5B8A1A5B48" + "18A53E9C99C330DA1682073A7631ACF1BF621C59AA45935FB82" + "E634D2549FF405D36B23327C66F9B4C7E092B409228F8B0C955" + "39C3A9D89FD7FF92D2F811055F6ED23CFD984445F7BE0B906F6" + "A920EE0AF326F4F60D8B5987C736710796B33E58D2661AF11F8" + "DDDDB12A12B196308F6493567904D49124DA69D291D73B104B5" + "C99C002A6606718EAC2CA92F8A6BE6328A5DF6968DB53CA0DF2" + "990B68F0A15A7F8B006BAFF2483A0F6D93281C62FE689F58569" + "09CF3C56C5B16169482CD779A3137B6C702C7641B2EF2E9987F" + "5497")); + test_hash_extendable(&nettle_shake128, /* 135 octets */ + SHEX("B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E793F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3B0FED6A8052FBB"), + 512, + SHEX("7B35855B74D677AB6DBDBBBEED8F8BED3B08DF15055606A7E7F" + "E9F5E319BC70BD9DF00A8571ABB6E6C202461EA00A2D701DA5C" + "3942975C48D78CE565689E36379EA603FB1C6C53B508E0952B8" + "92A5ABA6660980A38FBF7C91D43BDAD1F3EB20910BEB9150240" + "4B21D3C5283A0A88403C6AA47D9DD0A04A23DCEFCD3527E4E96" + "1782A0E585AAE6BC9B7E6ACDBBBFF9CC76F757887174CEE9CFA" + "531C380467388FD2153BA8ACC2AF706F35667253216D3A1E623" + "A747748FAD46AD65265E4530AB84D39D9988EB876853E976156" + "900D9DE464CC2C57385F55242608C9E9C26B67683293B1F8318" + "1C60BD77549C576F2BEB8E54B3EC5BE2FEAC8CD340CF104B0A4" + "9D9FB484B538296B31E30E55F7A8421E5E16B91869214D2F7F4" + "DC68736E09FF2981518FF83F24D51E5F9D9300938600EA6C007" + "C9C98A392B2E63216DC1F07EF4D602F47C1F234B857D8650D23" + "EDD344152EBB5DAA47BFF8E394931397AB2231DF1E22C566384" + "112E8560E69EE422758E8A76E03D16770E5D417B6FB5C68D9CC" + "93E16759987FE02BB8C99B8D368248A6893ADBEA888315D4AD2" + "51FC57FB1EABB2AB314B24ECD374F4566989038134788F34445" + "3714F05A81CCAEBE92C75200FD8A019E33A362722F222708C4F" + "3894307D09A4B4D3666002A8EAF2D6CD19DB119A957D2B66B0C" + "788241CB7702DDECB63142AA7CA5B028327CB51D72904F2D819" + "B707")); + test_hash_extendable(&nettle_shake128, /* 136 octets */ + SHEX("B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F835D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB37674C6F8E380C04"), + 512, + SHEX("5B31C72A95D9EA4AB6EBFB2B2501F14EC41223A010E123B6886" + "5DFB7061F8CC00F69BE86E56A376A377E9544860F44B543B48C" + "8A56C6A25546AA7573C29DABA9B746A94EE82A33825047C019E" + "EAD9E7A79D50362F649ACD1EF27DF8BDEAB02965AA0C0CE6731" + "2433E0511B19A5D213EF9720E688A80CBDC7BA1C50032701676" + "BD4AAB79675F85F76B7458F3E6D723C62802B1892F0C2B45138" + "142AD9EF329D771E6873BE098CB8C501C3732836EED9165B69A" + "D40AE5A642D980C7BC843FA76B605FB68872DE523C591CE09F2" + "1976AB47FF64F773B5D7EB54366BC003FD6F75745C4B14EFBD1" + "ACDFEC8439550681208543E469274A1FDDB16D4125A01E91078" + "55149AEDDB7E21298DD8C309AB1C1BD506F2D377042F27FC275" + "017B642456C93FC882E3CF44C1978307E7B9BBA16F612E28E99" + "D2E18D2D85DDAA235FE65EE40D905A845768372DD621E6394AF" + "A4C59378DB5FEEADEE6E342D004598779F08EB9A231BA0CCDA0" + "A1C7D19AC741505F0D931C73F241D1999EEDE40AA53A8A47F62" + "9937D29D1A6D2AEF1807BE7C333DAA332B4C5551A7F37177F48" + "4740BE772EB03D04E82B2487AA65A2E4AD00F553060C6A9577D" + "21A6C3B731D9D1659E54BF14CE4E4B7932250A8F3711FEB7D99" + "97A5C554DBA364DD1F16AB4F34B37FCF5AFBA5B06BED58E6ACD" + "232D69963AAED993F51A1C4A2347D8119D381686AB094219068" + "0CCA")); + test_hash_extendable(&nettle_shake128, /* 137 octets */ + SHEX("04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31BD0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3F22DA873C601016A0D"), + 512, + SHEX("D4D8F990ACBC762BF3BF4382EE78466D36AEE8E7D3597C8ACDA" + "E9A6245020BA5D936E82C2C8D7F861186D428F3ABAC5E1F5F4F" + "A25EA3FEB4FCB850ABB7F654167118574A730CEB1EA5D4A3EF5" + "79AC58169CD02DEFB896FB0E8C0797D9A326C1AA696EB1AE150" + "EB2ECE9B49725FC6C285AF8DA2908EED93B6B01512B80E03BDC" + "74E9A528843ACD2B9FDEB352230BC1BD9F0F94EB5C935625953" + "0E8E0060E0EB0751EE2F5CFCC2890E0FB8E5512530EA0D6A747" + "5AFD535C34BFD14EBC48A0268F3FA671E87EFFE404D63A03EE9" + "2759C6490ADDA245BC924D582209E7406905678CDDE5529F68D" + "B56602D546D2E36F5417DB7D3ACBFDAAC622A65560611FF98A2" + "62558B304728CBD7BA748174C0EB2FAA8907E1056B4AF0F820B" + "849BD9411129F4FCF0CCBAA3400C2B7B16A2126C53EF6CA3512" + "2F8A8B92549E6AB330C4436268080898AC9C03C27CEE9164EBB" + "9C4B1E54D211B65284047F2C535D3F871FF50B81C437DAEBC09" + "507A318C296F1FF48572E4BABEAF96082B177B4B80BDFC2F99F" + "C5B5BD6983E0DEFB28C98F5EB2ED1D4B36641D3DDDED2D8268C" + "10900284B8146359694F4D09F176EEB550B7629E6A936E0BCE2" + "877C8525CF4983327227E13B119791D465F9FEBAAD25943ADE5" + "631F1DAB35AEEB7312EA7B908D19F257015C1CF6BFAA2972843" + "7F7620CC9C0B00E79F684E4F4313375845B9B524B3842FA0DD1" + "560B")); + test_hash_extendable(&nettle_shake128, /* 138 octets */ + SHEX("8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBACDC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F1701373FB09A1A6E3C7158F"), + 512, + SHEX("77A1157DFD30A79C34D64CC29B9712C9E1CA76CA5565D0861D3" + "37627C20A25D85AA061B876A850B43C5EA74946D03E35B66693" + "36AA47C5859EBFF82333C03741BDB0930375C34275F2B2CAEB8" + "3CFD28965DA12F60A646EE52372773DE04613A3DDEE266E20E0" + "AC047B09260E0B69F4F134B5AB8EEEE481F887087C0F8639CD3" + "2C19FA514A3114E938EC70E8E7E6CF40D11342775C0AEAAFD8F" + "8B2DCC884CAA603BC8FFB7A282FA6291BB3AA37F37CF9707632" + "879532CC93C6F5C46FA6D6235D7FAC64DD9104FAF484275CC63" + "5C3F732C30B155E22552D2BEC2967AF002683DF1286F98F25D9" + "16EA9972DC6D2C5AF1A1572BC5363023621A33C0FE41285148C" + "A9BFEC731ACF75743C9C64B48BF98FA32B6D92BEFC777F6B299" + "96319BDD632D56F1BCEA5C52DB9E72BC71D6CC4D1CE7876B02F" + "D48E4EB1110D727AFBA35AFBF8C43E3445B650F06C91B90B12C" + "3036EBBDAEB3D2193129B22E188469A3C2D469F24B530200A08" + "E931B2E95891D966C7A50C2365A73D169D010FDCCB7F3A739D4" + "A589A84780ECDD84BB34D54EE5CED2C729A04B27F9C82DEB329" + "E491C7B462308C397BEEC649E4D76239A75BC8BF28B1A8CBB81" + "F25F73E53E19B882F0855AB1E93D45F9293508C66C2211E9782" + "67686F5F54AE987D59D73DB8144834FDB2DF2D52631C7671ACA" + "994A99B8009C98A4F847B71A29B3A0636670721AA58BAA5A11B" + "6FE8")); + test_hash_extendable(&nettle_shake128, /* 139 octets */ + SHEX("FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943FB4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F339612E830E9E7A9C29065"), + 512, + SHEX("4031B77C2A88AB9A31A357652B5EC18239EA42FEF5B390156D7" + "A50A1C1D826A52297B169BC808725B00A671F83F856FC37AB8C" + "48E5D12E277558896F19FDE5038C03A95A3762FF48DFAE4D644" + "B904845DCBA1145084E6B7316FCB5742F31325308942FC31D7F" + "465F6C4D686BE9788DE37FB57A6CBC67CCC39F09831ACB1B1D8" + "010254E131FF7A05031F031E6375CFBED440BF0D66F7021A927" + "AD249BD3C78E2596DCC4E4FFC58D0F7331BED5BCF249C809283" + "2C17C701C65BDA1DC9C50894726B04661F5FB4FEB570D5D3773" + "E33D2DCD957C171ED631E4AC5A8F42B3828F78BA032630596DD" + "8B8462A2F25E502B25DA1747D80F96DAFFF366E787A340A0AF4" + "3AEB8D95D565B1BD8D7F8DB4FA4C76F5F8422E6C240339C3DFE" + "8D4D13E1DB745D8212BCFE232AA5C519BECCF64B38085109753" + "E2FE5014F9EAE6761D6D600EA05CF0AE6D4300C7670FA184933" + "3BB739B43A7CE58998E4F834309E9505856ED020EB8205571D3" + "FCBF3A9D316A4A8B6E3A397C0200977CA95E854AAE35A5581C8" + "8448966112FFC0128F6A7B5DE197019D830C619D70803B72D31" + "8D78FA067DBCAD646857FD8CA5B6FFBCD7E0E3D02B6D13EA02B" + "9C346E0000C2488FCA6E8E868FDEE7891FA12B095860B11B7C5" + "459465D09B6A7B388D9BF6EDB0B99486A8C949DCB2431CC8EF1" + "3870BB15956B17405DD1047B6D54CC74D0D4EDC3DF689E09D73" + "81C2")); + test_hash_extendable(&nettle_shake128, /* 140 octets */ + SHEX("9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B83610564545642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60377838973C1D943C22ED335E"), + 512, + SHEX("31B51A74B7392B14E2FD94E248E7FB7740536FB6E88CA508D01" + "9066C6CDF83BAF2162F4DD175BD7E78326F1A5D6BD3A9D9B587" + "4C474C08612EDC3935EE24BD643A0A3ABEE5626C43E99BFC73E" + "A434872AA22BEA87311AB71880096CE23085DCD489FBB2CEFA4" + "CFBB06D12CEABD4B1D28611606CAE04EF71E7B37E881C2C1089" + "E08268CE45E0D25AAF6843B45AA50F2BFCBF8FE291FB2745B77" + "0CBD758CB0A86C8FA439893D93B5667011A8EBF345FA5059F06" + "2DA72D0E5C3417BBD3C6ABFF924EB6BC74F6DD0B30BF4884811" + "7E7820AC9892EC18DFB1B567612627F9C2585342D165418D211" + "CA7FA4A1AD6511D3B68539CF2DB2F6C3A4C1055785517E0528A" + "6CFB006B54808D7F897B0386F7514897874C5A4A3A30D8D8A27" + "7A6A59710D0BA870DF52F2A0916AEDB0870963C205BF49C6A22" + "51EA92E2F9B4A9B9DF98BBE752A5DC258E55A8B3854BF19873F" + "1908E95B537DE470319CE3648BBA5A038D11C87B4FB9DFC9ECC" + "A1BED391C0D48825B022132DB26FA3D17D60985D5D0611353F9" + "6B03C4B5831FB9BC0C411D1909393B54734B59B15EE26A19524" + "38C886D61C5FAAD119EBE8576AA904F18FBE19C549ABD70F02B" + "1BE98D343CE0082CB6005DB51A6A10AB5E50A89EE44F3502AB1" + "9D62C04637ACD5C49DE78F5A509674AE8EAE906693FD8110E0D" + "750F61562D088E0B87DDAF96FC775CEB0F13800669BF2A00424" + "E6ED")); + test_hash_extendable(&nettle_shake128, /* 141 octets */ + SHEX("2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F2D0C9E7448DE3043AE22FDD229"), + 512, + SHEX("3CC7FD2AA14A9DBA70ADA029992842231C54ECD7D14FA468742" + "4FE1B54A58C7DF8A1E9C87569B695CDA9B2A27548398440C77A" + "5A66BA94217DC24854462FAAC1CAA8D171E610B6D280668BFBC" + "87C8EE2160E148A6EEA29DC04A57FFC139089AD5EA85F89EED8" + "9212EC7439530767563137A4C028A5FB28C1AC53B3696282560" + "E15C1585E51B799273709CC5A1C1A93C774BDB19C4E336CDFDB" + "696A39EF6A8ED8EEAE92C5660718A7E90C691C84A56BFFF85DA" + "418C9DF7A913352FA53D8635F9FF4644B8EF03892FFFFC937BC" + "EE4B9D66154964623DB90BAB15EB783EB14888411CFE2EA417A" + "373BEB4BE6CA5771F6FC0EA8266D56275F139EB3A90C3915AD6" + "355287E06FFCE64D84FD8B0E06BAD9DFAF7F7EBC17CD7ED3169" + "77AB481AC47253E2508D349993FED324FBF97067AD19C255275" + "D7EE2E119FC0F4490C62EDDA700C27B5088D57A7223729A64AC" + "1A418071F4365C61F898A350CB9B82F59562847016A40E72F86" + "2E10398FDCCA0B86FA1F92D17F35A07C46B3ED570738D231DF3" + "B80B0C2261ED932822D811970509D7C664D20BFD597543B3FF6" + "1D6CE3B6CCF924ECAB5FDD9D0B0DEB0444E62D950CB6A688BF4" + "70C53930B44FF4FC9B4DC7903E97BF29C5373582DDD79C115F6" + "6D31F839D7BBD34808539025AE3DA3FFD56778160E18F8FCDBF" + "6744431D42CAF155028E96CE1096F856E805D7435AB1DA52270" + "8411")); + test_hash_extendable(&nettle_shake128, /* 142 octets */ + SHEX("94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389ECC64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5CF441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A5B6C338CBB8F6659D342A24368CF"), + 512, + SHEX("4144315DAE1FA8FA09E41ED69B72FB8FC64A62F8133EB9C4BD5" + "3D6CA7C3475048AFE1D0BC778672D715ED01C5532B393888BDD" + "BDC4D43DFD82FBDE560A80329D03AB5F4D62358E65D36EAE409" + "4880E810D022529A8945AC9BE8255CAC708FC435310A7741825" + "257BABD70E84BE8A0099CA66754C135476340F1438237D7C227" + "C31353D3878E67A1856868C665CF049E16FAB2FA6A231605371" + "2C3EE808762920FC814B3F336FF8C9846CB43422458F743ACC3" + "98F922EEA476823CCE9AABA48D159C55BDCE636D231F18F49C9" + "B70794FBF1DBC4F71D87B917EC9D1AD5545A4471592883D63F9" + "1CFAF7E64805F82411E715BB61CD96EAF2AAF6A22C14790FC76" + "310FACF3C2FB78B34D3CFF50BB3F3A19227A18A91E7A6D3CD38" + "D5281CDA2CEBE333C7EFF4D357C55889109D5E0B762471C565E" + "1AAD50839D0298EAB2723EB4E9D1BE73FBFE507189E5F20C54F" + "256084E5EBC04CC622B080EF52C38329F301F8F97FFF2A7D824" + "9E2EFCA30BF77A8A3B9630CB5AF5E9A34318B94E17BD8248EDA" + "BDEBFDC37E3476155434D32B7A7905786487BA232786C290BDD" + "790AC255BD100EFAE4BE59FA6B1674C651E8EB9FD2ADC4BF5BE" + "6A763408DC558825B3A22BF141FA45E6DF862959F9F47A91BDE" + "715AFA65099573F1062333FFED43870CECFAA423FD2211F8238" + "9BD80F0F033B4FA12964448846E55AE2BA46AC9E7422C228D75" + "A1BD")); + test_hash_extendable(&nettle_shake128, /* 143 octets */ + SHEX("EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24F6954BA0801A1294CD8D7E66DFAFEC"), + 512, + SHEX("95597492CD331A89C013D6179031DDAA08A90FA825C5A77BB5E" + "27E32EE7EB1F02EA0D348B5372EEF60A45A84B84D45C1869527" + "0FCFC07F3EC95E00A2FFE901E5C9EE3DAD600273AF0D73FFECF" + "AF141C3B63F3FAEA90633917E260857CD1C4ED198FBD4753E82" + "A42128F2525764B5A40A66E1623B81804BD3F17622598BF39FC" + "A57D8C8D0E2E2EC45A4EF13A2B6B0ACD6E6878BA5BAEED796E3" + "B3498385AD7E88576EA08E148698BE845B3D7483371B43FA9B3" + "5D785A0028BA84B0C8FD81122935DC09869E065D47D95287D3C" + "B4346D8BCA8BF5D4DCA3BEDB1AAD70EA3B5ACD48C5C02FED30B" + "4706C104DC159EA96971E8F44248501BB782DDC201569622C1F" + "98E893F820D149164F9C465C41A998FFB561CFCD7B3E327F789" + "61636192D6158DA80A7987533C01C2DD380912C1ACF14330B85" + "E93CE05F2238AD0C1A05995B631ABC9CFBE70ACA565E9A1CDD4" + "24D3F8DDFEDDC0D3D3360CA917B30D7216A85A14BB13E8DA292" + "28E57AECF1906B084C72236B91D669A312F01A4B7787C4DECEE" + "4F63CA276F63766EDD2E46555C328D538581E86F2E3D74F5592" + "C1016396082ED06ADF8DF9EA53B5E0C020AC75B636A828CCAFF" + "C064657A657F24E62107D772AFB24A5EDDFDAA4EAF2B99341AF" + "FAA1651010E15F6F4E41A67C1EA2101BF5A61C491D5A88577C1" + "FA3BE0A0E0781C53BA9F9BB85DA59C5D0F3B2AAC31F45C9CA28" + "3928")); + test_hash_extendable(&nettle_shake128, /* 144 octets */ + SHEX("157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5FCAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBCEE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28256FB33D4260439CBA73A9479EE00C63"), + 512, + SHEX("E7814E78CF280CD8D0B27B311476F21D6185ABF37FDFE285114" + "3EC3425F12DCCCC0FAA95B2E6F8ECE8C4156124C9DFBFFA7762" + "4E5A4A9553F11675844C3AF0E816CEFCC3EEA430D7C730CF135" + "FF6A34E542E50F25FCBDBF3A051F39CB028F20B8D6F85221B7D" + "CDE00D7E45B78529638508AB2E6BB8D885752CA6C97455E6156" + "4C2FFAC68E5892BDEDFBADFCC88018A92B599807583E9B8BAD6" + "2306948FE52B397CF88D20D440898075E3674FD09469D1FDBBB" + "2350751F21E48BE74F2B04E7A148286FD25A90995B5A95716D6" + "7AB566B78394746DA84326B83CFF482F82DF9B8CBDF3D92992D" + "0F05275D37AF3FCD4CE211A9480DAD745B6CBC4789C9015AE23" + "D1C3A25D067C9A9F7E611AD05B8D44940AD622C48730282789A" + "839AF93D0735725CBEE9DC4231E8773B6DAD31178053014F114" + "21AD0ABCBF32B1E6386691759D58EF7E2A6E2BBCC11B5E62CED" + "89C4BE975FDA74ABE9395DFFD9E8C102A5142933252D94B0266" + "FF776E9224985F3F2C96F7BEED03BA881B99479862F8B7DFA96" + "AE0B2D2A97F773164E1B473A0C671ECCCEA64DC67F3A53A21E5" + "1B794AFC4531AE4F41898E250C80622E123B27FA28EB7F07D4B" + "4FE63D75866FBDD730B54A9297697F541FB429084AD43DC69CC" + "E73C6C17253C481A002AD7EE11FE077554A4BB45ACA4E9D8B8C" + "8E8407866C011B749C3DBA372C2966AA0C20F43C86C01EA74BE" + "5BFF")); + test_hash_extendable(&nettle_shake128, /* 145 octets */ + SHEX("836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72BD8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BBA552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A5994C1DBB3B5C7871A11F5537011044C53"), + 512, + SHEX("50F678CE2970C84EA11DBDAF399535A692DF95267340A394616" + "760BA82BAD865F920932DCE65D0F10B5AF1B378F76BBE05CD8C" + "8E16E5720E527326FBF375A5F08AFF54C4554282058636C69B6" + "010330C1DEFBA22F175BBFE434B6430C24C06F034F6BAC59D10" + "63A4DB1FB4243162F368385C5083A93A7E693009BAB0F3D8F24" + "AB45F3D20E9582D1E9D0AF578BFC8C9A0F09A92E4D76643EBA4" + "6E71AB177307EDBB2DC46139DED52FAD1459A41114EE88F439D" + "DD064600402E237835797B4BE67EFCECFAC28D9F3F8B8CC7731" + "47400526202984C0CC2CC6616AD2EF5E0FC16509372F9EFE63D" + "66CD41C61AE88928411054953BD95813E520E02ABBB52BC49CE" + "F99CF09BC3C83DCFECF2F6F4768ECCCC8639752A28531C0A403" + "8284C174B34978850B02E45D7810C4FEB224E3DE0C89CE69B06" + "DFEE9CE2ABE8AFB209E29194ACB6C526EAC490D5A9518D5A7E1" + "C1A7CF734C92579D162F2862EBE0722E2DCE53DFFE84A52A459" + "B9C1D0A677A41B0F1A945AB597EBD8544AFDB1AF97CC1E3027E" + "C287DF62EA1E81E91CF4325D202DDAB62E09E6094FAB327CDCF" + "E2BA6F760C2FF7D7992A3FB675C07F77DB5BAD69056BBD3A50A" + "0A24DF64A73ABC3CE3C1F131E7E6C76F0FB207F6D6DB54C8D12" + "8F2C8B670350602D7B0A52153452CC92EE4F185F4570405E54C" + "B95647758A31B8434EBCEFDCBF00A43857A58F6506CF8B7AAFF" + "3B4B")); + test_hash_extendable(&nettle_shake128, /* 146 octets */ + SHEX("CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B14C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C011674E53426CAA453F8DE1CBB57932B0B741D4C6"), + 512, + SHEX("C860CD3E9223E1CB941E130F9F71C376EE3A9B89DA339C61D90" + "FF2B48D1F285FC48A4B6D87C199989D3CFFCE4FD84699FE385C" + "7CA018D4F31F00E41216412932A833794AF207132EA430B0720" + "1EED784C2FBAF9506957FB9F7E18EB9FDB06F051419BCC7D67A" + "CDB93A9F78529D9B5344AE3C4FCCFFC406350847E228BE20C93" + "B22760BA43977451B3740BE9E3B283C86959CF062B69D5BCCA3" + "5BA5362EF0B2ECFDAE225CFEEAC473E420EA1AB7CA03D4F4A82" + "F6C32FFF843712B78476ACC46E4B88F280E3612D5AE2FDB94FC" + "26D5C40812B0E9577DD995FD4F5282E180C37A02D6140FC88EB" + "F5972739D591F13AEAB894F240ED4BE309DAA4F3B0E2D536F3D" + "EF87BA53A881794B80EFEEF855BD35026EE9D8492C90208C313" + "288CDE719A111BBBDC3BB56AA218ED1B466E6E01728DA23950F" + "821016F313A69665D43BF2C619884D20E83D6202ACBF85BF86D" + "271A1633F32372B067BE55570CCC2C7600B0CEA6133FFC787B7" + "43F3D2346564A2D598049D92F9C4160873AC7E03143BC3AC536" + "6EE6C4621C25AAC1E0AE4EFF6A35ADD223A61DD044593629C08" + "2603847BF2B7F07A4115DC1C87AF0F7854563EB18FFA8E24EE0" + "9E299738FFD4F1E79019FCE4E4582B063EC1F36442B085F82FF" + "B99D409B4F692A8EBE9AACF2589306204FE0F16837347639378" + "3874525FB808C2B90F1FC5D7A368C90AAB7AE46E21FEAB48D66" + "7A5A")); + test_hash_extendable(&nettle_shake128, /* 147 octets */ + SHEX("7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA7083872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5DC9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1C09FE6A1FA13EF3B96FAEAED6A2A1950A12153"), + 512, + SHEX("97AFED51EA7CE6D0082A0EF242C37FD626DB617DAEC0C967076" + "D8E63E4861DB3AE1308F19EF4B9F0B7246AA0E255E7535B5C70" + "B341BE15EA4537CD1F0235C0F9E60C2168C2B04FDB3DD871460" + "E0BBF1E3193D04E171E0A24BECE6517CB04A0B020AD042F2868" + "0ED42EE01D4A05C3892B0654C961743591722054CCB0756341B" + "54643817802B3E05D70D71E339E487206EC34765F5C0D234613" + "5070F50D28B8AFD91EA2E88FB9DBC1A932FEEB781F13FE5E047" + "F7F43F51464B9D28CEB8B19BF34F03C1C9D1DC77A8FE475B349" + "251E7AE0AD171C1FC81B862F7F73302F7B48337EDC72D39C597" + "85C5572929A6E4F947632B41ECB4EE9BC5E69CBB746E2512986" + "D3A23C7F455FBE5F1891C7101BFD3AA738C5C84BC194753D967" + "1B8F3EEE5A35399615537121713DC85D23E0A7B47B55DE82C81" + "09DB1E0CA96C471F366318E5FD9671D6468A36BE694635F6524" + "9D65B9AB9A6E6A5361E35350CD258B8DD145A3B68DCC900673B" + "D1A13369163E5B5D3BC524849F73C68F01C7C8B88C9643341D2" + "25E13DACA45C62D9B5693E2E04163F96454A52B4BAF64DFE229" + "3E438E511854A99682059BAD034712FA3E99384244F83AEF74B" + "96848D338CCF439BB073552137E903767117959A2D841A157F4" + "68E597522515BC43B121B257B698234D19280C4F41EB865882E" + "4ABFB4571DFCB2DEC5A30CF7D6E867F8B5E0880DADFF8DA3372" + "30EB")); + test_hash_extendable(&nettle_shake128, /* 148 octets */ + SHEX("EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DBE35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4EEBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733DCB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26"), + 512, + SHEX("1A895365874A70F2304878B1334BAA09EF898A0607F3243410E" + "F04B14A8490C193A18FC2FC0AF0655E219956A8DD3C7055DA00" + "345CB411AF9167CB9BDAB8939D1565647EB251B7459045184BB" + "050F3700CEB6285114509C8167DFC122B33CD3DF761F37A3573" + "A75F5C16AA2376B3270A26522869157A3BF26C4D30A9C1D7B4E" + "7490FC9FC5A4EEAC331996B16574A27C32659D0AF52E0E50F0C" + "221342BBFE2AC04455B659B814CB888DBBC90DC3A899FDC538A" + "E8E8FEE2FB085FBDB79830392084FA1761A49619018F5EBFEC3" + "1BE185F0945F4CF9F5A21AAC1DD3F1F3C7B9FA05069264F6368" + "EE4D3BE24ADD6CE5B70E328DFFE08043587C39213DD66A6890F" + "FAD586F9B13CF08DE44834278E04DA2F91DE05257E0AFC44B5B" + "A9BFF15CC6F7EE306482704DE0FB80B93ADE6537358B252D050" + "BEF48B9A246CA75D62CEE920272B9C4B06FD39FDA8DAD4D1C3B" + "01ACC5D507299D44DDD034D21802E1FAC9E02A7C7CDB00F64FC" + "7794A253B1BDC042C35416EC64A3392FDB954D63BDE0C1BD7E0" + "8CFC655BCD02E27537EE61FAE64C0187CCADC045F91F3BFB175" + "8F224AA8768981617F20C889A390B59588E366648BB3A8680B3" + "431A4D0596FC5B5F95C4184BF361B7A2CBEEB424FD08A98B322" + "C37F703A73FA874946CF430A4F068BB1D16898DA8F9BB04C03A" + "B3F068A36EACE3E2227E7E92BB189B1A4A14C9430EF5833214A" + "62EA")); + test_hash_extendable(&nettle_shake128, /* 149 octets */ + SHEX("1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4DF1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC546C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A02218595B3658E8B37382BD5048EAED5FD02C37944E73B"), + 512, + SHEX("97FC612935AA839179BD26673524AEABC59FA66AD4F71910682" + "6D62D56EE0201965D4659877928087D079948D4B3FFE6CB55BB" + "212E802807A0B9DCE7C6CA2CA07C357943891A5ABE2DDA248B8" + "F703236FCE8EDE40EC6609DAF6E012791C53E10B0000EF3B8DF" + "19082A3EAF5C0C0B524816B66BB7B08CB6B65207D0D7C84432A" + "F10A552DF425FCB2FA965728EF2B974FB59065EEBB105719D25" + "34A58435651D743C91FA1953255F777CF6F92D3345AB9AF11BE" + "F3ABC00FC46DC4EEA0557DF7B683FE58CA3887311224567880C" + "7FB5FFDD5B24B3B8EE66E63FA09202D3133768AC2A4933C9231" + "59D651D616791A1A2BDE91EA53736EA6B4A097BEE70F0EF943D" + "D246184EFAEA018B9DEE2C4FADB93E7A93E40273B5938647A6A" + "10D31A0354DEC08A03937C9E5AC71F52DB0F50F6D066169C03E" + "883476EF512ECBE2D109D5015A1BF660EA842436060ACCA32E8" + "46612E8FD799EEF914E1EE2093BB2E30257BF432D5DAA8AF876" + "25B07C3C6327768F0867AF0B80DCE96888FE27203BA076E5B8B" + "90ACB51D2AE442B424D6651E8BB7B36BD770C3059CAF189AA6C" + "C8575F16B58241FB0B7454E089949FD3AA8B347E0A76D2C5BE5" + "4A60D9DA4BE789656FCD7BD5ABB9851EC7B72AD4BE53D9D2D77" + "1EA11644A9AEB6061D74293866CB112D89E93BA0CDB02390AA6" + "6F5CEC4F9651E306876FB5100F8EAE6ADCBFB87BCE433983768" + "D2CB")); + test_hash_extendable(&nettle_shake128, /* 150 octets */ + SHEX("4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF805689004FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF262881428099C7FFF95B14C095EA130E0B9938A5E22FC52650F591"), + 512, + SHEX("531D6B06BEFF0AF847CBF3484D1DC52B2E7799D3C5C384B2585" + "8603BE71B0C57AC073A330B816BBEE8164116424AC5AF8E5B44" + "E875E9A6FF54C54E4030CF51215552D53FDF24FA63E95590D4B" + "11A86E305AAB52A62F7F8B62FE3365D239B53B540ADC34303D5" + "FFDE35B702844D05B3CC804365BC38C76F92F1EF81660FC8E8B" + "A535EC58D2CBC4B0EFA6D840F537740675A1EC1619A8956BA91" + "D3B91D2417C4D151AFF2CF54880B0F7B8CE36A432FC44B30312" + "FE9817BE795F07C8E521A183930EC5422079B915FE6ACE193B7" + "F59928A2F85605D257FFC3FAB1762CBAACE675FE130CD4FC901" + "38AE5303332DB73C0649459C4F8E0C44291AA61EB3D5982E77E" + "1DD1EA3646C2557E62DC13938E805DA7AE0CD2B3EFCFF6E6E61" + "A8F2793E94665AA13456453282C7DB7ECCF7C52BD5BCD1A7A8D" + "0FEC0A5D69DC71FB78E8FF08C7AD7420C0CA52C80E274D9BC62" + "3531E375FE41436B4062EFC72154657536391B91D43CEC7EF9B" + "19B901183B70866EA2C4416021A339B827D23626380D72AA8A3" + "D66BD4E119B2D254EA426F1B40CC564DB0605E015773907DD96" + "4471710E7EB3435C6CC7951BE6AD4207F40485693F57ECB41D6" + "774A840E495CA1DCDBE1F112F61F8E135F1245FB09059DDAE40" + "250862C79BEFC5432B50B8B8A4CE0804A3127697BDF3331D3CA" + "DEA1D459F565E0F2AC133234160F8111766D31A89C64351817A" + "E4A3")); + test_hash_extendable(&nettle_shake128, /* 151 octets */ + SHEX("D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A815067FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48"), + 512, + SHEX("4F56F2BAADD2B624F6643C1DBB5ED95F05FBD0550C3E5829472" + "734BE3B4064529CC3DCB3F886C65F074539D3F1B13215256AF4" + "952784FADDF00E184211DB2EC238A5EBDE55DAFA606B0AF6D10" + "8791F63121865B6D064CE12E446C0B719A856B1647DC4BA1361" + "4505D9B3A91417537E0B110D086750325AC8A1964B8A36BAB91" + "BAA1141DCE862167A1EE4DAA01DA6B3EC875AF9636268CD995D" + "D980DFB6476C0BCBDD8430462AA56BFBEA69130DD43640E23DD" + "C4D9B469A521A533DCA9E8A197130C3A9503393E958A77CDBF9" + "F93FCA6921283C96EE38C7EE92C7F0781AE962C68A07014D6C6" + "23A3338A1A19216925A432A9971E7F6366ADB701EFC4D4404E0" + "2DF452F9A6B9AECE18AA61C56CAB2582409E4E741B0CE17C6FF" + "881E3F509F536F8F681268E71AEA6376767F5D49DF3239C6577" + "5199B68C84389D1D4A426AC10D42046FD6AEE02D4E0F48BA2EF" + "CECF83130792996801E64B81797214A2EDA5B2296550A13E38E" + "7DAF36F9F2A7B89C1DD0A95590E2B77415C3A35B9EEB89BE993" + "333551D52835FE36D91D2F205F626FC03CC4F9386E4D815F6B8" + "B128A9C13AF40386538AFD481650EF886D3DDB7B0772252B73E" + "9F44D7822CC99455FE118C6D1003FE24F304B83E6C76419527F" + "1CEC5E5CA57F7911554D1515A026E573D9D4BF5FF7536475AD1" + "4BDB8490CE353E1EDFCB038DBC2819D4EDF325D6C3479F2C3B0" + "2E67")); + test_hash_extendable(&nettle_shake128, /* 152 octets */ + SHEX("842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E7201E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B2506915BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717"), + 512, + SHEX("F153AFF7498C363D04FF8BEB191E394852B79F54681E8D03F04" + "B31BC037102BFCD4E7D709A387A89C7DD124FC0192B586F7AD7" + "755C36A8D5DFCB6DD855671298006EF379D2CBBD12CC5C05186" + "717A3985594F19FB4AC62C673CEC6D374114270EC32E8C0946C" + "3034AEACCFC38B745D758791842995BEDB09A4778BCD504A961" + "CFDE3208728B57D246ABBC99DC632A2396AA5B3497D4F1F94FB" + "2C90A5A1F51DFCFFAABA610C747CE10E5EF2ACC9AB03383C8B8" + "DC73517E4D32FA7118BFF599A83F937358F7407B4EA4771D5C5" + "04311DCCEBC1262B464415ECA2E3662CA7DFCCFE38157F15B36" + "682221F65B6F65877726072B9A30C0028DBDFD14C7842D99657" + "778C339A5248AEDA1DFA8B9ED56B79F107CB3E690D56A3DCD5D" + "B03C47E46D29C433BEA894D1386133A78E8EB83C2E6BC2E7593" + "CC3AE4D2C0BDA573BCB16E7C44732A370FDE3AF4DC452D029F4" + "4DBE0F539811DDEE2CAFA9DAF752169FEC82EEC4F35093237F0" + "ED1CA6CE62A1221AFC870020B0CA219D03E5ACFEF2592DF5916" + "FEA97154E62485A38EFA4DF203EE808B12692064C609F29EA0C" + "6960569E102122AC74E99A992F37C1A090A9927DEAB998303E4" + "7487E2910760A6D604A73C78D66213A5D2C28C91528340B2D63" + "71A391C3330FDFAA70C5D109A209152D21B63CF616C9C78621E" + "FBCF52064DA08D90510EBFBD957E28053EFD0B78F28DAD025A7" + "2127")); + test_hash_extendable(&nettle_shake128, /* 153 octets */ + SHEX("6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D27157E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A5503FA829F707272226621F7C488A7698C0D69AA561BE9F378"), + 512, + SHEX("D44138D25419FDCEBB743314D267D3AB2839CD302EDB06DE0EF" + "EB5B837F19D7CCBE8A1F22922437FC4EB591BB23EE25AF00BC1" + "BB3FC6F43D524D5B8447AFA47D966440F620D45C3CE7B482FCC" + "D768E436AEEE5C25E9CF4C3FD814949B61B40A54CA867825BA2" + "A55E6C3E778FF5CDED4346530BBB8D1685A3300E995291B06AE" + "05AEBAE336C37ABDE854E57180A79BF5BE46F6C879B11FFA657" + "3717AC168AC16CBFBBF5C46F81A4EBE14F0A0FAEE8D09D8664D" + "26C327721D25E551676A00492442E3F73E4B748943B188ED3E1" + "0A22C54C16BDC78AB1FA8A50D6D46EB057DC0FB048EA4FBEE4E" + "5A1A653131855A03DB2FCC39F698D14D28FD9C361818267E222" + "ABCA88EB0326F4672DC1305AF072E0B75674596A616401DF9A5" + "3D44D53FA529A7C28CE7D5A71C97880725D51A58A065136034D" + "C3D706F13648A68AB4665AF00D5D0FA0FF44D1D1A4EBC44B3A1" + "3D273848A3BB558BBCB599300728B7FCC6FE16C5A6948BB09FD" + "1B8185BC6863C1D9F5FFF7F0A82EDFF0CE04ECF004587AD52AF" + "DED64E4E094B3BC15A3F7511620958FCFAA69E869E85DAF7DDC" + "FF6CEA52C1631ED6418C822380FEFDBEC1255911829E780F99D" + "AA9C6F4D729A91F28EF1D3DFC505971593663710F82BB95FCFD" + "1BFD5C3CBF916AFDBD7CB89FBFE586982D0BB7E78D031EBE310" + "606557F83A87FB1070B6839499E4D360E2D36607450C720AB8A" + "72F5")); + test_hash_extendable(&nettle_shake128, /* 154 octets */ + SHEX("51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC27D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F01200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA"), + 512, + SHEX("D03ED7399E6FC424AF6C4F08715B409BA54237CFBCC4B27A2D9" + "7811F1CFAF8FE8A1E72B72C9C0C04587D89D9D3B46487EDA3AC" + "473DC325E2477FFD14F37DA4AE638A2B14E103E2AC9E2F94A8B" + "E49B28DB4144E2EF8A673412B214EE502FB517C480123289DE4" + "25543A51910BCB3B52E9B0A5F25BAA700A3DE0782D4BB409938" + "E7BDA9B9A31D1ADE69571E4F1835E7A89C41F35606B9FD7DD51" + "3200C3CDAAA0B25B6B2BAEA99B79380D33A21678BF7FD80B2B7" + "14E894E61321E559645047F68597244AB611FBA697A07963441" + "2B64E2AC53EC230859EC86300B4544239BBF88558CDD48BF183" + "FF1026636A1A28B512704C60E805CAB7E1F8534BCEBB1D40EAB" + "B8B98877BCA3A98375F2C305803637B75E77EFFDDA79991F059" + "F697910453D2E986C9E6450A6115BA82506376222FE56DA466F" + "A8740707116F50F27911BA028A633E30A4F83558EF664B63B68" + "90B766E46875A6AB2FEAF64C3587A3F3872D179E826D2E8C607" + "9F159C8A54F36CB770025E7628E936B2BCED01B339E13EEDF21" + "CF01B783731875BBF199227B9A87E5DD4EFA361B86BEE1198B5" + "4626D105FF05B293308A7DA89398F50B736D04113F38E3EB803" + "BAF06F049D207E1B6E3C919139BA6A94EF97649151327B2649F" + "7AE1CE88D42CCEE07D826B34943CC5D240C20D084391EA0F3AC" + "7DFA5772BFC3DD37443C14682ACB0B127C66C284F341D5BADCF" + "C381")); + test_hash_extendable(&nettle_shake128, /* 155 octets */ + SHEX("83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D8071029810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F5502840370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC045B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597"), + 512, + SHEX("5C28103BE52C28589EC6B8EA53EB4769AA91CFB8A8F5875A620" + "1BE4F03FC9A1CAA8E582A11FFC6C9FD4CBA3F5E3F21549514CB" + "F8470568DFA2ECE224181B865E224F8F07CAA4A0891DCA60EEE" + "D7CCFD23A62731892A1EF32D515165BCC4885997ADD88F59D01" + "24B53E14677F8C4FFF979E9998A76E7A3041D3FB0EE9FE528D0" + "8C80481B8E3EB77189AA29E64497269F88894DBF7141F211751" + "32ECCC4E56BFE70CD2AAC208A6A0898A474470A5961324E1682" + "1A78AFC25FDB7CF1684295C5036C95DD52478BD2FDA24A733FC" + "7E08BFFCA82387327E69BB63F8E769B423CDAFA965734B666C4" + "89044C23617594B309AFB2F262BEBF447A87F41E3824972FFFD" + "9F4A0D06B4BDCE742123C6FC7B85939DD8F837ABF2990C6DEF3" + "98DF2B44E40E3C25A6D9E4987B1BD636FC276CB0000095CF441" + "BA3FA274F1F95AB321DE9A5A9BCF219449EAB4E91EDFD058674" + "A4E8CC5F8C0831969DE0C17D0EEC98DF883619FA1DF794F2D09" + "372A7EF20BB06427125B6C0849EB80238855CDD3CAC4C496860" + "1D053D7E972785AFF96D5483ABA9D55E3695655FFE879D27FF6" + "CFEF0328764D87F786F6BC74CD40B48C50BD1428BCE5AA96A47" + "7EA02B70D17333FF176F2E70B6EB7BDEBDBD0750414E5F32BC5" + "21F381F1827214F4D5746A40558064D49E5484D54442F7414BF" + "25DD469181D524462AB73B9D31A729DBFB06DA0615FBFE49869" + "D98D")); + test_hash_extendable(&nettle_shake128, /* 156 octets */ + SHEX("2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2"), + 512, + SHEX("0AA13616E9EE0C4C35FE2B921118C67145B8458E6179431E814" + "5DA829A2EFD5B8831B067409487FF6C865B8CD69695FBB2B1C4" + "AE1FCB014540B842F5FB3EA40DCF7C16FF295B2271215F5367F" + "DEA93C17B530C472B6200362ABF8D81F3840738EEA11961F726" + "2C163F5BAE5FED2ED42A936CE1A1917DF2360DDF4DECDAE45E1" + "522400F37D55687CD334B47FB8B55464AB7CFF75E9DC0CE51D6" + "0B43BC2D468F1DD5BF489B690C7DCFCF6E75301C24BA5340477" + "39FE592E8637107CCCE1B3D2E4BC037AAB54B3F8DFE57B9580C" + "AB38A983EC5DE9184AF589D939FB7F6EDC886790D1CA4C780F8" + "2437EEFE261EE4737545EB7379FF09B644936F8EC9775E9F118" + "A1958E7E4687C205424E4A31C08BA819F6827654EED2451F6A2" + "242F81AAB3A9AEDFA71437E5AC288BBAC9505B07E302BCDB109" + "FDC9E2B753432AC6502A3FAF9EC54BFDA1CE399561410B62C4F" + "F8FD922A1BFBA071348ED9F1B242DF772BBA66A76C0C1CB209C" + "CF7828051F0A85BA54D10B4DB0D71E37A77ABDD510EA1FF02EC" + "72BA6BEB54523DE49167BF01594D0C49020CEA7809BCC89A6BE" + "CF9A6C655D9D1F06C2CB1D2D15128FBEC2FC388DC39AEDE6502" + "9954735285463E2684226A10770358156C98300FA70FBE2C200" + "DBC0D60F3194BCE21BCA23AA6554D56503C56E8D4A4B246348A" + "8DAE6FD1150CB6663C113B3F15FE8DF8066C9BF3979CBB3DBCA" + "43A4")); + test_hash_extendable(&nettle_shake128, /* 157 octets */ + SHEX("CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B4460186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644"), + 512, + SHEX("E27B1C3BA27DC48F20B9605C4FFFE0F610FF909B482D213C34B" + "49F0FCB04A927F0B1C4D2C6AB6C9BBC6E7DB696F7E41FA1875D" + "08A65E21D0459170E4BC955E7E596AA01C8F52127E858687E53" + "F17691AD1B1AEF7BBE75D09613281CF96E86EF93850AB4277A5" + "4B45DE3663A906B55BCEB2528A55CA6E17094E5D0D63F3294D8" + "BF4DF2DA524296CFCEAEC6F1063A7BFA92B300A1C4BA7E2CEA7" + "6EC4C7FE9531E7D9205BEB4E2B5FEE32CC0881401C573A88BA9" + "D29B5F5A5CAF044B0A7931BD605073B19D50F82D822ACDF1A66" + "74CBBA6C88362BAF769F4220D731F3E8DBE707B12D44208E646" + "A441FE742290E9FF783744B0F5627CEE1B91DE431DFDCD7AEDC" + "CDBE04EEAD6DC6EF9E9C50131FE37B6707EDF8A021B3D9BCB0F" + "62AB331F43C80B49F3DD5AD47CD3956A2B45A510FEC358BD211" + "B2FBF06B6DCEB82A3190BD0AB28C7CAFCFBA4432102CA306720" + "1533D64D44DCE8A632C204CCAC68B248F0FDCD54BEB300E32CA" + "76F03413B4401BA4721863577860C892252DB31774EBED6BF84" + "18EF0A12508BBB15B41DC0F2EE5A890915ADB2D0F6E28ED207E" + "E8B6536015B763A60A1A96C9945AEB4616613A0EBA3B87C02FB" + "1DA1F9AA169EF4A5CCD967E811BF83D2728B88BB5CF2A5FEC60" + "20137C668EE4F21EAE6D2759F054AB1559F9241EE2B65CF36A9" + "07720A7DCCE655FAFB5E534EAD32A4745A947BA6C4B20240DD1" + "FC40")); + test_hash_extendable(&nettle_shake128, /* 158 octets */ + SHEX("F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C310EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B146C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F"), + 512, + SHEX("B0FC5EAC13AD8A3CC49B96E1D9FA96CE4658EFACC7394DE19AA" + "7A28CCBDE37CF1201DEA78B4C2F127D397AB5EDB08A505F72C7" + "0B61678AE081E139F761DBD5741DF0CDD04D5A9015C0A65975E" + "7DB09D9999FB77324366EF22BB63F2776F9A783A263CE31583D" + "0860F3B91A6620312ACA03EAC2C38BA62C9C9FA0B060A4F8CC0" + "FCDCAE1D414323F2D649A8E9F808FB02DBF926DA2FD36C64ECC" + "C04909E2308D2C0367A069DD64E2DFDFED7A5A941D2B84C5B6A" + "69956D43843C9B7F14A0636036444870B1B9329B38285A1054A" + "1019B6E01DB1C66A39EF9B20EC4E51580EF546E885B99C0E3EA" + "1CD724F8BCF56D1D00D1AA3B8D9B487964E773330B3F84577DA" + "7CE9385D37A8F503456897F8BE8DFA9A60D129E538AE0CA2F6B" + "BF851F1E56CD3F14864EE0B119A1BAC4181C667EBB6C464AB76" + "A6B72681758C70422207E6F62EE438ED6FA467408CA04E48C53" + "350FB11282E89D41A35EFB31C80B18BBF4E28CEE577798B9726" + "A270245F35FAA53DA25DCB9E445A842D843DA21F197F36D6B43" + "E83C3617B2AC92AA937697D5589564D0FB4C225857B6CEF6EAD" + "6F193AAD457A5F5F7EFD7FD88B1AC34B00F4788C4A549474A85" + "2403EFCFB151D941C949BE41151A7130D54730F615E638DAE24" + "3EAAB7648A028CCD05A542054E66B3D5507D78117734180D765" + "6D77677A2C61040DC7AE56819489C0D106B798B9C5490462511" + "63A4")); + test_hash_extendable(&nettle_shake128, /* 159 octets */ + SHEX("25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF68E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D501C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1"), + 512, + SHEX("7B6BFD2981CC29669A120D28930CC39BA577D26BE4A822499FD" + "5D36C7BE1528DBA41F2A60C0F1832AAE0EDCC384B5552013BE1" + "7E1C81C326CCE1FFF5E32B24985A2E2121B072902BD2FC6CE05" + "476ACBF2D2719128AB1C35F93EF82290A56542A044B295A26C8" + "5E4BAF8B8544816F0BAC4753D405C9CE02AFEE0B312B5EC8AD1" + "2A07BD3D177F4BC7AFEF6E092D23C7D445F8B21DB59C9A6E819" + "AF9AFDE919AB550E1A6640967D296D3DF3D987B6E62CF781A65" + "BA41177ADB60B7CA83F57C5FFEA1D1D96BF9EB2914CCD73162A" + "8B61B85211D010AFB8AFEDE8EA96473B080E98EB7A2F000485B" + "FE6E1E7E6E2DDC1901E77C60DB3A65C2F5E57AE72B0CA4BAB6E" + "2EC40F62F33E865F04598F66FE14039FE03C5DF379319413440" + "A31782C2FE4092B0B701E4B792EE449FA452C023FA79EAC7A11" + "A458B497213E7FACAD5D5ED475E71FABB4D9F6A2C2613A8D4DF" + "3F574B5C2A884645B6D5FEFCB355FF18DB8ABD8A85F2BC531EF" + "BEB96F24E204733E9EE3F0ED2ACDAF99713ADF32DCA518D5D86" + "659F25EFB8EC5E5D82E64460094B88DB621962F76C9F12E739A" + "5061ADB812043B9BD01FE9B4E549BEE9E304940DC7F05D45ACE" + "DD417B9B37F214411F75B427E2E9CE14B6DCA4FAB0BC893001C" + "B7A0529C1421E5B721A9BF9031D164C6C6192FB38C229C85247" + "4CBADD6924CC8A401662DB173D7FC9FC0028C905574802EA778" + "20CD")); + test_hash_extendable(&nettle_shake128, /* 160 octets */ + SHEX("21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CBCA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E"), + 512, + SHEX("6D3173F315362F961F2728C60EFFD5EC721D68EB7D2E11C1973" + "A84A19060EB5E64DD8FAC20C76A89D811CE260D7020EA9F7ECC" + "78EB3DC91171CBBD0818B31C4D717274DC164EC5AF48BD1916B" + "0440B4BEA6E4D482329C17AA557DCB4DBAD69AD74BE1560EFB0" + "43B78301B3B1D42E9C2B096CF5D8138811DEE6FF3753055C77F" + "B2C490BF79E2F7C48D492E59B5D74798A1095D9BD03EF74CD17" + "1E615DD3845499A546BF69AD263C1B845B05B5B3CB32351CE01" + "EB10B918D192D1605802A6607EC5DE09824790B5750685A8C67" + "9B54789BEC0D6FABF80E5438F9BED0DA8DC5773FB21C4CF231E" + "1163B30D676A68BA04F7C6BFE5AAA2807A52A84E1D12855EBFB" + "2BDF44C34AD846293D71E3B05D17C1D4102D5C7775F30D13F82" + "90C89DFF886B1D126834516FD3ACC848B988ED4C4F046B39CA0" + "BF2F17A0876B5EA782160DEBF5A2709BD38FC0F6BF3D1E286B7" + "A34A59AFDF4B7559AEB2330D94576BC10BF5D1247EEB12B4551" + "6C2287D6738080569FE9179B83A27F007073428C7316AC974DB" + "D98E137E771FC7F4ED1B779C3C6774A2A36A5CABAF10CCC742D" + "9190A3278A33D6AF490278796EA76D8706B99561390E06E9039" + "6C4CAF101AF1D86748171D07B5794FA831ACC94A2452769C832" + "03B2F845AF987C81BBD02AA91A1CA481ABB0B25991C0E61836A" + "DE076F25DD1852A032A223B3D8D12CD544ED0A2F97D735A0E1A" + "A9AC")); + test_hash_extendable(&nettle_shake128, /* 161 octets */ + SHEX("4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019CCF"), + 512, + SHEX("07CD8E0F1916D265A748A8EACBC81B045D004FA104FAA1E3752" + "B9AF131367FF0CA7F63DB46480B67C405EC16EB2922E6066701" + "8B9ABD91FCE022AE9B0FAA249444B12223CB43750A42B1F9166" + "F54836C7866BEE31ACC681B521D61EEA57C2E84A8F8CB9826E2" + "0AD2B14377B313225B50A1B49AFF085F89AAE22D3BEAED142C5" + "85316615281D88C5482E9F7E23770DA82F27D2511E30DD1958C" + "903EF7AF6B2077252C7701D474F8DA4149AB45D80B6CE9EC1CF" + "08877B6AB13CED7FDE405A1DED59F856068D3619AEA92789E8E" + "31BE67DBC2F402FDDEC3E3E505FBAA396BCB6DFC5861E497EF5" + "76FE4015EF743BC4D5936F8A5247B7667A321614539BD4DFBFD" + "79F3BC90E6CCE084E8AA6C9ADC17C2E1704E4E2EB879DB4D6A7" + "A6621C972EE54CE582F3403C76BF3FE60ADF14D21D6438146EC" + "92673B4D277825F1BA515C86345CC280FD66A006A387488BCD5" + "37C5B0325B21BB69E629763259884E9C3202A16ACB5234CAF98" + "82ABC9B0935466F0C7104A04981F75488EEDCACA9EF55F03E33" + "23FD4086E19043DB1F7ED7F9AFAFC968B7313FE6705673CC313" + "87935F92C26AF140D2AABC7BB76F976ECB2A6F6DD1D0E65DD99" + "7F8648B7BB9F1C9ACEBFE1988E9514F8770DA4DF0B5EF397E58" + "470C656898667A2E0218C70CEABCCE94025C3914C91BC1BC76E" + "82B1C17A7B938E92A57E953CB80AB15726776382C74DBDB5FAE" + "EA56")); + test_hash_extendable(&nettle_shake128, /* 162 octets */ + SHEX("FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B85FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F1DC8"), + 512, + SHEX("16CAA902C04424D5FBA44B3ADDA34326EEFF62D6354E3EF5200" + "DC07A0325B2004CFBC3C972A453FA32BBD68AF381F78FD76815" + "8194ADAF9B10A2A95D9EA9E8D0266C5D3271BB7B59226C8EAA9" + "F15F9ED324AC91FD88B9A23F50EAF0F17D8582E8476E8806F31" + "B58ACC36EBAB6B856CE1738704753A7ED31F822BE83E4E08F2A" + "3F3DD52D4BDF8090DAD90A015E9184A3202974897D525F23A4E" + "AFD1A565B76411D8B78DF548AD2BEE3830FAAA3E8ADD2DBDE47" + "9236AD2DF12841622877EB4EE895A0AF9799DD727ED96ACEAD4" + "78C8F4B9AEDDFE7FA3879529C60026BA0A7966799B372B922B4" + "CFF3F6213C5D73C0D778CC4B9CE67013D905870B12CB3E23262" + "23F57FDDA8DA32F3700E855FDF3DA47BCA440B219A925258D6B" + "38625AD1408AB303855E3734067ED188FE122C5C279710E8EDF" + "954CE4F43F692DA7EDDD3B84164C567B2852EFA262AFB09F49E" + "50B8DB278ED215EFE1F0F43EB8BED5C3F1ECAB591E191CD36B6" + "EA75260285F667C204E159E72072E165457A170F32A7FE29664" + "051396BA1BC202663F1CA8F17A99598DF58A512B6685798E5E9" + "3FAF9B49C9AF0CA8FE4B6544492027CB5599448643E1EFC642C" + "7C71821BC06D5C600A80CF43FA64342CFACE0C57071627903DE" + "F82A0AB3A3089C06F89F99A5B3E11524ED2FAD86B73F3F48BC5" + "B912CF31286C498305B77CC8F7D54F343993888CED370DC93E0" + "CAC9")); + test_hash_extendable(&nettle_shake128, /* 163 octets */ + SHEX("E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA654A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A9198799ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4C25E88"), + 512, + SHEX("1E8FD76A766A100A4434AD568DA7E753C08E76E515DC7A4D42A" + "9CBE5369E3CFAAB7A09799B9CB66940DE779266051581E6B039" + "E76F446327188A6B34565D738F1A926DA3BE16CF6EBD6FF7F78" + "8FDBABC0961158321E34C26207ECE1A122E73D5F9675A2FCB2E" + "4871FC04875FBDB9B6411BEBBFDBE71DD643BA6BB2E2CCF46D1" + "C1DF9DC6C0777E7A19823C1D55A648B847E398F52D02D5632A6" + "9323E588ACB113289260752BE85A42746E62087B5A32DF81281" + "7D0A2409C36F6C80912D4AB80D47C7DE7FFE26E10B1C850B733" + "9274DFCA594D418C3C4948BB3528F4EA463CFB54F7944B32C05" + "0C1C3651168BDDCC873ED8057372743A6CC8365763B523FB3D9" + "752A4FDB167A768E96C7D4F277BEA031B941BB7002DB130B761" + "23A0EDC4544DA03D9255BDCD896789123D9999AA6BDECCA01E4" + "FBFE33860C74ED2FDB54412DB927DF2D896D289A87591377923" + "EDBCF2D2AE204AE6EA85B1A9AD2C2A2729DBA3D6E6FAB626928" + "8416D569532793E49F61E7002871B8F4A68DE84DDC42D081D1C" + "4CBE332AC58C3D81896A438D1861E594DB79390AC2BC9398DC2" + "1B27E6F7677A94F91EBED0103B2E8CA4068D6489BD0AE5D6B77" + "053616335ECC7D7218B1B2DF70A279123268A06EA959965CA1A" + "A26E1DC273142CFCAD570330AADAA62E04C383A938CE349C997" + "BDC41E9BC38C29767B964FE2D8F6DF96EF1A5BD0A38F0673432" + "7315")); + test_hash_extendable(&nettle_shake128, /* 164 octets */ + SHEX("F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A665E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA73406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3AC5C06729"), + 512, + SHEX("58407675270C110F4E998D9EB9F9BCAB175E4D17F2C3A88896F" + "31CC97A389728B3A93729ACA3AAA426E2CAF11AC9D121B32399" + "15C857FD377FA2871F76E533A954E6790847FF03531111A89B3" + "5192BD624A5FE0823992F9A7C25721E10897FE397C2DE7828C2" + "58EF6083544AAB1C7FA5AFCB7B27FC37E64DDFE827883FA0389" + "B8E785676C92396C3E1C1E161E2776538CFE4B6E20653F5706F" + "034929EA002926C0BFB6D9C31857BBBEF51CA094FAA6A7C9C6B" + "34DD92182E21AA47923C908FA00617F9E910EEBFF2BE3696B6B" + "BD489D72510840F075E24C81F63A52772B8B5F3296C7F7095B4" + "ED732F5DCCEF632A37F0419378EDF651DF2870119A4F1EB0C96" + "1AE792D7DB1FEC88BA12BE14520648AC3C78D7304305B75D3B1" + "AA631591C1B8128DBAE0EBEA7AE1DD44ED1950A87BBA1BB72FD" + "0BCF158F7CFA4881DEF36B30A36425C429E3D4BAE81EC821B58" + "B6EE1C5FB9C9D93993CC1C341921797797D39CC523D32987EB0" + "D75C0E502F52EF1FFB3DC10A19766C2117122010AA729326AC5" + "273BED622CD04B924C60CD405A14ED06ADFCAF35B1AD5EA469C" + "DEA963D7E97B2058D2588BD866A17D701761439C491A0AF937F" + "7B8B5E8FC781737986505CDCC593DC0627C0FFABC0A1737AFAE" + "194E24888377AF99AD33AA8A0455CBA1411A40D1D66ABD03F2D" + "A49C34C74C65C830BC68C36F87F9E578072AE67A60C23A6AB0F" + "02E0")); + test_hash_extendable(&nettle_shake128, /* 165 octets */ + SHEX("CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240CFE0AF93EB"), + 512, + SHEX("D102BF50A47C12EA4C8D5169BFD14CC92EFBDC10B042631B1E0" + "CFEDB32DE59947EB35402FBEAB157062BC6E89E0CBAE88BC681" + "90B51FF1F45EE278A486E8535CD9D272A4439EC3F7E65F1C112" + "09B77028B78EAE7A19CAC0BE054FE0811ED8A1F230954FD7813" + "0D27D909555EC58DAD0A7494BAC5323FC56E616795DE5D16C1E" + "6427A02E7C33FA8C74459A24AC3A377A7D5D9036AFE7F23830F" + "A3ED8F4762E86B3ABE0F3159377CEBB1E6844835374534F86C0" + "4B5215345947ED2062872F3C8FCC82826B0AB63A9A5EF699687" + "C44602F61BF1E9AF303F977BFC3232235D95B5B6AEB5241010F" + "01DCA2807FBD43D84675C5839A6E2D73B60C037A9E2D98F3AF1" + "99CB28E4EA6B3BEB9DE80A702C8B70C039B32B7D63C892A6DB1" + "B6FE5A9E2638E8344E4EC2E77394FA03735C7201A656FF0A95E" + "19A6F8D5A8C41605A2731235BA721A4A74F7BCE9CC2B1FED1B9" + "2F42C2EB665A41EF09B83E75D1B3A438DEFB704BB360404BA7D" + "67BC00DDB8541949633A106A2BA75930F30F6079BDB01568E46" + "435CA6BF80CEAF3F0D878A560C969263202A8EA9500B71369C9" + "58737D85BC3BFB4C3452A47CC9ABA4D69570AE9A2449C1CB84C" + "A47F226471423F0AB54516458C23E31DF0F80F9A3EB37B0E74D" + "ABD4B27BD1DDB50650C92FD01ADADE439445A054D463F3B068E" + "0F890C33D9F9BB4C31A15945080717CCC0CDB71199B7CF607AF" + "DF5E")); + test_hash_extendable(&nettle_shake128, /* 166 octets */ + SHEX("2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181AF467BC75A9D1"), + 512, + SHEX("29F1559D1AC3E5F5D6F36852E6FA06AE720B939F3EE14FF2B35" + "4C9B941A4F608313FD16527486E4DC5C032D0278297797CB591" + "B80F3190EC0F1FA08F87A529EB22A2247E71F05FB4B1ED4127B" + "E219E73B8572F9AE21356D8C245FB3AD4DE33A743536DD852F2" + "772595D2CAD5E85928B6199830EA78D6D0226E7D2CFC35AF41E" + "BB590215E416201A58D990A848125247A1A8319630DB6FD7F5F" + "F4CF2499F94F1C0041AFC9764C2BDF2B0FACA97B3A9F8F50816" + "2077FB21549AFD5095AC0F2D744065B90B9CCA781640213B392" + "0B284C6AE6E9877366AC4695B19BC7DE88F3E6113FE6491E783" + "0B4CDF74D3E170D7390D9B0403923C8B6471EB5D639E2704D3C" + "360F4E38F6774C6A440D68C2898D11F17601F33EA893C5E4B42" + "D2A7BE5D07492D20D1550BA335E3D105B4898A2707E5C97B610" + "11707375D5AF0FEF1477FEA62D383C227E2DB4CD59B85E45A81" + "A4562E7541DC2814F20C969028CA8A0E9C14386A648346898DB" + "DE372ED9C09A40A2AF6E0AC541BE0ABBAB84B2DD6A2FDAC9EAB" + "BB8C87F58DD95BBA7DB96403B9BD2274367439775119DA7EBB8" + "BC46FBA2A50C75454E386C3749D03691F6705E70AD716095CB3" + "0326B1E628B0E29D7AF932F554A6FC0D0769C4D0A56779A1878" + "DE7C3671B68A4964C5A9FCD86DAA7BC5B95C6044AC825BAEB4F" + "073AFA2502CF3388290F5658094DFF31F9C68EFA7AC1D74881C" + "E092")); + test_hash_extendable(&nettle_shake128, /* 167 octets */ + SHEX("0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286EDA20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750EAF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177AC6F4756017FFF5"), + 512, + SHEX("C73D8FAAB5D0B4D660BD5082E44C3CAC97E61648BE0A04B1167" + "24E6F6B657684674B4B0E90D0AE96C0853EBD837BD8249ADBD3" + "B60A1AD1FCF8A6AB8E2F5AA7FF197A3D7DBEDEFB433B613536A" + "EC4D655B7BCD778526BE667847ACD2E0564D96CE5140C91357F" + "ADE000EFCB40457E1B6CED41FA102E36E799792DB03E9A40C79" + "9BCA91262948E17605065FBF638FB40A157B45CF7911A753D0D" + "205DF84716A57112BEAB44F6201FF75AADE0BAFBA504745CFE2" + "3E4E60E67E3993622AED73A1DD6A465BD453DD3C5BA7D2CDF3F" + "1D39376A67C23E555F5ACF25BCE1E55F307252B9AAC2C0A39C8" + "85C7E44F204CB821C0D37A22DE3A71F3A1909B11B7181C42BE9" + "B78AA0D0A15444F330007554BCFCC0D8FD87D6431FB93C7CC38" + "767A55D30D3545560BD380DB8C4C0EDA9399F68F854644266C1" + "B7958B270E75B79134AA01E7DCF1E6FDB6D9AE5D02CCE8CE8E4" + "80475E9617CC42A91C08D9AF6E5101B8AC5834ADB2C66987F42" + "A580BB503A4B34A9F15ADCD0E23D0D4029479764831D06B5CAF" + "3F14B91449F15A291F4AC250B270B6CB3C304725C99E32645E1" + "FC02A0CDDD9E717911F2342D9482F8E0979985A0170D725DAB4" + "EA66D44F626BA475925FA39FC9DEE929C06D009416C0ADC1D98" + "7CD625A20ACBA4CC87F72F610867C3A7A928A3A0379676E8FE2" + "57107AB2F5C030BD2480E3D1863562E1FD0790280333ED9D5DD" + "5A5C")); + test_hash_extendable(&nettle_shake128, /* 168 octets */ + SHEX("C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DFC3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB679D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E8445DBA58E6CB2C8EA"), + 512, + SHEX("4A05F2EF1AAD5FF4306429EC0F19044077FB64BFE1DCC50F74C" + "3F045E9A9C3DE4A3B5963AEF771B049111B7B4640E20B1BA84E" + "D7AFEE325571ACF347E311F33C1D421F21D663065C4DADDBD17" + "85C5DAC0D554CEDB1A45A32E28145E98F49DEE285B33DE14C33" + "6D10950ECC30966B79E8613FFEBB702FCC00A1C4250DD385ABB" + "537A284E9108D16B6F08F4E103F2C5E9E5C879CB5095534151E" + "3C9A316D06DCE53B7F01B424D375B564FE6839D1D1F00A2E626" + "04060A9748BCDC8143737959FABBCAE1851213E6DC28BEFDA48" + "149DE6AAF4A60D4615BED67D11796F6173C3DCF139037B31EEC" + "9A8404DF07597BC266D3C7D9EB9A7CABF749FB44E40D746D0E9" + "DFB5C8BBEB25E3F1612D03D3EB0C154DE4B2708C4F8A89762E1" + "71F744518AEC134A02EEAF49DB2E2C6C9914711288D6B0CE877" + "861D9B10ACFCC19643738287DA005282F3FC82F9F50AA681F2F" + "55FE1809C9E23A3A59E51C2E894F718372F9FA1564B47AB3F43" + "F0747A17839E933369B6778053E1764F52C5F319E33C8B25678" + "F72332E33CCA97C68F19E058E70C31410DF4DE7E08169D6096B" + "7B4EA48271EB684FEE9FC8B561C3FEE2DCE83D092B142BEC147" + "8D26B48C3C6E597A7B2E44027E1ECA23178D3AFCC67BB530A52" + "9C7E1336E1ADAE74EF0BE9CD61E91C6AEA57F7CCB23B64B2F84" + "861CE159209FEF7A897A16A871AA99E63A5126DF2B03387E42C" + "3D18")); + test_hash_extendable(&nettle_shake128, /* 169 octets */ + SHEX("B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A6686B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D2910B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92E8419D48FDFBD744CE"), + 512, + SHEX("D99E2166E72399F4B775C8C446CB809F149095DF22378DDAB71" + "1B867E3CAD17830EFC3B9F7D90FBA1327E103D3191595AD415E" + "F71604C7A95DFC417F14F5B5AC1B6905396ED94D56ED993E240" + "586E95D98F3D34630C32FC1719E7754BF4F12A321691EFDCD42" + "DCA695BDA56F975EBB08D59F76911ECEC5B503E7030D1E626EC" + "89CFDE51042F1B75063AFB50FF7B43563A09E209B7842507B67" + "E85E87A99FFFA72DA7229CE5C9F5303EDA061A209F46C76BE41" + "14BBF5EBC5AEDE7E22F5921DA87265C19F87F1E37CCC218ACB9" + "03BFB4D617CB95DF94255F980924A045B959AAE9C58DBFDDAFB" + "47C9AD78324D27495EADFE665E8B7154EE52AD0219421014FE9" + "45AA8C2F3B6223F99E170D2D169C13C0D1CD481B6901A1770DF" + "CB39ECCBB40FC6790E69C61C9EC6E99AF6E557EEA2AAD2E73D8" + "A82FFDD2FD32C63DBE4858D97A5955C6B3420FA12AF5CDD10DD" + "8C9D6D3C230272187E855B9F405853E6B8E199F071F0EC781BE" + "8DFC29E93288F22F600302475CE1651D3CB671A0635BAA3DAEF" + "B73487A813A0448EA5F2EFC915C847795BB0F4F5879DF7B5C95" + "A2DD3A5CE79DF85BCFC1D99AE98748052A27B775B690FF9B024" + "0E0BC0B79935AF998BBCDFD37A2829482A9F51FFB253152ECCD" + "35588D2CD96BB19441A14D7CB3B7EB2F47CFFF6BD8FF73BDF9D" + "9C2A613EBFC5D69A3D7912C4CF2B41DB244267AF889D47A037E" + "B961")); + test_hash_extendable(&nettle_shake128, /* 170 octets */ + SHEX("A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F61FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F359D5D1EEA105F28DCFB"), + 512, + SHEX("CB7A1F8F3B4A92508EEDA0287EF3407C5F1A51F2600D3F13C21" + "4A36F54F5FA63878DBF6E76E570B72ED63159E01BB948D0ED76" + "02E9D649AFEA2BDD4C97C7B22AC32485816D9F0BD8FE1443C77" + "09884334E4AEB5104FAD05B6C62FBBA4F5C5BD2CC9CF576991D" + "A24AE01827F3EA70509E45E1BB0742F3F21D673A34E9AE992AB" + "FF4A33EFFE61C2C7ACDD0B653757C987DC1F575B7181E79702C" + "82A389B0DDE618DDE5EE97A1A515365D04F3413BFF31C3F9F22" + "2BFBA2061993C7562AA7761175FD51D48BEAFE94E16AC34179C" + "FE68791FFAD63358885C289C0D1D5C99DC42B7DEE58D9ED595C" + "F5158D4D5055CB249025F3FA9690A18C9459D7E8111B88AA37D" + "26B384A7BD02E923C2ACEDDBE31A6F3237CCAA778D5F7C71CA9" + "6E72E11920377C785AEE9DA9D8F11A4D4CAAC6CB66AE4F25142" + "2104E5330BF06C004791ADA67D687A0462070B51C0860F1AF7A" + "F4968FEAEB157A4A4448B69AE1166578804D384720A2BAA55F0" + "6AB17FE0B4A5E4EF058A14D17F99BCA359CD1E95DE00B5F3090" + "52FF4231ACE9E1BCB6684355EDF7924BCE95264C3FFC641588F" + "ECC3775AF5E5361B5EE995F85F9A612A0055B22F2D440DFD80E" + "91329A2FA02E20476CF84120634F9C320E6803992817947EFD9" + "BCF620F4B038CDFDA1CD559801CE76FFCF4AF63A4AF62842937" + "89B548314B2B88C2DDD31A6C92E4E62B705E196CFB2D978D6F3" + "2F3F")); + test_hash_extendable(&nettle_shake128, /* 171 octets */ + SHEX("E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C642BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF16B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D88567ADFB974EE205A9BF7B848"), + 512, + SHEX("908FC63FEE9E11D44E7BCEACBC161269A96993D101265F825B8" + "6C107C61CFD11EBA3CFDB0983BC9BA3A81DDBD8517D2E313997" + "ACBE48A47AEF48B3BC1A56EEC2FAC280C96D9ADB557B14334C6" + "C555F374AAF9F9560815EB7278DBC81A78E3DC4144B879119C3" + "10A2283862574D055D2B0D8D53219C479E8C2F6DAC3186C1EA3" + "6A6517D26E14F2230F00A1B30B44BF987B3A3F47240498734E6" + "858444A82ED1098442688034D38C578E995424E1FC2386FB10E" + "682EBA287F3757B8A4CEF19544CDA032C3592E13E07241AE38F" + "0BFB77B030273B28D09637B4AD359C7798CF6A76980A3EA3315" + "97DAB4E18ADD97B8404D4AE4E5EC874D0F31A60636B2BDE4FCF" + "CAB9569205E7261FC728A701F19E3791B538BB1AE8E1435A85F" + "7E8F7B95AA45D275AF770FD9FF856F6666C8598626CB54404FB" + "A35B523F55EC971F70E10E09FAB0A88E39CA1E7180B482985E8" + "2EACD81CBD2C8675F8BD41691CFBA39228D4FE2561C2E8BA1DA" + "3124AE3204517F09CB4ABD54698F1010E1836E141C706B9FF09" + "16BACF70010A0F75110E79E95A48FCF4724BC0674C9AFCF12DE" + "59D31C64E532572DA4586BC73A6BEBED22752A05BD1ADD51464" + "180DE96CDB44D11611FA661D0EAC1080DBD25DF51A2C7519489" + "E05E1BE5B05C60070EB8075A9F0B3FDF6C14D6C07076578ED3A" + "16D8E048350CE9B2956ED00AB61B024AEA9E07C87665B7F33E2" + "F5BA")); + test_hash_extendable(&nettle_shake128, /* 172 octets */ + SHEX("B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323BE75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024BD7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FAEBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F7487743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588EC77F29D211BE89DE18B15F6"), + 512, + SHEX("080C392EE04A0D4EFE020FA6C20236E7C1290088BF6FFC2CFCF" + "72D1B16A21ED000FC7A064491899BDA1AD4856449D89AC7BC54" + "E3896534837EC4BF950A18A3ECD5FF286D1D0A02E90531298F2" + "430484A667DE0121E0D0B392679AD9168BFB4F0D020E7EC1AEC" + "006BD0E8A551BB7EF0B751D0075F615C02775C983F45212E4F3" + "94E7680D9F81254431BFB9E772EF2CA54600D2F1F4DB12D6DB4" + "9BB9ADF03BA6C912E0A8BFAB20C0F4D3DA675A908277522C896" + "4ACE05F138D192B7A2EFD8FE663FB4B2486339555AA1C35DA18" + "D8899149339F1AC47555080627C3AEF75DA932BB063FD3DACB6" + "E0019C7DDC5627776250033E6F47EB5930907FCC1F1B627B520" + "AA18B22B12103F3E361801C6EB8B72E18CA9C43EFD1E8A04948" + "A9A7AE1B92E177AC6D3CFFA217E13CCE790EFC636153FE24821" + "A7FB500E61F3098711F60FEFD6EA90F6F63D6822331D8CEACE7" + "C192E3482192B0A408E5C5A36A7C7A5490756FE4022C7D16EB2" + "8232A70EC1BD675DEFE9F87A52CB633DC5BD99CA49D2BEE5487" + "0FB0919217810AC08312AA2DD16556089FC8706D0293EBFEBBD" + "F11204793901190BFC7AFF9C87C9B4FE9116DD1E1789E08776E" + "FEB71F619827A89287E183DD77C42D791E7CB4ED2E051F2CEC4" + "2D2AD83B50EF3C0FB6ADFCBAED484886A4DCFF41844ABBFA460" + "16A0FBFDF2D891B982356B315DC17D9FB62517E3163A93AAF05" + "A12A")); + test_hash_extendable(&nettle_shake128, /* 173 octets */ + SHEX("DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D59DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF63EFE793489C39B8FD29D104CE"), + 512, + SHEX("85F82CAF1A3D6DB8E7C6CD49C697DC314AEAA79309FECAAC21F" + "F46639EE5CDCB719A6379D871138041F2908D4DD605AC31FDE9" + "F89A0136018682FF1CC0E36A3019A260FDA0FE430B082445B7F" + "10F56A50E69A8260954F72B356B710A35A5A2A22FAFAA5B3E4E" + "3F0919A1FD44C24D33EFE5790F9FA707DF0E06CB4F195F1AF7B" + "2578EEC38B8565D34DE9665987F3710D8388176AAB6F3D7CCAB" + "61713B175D5343958419F7C2D65775B7BECADC1AB8DFE486EFB" + "98D336AA17EC4083DEE1253A7E2B32437D75FCBD338F77BB154" + "8C704090C3417DB225534F85C92AE1E9B16F66A624F5309297F" + "2FA3DF12FAC8AF36A1F2A11093D4544E0A67C826D7CDA897300" + "31D4A35C64BFF9CB9512C09FE45F0D628C075737819252B3872" + "4BB5A341D3045B4FA4B8BA742B947EB66A9A9121A48B8CFB83B" + "41C90A7A672A4B9BCF2D1A32266C8F13EC46DF4D80384C117A5" + "6180398D2268C8009CF586ABBB7452911FD73C9C3449004A11A" + "ED41B557A33D7825C42575C75C0641393346C753B1415D4D4AC" + "224C831F185C2B635C4B6B1C388358C232DC629A090FC0D472A" + "4CCEED43FD9657EB33850171F9D6D2DEA433874B47F77DCA16C" + "DCD782EC1A335D2DA3C235914315A243EAC2AB81E06D97DBAA2" + "5EC029A62F58A1DC78D586C226046886C23A3D9681D68503893" + "F8A9ED9A5B53A22A1345DB167BE59A6AB8295B41FC464329A6C" + "B739")); + test_hash_extendable(&nettle_shake128, /* 174 octets */ + SHEX("BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E2022302EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0CAE5B257BE36A7124E1060C170FFA"), + 512, + SHEX("E07CAEB114B9180ED922574BADB071B5962ECAB18474D1A8221" + "6B152DD0DAE5CCE14001FBE59E25F55604CC3C26E5D88A25393" + "303FF47C1F14C87EA4D16B0A435A43A3DDD22AABC7ADB4680C8" + "FFA05BAF28F45F95ABF93F8453E267B5E584C7AAB8E2CF2723E" + "CF211B958DD8277B89D3FF2470CDE45077DE7535840B0BFEF8D" + "2AF5FCA3CD91FA6EA83C5F7B58C75DA302A67154474B563AE9B" + "59B1A3BE93BA2BC2A5484BA24CC409896109CD57AB6357376FC" + "0B65A46506D34DCCA170DA71CC52DFF4FA34BC4B979A130EF56" + "63CCC28FBD3E36B6CD103212A96B8710B49EBDACF4A8C41A586" + "0175B694F75F077718C93170A98EE9757237EE90E8692E4AD6C" + "1AF6979D567C104FB3F30EBB5BC52B99A934D527FD44704DE65" + "431D8063DF25E4B31A89629E1F7B7AED0E49C2AB6D3055675C7" + "C63AA4E7686C880F3AF3F6CAF7251BD8B9EBC0A3C46C72B05AC" + "4DB44E85068811EF050F042BE1E7EC841DC8F7EB2A7D9D2C10E" + "B3603F952E307289C1634C7D9E648C36B75F31EA91C7125DEBC" + "5BD3F70F7CCA9330484ABB5A73523013DC507E1FC5689848D69" + "85F73866ED146506DF21BC98D35BC24256C4F911C3D4CE43779" + "8431F68E7EA9F608E7BD98D7DF892581B2756106A5C7590F6C3" + "3116B7C269D4A3010F121AEB0B10666AFDDEBD18AF9FF571241" + "EE39E4F2E7802CC75DEC1ED6E7F19985774F0733C833CCB9D82" + "CA1A")); + test_hash_extendable(&nettle_shake128, /* 175 octets */ + SHEX("5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0480AB79D4E6415B520F1C484D675B1"), + 512, + SHEX("1BA3E5682B5210C2503367CF92FC02BA6FEFA6C43CF725D9E0A" + "5A796F949BF605C9401D6235C09265C000AFCCA9FACF32B1C6C" + "DE831D051DBC604B72B90689CFF3E9179BB0A8D151C2FCA7DB9" + "147A8A95AE8831C475B16B2478FD794087D0D979FA66DA5240A" + "C77BE4CECB3DBDE50FE372C5045BE23FDE7CC0B6B86A0007D47" + "DE80D59A2DBC7883BBB2F76B74E7EB53E8C929AB73819BB09CD" + "61010689DACEF17BEEADA0311F2F6594922EE835DD09A61B41A" + "AF5792C63CEC79C40EC126A68DEB00EECA6AAEAD43072AC65E7" + "101B4C7A3FB42101BFA922E43329E736D1DBC90EF45032C82E2" + "6CD102176CF8490B554AC9C6FFFE81D281CBF29BF5056C06CE2" + "CDA918BB3C9F8F49A045DD2CC4D680BA8A22562F1DC53838665" + "720EC60E4E3BCB76014B619EE24FF41B2860B3BA4438527D975" + "A1302E8FF1923211F36673B0BE8B58BF0C7FEFB0CD50A28A386" + "CE6DAD7C30B8F6A3A437E864143143E638FC6474A2A8A664086" + "2FF4C4491FDD52ECE0834128137011D46EE7B0CF611B237AD51" + "5BCC11FB7B0A4650FD6E60BA8B6BC601DE5CF75A66C3F16AEAD" + "1EF19C47420A9840CA4B1352AF4C5C217350840AD035621EABF" + "2EADA2A517250D3A6AD834CAF2A472B2D5DCA3829C372EDC647" + "03226EBBCCAFD316E4EA3A9BC9AA8DD42A9715B29702BBA9AE2" + "32C7806E5C0C02AEA68602F4B580396B27B94385A3DCEBECE34" + "5828")); + test_hash_extendable(&nettle_shake128, /* 176 octets */ + SHEX("A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E784BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9BE6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186ABD42956588B3B58CD948970D298776060"), + 512, + SHEX("7F8D0AB3060B5A6ACF3522A83AC1A432DD9EBDD62BEE5CA14CC" + "54FEC0D3AB6D1EACC33603F214C35E8C256BBE7F0A1C110A65A" + "6E7F5EBD6733350DCBBA851271A0EA684A0AFA032EF530511B5" + "FD923399DF93567D9BB1EEC74D6FA4AC5451D81FEEFCE00A707" + "4A1F32498AE68380E2D9800AD3DA75E0BFACDF66B9F34CE4C60" + "615AB46A8310F85C2A7F9A737E8E19E0BCB540FA9F621378C44" + "E2DBBF57C059D52F79FDA1DB8A3D5B44C558C8CC70901219AE7" + "6CF5F6DB962ADBB6515B25B5FC81CDCA21B7A51911C5F5C52E8" + "F2A863E9F09E927D8F66B063AFC73CFA8592B710063544143A8" + "B5D06CC78A604E9B72771DE91F48EE55C9FDD831BF91171532A" + "E5EDCACA1BDE2B96362D4E30115E12ADA76ACA05DD128FCB524" + "CA8831CF2459A53D97EBC3AC5A25517F254A14316A402A509FF" + "5868CD290C88F43229BE54A3443BC547A093687B3C3D97A4D1A" + "09004CBAA6939E86CD75F5135D9FBFDDE568E651806AF401095" + "C3602BA958FB7A0F4276791B28A6BB75A6944EEC6EB8CB9A7A9" + "E288916A15A496DF80777FEEA0F42695AC62E29F137E355A13B" + "630F30E5D4E4435C3180EE86173F59BC19B79065CF3F33F8BBE" + "FEFDE35A8AB09C13DD9D326E98C9730BD033CB2DAE20BF076EE" + "9CE764D48BF8A0F7BB9181E60889293866E1C601AB38122220A" + "2CCAAC996FB1770CFDBC4E628BBA2B3122E0CA351FADA84F818" + "3FF4")); + test_hash_extendable(&nettle_shake128, /* 177 octets */ + SHEX("06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F5572713575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A62A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E28371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750A96CBDE5FBC953D9E576CD216AFC90323A"), + 512, + SHEX("C625EC73E6D951EB899E865B5012ED72229958F2850A79CB822" + "1AD2248A8D670A8072519AE6DFF8CFBF7A20863FD01183D5509" + "3C80CCD14106426579ED2FD99578532F9B4D8E11BE19A0F0A83" + "36FCBF1BB1D6D91247DC87B563C1399F50144F563F8583DBC20" + "8165C106567EC51FFD321D9F2ABA7AD2E7F2C1950D04E9027D7" + "364ED831C2155E17C0B083B2EE2C4E720A2638CBBB971CCCBA1" + "DAC6860917D28D341A49CDE2B8727179C8B596C045382E6E7C2" + "3A35D47880B4A47D3DC79687919194397C3EC00D9AA232E666B" + "A24A1A39CBE847B2E864478AF2F59F73B2ABF2A984814309439" + "80BA197DB6E67A87F3782B7BD99A6E27F82F133DBC6D722B5CD" + "E09277F2407671FF44C1117E1265F5EC9FABA0A946B67DD268C" + "3B97BE198BD2B5185EB07378FBDACE2B4B97C8DE2C05176CD18" + "6B0AD3F7D54DA7701654EB1D1FA200191CEA96D0F02C86CAA27" + "7FEC59E1C93097FB5D0D43600E3403C53798A33EF5CCAB3D540" + "5E5DB570A26C3A0BDB304328FCD36E327B5D957913AACDC4D93" + "8BD00577963D5FA343109F4719D8192B12272DDFA338612AAAC" + "DBB4CB91E129E4401E16A673D6FEB16294345FCD0E9BAC8BDC3" + "0EBECC3BC6DCFDF25ADBCB42777A6FF4C05B5981571AF8A33D9" + "E7D34534F8F89F555A1A55761FBE2DD66B93330820D3EB032D7" + "A56DB79AA7CC372340B953097453509F240BF9AC6DCD0DF08D2" + "1E10")); + test_hash_extendable(&nettle_shake128, /* 178 octets */ + SHEX("F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E878796347168060A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A367B5AD93D874812A1DE6A7B93CD53AD97232"), + 512, + SHEX("5FCBA2303DA2ED78B7A3B3DBD3D7D57BBF37B25B75BF8330D39" + "576EE26D830002F5FD36102BD09A6025532371A6246417F94A5" + "27220194F287BAB34A936836AE84D87C251674F1BD361FAF5ED" + "3C023A96AC1E089050C7975D4FB6DDA11305D73F2D9BF03FCDB" + "4ADC31C5356E231580AF9E23B8AC79B28409DC4EDE2CDC5D98C" + "67508ED4D688377583E06FAE8F195B10C60FA61BA10A7A57A8A" + "52029371CA12C9FBA5EDD2378FE78E5CC119695FA5F6ECB4F7C" + "27B0552B1231D4A1BA31196CFC7D30E92603CF2BF14E2D4CF88" + "60A3B4B543E48401D9FDC6B8D0E1AAA559E91ED8FE3D6DDE2F8" + "A16A59AACA1FEFD304D0C42B78441D4AFE148B1ABF86C92706C" + "5C1528D54566EBF0F4F7F6BA0ADAF6ABAF5BF8DEA607B6C86C7" + "89E7EA3229031BB69E60BA745F561208101DBE4774AAE3CCD7D" + "A3E6C4625B0744B33E6697C31650FF94095C5CFB87024FAC512" + "D81CD395D8A30FC562E8E817D5DE70E991E4B3ABF091591769E" + "A3B42197A4F4DEC475F3CFFB47700E832FB072B4783DCF44014" + "642D9930F09A2E3C4984A20BED71E4D2ED1C5FE750B0F803D48" + "91A128731F48DF37D7E30EA34F7ED816C51F3DED629C7F430CB" + "3F1ED74610E4D6535DE05EB6E7520B1CF6653DA236DC9E4F8CC" + "A8BEB696AF2A3C15C42E6F87C2EE1E9013E7FE31E891F6F9658" + "F2E270A423154824CCD6BE7498A6FFB8EA6C4E5B8A6CF1C3331" + "4C03")); + test_hash_extendable(&nettle_shake128, /* 179 octets */ + SHEX("9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CBDF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106AD10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80352BDD3740DD6A16792AE2D86F11641BB717C2"), + 512, + SHEX("07F4933F2A7C2988B9D753240C1EBBEA38E95AA1029508296BB" + "49BBDF3BC164839C76D905596EA153C4746B4FEA069D2A784D9" + "CACB598A24BAAD6D215F83F72D4B52604EEC0066344FD062B18" + "35570028C1FD61D5B4785FF5B904F5DB03C4EFB61B424226578" + "392B9E6259FD86DC979526C560057B9395E32116371B3737825" + "A9579B92E1AB5FF9006AFDE8A618687205438D99B7E1BA03892" + "2B140BE0DAFB7423092F362F537CAC8272AA5DF14B2DFC2B73F" + "5F4104BA1FE603E00AF8E47898C0E955D57DED792C3C93518CD" + "84FAB72A2022F189773FAE574D5342EEBB23F7D7497F301023C" + "1143CB3481ECB0EE732D1477E6BF872EA0D0DC0623A5C0AE526" + "D8885DB1D3C1CA0A513D2E4D53E13BFD82129DBAA7A2BF6004D" + "2091E627928203D05B11D9F6335DFC73CB9A7F5C3CF43990E8D" + "F0269FA9BBB1FCE7646C6BA85BEFD3F9ECE88A93CBECC3F8F68" + "CA4D0AE8197CA479EFE0327463AB5B78685BA4000482558CEC5" + "5D8B934726B820EA4FA9471AEF2962A7E1CB4B2891C0B545547" + "A146CA28AD3E9CC6ABF69D7DFB87B298CA252387888E20CCABC" + "9E9ED484262A3B6A1F857E6900330ABE74454A62E2DEDFEC3AF" + "F7BE28E4351C4AC0738032B81C0FF12AFB4CB1B94F7119A6F2A" + "B4157CB7C2FAB41879943A075233CEF8A64523F70E3C6F66C5E" + "E3D5FDB99222B2A3EB09FFABCAC867E0B2D06955CB80E7EAE17" + "6788")); + test_hash_extendable(&nettle_shake128, /* 180 octets */ + SHEX("5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC471ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB547682A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF909ABA31EDB903B28FBFC33B7703CD996215A11238"), + 512, + SHEX("7E3FBAD2449B2F16426651EA24F642FB8CBB40B1969FBF10C5A" + "6C3E7B1AD2D413C1F8A78CCD5F4AB0BA0A04529EEB3F72B656E" + "A1030CD94DA5CE6B6D7C44728C0CEFEBD7FA597073F8BEFD6BA" + "A5325918C1BAAC3B8DE7D1E4B723C0518936CFDE3F039941FFE" + "C3979AED13C16E5F24A8C01F4D87E07F797E2DB4D5CE17E4AC4" + "0565D32896E3B6DBDB50FC2BBC4D13C2E375F171D8EC62C423A" + "126B45D3C13B6E3EF9CFB9B8FD25BFA74A1793EBBE1168705B7" + "A26EF12C2424E9689D993BA8C02790E83CE166DDB7C838DE164" + "744BAB16743231569645B144A34BDE3A40712F01DC02E476140" + "D07BA3DC4F51DA894727443892E7B12555932AAA5755FD9887A" + "9EAC8C949E71EE35414150B63B00247CADCDDA9C2FB245748DC" + "519C39EC8877C860729D90BBEFB89C5D914F99AF63725E91401" + "ECAE6F69C67CAE0C94BACF3D6B13C273019CC3B5D416D6A24D3" + "14EF01C6348F2E539578F9368C234EFB559352E5ACEDD53C14A" + "35F680428BBA25A252F056C4E452A921E4F83D648838ECB076F" + "4764256912D41D504044BA68F2734D7236FCCD924D22735F6CF" + "ADA2349421BFD51341EABA98DA57B3F1A1B9B7B4588CF3A0D1A" + "7E116700FB90C3DE339DFB9EA3662364807B91F7D2105D59034" + "A6F5816070B5C4B24ADAE525C1BF2D267EA4B03079405A436DA" + "4264CC50B2B30A0881E4D22A1904DC7311CA397AF7399734A0C" + "DB79")); + test_hash_extendable(&nettle_shake128, /* 181 octets */ + SHEX("576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A79CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F332B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6D3389BDF5A45074C47BC7B20B0948407A66D855E2F"), + 512, + SHEX("B6869F1189F52EAFCC0353F7AFDB8076C5CE063E2DF404F3D13" + "14A4DE573541927E9F4C67A554BC82E97C3A2F6C679C812C9DA" + "6542681461BAF009F3ED10D7D2C571288A41EFF6FC73DFF8AA3" + "CB40288C84C9ED5CFA70F59395E09CF3CDD58B4D2A65187CF38" + "828B981EB5BA8F7E591070F97B3A567188AD4C455FEC91ECC2C" + "9829E00639BF6CE1DDAEE45CE19D9A183F0E93630886F511125" + "A69218D86C5008760E8EE0CD299062CD1A06D0D2A5E07A0A30D" + "A7DE30531136B4BAE8546290469FA1B18557E3B1316ED8FF1BC" + "94131E9797EFC0A2D997F8DA22CE6DE0358128AFAFF496DB646" + "6210A8682F9D286AB66304E79CE92174ABCDD0C4DB508F03C2B" + "EE0C87F6C39D0FA2EF7F3DBD4201B4A46F418CA1DE312A2FC9F" + "82E6008BF06042050CA302C9A386AAB9A3A8FB558EABEA6771C" + "6FC301F7DEA5C13DA704E4F41DFC2EA508F1EFAF743FD4A3EBD" + "9370CC3C872A41C4BD40EDDF311C2F5B7C208BBDC7BC4A93804" + "D10B32769A333E8BC2507143912CE4D918D0DCB4D6462F0790F" + "10BFDDCD7FD711E14F411A6CE58D50E70E1EA23645E97B6C154" + "E3BBA3AB35411537BC8830ECBF953BB8214DF95E6FB5AABBCE0" + "8F8D017958848916FE04B3D2D5F69DB9234220DA3388E3385CC" + "B90194959027093A93F7048F35E3A5B0AEF90A792820B242C34" + "700FBE7F7E00C00D6ABDFAE26DDC95CA47A72133F97924D6729" + "1C6F")); + test_hash_extendable(&nettle_shake128, /* 182 octets */ + SHEX("0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205C343AC09DECA86325373C3B76D9F32028FEA8EB32515"), + 512, + SHEX("EEDF8414ACBA3931CCB5C41B045E708926CC68C513372B2A5C9" + "F8BEB76C060461CDBDE486F81952169B465061541E397192CAB" + "92B64CD5AE0072811017140D53861F56A96A66211FB30BD1E91" + "1D31FDD29CE66882529874724A64216C13AEE8110B963ECC99C" + "F46D2C1384CB39B27F2EB85B517893AC45A126F57E93DEDEC78" + "CD2708E2C718D783D847E2FBC8B3FDC67260B33852576910D2E" + "43923BCB8882D318AC5421B99BE5E532101833585E744B65EEA" + "3104337FFAFFF4266B6ADD5F081E42A46C5365CC2F03DF43C3A" + "A3D0F9A9C477D65E5EBE634C806246544B97EAC179C932E3794" + "8BB5E5C84DB32450F3B9FA54C89FD03FE58861B8E8A6C8C3D72" + "05B7A65A02B90E0412C493ACBC3385E1A197DF785B02EF42B0B" + "EBBD5431EE59DF31520B88E30BD376BC4E720D71F1C0C9AE4C2" + "FBE126DADE6F667E2CE825CA1118F5B82F2A86FD5BD80621FA6" + "FEA14768EFD08D75E4C416FD1245B0C07568DF42244DBF76614" + "E0F3010684210E49D0868C3ABF1C89084510662BDCCF932176D" + "AF9393B00A4FDF911EC8BA14E81B0648E5126B7B6CC1DFC902A" + "53D0BA7204C256DE67FBB525F6C2D4C4DB08484A14431B350B7" + "6B0DDEE9924A8E0DDC4E6B9DFA90FD9BE0BE70BFFBF6F9ABFE0" + "EC489822B94DFEDA911FAA7626271264100E2A40A2AB932CBE9" + "2BF2DBF57D273B0B056A6DDF29BA36A7F8138390865AD9ECC76" + "BBC6")); + test_hash_extendable(&nettle_shake128, /* 183 octets */ + SHEX("3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B6656D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE"), + 512, + SHEX("61B6E091F3A8BEF3886484730629A32553B1EF7EFA8689AE6C0" + "1062F505ECF48E8460B66448D355046FA728AF5778FEB8B827B" + "A30211E5B1BB82F6BEB7F2ED7450E9EE0A19A47AF63BB687A0A" + "4E611B3762B97BFDC6E212EDE1F874C33636AB4EA613BA991E8" + "B9558F24D1C02C5731B155DC1EDD6E984C5CF51BC59BE5E084A" + "E89C87AC2AF5792C6DE0B76448AEF8C5F248CA6FD1525770C8B" + "4434A76552834CF1481843A9E3A2051108D3DB6B8265F736395" + "848DA2C5755B504F4B958755BA1820DEEE9EAD314C9515B996A" + "B96C8F349BC12618FA4E8A026EFC5508707F642F5CAFE1EF135" + "764515F4CE2DE357D93A0F3BDFE8E3A7E01140212A735FAECB4" + "9659039AA05F0C5EA0690E304C155A64804954E24039D001A1F" + "7C2F1691E81120FD275A6FB292F3FC1BB16763887E3BF327FD3" + "6FF14D8B89D02990AE9D4B2B4F5492934079D17945613AA0377" + "1605B259446664FADE2292036ECA5894C4EC3D6673FB9561777" + "0AF54CA581BDC6B52097938A98BEDE6CA627A9322D4FF7390DF" + "9A3E46FC5C0663A88A16A7D4EE708D92EB5EA6DE0527FA5BC34" + "54455B678791E07586123CEC8864396B4B972BA29C935E6D3BA" + "2F7B2FD315131C0F008D047E6CC234535D947F068548287140D" + "4303365990E62B4845A3E7CD90667039C205BD1B836C4240B21" + "20B54DF12C462D2B10FFE2D61B456F090EFA26C53E1F51D2292" + "D31F")); + test_hash_extendable(&nettle_shake128, /* 184 octets */ + SHEX("C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B921FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0"), + 512, + SHEX("E4E5622998509E275AED8D103E2581877B09D570EFE558CF036" + "26FDF3A2C04044C1531D3F92A025CA693FCAB59D90ED2A2DD33" + "F4768F56B972B2E87D34E8F293862C22602DE928714C34FFE22" + "C118C474467005C250F77971D59BD93581E5EDC4F2BE3C61F54" + "14DA40DDFD3053595E616AFEB18D3CCE87691AF4C228DA5595E" + "2C4498FDFDE8360DBCF014B368A88C5ED7A71EEEB003E8839A3" + "71B8D86F7B58DA353EDFB2891BF5A5CCBEAC1E5F2EDEC1442FD" + "79B6A31B85E4702DF68ED3A0504E26489B15C0C1A52B443581B" + "D671FD207302B4BADBA9F41B974BA6179EA1671E4660CC8F5A3" + "5F71A8B9BAAEDC457FF13263B062DB6059FB4275D2831218B04" + "B2E24F1E3B3DC4CEE9261A1919343D5274D64CE11E0C27866EC" + "A3C91BE98762834142C730F4C3354F0866D9F0CBDE0E54BF747" + "E0D8E50C8654A1C87FDF7EB6D13C06A8D0A02FC6EA72C77D1D9" + "57B960D6726EB5F1D4B3C056B2B67D9C23DD393A25D03129FB4" + "D894DCEE892D4D7CBBEAF404FDDEF8707C5850B319E04DF5D64" + "BB9F256A6B2A7BFABE6487B16DBA0CF415F8DE98AC8D63498DF" + "68DD9E209B23297C79D108BEE3756989D751D91FD0954A7F5B1" + "66109FA11C7AF4BB18B695FF6110659E37683F92BA03C24DB92" + "76D88E6FA587543E785A4D49F37240CBD826162E0C2AB12DEEB" + "71552FB1AD45E7E5780F832D831D2AAC556A3A0005C37C148C4" + "1AE1")); + test_hash_extendable(&nettle_shake128, /* 185 octets */ + SHEX("8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E694631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B776D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992CB7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79"), + 512, + SHEX("F3ADDAA4382A61CF38C2963346547922642B064CE36B4D424F4" + "1ACB02AFE7AEBBCA83DF589208FC828EF58300E96A4D20592BF" + "D58640CDA4C970E1AD58BA410ACCC75CF6D2566B6A10D7FDF02" + "D169E6BBE8953E5812CEBF84E6E79B952680B4CB59373D8A674" + "1C3483389E611A290D1CA14178556D0CFE750C787C4DB1558A1" + "F39A2F39F9021F1E420F57CA91CD1EFD2D61D0D8CD34AD1FF7E" + "607096B9787A51CB7684D8040FC66710C63D85A510DDFDD3F60" + "056051406E7F217F12867312197690EE8EA33E6935306B76AD8" + "16043FCD52255976F9691C31AFB361612886758BE8AE9112412" + "456B4395017AE96A3D118E351EE2D17FBA96B3AF726AB1B2EFF" + "01FC3B8B4DCE461A452F0E6885EE4937B34BBDD357A83A68A95" + "D12BF9CDE1C5ABAD70CE7A30B76BDB601B8EB533D57E4DAB508" + "956440FFA0EA3EF2773A446E2CB11F08226385A71D93CA67CF6" + "CCC8EB8E48444D508EA035AB59AFF79E076FFF850CD497798F4" + "9BC633EF41B0A4239681DA28A3BCFB2FFA3A992909E0A014878" + "1A1BC03FE3FDF9B7B9971213F9BA331E5B1235314B3F173D48B" + "C3249E946627F84070AC2D8B57E184B0E8EAF0321B38857383B" + "C1C27CF9390E79A2E09A3B5552A7AA9CC55AAB534BF7D7571D3" + "ED97C258EFC9E2D3C1D34DC84EAAF55D1725AB388C0A5FA4DF2" + "70630E468980FEF3A79A67CBB2289BB03CD239C14F15A504037" + "87A3")); + test_hash_extendable(&nettle_shake128, /* 186 octets */ + SHEX("C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBCD8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04"), + 512, + SHEX("EB6CCAAD9EF05B657B6835655748051E33250C4FA600B3431E9" + "6053B0AD6ADEF7D8E5CCEDA256D96CBCF713E1998B19F8033BF" + "032C9B2A56309B31755DB88A5CB11669A49AF4999C551ECE42E" + "69DBC4D53B0AB2705295A649364E8AE495C793B73AC4F5AAA01" + "A7A66F4542A4A5B29AA266158D3379ABB4C26596CC3E7195EA9" + "112507ABA0C1BBD8EFA5785254681E11ACBF65A977199D0D489" + "CD4357CDF61F0DA3B640958FF3EC7CAB5ED0C3E725EC64D18CB" + "C8BDB097967FCE3AF9A717F591DD49AFC38FBB4437915D7B161" + "E6800C3D8C0EAAB61C5ED05D8711B00E75892AAC5169E42B95A" + "C207A27981684A7A26B9C7E00F7AB9A2DD84437940A7169BC99" + "8A56E0A31693345AC53F45B9A7D0532ACC80E093624C5341312" + "E7F2E7FFF5B0712E2B119F4C6F5CA1E55899F394C850EB038BE" + "F7EB1DF1303B7C97292732F96F4F6B8CDFBAD6C8D6FB5721A54" + "41B4897FCFCB2959026DEACF17A99A27EBDC108EB1D77518C34" + "2B8E9892CE44241F94B88803D7EF72E26E8209BC251FAF58B8E" + "0E2CDACA5B4509174B07C98AEDBB2C3871FE972A4C31DFAFCA4" + "109985904DAACAB1C124E659562B77287B6D9DB73A38A26AD0E" + "746B71FA086F6AA4E39207093A04CDBC69993C2205CFEDC4D32" + "1694D3FAB832CD729EC2501EF2D386EB170A011BAAE3E83A7EF" + "D110FD36C9A7FBDDB835FA033891FF21C4B634368FBE8AD9916" + "49A0")); + test_hash_extendable(&nettle_shake128, /* 187 octets */ + SHEX("8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CEBD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B898858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D37E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8"), + 512, + SHEX("28721A5CA8A0B2F0EA39D1E51F18FF57F838B0F7F95106E1395" + "0D717E3BE00F9CDE1FB3EAA37E3B0DFB080B1A08EB6D07B4C36" + "FBE73C248FB86E993A7A44A42501593B8721082AF6836EFB165" + "084AB5DD13C26413AA4303D19183CBF09526E9D6F590990C7A6" + "1103F82C3E3E58A673F8EA1D00C85EFD867D4D7F9A0E2956369" + "33238C39A721ED301D4168B2346B115998279BA080D3D63A7F8" + "A5BEE1DB83F415F9FA26CB0C6511A3AB2CA7CEE4B30188570FE" + "DCA952B91A299DB985E0EA5D884646DE594F5A3ACD3CF975CB8" + "987018EF6D5CB6C7044D946111D250B0EE5F40329D6EC2423D0" + "85DC8A8F8BEEA38EE4F3E4D7E206B6D1B988AABE52B074673C1" + "D74C6DB329CC978B88B0C88A41BB91D541BA4D3ABF38F892E90" + "639ECB37C79172352FA2273ADDF88BD6CD6A76B305E001F78E9" + "D6C29C46477DE5ED69FD0D398C8008C839C87FD95C51D35AF3A" + "C874F9E33E60813A984FFEE299547BDF305756A9F7560411B7B" + "B475870D8ACE7671C093E210D3BDB10D31F48E0A78D1D9E3E44" + "199CC49B7D2A9E2CA0EA8EBED0D265FBE461A12883EE515FD73" + "8BAC8299309C86B77ADBEA857C4C92ED8E0F380733B47853CE5" + "30091A6D700B4D1EBC9830C2443C7D82C3E0E446CC72D4FE75A" + "5C3AB4E38971EA41FE993BF270C477FE90E2E207DF59D011E23" + "777FBA3B454138B31F1E055818CE61649F0D4D06765247A9B8F" + "EB8D")); + test_hash_extendable(&nettle_shake128, /* 188 octets */ + SHEX("6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48BFC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B1355889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485"), + 512, + SHEX("1E98D0535E8D9201A8E74F5D60FE3151AB5C246993D2C39AE2C" + "906720F898DA70500D14E94ADD0842DDD949FF614C1DF73D578" + "79B3649CCFA780D22131DCB51E14CAF79948D497D0A4B8C3BE0" + "23551C68D88DC3E36AB8D73820FD880F3964964FABF60BF9009" + "927F25D3EBCEE347C54B3E7B9A957F0CD10AD15D0A9A2DAACE6" + "715633A9400DA882337E8505A431251BFA1B31096004E6E0F40" + "F00F6C389A9FD5DDBBF7E7F26F1259D25F2C176B4B71F0C00DE" + "B9185FF0E4508FDD0E057AF4F4D2DF3A15DFA5416ABCAF086D0" + "118BE1AA70C7A14DA41B9612814C39B6E7DBEB9A415FD4E7AC8" + "F3E046F0BE25BC0D05A183A4FFFC498100C21D013D712D7FB48" + "667454A4A54BC6CE355107267E245675002AC83E00A26A76EE6" + "081F8C621620C37A03FBFBDC6F7BD88A5D996BEA811F9F753A2" + "486262E6452F896AB8F40B2BD97F95038DB68FED4A52194B9E8" + "5815E67DACA1EEE6B0788343999453E8758AFD73DC3E1B90885" + "61305E929A0128C6D229743567C7885EAABFD9BEA8644FE8DB4" + "D19187FF46388DB5C1583DFFE70DA6349ECA26E839DB999F75C" + "1C72455643A902466C24717069EFADED38C138D6A499FCA999A" + "B653F5B5DEF624EE990F46177FEC751F55833E721DF57F6B813" + "A55C2D0C463D25E96A53DB14E6CB4340F6059C924CB7C4EDF94" + "812959251282B5F46ADD9A97DC8951B6AE72F7FAF6EFE2BD11D" + "9B34")); + test_hash_extendable(&nettle_shake128, /* 189 octets */ + SHEX("C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA535594463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7FD7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EFB86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F"), + 512, + SHEX("518802FDC9FA52A2A70FDBF2AF1B43EDE346E59B2709319CB57" + "FE6480C46C7513868686CD374AA43D656C6BA98A2A879A1A3D9" + "73C46A10E95BD0FE28029E5BC8AF03029D744F4B2D9BC9D83CE" + "895618B9E21E6C4C2D295A285F251C26D22CB1662A2AA4E8609" + "C8503CA9C908EF853BA212A87411059118596C88795C972F8FF" + "55607BF82B8C128AB5D041E86D5784B35EDEE160FFCD0631451" + "0DC4AF9B9FC51999D70C9A10449C5B62B584614742032BE710E" + "50B42ACA942C7C73776EAB51B0FEF37F5447E8CE2198266E7FD" + "1E378D5CB2F296AFB77600B64677FA13BBB19DA426288F423EC" + "6617BD19A77833F01CA5B684BDC5BAE939A79B6203B22F4FB27" + "F4BE92EBF337F9153CD3D78DA095C0E76C9877A1A80D2AE4DF7" + "CE56A8F876F32E1134E0C51E52798389C35646D3165DC164C5F" + "77ED519345D21D055A332F87CCBA7D3EF19BE950977710E9706" + "AD07E30928639148B1250026FF23B04A06E62C2799072A319E8" + "346EE80F9A0A2389C4B80B9A397C45BC1F0E92620455A1A04B6" + "BED80B1BB1B78370992C5E41FB56E984421FB1E8465132A33D6" + "D227C85970DF92D7159E6F59EB766C3511B84C85865DE1FB3FB" + "3405D2102F1CA0AA4C1EB6A0EC90F6B89D783423D848BD70C82" + "20C7F024A43888B9947D1E9E52A6204CA17B04765F503A887EA" + "929AC4866890110FED0713A0479C6FB619C08BF2CB24E026EBC" + "6151")); + test_hash_extendable(&nettle_shake128, /* 190 octets */ + SHEX("07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A40C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D16AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0"), + 512, + SHEX("DDBB83438554C66AA9D9569AF53EB13DA65440E0B1AFD88B80D" + "F59E767E069AE4C70741F68ADC2A674D66E1829AB7DF21BAD96" + "65E5ECD655F756A78EB9F78D838461A03C1A6D1836B27DDA6D2" + "69ED65B7E352030401ACC8266F41FBA4E234D225EE32BFF1240" + "6F7F620CB3484D6757EF3AB69ECD675A9250200735826B630B7" + "2E64F21E3D84B135A35E1F4AE48AB2E80424C10BE6BB7AA78F8" + "DF9C91537FABB91DB4D58428F6DE62364292141E9A7FFED93F1" + "6D1D36C3CEB4960E7CB8FCD8B91EFF75B027159586DC3040515" + "56E1401A6C555A804616AB2757D699BFB1E37426983C39F34DF" + "6C1FA6C084FDC9C633B6AA331C5E5028BD185A4EBF3EB0CA4CC" + "397D481F404440F4AB2AB7DFE0FFC935D91D417D94D9858F89D" + "28B4900E634A5CAAADE9F149C6CA1E011EC684CFA3B3042F9A3" + "20501522B6211DA5F5555C87102DF37F17E4AD3BA55A37381D2" + "04FBA5711ABED49EE51F3985ECEA7E239FBA0E8A060A4990590" + "795EDD1A936C185BF37AF9B95FA3E6294A780DC9FFFAD7D9319" + "002D18794FF0DA59CC6AD9E3AD9D74BDBCA343EF694CFD333F8" + "7278E59CC445FBE0E622857F3745FFD8C90A161F7F49EA875BB" + "1CB234C63AA0C55E530A72B19CB770FE91872A91420FD1CAB52" + "0EE922C2B6FB59CB8E516C303F4C74852769EF1787FBD7429D3" + "3B2FC0ADC18B23034736FAC59F926E88DF27D811591F03E7009" + "193D")); + test_hash_extendable(&nettle_shake128, /* 191 octets */ + SHEX("588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452AD4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A"), + 512, + SHEX("3A0476C8E248067F0F96F01561CD0F6E55BB31FED70D2AD5F28" + "2F030044A331C6A20F14F254D1CA11EEE4226323874A1035C0F" + "522284627B51F29EE43B291D24001C4A44C638AAE5A89045C14" + "1E16B562FC1893F39CF49BBA6D17EFBCFA4919A1C60D60CDB13" + "2CEF068A05A81FA5C374273FE366F4CAA16887C5AD1288BD066" + "B741D234FF63AAE976E742F5DCFF610CAA33826A7856E5E5265" + "FDBFA04007FF3F0F701850DE3E911FD71E00012DE9823D78E38" + "1CCBAF09976FD686811255423A7CDCADBD854BED848EE0ED297" + "7FC192573F2F36C62A5539CE807C2B01AE7220C6139D1ACCEC6" + "CA37F2C964BE922547BC692274D557ABC1E7D521D1215CC5626" + "0D0C7EF4C3EEFA6D54182FE1928D8179FD4508B8A4C7A3F78D2" + "D0CDF76ABF581F0689D1BBAE1F7ED3A8AF23D687C369398C715" + "F71377DA92A518EAE81C7587876691AF81B982340D71F3FF383" + "6AE9E87EEF7DB14AFECE5F57E45746173E7834132F922AB5AFD" + "E73076B67E446A0F096ED2BC87E12216BACCEAF1E912CBE8948" + "3B5E0BC35DF7C38F79F31C1567D16A321920B2D0E6F3637B2C6" + "5AC762239522433AA51EB34A2A174C93A693C187E97B3BFA4C8" + "C9C7DD512A74F26EF74EEE24D3F425F0CC05F0A3A630806FB96" + "0437F6EDB2C31B0103B3933986BA9E0B2D26B554FB9AF7DB545" + "4A18A8D52EA8445F6844BA7371511CD14FBE171BB4045C73775" + "53E7")); + test_hash_extendable(&nettle_shake128, /* 192 octets */ + SHEX("08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED41B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB247ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AFE46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132"), + 512, + SHEX("868C7566EDF719D04D7457BCA5CA9B4B62F309FBE1046A7351F" + "24DCBE2E2224E34CC23E2C859E83B8B09E15FD575FE5225A03D" + "1869CD1879728825A67008CBD1C7F0535086DE803A3E55DBAD1" + "BD9998EBEACE9CBE63C4500B5ED3380153A41C33948E82E2D37" + "5E70E2A8C3F1C1AEAE72D000EFCBD7F9DA3FE0422AEB9A10B81" + "B07ECCEE0C227947E7DD5E2B277A80718015BF5CA4C9B3EA5EC" + "7CAC5CBDC79642CC0B547729A0956C739C956D09FAF013F402D" + "764EF87A5027049C4FA0BD8EE8D77D99F3124710DB8B274B1F8" + "878AD74CF88F21ABC520153B2668B79F824D74C4F113A66A275" + "FF882B64794E307182C5EA6C96A719FEC5FCDDB619579246EFA" + "CF142F976DE21ACEB21136E9AAABF231706C767A664602C676E" + "A46C70F0BE2A7F9907A484BD6064E1BF132FEE115362DC13566" + "F763F4CB29A3CCB68594D9E7427F2D29B1A3D02520A81AF9D41" + "990E04C9766260841E86965DB59B764E1867F9F2B4BFC6C13BB" + "C08C4DB843982E262F75CE6F0E034B58DE6ECDB71A5E32E9F91" + "CA8398EC286277B0DD6A518031C16AB864971C243CEBCF3755A" + "72AFCC186C5D200873EB27B070603A6FE494ADCAC893162CFFB" + "544C2B69083693A407DD92CB4F6B1B341EBE491738258EC5D10" + "9856BF106B56E6B96481B933093DC4DBE2CD075C5E3B760D36F" + "3B92A286F91AF57604B70206C8922ED21006E05A271F1415F84" + "F6BA")); + test_hash_extendable(&nettle_shake128, /* 193 octets */ + SHEX("CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE77E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF01"), + 512, + SHEX("49D7FA3A63EE1611E9ECEFA88F80DFCAD8D7AD69E6A899AD04D" + "102885AE1419F8E9E6897F1D6937177E1BD8CA104A7C227B8DC" + "DAD473D0A2BC12C1A2287B5DC66A0F808D02C452BDFBF5AC4F4" + "3B38105B5A9F2E67A4C6C81FE5DDCC1AD3EAD625B29031FD5F1" + "EF18F4AAE15EECC2B6F5A4336E5BE3FD7D3970D50261FF6F992" + "E5A0F818BE342B910B267C8740B7F331E0623B5793D4146DBD8" + "BA3636D12914DF35CCFBEEE62BF3E0033DDD26114EE709A641E" + "D54C21A130C8B3E1F9A49965E48B8AB914AA2B2A377DB1873A1" + "882625EBCFDD1C366360B8DBC631DB94BFF615BCAB90D8BAB3C" + "14F2CF4A6E4C4130AF4255ACF14B2B3699EDF8753C745F9D8DC" + "23AFBF449A05FE05FCC83FB609856A5BE79B06E57D3E42531ED" + "CC13B1AEB76BE54CEDF8665439731CEE4144CEDC0E8ACF9EE2A" + "F245769D24DA6261E368CF0D599225C397C61A87EA8C0EF648A" + "74CB1E3C5ED2C6CDB766E83BC68299B1AD882CEF5B436608847" + "548141FE1DB303BDB13771EF19674F196EFE3502B14A7A47283" + "EE6BBBA86354B88A8FB15187E0AC84CE0E9CDF737F62C15ED3A" + "4A6FA0708F91DA2190268C0923D1E696B5E98251A6783479E6B" + "A28336C39E27680BB86BEC2991D82EFB40CFE6985944ED3B18E" + "2ACC7E51BB24D0F2C19BDE84CB271FDA6BBB5DE6B40203AB54C" + "EEAAB0D84A339DD84108929663A50EF23BCF1E79909E2275FDD" + "BE57")); + test_hash_extendable(&nettle_shake128, /* 194 octets */ + SHEX("D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E8909310AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE89EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA94D4B"), + 512, + SHEX("815BB24A227FF0B94478EC10D6B4FAC313D56FD9DED13E94A57" + "869D8BC5E542E47CD97D42F1387757539A452C5C40492DA8A4D" + "65190AE36BF2E169446BBE5CE0742A1A9865126EA07AD3875D4" + "7C5ED5F85C1A7A57CC350E05A4DCB1F052D9FF4AED38C5E1D65" + "C05C3C7DB8A9A6C00AE2B3B45FEDCA8C309B2C369A7B9608AA3" + "65015AF193F33092D084B2A7AC5CFCC018A045A1D89989FAA5F" + "B16F854453D9A6336B900ECC4D9EAEF9DE4C6A287C44D0E4866" + "CC8E4F8CDE5317EEE01113DA6A64B88A1469835BBA057760EC1" + "D03D63D9CA40AACD7CFD8619E92739CDD72C9A11B0705A4E50D" + "C386D4D378E624818B2D36B4FFB6DD1AD2C9F9D2A8BC4A7FB73" + "827930E98CFA03C221B7C9D648463B8C2AF1DD195A817C0E986" + "E8DE6C11371AB830EF74CC5E734B56C6C013350C1212901322B" + "FCB0CDDDF13344473E3950C393466DFDB59FFF9E582E9B79F59" + "38B0476DE125FC36FF74C03CFB685CB09BFF4C234F272D9B1BA" + "6A2560308464CE36DDC0EB6863AD42B7D0490091C05A745CA5F" + "288B303A0FD08BFF7BA2265B6C12B25840357DAC735CEAD9E60" + "87D38A97421CD4E54518D7C0CF0968860B6348D1531C56C1B4F" + "6B5C7771377194EF24E91F9D9DF96253B80009341E10122C14D" + "919A037C820822A23E47620B35D0DA729A1AE329F99EBCC26FC" + "D8CB9C67334F8B04714D2B76D5D0EA6156187C9017E764AEA66" + "E88B")); + test_hash_extendable(&nettle_shake128, /* 195 octets */ + SHEX("8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B004318210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3A3BA86"), + 512, + SHEX("47A1ACF4036C3A62A24F7A2E1147F5729DB886339C7CE7A9A6E" + "7613BB60C475724D573E64E4027F296023E762CA20F880AB6C7" + "3142D3D1D36C19905BBA147317880DD9210A75FD7C552076F24" + "19432E46C858E69B7F7C72372BE510F07F21977DEA627514F6E" + "CBB34DDCD6CF5D86B01BE3DA48481B25D56071CEEE2142A9956" + "AAB4760666DE359A36B8808D1DF3F3C15F22163CEC7C1181445" + "DF7D06E79BDA799A6C4F278968B677FB78C8157CDA2FB7447AC" + "C2D485E6922D82E1AF596C760FCC2D7D83A6A4B52400E3FDF64" + "A2A7E4D9D9C59930579D4516618FE9979B10562B35F26CEED8D" + "53DE5B322B3BB4F1B989EAF31517AD896CE3E57F879D6DE9D4A" + "847E4F7C9EE093D7AD482D84D947CAB0B6619D8895FACC2DA8B" + "AC086E054B3ECEB72689DF5730FA6E51F98205B1FA5AC9DAF82" + "A78867B655B39792C686518BE3024A5F975E97A021F64FC7501" + "4635371C9DCC8952F2B5404582855FFB049561F3E20013E74C8" + "A05FD434516218CC6E463F62515B454B358C611F2902B9D11BA" + "D43862497532DF84DE73A02054459B79CB956E6DFF229E8FBC8" + "CC558D666E10660B87B9B0831DF729CD87A22FA33891D9CEB2C" + "C7CEEB1F316600B9432346D1FC211CE1946946F33BA59D6B53F" + "9208F8F1FA8362524448CF87A851CAE07D0CCE86E594B5EACCF" + "0B4F10F8C4D414AC194909CFE526CC87FCCE1386C7F5537D103" + "52F5")); + test_hash_extendable(&nettle_shake128, /* 196 octets */ + SHEX("84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C42669AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C791C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468AB784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5FB9E4AB6"), + 512, + SHEX("2F06C83D5CBC776C9E2E490482D92BBD8D32B07B1028E046582" + "DD17951C13CDFA27C065A2821D997F37CED1D3F69ED8A8EEC35" + "A55C1419B28770800A66A8CCC05332C64B0A310A1F4A99EE9A1" + "8ED342CC03A89193BB63849A6F0288B29B0801000EC0E3961FD" + "85E6CF488031F028232B8FEDE6827C7C24FBC33A26A87A9B621" + "0004038C67EECF0EF9D19C3DC8FE2C7DB8A449F168A98CFC190" + "043FD6E2FF366CC35556192E39D1664194D6943F9EA5B4675D5" + "051100E1497C1970C2927506B5B717D2DBFFCC9F62A0AC33834" + "0C8C473B397B98812BC77202A67426ACB83F4A103687425D9F7" + "93312570FF6CBD897733CE7399A3853887918A9EF8D0BFAC5A3" + "03B9E66CEB5BA52B826EADA8E5E158422A6D42F89E986C30F9D" + "8E14C8B3FC7DAA5B012452666612ACEE1884C069F98E476F89E" + "74B35EF94002744108A0EEFB9A9992104973E1176F2AE0F5607" + "91B9486E7A27C75BAD42054047E87FB95F43AE211FED7E39487" + "45624F8EAE4A81CFFCB4BA389E169C9B55FDE64DBC31E628714" + "4D0803EC3F0E5A86DE5FCD0CBEBAAC40D7103B3C0BCC8AFDE49" + "1B25AA472BEEF91D2AFA59D980EF1A833002838A2159C0F9FDA" + "E39489B6E865ADDA3EA6DC8E675E45A45857111A2EB49FE3ADC" + "D52EFAE414B6EE423440419B310E3CF751F497ADED9BD3CEC91" + "72A23FFC878DD9FF6033EAC9C4CE7697BA9EEF60B67665CEBAB" + "C43B")); + test_hash_extendable(&nettle_shake128, /* 197 octets */ + SHEX("FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C12859CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA740459297B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC0991355C6280"), + 512, + SHEX("ACB6638C5302BFD244F9C4F1ADEA0461562CDBC92670F2C0C91" + "35BA8754BFFEDF6621FB48B702792F71AC3B800BACD3A187916" + "42865247B75D086AE816CE17F6D0CDD63D0A2FDBA9C743FC9E3" + "273E6834D21F12554B977A146906682B5DFD85F41BEBD1ED03C" + "A3B67DE188A0547493753465D76145F5F860EDD2F8F3C09ADEA" + "139C3E057AC64487962E3EE38E1FB9F29BB5FCF2D70993AEF47" + "E56A26C70D200D357758A4B34BD9327DBACF987754D805CCB5D" + "2F4CAB0E238DE726E6FF78239C0F2E020A1FE4D4F6CC27C0747" + "ECA37B4F72A110B3B8715E3DB07DBAABB0E580C4F20DDCB7ECE" + "60B295211AB7CEF858153DBF3F8D0E27F621551B317534E9680" + "576D629C5928F1A03C9928A93B67B4FFA019DBADF9AA71D37E7" + "9D40051F6BC6DA2D567E3E48706346275DAA4506A0CE668C2D4" + "768FFF917A11E4C1726842D315DB4D189FCF686C8BC1061A63F" + "B05A73720088C9FDCA783EAD1FB390ABBBF0B6BDCC775CA9AC3" + "2A1CBBD66BD80DA59152C97E295AB35DDEB7048B975C9E2A794" + "993852F31A18840528D2F297454598A3F31BF9973B9CE54D5E2" + "A8012EB2CEE9D49FD8299DAD5BB566629F6EE4EDDD71E6D08C2" + "23D0A1F48BB804096B24BC6DA27B80AC2EADF7B7B39C29F3DBE" + "556AF66463785707A23495E2FFAA815640BC925230DDE6E5E54" + "5A7C414543D55CFA23330BE5CC1720A816E4064FDC0BB45C0D9" + "A426")); + test_hash_extendable(&nettle_shake128, /* 198 octets */ + SHEX("70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB651062B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADDA64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E601EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7AF1AE717238D"), + 512, + SHEX("2856032A7399BC2D4A4D43D7DC024AA3040ED171982042E0D1A" + "4063B6603526EB4DEA45FDB007AC0E61043A11A502D4C49440C" + "174BB183979A5D3A35C593E1A01886C60472D40D161A0512E33" + "72BD5F8D35A217391D5AD14DB17EB23BCB74D7701286A158B03" + "A927CFD03C4062EC0461F8C9C3D4B8DE0D70CEC5EB018375E13" + "8278ED9ED366D546D896DD885DA0C3513C5AB7EFE2ECA848B27" + "0CDAC3D2FE7E14F3DE6848FE01D64D841F198C85CE57E16B06F" + "F41FFD454B6C61569B71D538CE5729DC5A5AA1D4DFD5F1D3F4C" + "CA0F424701E8857EC66C8DC3D44DAACAB9D05626751240E1E8F" + "1ADC1E064AAF47C66D9EDB0EE114A6155E28BF4769F88C05331" + "3792CD9BB2D9687E595D321E152CFB42F67EC9DA6E373E7621E" + "4379A3C22B4828412223AED28946784CF67B6CE99918E0C1217" + "501624599E4E79E90016ABD265E21E91205824B7FBB95E9ED99" + "9C50F90C5748F83E71EABB66DC2C16CAB63C064BB88C865FD30" + "EAB8FAFE0529312BE74B55BADC4C944C69B89D98E7E07054A0A" + "AC8AAD91F53582B91CB22A56741C41998EC878B11671AFC9DF2" + "6B5261BE5EEAD565BE962E87A40A5200A0856123ED7D248431E" + "FEC79D7932407A7D762137EEFABBBE0C6C482CBCE115FA9CB72" + "54614DE54E361C5CBC4EAC03757B83F4E4A96BD47D8347ED5E2" + "C9E96DF3F03A9762988D671AA75EC9F3B5E833570F13CEA7C32" + "3522")); + test_hash_extendable(&nettle_shake128, /* 199 octets */ + SHEX("74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C66585CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F3316670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030528F9AB49C79F2"), + 512, + SHEX("6AB8F0F45B860126332E32AD1819FD5A23DFEEE2C7FE47081AC" + "855901D2DA3F590FB64F989EA616FAA0533E49A3B08589FF2DF" + "8B8A27BAE25A23FA93710032F2DDEC4E3F905CA8AC37CBA1D9D" + "225B2F62343DD5418283DB7D6E427EF537650944723DDD7DFED" + "6394BA1540B2FE72944C330CFAEF76A9CC3998C1B6C38A83EA7" + "1B075F1E65C9209BEDD565149137A4BE1C640F4EC86A556B196" + "BDF14F5C336418DCA1330CBE1781DFCBDFC26B562025C9DB904" + "61658C4F1947A1B1374D8120168A1AB8D0CEA7527F0503F19C4" + "605463CE134CABE1C72866F37EA2F105D44A3F2080DD42DA509" + "ECDB1EA8C0AD439820D4BCFFCC5C34BF78CD8BEED8E394567A7" + "8864517CD183EC4366249FA9340FE4A112DBB418B32AEF24426" + "CC95E12BD243F3BD4E744407F3B461B7E8C7FF096F2279962D6" + "0E778E1C362A5F47E4ACAE0561944BE126C8ED384BA5E71F8C2" + "3FD914D525D3AFFA915CEBA52CB3B6265E003D6B2483C7C331D" + "B0F56EB5F4D0B4A7DB558A154E34F539136C6869126FE3A7FBB" + "C07A92CA251A6ED301CB1A8415FF16CC28D1482FBB7A70DF1EF" + "2D5AA55A084116577301EAACD88BFF5139D091D0BBAE55E31E5" + "0FBF28952E7071594FD81B626FA4194D97572058F217ED070B9" + "7ED42D8C7D9DCE730D270A01BF847929FF0E2190446D82F93D9" + "C2BF309F836811DE1E4700D9BA736672B407E539219634F3295" + "6ECC")); + test_hash_extendable(&nettle_shake128, /* 200 octets */ + SHEX("8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F834D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B44985AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937EBDDC89186839B77"), + 512, + SHEX("6E9D7E55E8B258208FE6C1C50CE490BF81748DEB2B4401800C2" + "423E9479AF3BC1B4C37249A2DC00F120DC5E2114ADE14C83043" + "7D6B0190FEC5AAAF57D4E9C5078B867B2905D48E6748E85CDBB" + "3F1995389AB373014E6237948B8343AB418716F0E9971DB6A17" + "9B11277ACB2DF6B6B5903EBF311F2D94B10C3AD0BEDF2ADC748" + "6929C8C43CF0ED6673C6468CF69B493C9EAC2ADE0AB39871795" + "70886A28C08D0DCC83B0162A8D459680FDD2422C2C40A44E3FE" + "55D0AB24CEADE4063C995915794B0C842573E2E7C4BFF8E201D" + "3F9B3E8F49D90186AABC9DDC6110E98E3410617DA24FFBA5A7E" + "5C3193C16B70CD6CF919DD6F15DA3627F42B6225EAF4BF1851A" + "570E099FE3B8E7D746C34573A74744D42135332DAAC9A9341E5" + "98C714FAFBE052F7E745BA1D424CBE0CB1932A9E497D2111AC5" + "97F7E5010A86567C51218451EC3D1461D1D2D54F5E8754C854C" + "D4D60972BC09482084AB865DFDA01D1C7AE4C749BFBDDD19BBC" + "D95E8A53009529468BC4C47D9015A119B9C37DD2C149C65E6C9" + "9699C69C3CFA405C65E0E51A3585D35EAD701FEB58F1AC72D74" + "E87D2C65FB072C11B235FFCDE39559A45F881DCB292CAED95B3" + "AB6E0E468F86A235E2D83708044D75E768A2F3EB13523338761" + "DBC38A8E014052DBD46A0064AE0255BAFBA6A0C8FBFB40CB41D" + "CDACBC5466787638B901AD452D7D50A0C610001FBB6F126902D" + "2FD5")); + test_hash_extendable(&nettle_shake128, /* 201 octets */ + SHEX("FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3ECB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711AB1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A08716DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360C66F252F6E64EDC96B"), + 512, + SHEX("BF52ACA76D241CB569D39EB2D8669D1B2642C0CDB8B141E87C3" + "B1BDB1F202641A1600AD388806BA9F5DB50A7CFFF97CB23EE97" + "7C0D3899F414FF5C47D689840F59E7E7DB2EDD92AFF3FB36FD1" + "98E7BF5D81FA279F743FDB6B9C00E974065802903DC40CC3E21" + "6FF727A72F267624894F114C62E7B101D9DA391E3A205C7B492" + "B7EA28D836AC6657960CBBE4C38A73F87EA1F8A155A62C0A5D5" + "BA821D9ADFD42BCF42CB3150267AEAAE507A4009BA8DCF70A13" + "AFEDCB2121503CFFE786304E3AA980D0FCD7C908406FD2CD9CA" + "E45DE97414647DE04D03C1214C967A14756830AFA6F83AD91CA" + "66D9DE50B8F0483F99572A284BF9468A6ABEB45F335EAF0782C" + "04563DFBF231956BA4575DD9BDFA10E2F6DF8878415B357867E" + "5C22B9CF349B480DD0CA1F7CD432FCDA057A5F9AE580814A7CF" + "E843FA831A5CDB87646BCBE70229A3EE7CBB3094E591FACC868" + "0F298E10E1383D3A6387A503FD537A6ED924903CC9149879A95" + "A164A8B3BDD385A69A93C58AACC066FBE4E59C7F6E16C00E45B" + "DC19EC267F7684705CEF34D830ACCC03822EFE9C1B3903C47FC" + "FA91FC7A7B58240765EEF217341FF96F0D0CDF5062D8B193918" + "5C47FABE5498A784622D1B2DA0DBF06DAE6F661206F98EBDB25" + "7BB2FC4C86EF6E7C6E31E7756C8CFE7C4842CDA9878D6257EDD" + "7F204A009A9E1A492F5ABFD42B48593231324728F8A510C47F5" + "16E2")); + test_hash_extendable(&nettle_shake128, /* 202 octets */ + SHEX("B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C7925761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA5363892A2495DF8C1EEF"), + 512, + SHEX("08E74B227985F88B7C1884A179D0B9C9F58BD2078F8938519F4" + "60511B00003E51A8EF4C93F69B716DF11DF2839688108ADF724" + "76D1675E4DF3399C05257B1DB542D92F0E27FC59A927F00C475" + "8ADA0FD95DB9D3251C01CB9167B2D6310E051407A2EAF415A2E" + "478BE53C3945A702F04E25713EC2E2E1D51D636870642F6023A" + "43FD0859A3B468A9502A8EFECF19BF97906E199C095464600B0" + "B7A1B180B841158C6C98D13C371F7AB56496EA14CFF3110AA9D" + "33869069A1F9215A6FD99CE9226EEF5A272B004827DDE0E1B1B" + "F4B0C0CBB670CAF16B1840C6E88E577ACC2ED4493C598B938AE" + "CE1824717964048786D9CAB9ED14DAD9F87DF1E9C374010D89D" + "4A8616CCDBF687E12D7CDFB388CBBB88B56FEE3AEDBC5360088" + "A49FC1B2E1DD5518E0E00F50E3C922C8CA600A41F72B985F02E" + "32A1F9A1FEE1E1929F5746FFEB87EC41F08861EA3463ABB9803" + "CCE8C8257853FDC0B0C077D4255DAD1FA9E5D865C981BA15236" + "828E7E425F5DACC4B738DE18E6C68A6C925B72C14E304291611" + "7E91CB69311081E4E845B09679CA0607BBAFCC1341B283BAD54" + "65633073E5DAEED6541B1FD09537EDA2F0D2A51CFD8715D3064" + "FB074B52D48D4E7175B4AD0A0A6084128424958275068BAD56B" + "5AD2769918B6AABA7AB1E8C9F88859B3DAB310FBA2FF67BDD3F" + "C9E0B2EDDE0B716897220AB75611975E137DB525DE4465ECBB2" + "D9D1")); + test_hash_extendable(&nettle_shake128, /* 203 octets */ + SHEX("C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B349393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F5C6D1BE4BC79F08A1A0A46"), + 512, + SHEX("3B3E210E0FB73556801A2250F1E76C45DAD31E12F9EE3448640" + "B73D5AFD6D2D6FACDC1B0CFA53F46A56923CF16B6BDCAB566F3" + "A0105E442ED7E88C09D705249BE34463D435C14D5118A7E028D" + "C35FAA98112F80D816ABE04F7345EA55E7F7652995FC047AFF6" + "B8E4D05C24A0C78FD9FD40835E523BE7867312630993FC9E5CB" + "FB47048453C205880EEEEA2ED9A198AC145537BEA2C216A6077" + "4C400444C07CF6546159EAE47FD6CC79CA43D0D26C79DD13F39" + "748A696F181984B5B8EAED82976C9B0C63C915BC2A2DF911396" + "18AC82E4478EA26F9731D422C692AD1BCF483936D99F65CC8E5" + "CE20CD94ABC2C4176B668D1813AA3ED84CBE68B8C982A8F8846" + "71CCD29B70EFBA765CB4BE7D0D139798FBF344D7D1829F3AFA9" + "46C3558B4C958A9235E4E96B28BE25641120E00EFE178304804" + "D90946CDD1DB6229C0147339A1F75FBEC606A3B3FDCDDD9235E" + "A6BD3F166AD132F8C222E45A805D166F8FEC56D488A2AB66737" + "E3238E67419E194665DDAD4D8214394A4DA1AE09E0EC4EC5B20" + "9C18004F4008ABFE997E456BBF99F1FD9B31E69B934BA694ACA" + "DDD534E4BB4472179403BF9014A9EC311B16CA2900C669A8981" + "BE3B5A8A9D3BF4D05028FE6D3D97D54B9BE443F9B0F73E59780" + "D09AFC937D1F36C4CD8CAA1EB2A8522AAA175FF2E4A3285849C" + "059991174BEC1BA6E42E399C4AB0A566BFBC09CF1B836BF4213" + "8026")); + test_hash_extendable(&nettle_shake128, /* 204 octets */ + SHEX("4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD496EB6E4A80358ACC78647D043"), + 512, + SHEX("615FBF41D7184EF0EDF7AB0B079B76A4A7BF2B10A79A2FFE8D2" + "2E2F0A8B6280559BFD74E4F68E7691264A5B4651AE0EDC504F6" + "AC0677E14389D92913660E75626615622DD458B7CAE4EBF1DA4" + "F7ADB0771A809BDB44E918F7D681711EAE7ED84745A1E7F3AFF" + "0931162BBFBE975C394AE6843CEAD454A00EA54DB5A55AA8454" + "13EC88BDF9119E238E6C84BCB76342FA8BA1A448AF7CBA6D0F1" + "C964EE981AEF20C5268BC1C3AE3F723E48D1932CDB14B95629D" + "CC5269F2EA77F277354BF910B05BDED92D6B8BAF9601080156E" + "F0D1600E80D8050B99243C64221E9B8AE82773C6BE95829203F" + "BEE6CAEDF299509D6A2DA570320CA6410E9853575A342F9E9AE" + "76E27E1B0C892B2C932D80AD2B91A8D62D805FFDE196DC1F169" + "D2B9D51F28FAE6546887182B91298B7B2FDE472BFFD86384EE1" + "B78B4B5654F3DC38FE4400CEF50338F1D79B478C6781ECA2130" + "CF3A86D9124C31754989A22F022658CFA62833CD5F25A021B03" + "A84A7AA3F8890922AD179D589E46B535B0E6033C8383CD6B803" + "24EF8EFB3BC6CB9CF5BA0BF5F6B185B83EDBE3F0BF27A9942FA" + "87D172A5C9294BD63396EC8E1A5C7EE0BD7DA1109A69E2ED928" + "025B8383C55C6EDED0BB9E23E15F50388209B3508FBACB7DAC5" + "20E0327F2148FE27450D0C5C06712A45011C95D7B02C0E0F15B" + "F8C222527451C1DA4AB70CF649A025F8C95CD919E937B079F36" + "4C97")); + test_hash_extendable(&nettle_shake128, /* 205 octets */ + SHEX("EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89BF3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA21401E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F231590BF2C4062FD2AD58F906A2D0D"), + 512, + SHEX("8043574AA03D7C6409677E5E579FCBCE191118E2161C214640D" + "725D384A3D941857498CC75480574F9BF4F7613241183B7B135" + "4D4D08A9AD1AF03230636A14D40A30A1CE8D1DD9CBFFE41011E" + "40D3FC3DC1ECCB83374F14209EB83BD16861E161882CFC86A53" + "32BF0357DE84D38CB6FE65FF8EC3C8A01EBADAC09FBE960E5D5" + "5F752878A608B3E67EA840503D59B6625B42570F74671B42672" + "46995B5575294D20B6E693D02395AC5329451F905B14D7FFF86" + "A4401F78E6CC7B83806C19F30AF6C75787F56222B9FF673F563" + "1165ED8F20DA13167F4DFA4C53476D7E2D7F76F4EA6DD77072F" + "EF26AC3AC7F65EA2C4F113897D4F00ED38CBA8AB162B1BC3151" + "D769D24A42DDF88F9515A04E3FE57FB4ECAAE26F608FA6A0E30" + "166F5A12223C10ADB56803343E938EB88C839EF9F91FC7A0B9D" + "F899AD3DC328166C8AF33DE8560EDE98EC371A22938252432FA" + "57716C4058B7CDFB1DD7F5087CD45EAE5BF1A4C3AE03C19CCB5" + "80EC122DFD54DD2106A4E5A647558B24D15D30CE2FCA05673F8" + "991003EC61270F279B7C2DE67D1930A5C948C9259D4E9DBDAB2" + "D94DC1E1403697499544A1FA1109956AA22DA488B61A97E933F" + "ECAC59711E1BD5967DF18130CA394FDA025BA334B2857A1EDEC" + "B002BA56DCCECF9044E579143DC47BE03072D935607DE1E674C" + "955A63508CB5D42AF7FDB80459F4A239DC78C31097E71C06924" + "092A")); + test_hash_extendable(&nettle_shake128, /* 206 octets */ + SHEX("E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DEAF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE3EE46FB67422F814A68C4BE3E8C9"), + 512, + SHEX("2ABA810B7512B1B3B179995F76F843BF39FEDB5B969267D5F54" + "5A605ABBB3F627B59550678B4E3C3B8E0959D5907F88B814413" + "A5D94B0011FC8BC445096CF1B49D11FB2A4EA1EF1F219F7DDEC" + "03B3678F2D95DD8FBDB7A1604AF0D8A5F3DC33E257A54CA3EB5" + "0C49C03BC55545A36F807ACE5A69F2D7069D3530F304F419B8D" + "5DCB80890036299465C3C9C45FC49A73F9BE6C869113AC03DC5" + "DAA116BC60F687DF7DB354201DAD9CD841467C27E6F0ABDF5ED" + "A1F8B7646365A93BA71E1FF6C28D83AB5EA309E2C902A6A1A63" + "96525A97EABF4F69C56B3527811046674F99EDD2779AE353654" + "982A10C22BAF7FDDE401CE67E8044539995F528B398DDDE5132" + "FC156E5587A9A3B3D5329F8DF4C55E86F3FEC30788D8E00DF69" + "6CCC46A564F2371932E21A45541315D8C31DED3A161E0F595EF" + "47F8FB1DD7F1B57537FA36D105F1AD0E60C917F01D9C88FA002" + "0349CCA8B01D77AFFE23CA4B575ABF1E42726B271FE77FF0FE8" + "1A8A20C06AC8DB699AA2E11F05CC5E9BB794B7E1F847F411FC4" + "621281D257219709D38BA231E7060F745FEFF6B4BEF5DF477A2" + "4ED763E2BD49929E6C8C83EC776BE988A8528B1FB360BF5D7BC" + "D654FF9A1CFE1EBD5F6F21954F155B1F6ECFAA7E6CD4E52D9B0" + "8C68943B29B54C5628F3EF3A966A94FA964A5874BD2FDAF65A6" + "63743F07EB0D6B3B3427DD419C8EF627675593728885A3DDB1E" + "3C4D")); + test_hash_extendable(&nettle_shake128, /* 207 octets */ + SHEX("D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984AC58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED54557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB438428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF4519844DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55A17E776C0D02856032A6CD10AD2838"), + 512, + SHEX("3582DEF5C0EC3C751727CBDFF5D9561E3A0F9EFFEF28C063461" + "605140A2126265FA88C15B9EA3AD5CFD82378F78AC98BAA5ED6" + "7969473ED9177EF14F44BA210BAFEBFCA9C8DDA7E1AB5C6881A" + "AE8EE0C824B47493C38EA7B5180323C7E962ABA1DE928A0ACBA" + "596B2F8B7AF188265EB92C5BEBC9EF0A41F692E4B762990A408" + "66AEC96CEECB20EF9F7CCBFB83A85485163789811FED7B8E0A4" + "3FD15CFA4BB13099F3CAB95791F8B05F5027672EAC2D397FDE1" + "CD7E06FAD506CA1EFC22AD9CBB354D98BE5790B4021C7AFE6EF" + "25D223510664DEC63D35158999C9CDCC513C8C7E93175A677A3" + "0259CB280ACA38FC7A8997B663A29EBD98D1C35F7DC1DAABD67" + "70BFD3B84F1C0314E67F14E7FA9A881C21BC0E5C2AFD5F1B14E" + "F4EDF9AD382F7D7E008934EF762B41782DCAE9B64448ABAE73D" + "5A3CC80094B4F9983CB92D61C3555E58C0D24726E8073C39C34" + "80FB2BA9F8679B9E8618CFA04921741B3EE72A276568068334E" + "61089CEA277CF0D34EA33E02095BE33202EC69D2314128DDAD6" + "3F001DF3809BAA75E3A5720B34E8C7A63E06DA419A4818E48B3" + "0D8B0AE2E2405053C9CE76AC45C52EDEAF6237260F18940F030" + "0125CE674BE744DC2A07262A146CB3BF595B59EB499439D94F8" + "135DE7E58C0FD09744EBBB97BD4C10C178904F52C7481B4D808" + "E663DDDBBF3235844CEA3DB323BBCEC1756BC4480C4FED0C14E" + "14D3")); + test_hash_extendable(&nettle_shake128, /* 208 octets */ + SHEX("F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4AC2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD542DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB15454AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DACF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E82ED1C78631FD23B4C3EB27C3FAEC8685"), + 512, + SHEX("8C05C9635942C0661C29CDA0375395B595A82E4B1EF87D767E5" + "A820CC6975F2B1AF87B76F69DE5BB9B77E14753C2EFEFCB7356" + "01DF5CB4DDAF5810BB89AC8863379192C578A3F2FEA30994EDF" + "58F5A995857AF481FC4FBAA552E6564AE091C3EC2C5FB514479" + "8405972C6947D45696F7E918D6820274BAC4ED1E721E85EE688" + "E7EF7E6B4C87CA94CB6AD3221B5B0189D2F39A5482FFAB8A928" + "A8FE4C117827E33E9C8B024BC35E30A9475D54293F196C83EED" + "3B458D7E676A48D2BC2E09AD96167E556F00799E63C8C0668AA" + "3710769C6533AF4F04816355BF4E88A2EBBA1B442BEF0BC9F7D" + "D85A1FA42745893CD1F87614356E42E897821BBDE09CBA135AC" + "E56612AD79A99A3397D2BBB6FCBDC505A0372DF7ACE31B53231" + "887A618E4E846E3E458078B4AB9FA4D6D4D118F16EC8AA376B4" + "0CDD1594C0C41FEE2DFCC866FFB1F9B8AEFA04435F895B6D73E" + "2FAA89BFF85FF14C133729B3789251E2A2CB38B8D5F9E6F8F0E" + "EF26FA1A17A8255AE9EF58FA4BA9BD8A8FDE46ED5B0CFE9BFCB" + "C20BDDAB37812FA44B0A1A99A6F10CF0E6BD931B6AFE22AF298" + "483FB4D45BCCE9FD79C5A9CE2EB3359CBBB4673E0FEB2D1677F" + "06A15F0938086DAA9CDF2B08FEF130BC793134369D4344D474F" + "93C3C9EB877D0DE0CFEF351FB2589436DE6247B51352CA913C3" + "E774B70655AD48BEFB6E4D494A6E610CD968E8CC613339D789C" + "16DF")); + test_hash_extendable(&nettle_shake128, /* 209 octets */ + SHEX("447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A294D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F8804F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89ECD90333A77BC4E1988A82ABF7C7CAF3291"), + 512, + SHEX("84E7658F462F68915CCCC917B3F7A01F18E9E883CDA1FA6C856" + "E2D3B77C53B9E9C3841EF72295CE3418319E1DAFF2F58AA0CCF" + "89C1107C459B505A46DF314E670B51753CCE3701822C4FAE1F0" + "8EA93789FAE1A8A61755FCC17F57C8C8E344208A299995A3C3E" + "D6266756D17DFB70E67F27621A6AF9EF926ED36F3CB169C9BFB" + "B84DF0B2C51602902C12F519EA23C3B4B8BB2B1241798F72A74" + "8C6AE4E439CF4FCF0FBA17407D1366047B4A8DED133DA17A5CC" + "2BCD4E9803DF6E5FC76A732EC64CD4C556DC97C8E8BE5BAD0FE" + "5FE440E462DA16FB1C7B18A97F58DA4B5EA9AE8700A3E2D1325" + "EBDE9DBAD97FAAD13DB86D8F438588AD1E966E4A7DABD0BA4A3" + "907DBEBD2B2599718B885730BC1D7491A0E2FA468F29843EBE5" + "E551E0CEFD21F85568D6A77B8515EF42908360B57CAD79B0004" + "724DD117028BBCEAADB514D45D76FCE77FABFA64C11B9AC2BCB" + "830F77C79FCB67A71D669BF7DF2F3B7F5F9FAFAA9571C1F2A03" + "892E6BC576699806539AF01C1A840D6B168686C5F0874BBA3ED" + "E49B161719927B5E32E4F19982D6D32A0453877F08C592EBCF7" + "AA323F78A66EE81CE5297E3B81A01EF64FC9454FBEDC15C13A3" + "9F6AC8BB9A0CEB14E879181F72719F325B8EE60B3CF56CCFB42" + "FFF90CF1FC987F4ACD7F052F137572809BDDFC6D6D0A7F082F9" + "868F3492924F8B9BA5D924C961A4B9282F312916100AED09665" + "23C6")); + test_hash_extendable(&nettle_shake128, /* 210 octets */ + SHEX("9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BFABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7626C48322E9791D5FF72294049BDE91E73F8"), + 512, + SHEX("83E17CB699843EAA6308F12943513AB4E4912203026F4653EF6" + "711E5968CFD2CC135DA5B4E87707CD732F538B904148B0A50BF" + "DD3F72155D85A22936C2BD38BDBD2B13145ED531E85F2E0319B" + "6022E8F2115E6FA99E8D92E8AB418A84AED36D574B82A282099" + "DB5FBBCA069589A3EC308E76B03C8F6C3C5CE11DF0D56357403" + "84A22F9047C52F8C561A9848F0104167D8BE0A4BC47BB8A6474" + "180BBCE3EE691147B74DC57FDF56420848DECDF3FC5A06648C1" + "C42A0172FA02DF905F8318482F8189D5351751DE1ED5A63512A" + "E6A4C456FB7D55F83142CAC479452879E71FC774C9BD9FEA456" + "0ACB7786CF56FABBBD3881BEA980061623645BCF1D20448ACBF" + "69FAD1030008BFA7298FDE63963386AF5C2B230E9E367B78C4B" + "172B142C7EF43022C866E975F71128719DCBC2663D892C6C4D8" + "88E66C67D9E767AF52231B93DA9ED7895B4B015D9D84623C300" + "8871B95382EC788FB58222C4DD8834054C694722248F4A7D0A7" + "7E4BD2A5C418BB5229C0E2EC9ED3E03E79E3F824C2C6E1EECC7" + "2A13E341F46F3E30085B3A3FA0C55F59C56CE150537E305C372" + "63AED88D8EF9BF0CDF9978636E03E7DEB701345D9442725664F" + "CB38EDEF923CC11CFB94AE152D0BAE72E09A813A3C25002FABA" + "1DBCC0BF5102BC466D348E6027F5AD72FF9DC35D9C27C4C1E5D" + "D39A647CF24269E6437FA114C74B6C1604B906C8F5ABA1AE06B" + "1BD9")); + test_hash_extendable(&nettle_shake128, /* 211 octets */ + SHEX("AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB31F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021FA6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92774BE89C1114DD531C011E53A34DC248A2F0E6"), + 512, + SHEX("2BEF02AAAB7478A7F4B6E3C22AA5A979BDBA90CE91A42782E78" + "5AD6D06F82EF0017B54C408CD7027FB3057BEAB1DA1B150E541" + "94BDEEB87F65EAEF6754AD8E00EC4B3F98ED2E64B85A3907B35" + "3D68614515A2A2D110A1E3249286377446C5339284B3C3EBBF8" + "D841D49A34F7C79C935A69CE342569E173D87DF08B332F45C42" + "C9B318C6B02F4550058E2E0697F1E1E76DC0DC78F1DEAF7A44B" + "BB58152964DA263F633F09FEFE2C62F4A482209FC9715B0C424" + "221F7BC81C67F438D920E7D9CEF3D98BAB3A27AB5E136439DA3" + "C5B8774C01E6906416F0D48675751174F09DCD2185AD246CDD3" + "51414B9B5591E500B29AABC046F048BBD5776DA155B13A5970F" + "26B393EACB372BD28B4934A6F252BC45F7217B29FD77A1DECCB" + "20B060C9858A98485671E02ABC45DCF956255E52B5D21A59902" + "A33425BD6853D56C18000F5D637CDE2F109EC6D9FD3C5427E6B" + "C2468A71CFF6C57476FB1A850DF304645C0E64F969A54161129" + "8E1B19F95EA628937C2ADFD563FA309838EE470FA4810317177" + "D61ED849B9FEA54410C877B1C5C59625AE5314E823CBC1D3DD7" + "9BC1B6498E22F7D15328EB55D0823AA19F0922BE4D6F545B8A2" + "256EE141EEBD18FD1644368AE4DDE10482E8758E4865FC1845C" + "B50155F574E177A3B0A446361801C2847FEDB035EBDBC0C7A67" + "D216A4EAA7E04862D6C09D3D04693DF25BD2E3FE0A43AD80A92" + "12DA")); + test_hash_extendable(&nettle_shake128, /* 212 octets */ + SHEX("3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F3694F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4A7059ABE99182714983B9C9D44D7F5643596D4F3"), + 512, + SHEX("824271A836FE959710453742E9D957981C2CFA672894C8A886F" + "57F79608DD62FA4310FC0582528E15CA09C7A92D1084D45ED2A" + "3020A9A2A10C2355FDF052EBAA1007B0C01E1CA19D95B1B05C0" + "3167923927AC26E33ED6A823C72D105A2B35085926BDED8E59A" + "49CBD7C606116BF560FAC1364C7E5860A919167E844086D648B" + "CBDB5F148CADEEBE2CA2D2C34E9BDE155DCC9CF99DB22785D8F" + "5327AF41BA93AA1DD59A25F26615FD6EB6D57FF6475FE10BEDD" + "ECBD16CE84096CDC6AE5A6B7FAD0BFDF6E8CFC974B082A3F0C6" + "D8C5B25295A81BD2650446E7447951F7002FD2F417F4F553F27" + "33D294FF90C629EEF9FAF0B39DC9CC4EA6B50D438369FEC506B" + "BC185D37DDA2EF1C6E7079B09BE893E6C1C62C24E6296C8CAD9" + "921DC182F23C027CB753212E3EE41C401396322A43F4800C48A" + "CDA4A6198E40B76F0F6CE78354BCBCC33017FB30C33D7A90AF5" + "66F4BD3BC2CBB08E800BBC7F309D749F9D2A352D9B284C358FF" + "2109BD2C2CEEC6E85BC16B83A7D666E582C3E3D39A6A92C196A" + "11A397203F9C5613E2ECC8B2B91C229FE785040A17485B3DBAD" + "2B155C270AB2A510CDA80E99E1A79BE01C7262C217DDE69D068" + "753F9E44A3B035E10BB7AA53F397D7A1EC95342DDC973CDDE95" + "83B8348D832B976B255362240C5927D24A00050F970334AA404" + "C531D93621516DAB81E0FD89611C238D85454C6D77F1AB5D7B2" + "C5BB")); + test_hash_extendable(&nettle_shake128, /* 213 octets */ + SHEX("3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA16A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E763D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A44F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739"), + 512, + SHEX("3768C48BF02D0DB9AADAFFFBD228A4119AC6B7A815D9C74C714" + "EAC4B4BA4A062F7E9962B98C361A6B596838C671C95892FA4E8" + "2A95C60B9E8BA787158808C2C00BEA3BED0AB4846FD57E638DD" + "29B2ED47DF5CD19699329626F6BDDD14BB709417A972AE8020D" + "05AADFE12034A98F9121A191926566C499C536B2505AEBB97C9" + "C49780E5E0007EE5596717E7BE42D40DB322BDE5B7FD227B159" + "87B599C71F1F20EB8BE722DDBF3C76F9EA58B490EB11395BEFA" + "02C259505F038B40E312B5AF1519BB6DA9E99E0214C2249A1E8" + "C534D768A7DB9EF46970A64C6E5F746B7C50670CC8E7765C4B5" + "5B26F3A53E4C3178F9599435AAC9B96A203CD04988D1D95E1B5" + "C29F632ECD66204B7BB2B7F776F2DE67DCBF7F0A81FFA1CD185" + "06B8FD9DBBBD354E3CD388F21EDEC9A4EB319C766EBA3E1E856" + "5B0CCEF3698592E19081472004AFE38FD8B17E6D1A5AFED52EE" + "44990598CE17E09DED65965A380E3452CCE6D053F22F1E8CD24" + "A76C74F6A69550C36B43890C7E239658B7DA6DA768869D3D963" + "33BE7422AB7C2B5D90B2C3973D666B4E399A2C5F014566E3BA9" + "19AD1964A148DA2D35476B17799B82EA54AB6CA0BAA098D0734" + "081C7D52B7DA8150AB3C1B8DD1174418700C46036E3918E5A21" + "E70679D72952025FB52E9348509B4F10F412A8C8C11EF59D57A" + "3A77C5462253C87475F38911AD2B08732DBDDCC6D6A1B438896" + "327D")); + test_hash_extendable(&nettle_shake128, /* 214 octets */ + SHEX("7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31BBAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56AE14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C"), + 512, + SHEX("EA94DA7FEDF4B2296823EB57F0FD81468F4476E6F9035043F84" + "BA952015AF88E68233219E4D31D809A9B13A703EE6E99C230E1" + "E037D777FDC6B4BCE3F81FF2E7A15B9DAD86F4816D1ADF0F5C3" + "4E6EE2FEC26353444EFC417BABE16C45BDE0CB3B06ABD19F354" + "F5BA5298CD486DDA4C6216D4826C3EB1B221C24A63BE7DC751F" + "8AB5458000C28937809359A4C49200949048156D48D537466EF" + "FD085610F221454ADDD95519071C8A671EAAFBA7B6F894A3274" + "599C76BF0964801FA38B601869D4C04EE9FC6AC7E54B4A6D852" + "2912F5F3F2A7C6CBEC20FAF1E164388D932C5260763457D2752" + "5288BE09ECDFAA1A892B99AD0DA9FC1CB3D60B1B85DC953CE9B" + "37711AE6BB82A1F96CF2479155BC3B328803D1EAF56EE0F0222" + "3BF167FB33E6E7190F41A121DE59B9FE9790C8FBBC2B1B77ADD" + "9C316D75A7F4DBDB52DA2EDD9D2356C6AA77A1CECB5330ABC38" + "2A748C8972FBD78315DD2A4ADDF335D18D5C97547641F6B5ABC" + "4C5F166265D6934C77879A5B4CADD27A8A7F9F817ACB1307A88" + "970D29DD929D5B03A71D5B863A997C84D01B58DBA539CCF6693" + "B6004812727B254D22480BD50C5E07F162DB59EC112E1DCFF81" + "3BC266F704357202AD0723B373BDF49B1EE3D4E24D942D2E8F9" + "5E41FF496B9F4F535601980366FA79B662507CAF88AACE17ED6" + "498E6DDB65C799EA698C7B8A49BF48021CF3B41E96225C43481" + "B7C1")); + test_hash_extendable(&nettle_shake128, /* 215 octets */ + SHEX("7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7BD9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC737B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B03166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B59293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE"), + 512, + SHEX("73E672E46B274D309899FF2C8186AF4A9F42872135309C85621" + "347C55EDF8D3B5A7DB51B0242618AB6D750EF75CF816C23A0DD" + "FA21ADC9976CF47A6957E914BAAB02E4C2DC809C0D2F67FE759" + "E92D7755CE965EA4B4045D6172E1A0C749B4498795FC375AA68" + "94118A1BE2821A7878D25F597633CEE5576B3D15E23CA7D6647" + "09ADA20E3CC182D3004B102BDCF5566AF522C5511049FECCF80" + "D4A6C21D7CCAD1B24DDDDDDA0DAB0C2FF40E056D0A715A31DD3" + "5679FD4A4CA8BDD17293F7FD63319BB5B4ABD3698D574BA5D36" + "445E7FBDA9EAB049F6A8B277C0593949DA84805036B77636856" + "6F622DF37FD3D42EFD06EB1D5C1C2847717F51D236D43174985" + "14D95E1F4587669CE819DE249EBC8D05D55E2C35DBBFF3C017C" + "7A8D55B1B184ECF72F288948027E2AC2CBE6589B351437E185A" + "888EA5AE7219B9121E438EC3CB397133B75330B1418AF085E7B" + "42FB4C3B0F41A95BC6583CA7DED8A470E2CEC237013DF9CBB86" + "6454F276648B1DC0BFDC6BC5346348735764F19F08905F1D17F" + "DDD454BE1B0E8DF34879B4E7709BCA044AD49A14F9EE971283F" + "2A20CF6377C648E9D85599FCE482697B8FEB218418B1EF09799" + "35E0F88EA5A2D38506955532A0B9DA8AC1E7641622DCA9F2E31" + "642AA41DB7FC73328590B69459741998AB90D796293999BA8A2" + "111DF20256D2FE50AC6B0BCFD5EDD61C260512EC357E844596E" + "FF10")); + test_hash_extendable(&nettle_shake128, /* 216 octets */ + SHEX("D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17FD4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B76033798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDFCA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE10644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7"), + 512, + SHEX("BDF536D8B28E91F00B710DECD109897B4E96882AEF06337FE83" + "B053EAC20CC54523D246C41C9DE3115870B82A1BB2EB2B1E02C" + "CF7A4E607BCEA3DCAFCA38F237DFC72D447CF8C544F541C1B53" + "E7769B0CD6F2EC6D756891DFC818323CC1E1AD565F9130F5988" + "9798E418FE5FEB176E77F5FF8F10C6ACDDBC59C8D084AB19DA2" + "EE5B737E537609BFA6F81DF1846B033663D586CED1F4E86D991" + "31D37EA5807881D2DE749803E333AF2C360F8EE9FD99A166F3F" + "B8F0C50BEF02DF50EE615C08E88299A1F3CDDF290A3BC9E4357" + "F3D93D76EC5DF462175EDC5DE421A6BA456EA7C42ECEA24EEC7" + "4011132C27FC63F1E969B474438222C7DE33762F5377C197DDE" + "9AFA9912900FF25373EFC3A3D023E091350D0D269BCBFF64EF3" + "5E2E1E1C300214C3671932CCCAD7C871FEF4C969B34CF6E8B08" + "81C2F7704B455F118E3BD37A74BE89354D8C8DFCF649FA03701" + "AE17B705A865C7CE9ED81E4FB374EB643294356EED48B357931" + "5BCB32CE6C7F302ED5BCD68F2183110EF7FF60AEFAC6BFB8252" + "BC66C0F4026DC37EBE4D9783CA7459394E929B8A83FD8378D9E" + "097AFCB0A7163F16E5579E8F5546898C4B521264CAA006B3FCC" + "DF46FFADC1925752EF47DA30F354D66F763AAE46A0BFB385FFB" + "E153641569E5E222F374F8E21EE3EF8D42663A4C424803E7966" + "F2F0A1EA723A06C92AF2393C8FA6711D89514C20B6170DCA448" + "FD27")); + test_hash_extendable(&nettle_shake128, /* 217 octets */ + SHEX("2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2AD52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E"), + 512, + SHEX("B5BECCA38D903F2D87CFBA9A80C51D4A0733674C78EF85BB236" + "E8FA64BDED9BDD01DB1905E46F4210BB65BFD26965AA3ADDDC8" + "93087AFB56089083C72F7649CD5987F449F9668CE66ED21514C" + "05E7F09F52D84FDE30E96353D48DF0208415DB51EA5D120A718" + "2DC9458C471127253ACA05D52FCC18B73CA1C3A5BCFF4D3B6A4" + "1C450826397D9B38AC5C8E301C7A4077EDCDB6A46B3979128F2" + "0B1080F7768EDC1F651D1D122F97620BF2B4E9FD20189BB331F" + "F9026EA58D7203FFC49E901FDB9233255F349A19AAEDA9EA1E4" + "F3C45EA9C54F41CE1625C0EF02DB370909949BBDFBAEA49FEE3" + "E3CBB74E1807F553A2000A3C753BC5D529B4E25154E2C86F755" + "645304F2D18ED0E62B62C87931DBDAD5D1CC9CBB64430D56AFB" + "E7D4C708EC992EAA8E13C5B3CE0343C30AE3F09EA3ED5C0C933" + "A0C76F0FC18FFD4BAF93BF95B2C1023DC87D4D641EBC6E1CEA6" + "E756F45FD2E58E0562F43389A1048A8BC12C8B3B19E05180597" + "B5CA79B7531C6B8FCAB88AC1AEA686494B98E211C975B48B715" + "7F985F25B168B93FEA82218A227D0B89BEF905A5F13EB374388" + "31C2CD871FD8A36A4EA22879570B22C63B67BB60EC1E415F465" + "4F6A3EA5ACF74DF41FE09DE398351FDEEE499CD98DB89B320A5" + "8EE62F8569E10DA4C68B9B61620E9D51A343D06CEB484CA532A" + "FA8FF141A4ED8EAC22870D72F5E1085107781D2E422B3EECABF" + "88FC")); + test_hash_extendable(&nettle_shake128, /* 218 octets */ + SHEX("5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961BCB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75FD71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF"), + 512, + SHEX("EC7A09A04EC20DE5EE683681D42177715F85562DF50177CBE12" + "2DDFB9C5E81EE349D3E2A18726BE2E46287759D6D28398851ED" + "22AFA78BB4B3A41C76F7006F785887D2D030428ED6ECF7DECBE" + "20BF09B1A321B96616F9D1F4ECC90BC2FED1C30C18BAA234553" + "03074F10ABA5BDB596F3BB5BC1FAA89589A92AA95DB198915C1" + "FEC3420D6A4A5E79808012DE71B41CC7A77AB96821B5BD1E822" + "A06E698101E7E4DE1E5E7CCF9093992C0B62419A660E1AC4FEE" + "0B1D0C4735416C18570697220ADBBCA56289C2475E17AC6FA89" + "E96AAAA8D5F174D6D9A3EDB4A6BEE4B606D0B789F942A1F8D5B" + "AA758AF6F6DFBBE59686FF6A8D625302931C34C8D908BBB0C52" + "69ADC95715F90259384A0F88B6BAA1FDAA5BD57F5FEB2FE0B96" + "8120AA0206F911D211C2D77CC465BB6E1839C0271CF55F12658" + "A1FD1F2F4538BF7E9FD784E4C12AE95A5A2967D2847EABE150F" + "2E113D8542B9A7CAD092B3D86AD4219632C5F3740EEE45AACA5" + "29D83F0BF3CD656384848AD577CE603D31B70C40A55DB571868" + "C1F5B7ABA3CF853CB0ED682BDE964C3051E7E81D4454906DE19" + "66491E1CAF7073035268311BC1CD3590656B1321D8D6885D15C" + "0BF840BB40C0FA4D127878E422DFCA7C3BBE8CA4447D5228F83" + "E453C94002C43F5D87E989627F89CF5B6057DE6D86D2A82ED98" + "2035519F47807CE6C61DDCD9160FF0DDB3BFE08ED966C08317E" + "4EB5")); + test_hash_extendable(&nettle_shake128, /* 219 octets */ + SHEX("C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D1391A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA39F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397"), + 512, + SHEX("E65D36FD64B13DB62CDF8640E6A217CD4952BE909BE1119B04C" + "EB6C8A71550E953BE0ACE373231964D61B89A575AF582A66D7B" + "B1441EA399D59A7C585D762433D64F44C53DD9B8FE8F357A26D" + "C66E04B15B9FFD0FC7C1B4ED07DB3E4C80A3527602DD16BAB1F" + "8ED85A821056F97FE2912411F7CF6BDB9070997CA4D5BC16B0B" + "26159F7F3CFAC7252241C079633CD8287CC41FB3F7CB6185FCC" + "EE1E3467E90788B9E943C936C1C82115EB5B5A1AF3FC6B01049" + "59E98E0EBB0F72FA02FA5745380952A6C2EB0AB84CEE35661F3" + "4CF0DE4E6985BAEFFAF545D48ADF065F13B9272098D5906DA5C" + "8B688A3C922AA74D840DD9C1EE31BECABC417EA07E2C45A90E1" + "AFE588E65109C8DA674533D506E17EBA1ABBC25DD84CC79A4CA" + "0E15013D9D014DACC5F696A7BECAC187F0A7B233D59A7BA6821" + "B3EDC71C8073F2EE0CAA8C9F96032AEE6D9FBC15BED15E879D0" + "F497BB8DE468B4050FDDD15C97AF4413C4CF60859EA04103A13" + "704CC9B7076359E28A1B90949166F5B11055B415EC8B9A552AC" + "94E4D1F45403AF5EBAC0762D1ED0967AE032DB30DFFC8132942" + "F45626C7E50BBF80DDFAB80103E423BF00AC575194489BE0262" + "4BED16C4D1FDCD0011D0C64FAF6BB6FEB21E0F0653F05D8FB69" + "CF891347DFF0A39136BB5D4D20101CB3EE900B508A136185FDD" + "0FF54FEFBCC6C069E1A433742D51129A1B556CBCDB8A7E76DC4" + "3B5A")); + test_hash_extendable(&nettle_shake128, /* 220 octets */ + SHEX("7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C25F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6"), + 512, + SHEX("2B6D5B37DA462A050946D447375EA4DEC9309EC30FB6C7FA68F" + "67AEB7B6E1921A74FF35ED31560E695499F2A5AFCE3E900E1C6" + "F199373951A406A8F57DEDDA8C9B9D2038E787CC54B62CBD97C" + "D4247ED933DE1BD68FA670158701F088C6E785E8DDE870306B8" + "0DECAD2DBC40A8C2F02630499292A19339E4D63351EE5A44E36" + "FEA062D2253674F5531B1C51FAF694A0E963859B26A11CE890A" + "3E5C03815BAC2CCC43AAC806941BEFA00CC6BCE72FF59F60C85" + "B5096BD7E9D4B60D23A050D3B4333A26B0CB6B69E62F33E87E6" + "5FC1562E5D1384F439D717A940E2A291897A4EB3F941397EAFF" + "CF4EC738DC643E72721B5662F698BDD502ED1A82D924BC0D780" + "A049F7D965BB585D0F674A06FE03F0B18AE56B7AEA705328072" + "E4A374B7B9715882BD73C34E99656EC073B653C2608A04D84AD" + "FB4607B62B4B504E43F07F9D4555935E3D432DDFF23D9AAFC87" + "C743C1BF8A91EA4671A03E5461CF13E76E3C1779CD97DA4055E" + "AB8E705556EB7538539FC6FFC1638E702CA2A60F0506693D54A" + "35F7AF6FE0773A67767865B3F1397674EFF365B3849D261E29B" + "160CDC91368899867689E599A85572464FD895CBA2BFB4ABA49" + "6F395E7950E064CA509AB8D8491BB193661E250F35D5E2AF12E" + "1F981970390F456953A8FFDF72BF998D0FD7393C33FCBACE063" + "C0D63F91E741F95FD542C6C509036824B2784F394E27F6BCE88" + "B1FC")); + test_hash_extendable(&nettle_shake128, /* 221 octets */ + SHEX("7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C093867948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC15B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487"), + 512, + SHEX("E8B51670E0D27D9F7989447A97C07D8D142804F876E701A49E6" + "C4A0EE149938881900637AC7329EEAB1F1E032DDC2194B24178" + "56401060EAF019AD4D9DA3BC702BD70BE5FD9D9C9B86F4044AC" + "441560E887AE21E3C3EF3F05E38C7F8B078D3A66C6FC8B98E33" + "EA8AD1D029433626CEAE2468E3034CB44326C89D7A7188A5272" + "C116D3783FA16AF98BA3070AC96C07E459F1127304483A23948" + "37EE1A10020A79F8519795895F4786F5A15134DD44FCBD9BD1E" + "FD0EBEE9CD991001FCCB6A92E490793B6F16471670E1D69F9CE" + "49020C1E8E3B453CDC1A8498D8C510B8D21FA00239088E065B7" + "42C51257766F19E17B397362DEC9453F50328C5E14BF800396A" + "0A3A1A957B29CB1C8FA059BDE39B995D45900B56E2C8CD2F4E8" + "BAC756350DE38293D1FE4436489D9B23860E1AD35E2411D0210" + "DDD1C3D8994635F29674A64AA5F92B2088F3E7B4FEC26485D93" + "483AF96FC4C5FC9F34254E014DDBAB361DC55E0F5019BA9FF8E" + "D7B104E09122A80BE3BD29A3E4C4C26A7D2B08F8915087D9A6A" + "2E7888710A5B2B87448B81F889830E26E6813385B761FE97E37" + "29AD04BCF08F536A152039F04C283DD36B9544C4D6CBA97E26B" + "61E034259CAAAADCE508343DAFBD4DBCBCE25957406B22E13DB" + "BBB186C18DCBD5B8AA18C86D8660698AF26997726FB7AF26C39" + "7DF8608708AD5D6524001634575A2F1070A5EF72D327E91C718" + "4B4A")); + test_hash_extendable(&nettle_shake128, /* 222 octets */ + SHEX("988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FBA91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF31188B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB"), + 512, + SHEX("120CA7E361A65A0985563012CB908028105ABDBCB51CD8EACA1" + "41662B0C184E9B2D6DFCDADED7D7CBD42455B3F5A9F15596D2B" + "ACE19510256275209CC9899A87C6224DF8E919458EA46A35CBC" + "8D66A488069703CBBDEEA6D767CC315FBF518F7B0A0154448F8" + "D7C56DA1B116730A76954C288B4891B56FED41B2EFDE6C27DD4" + "B3DE9BCC25A2A901D4C87975E82372AF173982601B605D845DE" + "E7BAC94EB410B369BBBDE500D458F9F8A3933D3BCADBCC85EA0" + "5ACEFC9A7A77E26E28E82DB157EC1CB2C99C272F33B1B268553" + "3CD988DBDB6E850BD3C71E0589A165FC236A65B1F1DB750A3FD" + "C1392A76E7714469B47E20D8946AF7D68EF9B16109178F66232" + "0D60A0D843EFCC5B1E56CF6D8FA8B649DDC28E58983ABAC7B2C" + "E019AA0E07B387D8BA46CD3FAF47B522D766971BA603C84684B" + "B094E38D82EBCB108CE0353E38FA0A4D7294F7B7BAF745F3E03" + "6EC0231F6A194585FF7CE1C792E4879BB44E4AD65717952B080" + "BEAAE1FD0CB8AE87E6F130F91BB06F95E54FA924E2D0C42921D" + "7CA9965AE70A3587F12017CF1E4CB70D1704A51EFE27DFDD919" + "C7FE70F967CF7044C62D6FF232B6680278E9498F247AD92D5E9" + "491DB0F00D583C019142A8EB63678231E1273F0A263C57B98E0" + "AF650FA207D4B21650417DDDB40830F89E15C85E934FC745AAD" + "87BA35DC16B7A82CC97926494BCC1FEB4ED43D75F518ACC22D2" + "08D3")); + test_hash_extendable(&nettle_shake128, /* 223 octets */ + SHEX("5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B91A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A244524EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D"), + 512, + SHEX("F0715DE35692FD70123DC68368D0FEEC06A0C74CF8ADB05DDC2" + "55487B1A8D4D1213E9EABAF41F1161719D065D794B750F84BE3" + "2A3234B4D536460D5520688A5A79A17A4BA8987FCB61BF7DAA8" + "B547BF5C1CE36B56A73257DBBF1BABB64F249BDCEB67BA1C888" + "370A963DFD6B6A2ADE2CEFD14C3252CB3758520F0C65F452468" + "2772499463AE1A341800183AA60EFA05118A28201744F7BA0B0" + "A3928DD7C0263FD264B7CD7B2E2E09B322BFCEA8EED04275795" + "BE7C0F00E113827370D051D50269580300005AC1288FEA6CD9A" + "E9F4F37CE0F8ACE8BF3EBE1D7056255954C761931D3C42ED62F" + "7F1CE1B945CDECC0A74322D7F64D6004FF21684149307288B44" + "8E45433475B1EA1314B00F1FC450089A9D1F7710C6D7652ECF6" + "54F3B487D0283D4D8A28EFB5066C4250D5AD698E15DBA88E925" + "E4DE99B69BC383AC8045B7F1022ADD39D443546AE0924F13F48" + "96096DFDF37CA72207987C4A7705A7ABE724B7FA10C909F3925" + "449F010D61E207ADD95219071ACEEDB9B9DCED32A9E123561D6" + "082D46AEFAE07EE1BD132765E3E513C66501B387AB2EE09A04A" + "E63E25808517AFEA3E051169CFD2FFF8C5858E2D9623897C9E8" + "5175AC5A86394CD0A32A0A62A8F5D6CCCBF493DAA43F78362BB" + "CA40ADF733F871E0C00998D9BFD6880656666CD7BE4FE9892C6" + "1DCD5CD23A5E4277EEE8B4AFD29B69BBA55660A217112FF6E34" + "56B1")); + test_hash_extendable(&nettle_shake128, /* 224 octets */ + SHEX("47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EADF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C00637E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C949897EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F19F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34AEF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78"), + 512, + SHEX("2E27811D2E132C58A1D053CCFAAA2813B620554C49C31CF2089" + "64CFA18A3EB5724D4EBB37E37398CE9201CA33C5F6A9409F262" + "AFC5EBF0970BE0618EC7E56C15C13B2F0270AB5A9536FADEB84" + "EB2D934B989354D47FCD1DBFB40FD96485FAD8DF7C6E62A6086" + "6F154901E4427C2B5E6059C76224589A6BE352673430740903E" + "4225C1379561AE5D361B67F3ACACA9C7633CCCD2601ED278B5C" + "7D6A378D713BC549E2797CA34FCB0A00E649AC3A4B59001E5D8" + "E1E2785433ED65C76F4FEC4B0579059DD4DA49BBE678279F534" + "B84A280F89DFBDA09E09C073EA11AFCAFD5685A714EC31E8F86" + "B49D2C97E6A2A66B4F2AA76D9DF2D27CFACC2423AA18492E2F4" + "EF6A9F8971627839375307F45A8B26133FF1D02F100EF05DF16" + "8A2BE02F0C17CCB90F23A0FBC5F536C410923B154E81A655793" + "5E2572165A7E39F64F57E2B8CED8D2CD1025EDD5DEA6DBDACC8" + "860BD6A0C598EEF14619D4BC11B6AEAEB5D10BFF3F9D5B20B7F" + "2AB8254DB0C1765A10A125E98D762851F05261DAE06B224E207" + "6112A62B4C3F3A56074E01CB3DD264CB1F4B58EFF2A1C9ACC47" + "64A68680A40FCACC719286684FE0A742F13B5BDAC8AABFAC681" + "74C7E153796C240279B0ACC719158D1FE4F78EC3D47EA8B8D3A" + "1B3A6842970FD439C09096E8B032E551DBDFD0EF86DA0537F4E" + "72F78368B319B6DB735AFFEA80633F2F8EB9D26C8CFC321C7C3" + "46F7")); + test_hash_extendable(&nettle_shake128, /* 225 octets */ + SHEX("8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3CE6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F343292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627E8"), + 512, + SHEX("76A498F8112B364E0DB20CB4E7AEAA1C96400A3E1EB1A24ED86" + "5203C4A583CE5CA10B47E725C362696F0ADE5FD75058D6882B4" + "35849030868486318E566BE51B6D985A76B36D98D893A04CC71" + "5CD26C412BB4CCDC0DB6D1B13CC071FBFC83F114C72D3B54CBC" + "FE57243189251A7C0608BCAA1409B243F2652CF5CC4386CF455" + "1D2955F371591C0A04CBFDA2736A514E773B5EE8C5CFD820A75" + "42CBA65245F729E650D085B3F60EBCE2CEC0D8C952ADD51A664" + "788B3197952E7D0D9FDCCA35EE118BC0144688621DFB373C2BC" + "1DE7CA7BC751D539276A119ECAE8AE2987E018E9FD70C632F2A" + "54701302C12B971E0EE5308378669EA10D0E9A7B955BE1C1BB9" + "E7FF6857C39EB6B074C061F28D1979B33AB8D2F81078325C9F7" + "966806D2CB62903FBAF4C12AC4AA15F010034080571BEE9E863" + "C1CB89CB01B86643DB1D1A6C224934A79D969616CC3F9C1382B" + "81EB83A8CFA2CDF20BB03CB67DDAFCF9CD827D76A0661B85E82" + "664BDCED0EF34D2F807AD956724EA2CBC511632D2C9E9F8E4FD" + "71E127D581CBBB39782BE58902927B0C0D922493255F805C5CC" + "78A96AEE84ED086AA93F8FBF7282D78DAA0B9C126216BD929EA" + "4A4E53F78088CA154E9A63B3227A25705532F699606EE73A5FC" + "E6E6C94DEF1324FF2E0EDF6807700DED2F088E2D77B7F690E64" + "6E7A73CA05FEBB2634D862D7B21AE2ACFE3A5B3DC6ED1071B0F" + "3E5E")); + test_hash_extendable(&nettle_shake128, /* 226 octets */ + SHEX("EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF785B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F197447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA356427"), + 512, + SHEX("760DD76E50C13B411D04ED9D81078F0E5B9FC5DF9523F7C2AEE" + "B418CA328E047071852FC5EC2F96C2133C4AA7C68306FFD70A7" + "82490F92812E04A3343B9502C14B781A4800A8928956EA457A3" + "CFB94A63BB4407524DCCDB6136C5228FC1CD426F75E1701F0AB" + "7D7ADA8079E4761FCC4DCC72155B4B27370A7EB6A5E3995A729" + "AD8D8B5356A084B0678B114078B0D43C657A23F09D0862D606A" + "8A485FED68EBBBC63A126FBABDF36151D5A39BF17632B3D9679" + "83FD62E19C944400F7A68393603243CE499947F3EDCE7F30206" + "BCBFF83615DBAB7642C5D82DE050D67C93B836B554949B96947" + "B7D1534E0755859ADB7BA5AC9F519B18C3AA66300ACF9A26849" + "665810250004529334169211624C6A63350B392F6DC6753D59A" + "03997180980EE0E742388A2BDFCA619524DD16250800918E95C" + "AB914EBBFB12232F1687BE0B46426E126787E394A91F775FA91" + "EE1C5D57AB1FFA151D554B79DE8EE9A937AAF5C98497AAA726C" + "F01A9DBCE6E57A07F8D098B2844ECEC9856D3D8B189D016B34C" + "4AB61AA3191B3E4C2B44F6BCC9444E6093A56545230FCFAD19A" + "2CB124ABF524689F4F665F2E84D10A2C93B8CA412B6D280C268" + "0E946A6C9225DB6F97A86FA3415A84D52FF3A0A15DC7CE97738" + "B0B2DC1430BD56BB71AB89EE108B5BDB706C7919D5EC67C487D" + "9C8DFA6D2333C59248104F33F4C162A5156A3A666948E3A6DA1" + "3D0D")); + test_hash_extendable(&nettle_shake128, /* 227 octets */ + SHEX("23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C189F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568CF24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C630012"), + 512, + SHEX("76BBAC5E72BFA9B5952D4FA8313C2C8995F1B762B0855EA2841" + "7A04CDF1BC9A72038014F4D1AF37D6338E217DAAB8993CFC222" + "510A869403DC46B5D798646BB76ABF4006F31BE334DF8C6DA07" + "AB8C6E6523DCAB9367E6B747600E785EA0BD3480A07D7AD1304" + "019C0F00F90B2A650599B0B416655AE1B1D8FACBCE38D0DAB5A" + "6375144790B0F7E8C61B4A98297C78EE6FCA19051DCF60B4EB1" + "F6FC59DFBC5BD1B2ED6B9C72D7B5DC33E8D13566BC67013CC71" + "14EAD63D25ECCAD196A5C258DE23D82E8CB2BA6753C9BC598A5" + "4F921CA924750A45353BD44593415AADD251B604457A3CAF3DA" + "681C0FBF43E4F3814AEAD086A72A4787914FD08BC727A69CA56" + "46AC709B9E0DF5B56C8FF82EDBE3C23218A1D5382AED38B3BF5" + "4EBFA6015C388C8E92D57CCB97FE8171E1D24360311D5ED5354" + "5B541E7F24CCCA9C5B520FECA2547ED6E1889A05EBA1C0831D8" + "BA9162B38491287B46BBCDE9BD2198EEDA5FD0869A83543713B" + "D294D84371F1932E3EB370E30210FDBC2853F27372DF095F71A" + "34FA4BB0E1FDDA682170A29F9E29C2BCF946CD2865865A70DAC" + "22A81BC387B6A06840230FF8790B6BF1953DB882DACB6A92087" + "09C121AF24A6436B1A5312B3E6D77892FFF968138DEC8B933E3" + "022B4141A4B4605524C95468CD89AA56BF577E16A365531434F" + "B98FD8399DDDB58C0E5CE66C8A8955AE1ED8EAE5251026861C8" + "25A6")); + test_hash_extendable(&nettle_shake128, /* 228 octets */ + SHEX("0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF895BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC9314C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C6001606678DFB921"), + 512, + SHEX("1E7CDE630A92BD14100AE80073CCE0301AA6566DFEC50400147" + "A9DFBE921BF35B110BC9C0B7AD6CFB50785C63881BE15694950" + "92866BCE9AE303B3719B14A47DEA8FA19CAD3015D320C678CBD" + "2B7488E71180D967BBACFCA686EFF014B7EED274F678CC43825" + "E79C81269F99D1B824D913F8ACBA4DABF5441A29C2E769B44BB" + "E9954A7444BFA438EF1BA2B6A3DB11E11151A1736BB8CA22494" + "D4A3D126F100A41D49E6114CD66CB44B80C2E3308A0B551B692" + "BC5B693BA9634E219E0EE8E7F28DF196D8C517F9D71A58F1D94" + "5E03FC25426E13612EF4158C17590922CD6A8DE677398690A8A" + "1816C6A01B162FE6E5F0F502314C542FB568F12CA86F5CA6DA7" + "B36255451360CA352C05D10C293A8A35417991EFE965BA6F5BB" + "845BE9E8C021B2B4AF2AE50200C60B7BA42FB5D3147615339FD" + "71343662090F2E7FAD4CD0AC0ED49C3FC8685116A8D51D4183C" + "CC9F39B401D47CDE7EF7EEA63FC218C96EDEF7190A252912663" + "3A7F3EEE421478D66CE367FDFDA6A9A60ACA3B288C6462BDFF2" + "0DBF78A3DD29E73D1A3E8F3FD824A3616722EE0B87A9E393CA8" + "9159EA8169DCA108F8E2FEB35C9372EC3B9112E534EDF733397" + "B7585051257A564B844C07DB5DCF56403E59EAB6F56759D50C4" + "7779DD900849C94DCDAAC1AF51048098BF95A0B9EDA23DF0520" + "A3DBD86A0B59CEE20822EFDB9DBA6D272A7CD5CC95498E34006" + "2539")); + test_hash_extendable(&nettle_shake128, /* 229 octets */ + SHEX("3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEABE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7BB0D19F909"), + 512, + SHEX("9576636B4F4D13A576B2DD4FBB3092F358E7CCE04CDDA4F83A1" + "0A8B5D35B5EE034543098D9A063FAC9CD26CA46837C5CB6E96F" + "7596D4F07EA6FDD8AF8B59F9E86611F1514D5DC0B7A4216C69B" + "9C85366059BED3EA5CED38A16E4D6945C7C9539E062DE51FA2D" + "EE1C666DB1916369FA6BC0D7A2811ED1BEEAB61397B8A9FAF22" + "4FB4ACD7F8D9C7A8513C8A93D924FB4EE027821AB6DE0415AF9" + "BAC5CF3D5CB7075BE5A6D410F12A9BBC96BF3FF254812C48423" + "F383E4D74FFB5EDD7AD34C6E0D64BBE7F45288A49F5DE9AC14F" + "317BD4862E1F25E338A0309739C8DDD27839B8AB3B04B9FBCE6" + "5CEAAB460DAB0B969222250FCAAD072C445D472BF251C4911C7" + "D5D2B7D41C9D2840826E0BA6786309DB6E8EC0FD94031E2DDFB" + "B0D880CB780772A93C0B4C32377C3C8CE97C73412F5C3E1CC72" + "AEBC050737495C703459B9231C05477CD9A5DF1662F5FC883A9" + "1B42ED7ADABE6CB1EE654FE9E616B40CE9035CD3B91A05E050C" + "B2558645A0939C536A2EF3B5C8353729C3EE238C5C88DB75C05" + "DB6B2FEBE0A598F937CA7AD4FAF495A10CB3C3B9E754A570BFA" + "5E723B8C0CC107F0EDFF76CE07A2CF3ACEC4BB44E11C633BDBF" + "89E5501D6001206D457962AA2F57C9C2F3FCDD1B76ACE292728" + "F21A6ADDAD4551970B1532BD3E46D9A5160B1A55CF4BE18FA15" + "ADF0DB055BBB21ABD9A5B0FBC474CED2B8787732FCBBB231475" + "F29F")); + test_hash_extendable(&nettle_shake128, /* 230 octets */ + SHEX("747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A00757F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD60981150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECEBE6BF8082E8A"), + 512, + SHEX("68618F4B2868634D8FFD3483FA4AA9C200B43FE87D59107BAC6" + "48665613805242B1CBB4DB2761D4CBEA5337E5E07005B5B4E8C" + "80038019DDEC76395BA981D36823522698C98B80D313A7B6110" + "A0BDE7ED5E9268FA655B8DCC2C762510FF03506DC1CA8769B37" + "2F07D0E325786FB1C58206578E600E9093AA84468F01A2DF258" + "E670959966B419BA5D4B6063C997822E073717565C6F9B4777E" + "186A0BD6D72F65BB3CCA7E82601F25667FA0186208F7988611A" + "76BC4D116AB3944D6797828FC5FCF17ADFA99D959F5013FB251" + "6A2D3DC05508E9C28AB5F9E0770D0DB2FBF9CD3C8AB90F255B4" + "65A9B724D90C25E1EEF81B839A971DD84C4D610E00ED858C78B" + "2FC6147CB6B1266ADFAC5FECDA9A6F78B31AE35BE6369C3E829" + "0E6F297B7FDB35BBD59F0BFE16146CF3A5A75297FFD5D02685C" + "39ED9394ADFD3C7C814AE86EB652D152B7AE980B328F3E16F88" + "3C7C6DF6672EA1EA6E08C61505E65852A1BE11DECB86D838607" + "9E17E72EF8FA38B69EC192C0B90622150A5C43584C3159CF611" + "89138089653AE6453D24F464D96A9BD0CFDEF7C1C9D92D46E85" + "4D644982BDBF0E5BE7C38EDF469AD3C0EBAE549322BF271590E" + "38AE16A1FABDA49AD6BF8B1218FD9072C25027AB31787B9F385" + "29156113A82A8DD27BD22CFA719B3AB0D31297A0DE9AF901A44" + "3057D34CDC11747D6576B7602D7D6DF58C292A69B4549ECB151" + "8A02")); + test_hash_extendable(&nettle_shake128, /* 231 octets */ + SHEX("57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E706F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B06CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B54BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422CE839A9D4608F03"), + 512, + SHEX("9A3CDA57019548E6A68D89CDEBDF96557DAACAC29C5EF8532DC" + "A123231D0226D0D7F62042D70BC225CBB1ED8902D8E6BE75B2B" + "37504990471FD01F4C656E6F6B77961C753A780D91FE03598FA" + "2D5F60B772B34918DB836D2CD278FB41B223A6D1F25C91A4B98" + "B64BA3EB32DFA5DC5E1CC5BA1467F287D56CE98478BEEE91087" + "DACA1E2FE0ADCA38883C9A73699AC98AADB5C4B087719EBA775" + "B0ABB1B0E5ACB4F79F0F75DCB2E7E25CA22C06B1629EC1CA989" + "AD1F1F12C4580E43DA76B2B58345B61085553A827BA0D3954B0" + "BEFCA8394B9D19022D33DF6978148234CD16C74910755170812" + "61E9AF8FE42C66A7580132EA3307AF3372489D8EFE01C5AE579" + "A92399B844266D13804B887538D70D2A4EAE3C65E09F6BF8771" + "13992C42D490456CEC22FF8C60B0C7D2517A49D2822CB2B2AB6" + "BEF74F87CE134F78141157D0498F267C94123E1606D4CE1AE8D" + "7847CF9FB23D8A11901292CF36FB975FDF34AA0CE10B851E116" + "EE7129B06D3EF10CC1ABA6F761EE2F1E4B497DA11FCA3E844A8" + "DD1A6129DB5B3F863378D3488CE7E208241946BAC2E4AAFC912" + "CC46E5A6451832A2A43176E06DBD49E9D379A69E6F08081F609" + "B7207C5CD391445E10D10FF2B99E0D672C19CBD9F5FFC6CA46A" + "D9536973368A747A7A2F23AADE81A43E49D2E9CCED3F64CA24C" + "012CF3A306C40ECF36843317BE8D29803A40F6F71E7E9229154" + "B0C4")); + test_hash_extendable(&nettle_shake128, /* 232 octets */ + SHEX("04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD42B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D08C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E05153592EA81C6FBF"), + 512, + SHEX("2DEC1B61A2977A54FF13CEFC08F9EC6F11BE80E7F5B77C4CCF2" + "692450CE86C9D57EA58CB34AB2995A6193935DDE84BFD62283A" + "881CEDBF685CA26A8A727252223CD6E7BB8A3C7751B8721ED16" + "D1209611803778DF77C6A005E1A05AAB97F6205E0C1C6B339F8" + "D8346A84C6A6D86EFEB17B6F8C8E30960DADBA3DDDB860F46D2" + "718C7307C55B65AEF1082B98E407F56B633A16578528B821125" + "4FA6AF384AF0EE36BA49638386494E347E961D6D65CCDF2D5D2" + "21AC54F6A2F6C4EAB62B7B55E26192A2E223BB053558A6C3646" + "355F3686DD1D3712406677F183E94CF822D0AFA9416815C14BA" + "B7F5C5B4E44F364446E08464370E60A436653B2DD29E6056271" + "2136940DF4AE19617774776F0784F7E8AC600BCF8359E02B070" + "C0480F372DFD69DF9C33ECD3484678087087C7DAD64E160B32A" + "0372318AFF1668F5A0B03C940C384239994F546FEE94E3ED0FB" + "8AC259002D09C3110806FFB56419CBDC76F28C8F828DB0AEC39" + "A573A903A49C0C9F77F0504B9C8CBECA83B6D3A7AF24631F7E4" + "B99E9B42EE201CDA0AC1FFB79AC24F3516D766B0F71E1EFEF8E" + "6CBE38C24D86B83388D6D3C2F9BD6AF94B8A56B6B5CD53AF408" + "37FECC5481F9AF1FE216852C281E068F0891908B583845B58A4" + "CB4169A0F2AAB2C36FD184B15C3E4008E38E00C0B6DB256B89C" + "4C373E8328D13E840D65605C44AE017B0876CB5ABE1AC4D9CA1" + "4A3B")); + test_hash_extendable(&nettle_shake128, /* 233 octets */ + SHEX("7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D71696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA07F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA5239FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA59392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172604F5035C46B8197D3"), + 512, + SHEX("DC2038C613A5F836BD3D7A4881B5B3BFF3023DA72D253E1B520" + "BCAD5162E181685662D40252BEE982EB3214AA70DDF0A95C5D1" + "031DE9781266B1E0972FC9777D4A74164DA68A5D4585F7A8E74" + "38FE28D8AF577306B8E2CBF6863C83431CC4C898DDA50C94EFD" + "4925432FCA36A6304790FBF4FEFAEEE279C01B8B6A8D1C275E3" + "CB4E8BF17D880903FBAF27BFA65A2E3DB8E285878A94955F6FC" + "14F05A0FA2556994B8612BB7A494B4DD8B3CF1BC9E4BF833D4B" + "FBF878C4D3BDC8FC70D26D7B7EDAF0AFE2F963DC6884C871C14" + "75F4B92378B9824970E40DA0A59780E84AC5138AA1EFA46C1B5" + "0C3B045BE59037C6A0C89E1D3CF246F1362794E8107B7CBA748" + "88F0BF4B905CFB9C33517F472BAC16259809797F2FC883FFBDD" + "7CEDE9518F891B9117DE5DDC6D3E29FA56EB617F25E9EB1B66F" + "7E46ED54C1D43AC07471D35C57B8C73BC68F5612ED042BFF5E6" + "8634A4FB81E2EF0D92FFF1E11E43FD6D9A935678D2FDD04E060" + "61DA3BA7DE415B93C5A8DB1653CF08DE1866F5C3D33BE32A3B8" + "D2B7BB39E9745C6E88C782F220C367F945828B9B9250DE71E8A" + "14EC847BBEEC2B1A486CE61731CEF21B4A3A6353C2C705759FA" + "FA50AD33FB6ABC23B45F28EE7736DF6F59AAF38D59881547274" + "CF9AF2CFC8FC1ECADF81AB72E38ABCCD281DF956F279BACC179" + "6AD1F90D6930A5829BB95E94A8682A51A6743AE91B6C12C08E1" + "465A")); + test_hash_extendable(&nettle_shake128, /* 234 octets */ + SHEX("E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC257026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD0560EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA66B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E507E3B953ACF99964B847"), + 512, + SHEX("91ECB5133525E291736CF8F4793BDB00A4EA32F48C3F24CBD32" + "38E6408FEDFA6E7A750409F197041001C1A090659F8879CB269" + "12B46A0E7E4E791FBF5692FD36EC84A55462B7876724EA944CE" + "7246261F26038B166668E6B7EAB0B5119B44E4581F3A3280508" + "CD8B3789AC37F992EB9777B9E11C0F19A3DA5F4B8D304AC4DE6" + "8B3C2CD6659F33FBE20B47E1F6B0CE06EC0963F8E7412FCD84E" + "3DA3867CFF08F82AA17C43C19BDF3BC0D242FDA4874DDEC3895" + "64345AD11A267D7A466925D1E9BEEC667B029DA0982B37B5141" + "3B4601CAC17A02CBC681F927DEFAEDDB0F6A69FDFC39AB73547" + "0E86A00F82EADC94018A6E2A29E7F393F30D954C82936E158A3" + "64FB139FF29E42F30C0B95BD5714EB7A535A5B1D1B3B36A862E" + "35D10D1F8A5AFBEEDECC51A855724271DA9FFB8EFC6615C42B0" + "3A57A2D762B46D5D94E097DAFE5D7A2EF522DDF2DDADC1F83EA" + "DB72510E770735463495B0217B8BC91DB597683254F6E0AC0E9" + "B1E56ED0216EC9618173B163CB3F393152469268C056B1A2045" + "67EBE7367F863BA145C3BB367FA3C01E556D62FBC8381CB3C8A" + "9BED907D481C093F14B70D1BD31AAA41FA753CE31FC59740A47" + "BF5980F8A0E32EACA8A488572A3A91DB07A25C34330CB7DA7E0" + "FB7D1541C3F3C377963DE4560A8D584E11E9C6A1B917F907C34" + "F211CD78904471199FCF30D4180F88E7BDDC0392197444ADB19" + "68D2")); + test_hash_extendable(&nettle_shake128, /* 235 octets */ + SHEX("D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C207A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77AC6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF64324DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E46C90E8C4D100ACD9EED21E"), + 512, + SHEX("54A3C3F41FFA1A12309CCC1D6B7915E126CB13371A2953F33D6" + "512241A5B835005A7FC8844E4E5BC097B9C5D8E388DDB5A55F4" + "3905E11C380B8EF1DC661B77593DBFAFB6B2A4A28039ABF5770" + "6ED1193E860CEC1F5D9C522839607A02F3AE0D057100CDDFE48" + "BD84F60DB063AA3011EF8A6AAD3947D8F86E2A6A28E258A99D7" + "2E998E4148DC877945844094125DB2BE06B98508704E3901AD2" + "D8D2CADB19291AF8436DC4CD89D97060DF9F7CE0738ED5C1456" + "CFEF18862DABE84A08A22BF310FE273496401619F156EDE9311" + "697566B11C38BB10D4AC5787D4D6491CB43B4D79C5F062645FA" + "CDD48EDF609737C7FFC226E36587B39759F23DA6CF94349CFA5" + "0B9E18F1C6CD42DD22EA04A4A7A73ACCE723E4E5948FCCC9857" + "EEBF22C9761AB8AFF73386D470A34254750BCE7EDC88A46F54A" + "B64F562BEA863488F846671503E5E305F3CC61212E95D055851" + "A4D4A9A145DF52DFBA84D27D084952F7E12AF3C4E20860A4791" + "56B48CD65AB2BEE5407AA200CE205E3E46C35DC4B50205C1118" + "7EC81ECA5BE3B2E90A170D53E6637947470220B2A6EDBA8C0D0" + "E3525BE456417E6EA0FD98BF54A5804AAB6BFB728B22A5D01BA" + "F0CEC173821F5E075A0E4B7649E303D17296981EFB88327D5B1" + "A3A8CA72129B979DFBCFDC45EC3D1BFD01D10814F225C6BF099" + "62F0491756CF9607D3974C24FDA6DDF6E87013EC5CB2B883BD0" + "A50D")); + test_hash_extendable(&nettle_shake128, /* 236 octets */ + SHEX("3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E7431518E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3EE1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D34F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1E2DD603D9EA24DC7C5FD06BE"), + 512, + SHEX("264A7D71BA8E67773AC5AB0CE3616F1147341EDEEBA1A177E85" + "29B0DEF09C3A99D91029D77C3F9F85508AE74DE172F358CDD2B" + "C4EFC8B27BF280E162B03A08272D0165D9012099B8EC0274801" + "AF9A0D672FDA4510C09347ADD664505BE434469CE78DF597A78" + "90381FBEEBCEE79FDE94EE240A2B3DFD60B23F4126A5FC397B4" + "B4E5E21893CAFBABEC64BF53F603434F168FCB667828E79F44B" + "1526E9875F9EC9982648B9C6FC1AD6527D7FD2AAD064227D9A8" + "5EF9733B2B484202E00F8929E18899BFA6B92C3AA8B05F9EAD2" + "5DF02E02C7E8C264B67EC07AB47A7D95905F660CC6722ACA282" + "15AEE543FB7950F0204784AFF77374B803E5EA679F22A0F5659" + "A363EE122AA76BDC881EB28D5E347842B2CC81FF0447B68989E" + "744E187808D7AF0011A32B66F9050161168D6F246A5C7B21283" + "8B831E71D71606F21A40D8A9AEF42B21465689B7CE967DC2E53" + "F869F0584E19DDC629068C1ACD7E6B986C3D1F1E24B1A907F7E" + "D4E5B83EB7B0A5C6A4508E0DC21BE2C1BB5506BB2B97D9721B5" + "7DEB9D4D39D58B77DFE6C869F5FBFD74559082B5EFC3692E72A" + "9B961B6A669ED700CC41FFEAF370F88373D5BDA8DB6DD2C3BCB" + "F1D833F4B9CBD3B4134502931178C58FCFFA80CB496FD850352" + "634F73D002FC4A6725848CE2541862B3C5566A915878E60B3B4" + "C1EF7F014F0F32446298891A383F63568C849DF2A208E75EAE3" + "7ED8")); + test_hash_extendable(&nettle_shake128, /* 237 octets */ + SHEX("1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846FB84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB969A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA956879A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66A80012976F31FFDF305F0C9C5E"), + 512, + SHEX("C87CC74FE777B2DC9A33473F88383DFECE2244A807FF92BABEB" + "7BF08F37EABD9305BE93213A63A4851BCDC648C2EB31BD50984" + "4A56B7B890772E040E67D32A4098EFBCCD0ED6D25B2AB9EEFD0" + "B65EBB76D540D0FECEC277AC98139AE8F67025DEC7AE76850E0" + "47098557D2EF7D9319BC153641B1D2A376F23E4A1F2FDF1168E" + "B5901B3E11A0410C8563DC4BF1FB0F616CFEAB2B086384207CF" + "1A10D51634874493DB0533787C0564C1400BC56CDB7C32A6FA4" + "800F0E685156F2BB63A63B67F6D40AB574CE0EC54A4A533958B" + "3A48266EE038E5D85E67F3BA429EA1671D89A083B406A568A07" + "95C56EF042881AB67665258EDEDB97AD04B5A30388D7EF0DEA4" + "94BA645F8FE47E81A2CC4A9C6885ED80C6F6D37BB0E81A60575" + "201C0EC3E9FF30F70AE746B86AA3EFB309F13FAD5CA2C824C2F" + "CD34AF1DEA5E60E4A8CD92E7B653301721937E03ECC2AD5642A" + "3922D4D666448759961C6D830CCB45D666B675C920AC2486B10" + "0B5A51A7659F24735C173F9FDF02B1401A03ED5BC45EF098E79" + "9E7A3C29EB262D408CA9A6D2C18C5636F3B378E63F8C71C7005" + "8976E880D8A0F23E0F2F1CAE00F4E06FD60673CF0968A2E3C5D" + "97A79659BC81F6639FE69B18C6E4D1F3BF535814A4D6187F3F9" + "BD7F7509B2EB899A6ED48526C665B706A526F0E5EE433DCB3B5" + "C7BFC99078342B78EDCA9502D6F73566BAB6AFEAF63EC9A020A" + "7EF5")); + test_hash_extendable(&nettle_shake128, /* 238 octets */ + SHEX("08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD84953AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CFDE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05BB461A40645BF176601F1E760DE5F"), + 512, + SHEX("61390F3D091CFA220147B1C85C59F1D6B7D9F87DB3A8910884A" + "EDD2DB4EF65BD77F1D091D8375002713322F3AC618126D47DC4" + "EA0404402FFFE139C8163CF8746030B2E57BB2A74965159F448" + "4E3A4C41E7F849BFE872DB3B47EB91E4C9E67DC09AB0FB88FDE" + "8A9815BAADCA11238B97DF04A0F5E5570DDC87D18E6E33339DD" + "481D20CB746478162CD1464929DCE1FB906B6545D846D891CE9" + "1358B9EA029F281ECDC557CB769EC8C1FAAAD10FFE13B807607" + "2455BDE3A3276CA458E8FFC4E377ACA54833C31E906866E9DEC" + "7EAEAF74AE07339D70AD34278B076CA541CEF4DD10F68FB29C1" + "7F030052702B7B87D857F462414BFCB9FBA427BEEF0B930DF09" + "C7A6BB35620EF843C9866E242EB2B30E30C4427C1E5671F2390" + "F6F9F42B77305CB9969224355FB7A751E2066FB8C492D607004" + "9C768B5263642802D21632DCF50EDC2C9357A4A3CA20C8446CD" + "322CB5D8EDF82D31871424575F022D8B7A6B7BAA4F6326CE757" + "AD523B8BD1B4A77C5D96E7EEF9E2963B02B107F7F74C9341D96" + "4D70DAA7C9E1ECBCC354935EE07192F22C15D693E5E10DF094F" + "A8B74CB2CC87B967F11237B3AB5D3F53EEE9BB9E4CA16B7DF02" + "E46EA9F141DCDA939B2D7C964574A0E11E3505706C0E9FE33BE" + "262A7E6589D7BD42276CC3146F0A728131E9D346B91DA1EEB6B" + "3E34EA5AE180396E219B5FFB6F87148ED8D4BAC21E760861B49" + "F248")); + test_hash_extendable(&nettle_shake128, /* 239 octets */ + SHEX("D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC055A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DEE820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DEF612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C9173186C226169FF257954EBDA81C0E5F99"), + 512, + SHEX("39EC35D31923584FBD73A715015CEF05B945A5AFD2D109E72E3" + "56BDBE0F73CDF666AA7B01E77BD3BC0C409991F1129961F6BDD" + "772ADE7EA97AF0B88A8875190B453664FFB64FC4FAC3C1108A3" + "C222F23B12B7613941B137449471BA4847EAA4A16BEB50960FF" + "F5DFBB2E756938B38A93509BCE5F900A59E69FB0305A19E460F" + "FAE88D74A727C82FC7138B88DB07EDB172B39566DD22F0E852F" + "715AF9D3C3F0089E9EBA72FF6063357DE9A744F20E1DA367F27" + "C6AB6FC9D231A606A79A621F8150773D1DFD52868820EE5BC28" + "D286ED746BEAF8F13213548DF0A56BB0E01E5BF6BDD1C901EA8" + "C791E7916E5679C88D4D85CB1ACCA63C211E7218FE6EB2ABFD2" + "BADBB31147177F123FD111BAC4880F1224ED01F3259E4EB91DE" + "B7562CB9C3009B3676998AFAB8D5D24BFE7D27BE7F3A57A932C" + "895B60A9FA74504472808479F332FD9915B8ED0C11604E80457" + "C0DE5F7015C19A607AAFDE448FC08BB185517E6AD7DD330A465" + "F9043A0478E1CB4BE9185187604F30A1680C67D3A0DB1BACCC0" + "5D401AAA8FC66D9189089EB7DDBABA05FAA8DD83FA544FDE68A" + "793A36D854752F22FA13333C6152F7F18ED789848A13327071D" + "85D5E36C4FC291CF5B4B9391F8E2513D4B660B1290790AB50D1" + "2B73FCA21A93F8998D5706C037C387D662FC20BE35228D85E5B" + "D007A7173BD06E5CBB7E41063AE4843BF3F5A77C44E1A36FD2E" + "1C31")); + test_hash_extendable(&nettle_shake128, /* 240 octets */ + SHEX("5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A0240B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B63252DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F583305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455FD3C356C914FA06B9A7CE24C7317A172D"), + 512, + SHEX("9BCBAF72085F4EE5B2B237F520977C7CFE8780BD62B0ABA13C1" + "61D0E7EB036AB27E9B08407BD501B2482C280997EAE9C4B571E" + "D6E39A13D74D7A1E2258CBF3583B28E738FB14AB2B60E6F1E18" + "8953D96A9361D282B85DDC243FE6C7CC644BA203B328FBC4E00" + "88E40283B6A62122065A11A164DD1EA05F421B4ED60F44EC982" + "636F0253AE4E6EA320EDA2351DFDE0285D1ED860A51699E702A" + "0519B0C3119462BC9CB3DECD66647823EE139DBFE3EE125A6F7" + "4AEDF5044238389E0B0388698FD8D7D882D010C194F4478D6DA" + "8FC195529A475932E4FB178CF318AD8F24427BBB90C0B08ADAB" + "27BE5A48C9804ACD9E56E1CB2BFEB236388917458408C446C6B" + "5F1D3BD55AC0F6F1AD06AB419460F525B564DC67BC6BB2CFD08" + "CDB510161F71A29AEC95C67323259C214CC39401E483E982EE6" + "576A7F1068B088348916A5C47D1378236DDF475733F394E1421" + "6D2AC112457295100EB70381E632876E700D355973944ED80AB" + "91AC39F2D9DF4E338C02082505C028EDDF867E60ACEFFBA5948" + "0E6953BAEA105652BAC6D29DEF70962B6BB93E3D9424A77D31D" + "3020FBB3BE37E7905A6360C1B624327FD68ED02639A2B54FBAF" + "DD9804FCFD60AEC2B044C921A77B25B7032CF685475F503D00D" + "9A8DB733CB6115C1BAD1C847C1BBBD342E62470D6DF7C21119A" + "35179AD3C7F68CD246B8F3F51E2635DAC460DB83FCC5C0DD049" + "A2B7")); + test_hash_extendable(&nettle_shake128, /* 241 octets */ + SHEX("6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502DE6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF68F50D79F0C9C7314E750F7D02FAA58BFA"), + 512, + SHEX("8536A6C25934A44FF97C0A09E026EB12B9C81CC8357859BA736" + "B29BB329B182B5DA8FFD7B855200CB9D64FE463317C213997EB" + "DF1810BF37E00D56F75791375C5FA84DCFA37EC196BB2DD3C66" + "C1D33034AC48BC7FEAF15F9702D7D11E4712AC87934E2064283" + "D04B56BDDBFB3B56C3CDE69B7D736196B9DC5623A3132BE33AF" + "12A386A3004EEF98D4487B614547BA59EDABB0B83B6CA39A595" + "5F925F35A5209C0CD567369751312A6A63D0F4821D442C14CC2" + "6FC147E63A4656745663CD96B01064F60FAA4BA98258B09C098" + "33046412221A59E23D5266FAD8C068CC949D172862EC30EBDDE" + "A21E1CFDD6B5FE4AF566A19D0D41FC9328EA915D8B97CB1D903" + "BC40A4083F6997439055B44A695450039CC00931CF3BC9FC67B" + "C417A8AA270B2B4A410BCE4A2131523749A957D293C1438A993" + "432941A9FF4210B33A5CF8B4434553B17CFE869B940669CA9F1" + "8B128BA354855F08A692FC6D23BF0FA12D9F4DF0A571E44D422" + "1E8018C4282559E6FF2EB02CCAC7A7B83E34ACA7D554C33F05C" + "BAEEC49D0516B10DE06BCDEDC09D0C4A9810B0797B62CFFA75F" + "C0D3BDD796327BB1FA5DCB546630E9BB0457D024E982D6D7930" + "391066C58286BEAC627D6ECA09B4F6DFCCC71CE589B1DA1E890" + "AE0C5A0CF531D9C1D2330BC8397F09F248F9919995326FB9214" + "7959C3E6C569ED662F6968F4E9EF42B6C2FB954D79DA2211737" + "3E27")); + test_hash_extendable(&nettle_shake128, /* 242 octets */ + SHEX("5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA944731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B94B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3EFFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D49BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A7DF95B60FA8712A2271FCAF3911CE7B511B1"), + 512, + SHEX("7201FC2AF67D095A5E317269E750F965B8BEC311EDAD18DA243" + "5D2872C0056617F0FCCC80552010F996E5B34084B09F31F3587" + "0486A8C53D220D7D009FFC2C58F26AC41BAE05EB486ED4A18E7" + "4FD1C31CEA640E8D47D88C5D506C5719A3EAA4716AD4FB906A5" + "085AFD46570F2B048264D4BD3554F5AB0A8271D6529B9E2F163" + "4B5C78ABAB6BBACF4F01A4E33377F9E1FB12FC20435DE0AFD62" + "F90E2CA73BD5260285BF5CB9B4302A312BBE48C3B68A4DA6E84" + "2B7D87B3BE0BA82C9B7953CB63B7E7E86296B88557BEE2EC957" + "6A468D556B77F872BF728FE3051E4932988029D88320088B70C" + "8B19B59FC03F2F32BF34F42746A6E9672C21EA85087A46D5BAE" + "484F460AF64F8F62BC615E79ADF67EFA9941DEB5B358A5833CC" + "E4A92DA0F237A506D530D64435689E1DB79F7AFDA051CFC0653" + "97C9393B3A87D6DE9C08522BEBAEF1B33D2EAA746A5AE7FAD26" + "7F168ECE1DB4BDF453A100FA3743D9DCA3BD0C00DD7033AE1EB" + "573BB79C6CF53BB38130AF279C0A0F8198C5145A5DFA32B3227" + "16EF6115BB5466CE54EEF73E68C4C2B1D0C321A03B6C7BD1BE9" + "8DFCB50C08DF2005DAD35C430004DE8E6C531368B5F37E53DF3" + "D376CAAF854298657573BE7038052C2169BC907341CEB029253" + "85A9FC03400F53CCCD6D3BC039BC49F7E5CADBB68FD5E1589CF" + "1B97C9C6360A4DDE6474FF39B96CC2F4C698300DB2AD5668BC1" + "9F45")); + test_hash_extendable(&nettle_shake128, /* 243 octets */ + SHEX("03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFAC0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F50B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC54861F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB237520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252A53C49B7B02DFE54FDB2E90074B6CF310AC661"), + 512, + SHEX("C7B0EA1011BBE2D11DF8353D06A6AD5176DAC3E33039C621A63" + "5E1124EDF2425AD88BA552D6B6034AE3A5FBDC735E438106492" + "5BFD6CB5E3E753D27C7A77F4BFD3D33652461F5409CA29C060A" + "C991F3CA90A29B9F67502A524795F1306430FE7961430B431E9" + "CB7C21EABE1EC3D1D6440EEA64496F30A3A44172B2C5670DA2F" + "4DEA42F783F5138C966A642488231DCA509C144B59E0F4A40C1" + "91C035E4A464ABB6F4B9E0F9ACD86B7BDA0485238A56B2934C7" + "AACB484287EE013C46E48FB648E73ADD7E8ECA6B2A8FC34EA0C" + "EB46B0C360A6004B34403AE5FD345A78B55634B242CBE07A6FB" + "13FAB721EF976B3E1F82FF4DB06F86DCA50348398F1DC831C70" + "618FB387F0B13D84BC8A606E72D6B85991A4D7151E2D9B4B5E0" + "7D303E2D639D2A243E316B6C328EB01F52C524FA7D76763EDE5" + "F0FEC6824D73EFE546547798D9C78B22765E69EE0F72B538C81" + "6B230481214099ACF758193AAE0688CB5A9E11B323704AB7724" + "E5F1C4355C11EEB595312A25277794B996C6BC19C77F0A048CD" + "31FC8AB70C7B6B6B0DFEF5F632879DCCFCF462908F04AFC8B44" + "0E9C4FBEB428B70A56511EB7B16053BE225B72CEE491366742A" + "77152A9BB0FAC5D261C01ABEA1B632289F26FCD628598C1F9B6" + "AB1A5C36F926A2B96BAF71644C0723A6A773DD14C66A770F11B" + "D82EA85C6608C821139601F9B98232BFC21C7A3B54E0F7A2A6E" + "4CE5")); + test_hash_extendable(&nettle_shake128, /* 244 octets */ + SHEX("2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E705CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0ACF106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C07A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608B7F5CB9923AD97058EC067700CC746C127A61EE3"), + 512, + SHEX("FD6ABC78D5FF667AEE2029F1683E1EC57E82E69E6F3963E3848" + "6590650A18EB3A6B611D5ECDD6F8E556D2F8BED3726DC51B208" + "6275923E2BAC576625FCA0A10CE1CAB318AE80806929EC5EF10" + "F3262F460DB6D39D6DB17FE364792AC2CF5B067F260366FDA23" + "4EE09761858A3C5EDFA7D8C8BB7E968BF78922CAD2A276096E0" + "6164D15782B74E75ABCB32D1D87CC5BA1B188AE777B5FA570DA" + "FC393C7FA0CA76623543BA75FF214A0F01AE3455A9C454BB677" + "3721DF3376BF92B4C6DB9FD4EDCD802E30CDD698A865C299125" + "17E0D195B1D05C391BE04710121C764DF515FD0ECDEF0D91603" + "BC2A3B9F905B5D7C25133657FB6798ABA7119FFBBB836028764" + "298EC082FD36CBD7D32A81C549B32E6E82C8C897318EEED0C37" + "20AE2B620A40ABC87C28613AA2322EDD83414B8A532D48FA576" + "9E4E8A46E159D5BF9926C6647836527BF5AB23846EA38F321EE" + "7303A1DAFAF61C97D6059B10314F09F3D5DFF337802EDF70F27" + "E0224D1B110453902D3F4D5A074F2FA532856EAE37307507C2E" + "9BE3952EBCCDE1599A3A9B331FE760D29720AFD9134B6F5C33C" + "DFA60E9B700E0FF15E13D197830BD93E785482BBA5DCECBE097" + "7433AD8625280F0DAC5C6A4963F23844C7EE7AC6C88D098B818" + "9B274D49194727118D6E73898584BA8FEAC1947E0B0ACB81DC7" + "B580F06F52A5743F8E7E8066F6C76B5013DA694072434508C28" + "02E0")); + test_hash_extendable(&nettle_shake128, /* 245 octets */ + SHEX("90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2CAB025103B2D02C6FD71DA3A77F417D7932685888A"), + 512, + SHEX("AEDA7E54B44C4EC1DC28A305AB30CDC9FBB1BD923F41DA60558" + "ACC8C3FB34D85EF153DECD3090860E383151EBD008044B20B20" + "B0C6216D16EA221ADDF00B99DFA692CE79E69AC853FD70C6D07" + "7860C54FF77AC55962CF0D06888CE0A95DEC7CE760E8E0364AE" + "935CC8CE962BAFB617DBE45A4669F0F5C6A7767FB0C9BDC853C" + "84CDEF5F722DA5C31D15181725158F946C8D810AF7296EC91F3" + "EC782D38B00563E454AC9299B8DA2C4D2FE89C0C2C6E094A14D" + "C3CDE4B4B5A868CBE8C6032812CCF17A1E511E7E59C0239E669" + "6C2CE093CBF79F641CF1B59D97B88A16359DAE8366E23E13C7B" + "8F9CCCC099F9B6CC0A228223FBDD5242139F3BE2C19C06A1556" + "3E404428052E32ED5F6EBC61AFE642340625C29174ED962D6EA" + "5D8D6B06DAA63CDBE674CA6ABF8AACDF727BCF6279D4AB7B251" + "1D782C21DB7BA2543C2273970CC18C136D74D6583782FD44422" + "A2DD01BAB97AF2A420F8F1DE60AC0F4727B91972289943B5DCB" + "3D22030D93A6ED0863E1920DC8A6688DFCFABFC3ECEE59AFC7B" + "349F5B6B061E599145E2242C05D63566906A40B98F8D280F31D" + "25880D0DB0A90AF20108715EC9FEE5FFE151BBA41E594254B7E" + "AF61C5B444094B307511A1799D2E983500FE9643DDC2652B7B7" + "7FA27DB41B50F788224BE4B4F7DED43B56A3BD7EB52620689B4" + "D22859ED3E0771431168D12404B5C56347FAFFB9E133FC5730E" + "E76A")); + test_hash_extendable(&nettle_shake128, /* 246 octets */ + SHEX("2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C26B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A56F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE91AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006"), + 512, + SHEX("9FEF3F4FEFEF93B5124DC0C0D3FCD29FC5D6F680F511C682BD4" + "1E397EEA9147441E698E4B420CF2A165B15AA36895BE8AE914E" + "D53FC9950F16D540FF5054C0D731789D126091A75FC5C7DE3C2" + "8478E86E05C7A604CE904DA8F7EF031DC9D957401B155D11074" + "5F3145C34754A45B7FEF94D0253DE536BFA0ED5E655243E689F" + "F909DED44948A339CD55B897D015BF49E890192D051A13C26BF" + "D5E8E71AE287A6E2C18017FC997BBC41A7D39A18DE8B30F5F31" + "3D449C5095314E740501E2101807EAF33F596D0AD639C83BF70" + "37E27C1D8597B4BC9F335433137EF4081E381B831F17AB09BC7" + "04BF1C581F4EDAF9502290A92501CD7A0E5F0AA10674BFC9B2C" + "9C2C812F4C3725D6E7975A1F181BA63349D18EFB824DBC4D7D6" + "267E7C4855AFB5F4DA4B26BF74785AC1E97D3E78DE971797394" + "81A47686545A7B81F9D6BCA18CC3008BE300C34134EDCB9C878" + "70D8BB4DA18CAD8C29CA349392FD82E0BBCA5A06A043826194A" + "52AD80E1C3BAFA28751338BDAC266D8245E055546611CBF929C" + "C8CE6DA35667A66AB87EC22CF3B54D8EC1D7CDEC5C75E0EC3B5" + "3ED0C030AE30913C12AAAA71567C731AC8C9CA1279C7A8FACCA" + "20554A506661630F2B6B9792DBF5C8FD545C283DFC65E9D758B" + "4B86079F569AF818138304E617D74081D80CCFF0179542F6FFF" + "41151B85F84B2DD18FCD8C2B7790B645552C94C0348315BD91E" + "1BEA")); + test_hash_extendable(&nettle_shake128, /* 247 octets */ + SHEX("721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46AEA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FEFF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C2285D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256FC763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF09E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB"), + 512, + SHEX("E62CFE44B169A061FAEDFE6CE667056BC0255D1F22A56D3DF25" + "5FFBB145433FBAC3DBC0B998A40001B805927BDC1EA47762980" + "586CA088D64BABC0ACBD488C5F08B8C220FD5A15EC679448532" + "BB992360C8B166BD8EFB59F2B5E091F06CB1DF8D79FF9B69C4A" + "49A9ECECFD6403D6F984A987C0FCE8E6ED4C0E9CAEDE1C522E4" + "F71495F8599F2864C42809C931771A32FCA62B0CCEB02E5D7FF" + "A15754E6AFA27E568D84FB041CD35140A48F4B23204CAB939B5" + "C48217711A5426F194CCBF07491C0DC2F885156B40C9F782F4A" + "17BB7108E465D9AE1F52B494C74611A1D9D379EA8835E0F98AC" + "6880C339D70B65436A07F056E9C118A89AA41A0E4463482B5B0" + "37E96736D265CAECF4764E6F206AB47EB83689E3380DB572BF8" + "15F7E2ACC67BBA3F4D074DF16D3B95AED1C4718EA77D1E38608" + "400EA88C6F5FFA084EAEE206EEC8D2560A601587DDC5804D869" + "12E4B844D87F2CBF10634CC32F492BBFC32B4E746EE3FE9E9C9" + "B03DA7DE441A53C0E3B648366A4A997A28DF2A10628406C5301" + "75191F230A97E2248226ECF6293D39809B0DC0493CEEC483374" + "68831A5EEF0038AFFC160732C097CF96BBB90F5A302406FFE8C" + "0F1FBD7554C1C0679D2AF199E565D96AC5697F2FF748CF0BDD8" + "7A0DA1A9DE71020DA59BF69ADC9E7FB7D6B8A38113C3370A120" + "815DDAAC8CE49ED4738C3A2805100DE7C6B2279AAAC367A930C" + "ADCC")); + test_hash_extendable(&nettle_shake128, /* 248 octets */ + SHEX("6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BAC2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E4130890E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A616BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F1606BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399"), + 512, + SHEX("E55556489CFF55AE9DF1AB48F860E81C3EB95D979929BED9C74" + "7FD1467D201FCF041D0B3D72EF227C82C93E6346CB02A5C78AF" + "CF0B9CB6AF551E9645C09244EA67E02E17BF1941F3910B069C0" + "4DCD5FF7B4B9C69BB973EFA516B4AFF0F8947DA042E21BF838A" + "94BC8D98E6A30FA830FB9774D14CED360125DA945F44528B99D" + "F2095C5186776D434A4AB2202A8CD5443FF2636F6111228BF1F" + "5C5BDFBCF6278598733776BB589230D74314083B983CBBC476E" + "4C9F0996A01DDE09C8341DA4C2382923FBF32A1AB8E37E9A18D" + "A38F54154C44FAB88AD8857EC5FF82CBE1C9D24D6AA676978FE" + "7F18F1C2503AF6981551710690DB902F46AA5AB3856EBBA8EBC" + "644C7339D6E28EEB2AEB6D5F168E0447CBEA439ECC89743BFDF" + "A88F963A6B57F28157F55CF46B57C2396A357A8E44EC964CA32" + "C51FA5DC17C1E0F6F80FA2C8D26E04F03C32CD763F6CCF0F16F" + "915D72F6E9159174B69535D2229C8A543E992AB0E86BB51DA37" + "8EB378A0F28ED49A8F57F224E03C9C1248F0133D70AF45AC7F0" + "D27C5804CC99E982A2A583AE566262F3CFBDB91BB0C2F256165" + "1A812CBE22F1380929F85A94FA721AFE6BA1EE27430F2CFE899" + "66A9919AB21036E81962AFDA1026B3B4A95FDF0BA51940053F0" + "1EEFCAC57CD11C4C60D66DE753F41A178CC56A938A72A079187" + "4EAB6DAD49AF265CFC6A03016F0A1A490ECECD045B9F7509F11" + "93F9")); + test_hash_extendable(&nettle_shake128, /* 249 octets */ + SHEX("6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CEE4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F0312FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B"), + 512, + SHEX("5C3CD7AEFDDD08E09F343A8226155BC3BA959998299AED4CE4E" + "85C6758833685A58E5CB8002FA4788ECB673E810C98BDF71A18" + "F7A2DDFC351056D0639BC600FA42BD03B1315CC4C9640A8D61D" + "481BC7F9077C9EFDEA6FC3993993CEC88481FCBA0E4C519CFBB" + "57B465FD1E3D33557D8DA77321CB21E584E677F3A66D38C9E49" + "D9A9545D6B84AFA37547F1CEB22C2ED9D8D97693A69EAA2D15F" + "376E6DE77B0EE6C7DC28FB1C1BCB42BF8751400EA2470B87F19" + "830A6EA33DA0912DC894892C6C242E90D24238439C6794243A5" + "A6512E3486680F4F9166150502A1BC049F48EC80D2694FF8334" + "515EB4A97D483E7E401BF6E446035FDDB8B600CA7478B8C40AE" + "C176B79CC671E90CAAE5D1EC05E51D5E7EF9D8B4FF3B3B319D8" + "0C093A83A3D21F22EB4DD3B88FAB1345B29AB527F8D69CABE8F" + "ECE7E26D40A63B3FA08340501A40D433D77DD212FFB48265901" + "D9A05E17E8F24786C7C23E50CFA11D5AD497D98579B02B642D4" + "8FD74CA608DC32E76C3961E07064168B898FDA5B4FEC10554F3" + "2426DD818B7E207F3FACAD3525577B5FBC19F1CFD39FE6453B2" + "74362C456B8FDB3AA26306E306EF1BFF87056AE99FD0CC9BBE3" + "6EC508532E8239B3C33B1705D6DA65813621E8D319460CB6BBE" + "94C9CC0A5AB5C9CF538775D42068D9665239E1FAD0EE8FCA7EA" + "4829C8BE493AC2DE44B340028DB1F27F9E4470D3EE6AB48B416" + "CE36")); + test_hash_extendable(&nettle_shake128, /* 250 octets */ + SHEX("B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDADE59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE840CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B987468E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B"), + 512, + SHEX("83D754C973E2F1CEA0A8EEF4CB2340F2BF78CB88CB3AA458E7C" + "915B5C8412CEE403CB18E062D2D896D5BFFE7DD1C3CA2E5E37E" + "193554A176BEB2C636ABB687E867AF6B9EB5FBA57F371C167CF" + "210956C5855F27FBE890708A28321BBF2D1D44DC7A911906CC4" + "054D6310CDDC4573EBFC9F7227031EE0EAED3A810AA18367D2F" + "6F56B478881F628897E2678FAC39F76A745460DA7913374C9AF" + "81415592891035F93286BFF02DC737EB087DB8FE7E77A188C20" + "6CAEC84832A120547D967107A49AF42D422EE7364DB5B659218" + "5C07DC7FBC2D0ABC2A02C3CCE0070C23F2DAFF0C8FC61563CB7" + "CE0E930B75C706AB8180BCECD4E2C47859217B42719EF341765" + "FF7C59C239C1752A3CA73E04DA7918B61A4D98DF5481F3B2A23" + "A4797D66786CCF940ED96D6817D6172F748262448A69844E59C" + "E9673CD9AA3F5AEE057608D4DF64042D78A03920FA23DE7BC65" + "881465B31C4204F68D69CDDCFAEB9A5A6F4AEAC6572DF206802" + "403D169EB5B2B69CFE3FDFCDE19B198385605C864B5F02BDCAB" + "BF646C5945899F52830C3CDA909443C96DF6DC1417677BD8067" + "5621755D47D076DF56DAEDA124A3D6B1C7B6E050F6D3024C562" + "7A62C57C94438A8A3C14C5F572210893BAFF4B7E4E84C99C6CA" + "09EB3629087F1C700513F2447525EE23622099E8D8B5D2CA891" + "8CC5775FEB5F34FE5141CCC93EC172168638A736CEB0541A1B1" + "8369")); + test_hash_extendable(&nettle_shake128, /* 251 octets */ + SHEX("83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BBC55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207EBF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A065C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE58C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1"), + 512, + SHEX("C6D3296ECCE00F96E8E0224FC094279AFDC51F4D65790B7DE66" + "12A536D16DCA57EDF5AF53B7DCFF98910F8C41AF597692C5B95" + "90B7EBD712076A74BA9923C364E042286F754143B2F1E00C47D" + "4D01ED6A08FC3B62918D4C7FC8A5AFEADF7B83A02ACBFDAD303" + "2D72C60E5FF342AE9376C60CAC094780D9F0A6FCFE63496A1FC" + "660A33E1111FF441BDB600B37A33256A35E86CB245CE8DD2951" + "E6B4C7C96C8561207D402D143902F085191084EE39E8FB47296" + "5F51C6E556CF4EAE55C540ADCEDEB9E77699C161A88DD070932" + "51DBF403E7A26EA6FF93B2E5C61E5C0538CC29D69DE806D995C" + "9BB59B52915A61B9DAAA3B21FC325AE7E1D5923D7E2CDB4F71E" + "9C1E9DEB331916F09B22A34CA70FD20410EEDB22118D6068701" + "88BBB9800445B136FFEF3D7539B7104EED36E3E663B5167A564" + "9B0FD2013424153B92BF520845972C146F8E15670BE40CF2EF1" + "E73E23E404F1753833ABEB111327E862904C7CA969F5820B41C" + "6484AFCE6374C72620C1B0DF72C043C1BEF6B33EB17A64B0FBE" + "48D68E60F90CFA669214F96709777B9A278B65F197956345395" + "008272E6CC3DDF43DF36B39E491897323CEA03B88D2FB8FB9F9" + "F1219E951F4CD652AA28C1CD03A369D85C7ECEE4C3016C89885" + "373ACABC20E40DEA4BCFA7B499941D8BD06738A71F3B40ED89F" + "FE85C7C84ECF5F644CF1F3A434D2B12EA3339303353890B3C4C" + "5534")); + test_hash_extendable(&nettle_shake128, /* 252 octets */ + SHEX("A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9EA746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252EE12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB"), + 512, + SHEX("E7B210D8AC4395B2DE4A9066A345B1592A5C0649D47EC839281" + "6A65C03B5717FFED2427F513EC34D3DB5AD59AF61E0EC5DF966" + "4A1F24E50A31C6C146799745465E3A130C84B52EDC04140AAD1" + "A8AFDBC22D816339D5AD126C616B55302CEA748E744C6F2F538" + "E2285538697ED1B2E169D9B335B6194B59775CB19B14E2A5BB0" + "754705E1342E25EE1824C75479D317CE844D477599CC6A63760" + "4DFDEAAA02A3CD2C1B707661DBD2B1FDD77D2187C1E2295D92D" + "98D4E5AD4208DB1771713BBAF33E63F16163F63EC956C7DB48D" + "265E53058363A923BD51BC3602B184EAF2B8855DFB15AB9015D" + "5FA72999CECFDDE888F95252885988052C9F1666D4E90F82C1B" + "A1C27E4B0FF07F99BC4A54B9FDE4BE5C3882C395F69AE375457" + "6F65CA8CB03EB2890447CCFB37A475748742AC932B615537B7F" + "FDBD9E73FEB1BD29A8039B1321F8B7F6BD80BCE4522174DDBC4" + "D6E95F18DA7EA0D4DAE4D14AFDE65F8BA726662563C225DE20A" + "218927E2CEEF7573AF8313DB530D5FEB42BB2FB7B4DD616D25D" + "BCC6F443A9BC91BA616B858AD827B049A65916CFD0A823A2726" + "243D8393E248A8E1A66A057350107D01B65F4BFA03E6F22A4C2" + "6645B7C2CC63767E89F2A8860632226CD6FA6A68DB79949AFFD" + "3EF91758168A295A5342E10C402F2B2076ADC203BA107A177D6" + "FA79F12DE20D084CB463BF0C74B9D3FF6ED9455301A85000849" + "9CEE")); + test_hash_extendable(&nettle_shake128, /* 253 octets */ + SHEX("A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264AA36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC30D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF31B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECAD9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6"), + 512, + SHEX("8DD1F85C100C7F05B59A9A0A78581B5541ECE6A40672D9AF23E" + "9F80A9D3FC96346E1B0F3DC309BB110E3F9F465E08371D93616" + "258FC5CF5F3264B6F20CD795FACECABAD03BF361324E242F098" + "FE715E14D0D207B5122B01E47238E8AD8CD9C2E874E816C970F" + "8CABA5C148B9D2638ADC5D13384DD5867679B5821A37B77B5C8" + "AE773F982D07F037E319B0C2A88B8716D8642EDB7C51AFDB442" + "97AA2AD22ED1DEFFEBBB8A89A601B3C8ED2BC1894AD8EE27D85" + "E4B88547D64394709532582EB95A682ACEB7C205F4A3CC9693E" + "443D7CBB1E1DEF42905622AC0E12D0543BE1786C13A913D45C6" + "3CD7F06E058440B34DD44007CD2B7BA489D89358276A3D597E1" + "9A0B973F558B4BEE867712543C1BDC817495D3222D4472B0078" + "4D7CFD83BBCBCE7E2FCD0F9C1EC0FD003B3D8EC74233A3BF7E9" + "5430189EAAB5CE341739C8F198052A783B9EC0331CDC1E2BD8B" + "25FBE9B471A768CC6B8F2C90298196BC65861678C7632B7914D" + "365DE4BB2CF9DBC4A0A06034711086A0D09A9C139132556EFD7" + "CEDA2933EB9B86AD5BA22196DF404684993A8E7FECFE6E582E5" + "A3A4717753E5F3BEF462DD8820BF3857881D54AF1D0F2ACE27A" + "B1C208C3D5087DB201F155164C398F2ADE81CE38CE0D7419203" + "64C57580522FE1F0299A6263C3F4A78E03300372D379A4A9A55" + "0FFAEEDA27B30B329435A8B2E3C127568B48B1A75462F576DAF" + "DDF6")); + test_hash_extendable(&nettle_shake128, /* 254 octets */ + SHEX("83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B69335989E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E566110B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E1148C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A352E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE6468004AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E"), + 512, + SHEX("16322D3005BEF6A6CD077C13F13A0DBA11CAC621605D78E2CA3" + "EBB07386C0ACC23D0B21573123E1BD43ACCC1F12DBCC34874B5" + "C18B6D037B339E958972902BA3174A9831EAAB3543B901B6CF4" + "EF5CBD1CE1B60AC90E94F6E15C7DAD13AC4B8AFFAB3141326AE" + "057852DAB28FB1564A7375204805747A45C0E96E2E046611FFB" + "1BDDB6E6EF5C0BD75E4D654701BCD7F903DAA5B2D32E017C5A8" + "1A907FA908C8523D821A9947E647767F04FE6A8D0A9297F6561" + "0B1ECB332D3DD37EC4501400C3C1E0035A48652DE4F0BC038C9" + "0C5B4FC2D969B1951DE5400184E6C761C7129711ECF3F4146C2" + "B8D662C96A30491771DAD21E0D9667F7312147D53B1377999F0" + "274D239ADA0E2E2843676ECEC0D528C89A5E6C4EA111ACCFDEA" + "9D10BD3F79326283A609F1E2C9FDD4120367DC5403D53A6D0B0" + "DFC3A3726096EC7F6CE189A29F23053F79E179F275E32DB1356" + "7E108A63C7033286C4F6636AFA91C37E32A5B2BF01995133FAD" + "11A96BA922CE4BF5192A0536F4F238F9CF0AEAD2265AE73FF39" + "23682644CB414B8E92E9C5EB8D46E39E46A5A394D75BA2D01A1" + "8B2309DEC99931FD9C29DD61073B23A19EDCBACCA8D9227E8FE" + "23D313947AB6D9C807C8C3BC8E189158A1815410A94CAC21D93" + "1560BAE3AFE409D4904C32D4AA5C7FF6463EC8C432F97EFFD81" + "2DDBBDE53EA65956C9C2AF72ADB2C7B5BC1EFCFC8EF4FF8A152" + "AEB8")); + test_hash_extendable(&nettle_shake128, /* 255 octets */ + SHEX("3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E085172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1"), + 512, + SHEX("14236E75B9784DF4F57935F945356CBE383FE513ED30286F910" + "60759BCB0EF4BAAC858ECAE7C6E7EDD498F01A082B63FA57D22" + "540231E2E25C83EFB3B3F2953A5F674502AB635226446B84937" + "643DCD5789EE73F1D734BC8FE5F7F0883AB10961B9A31FF60DE" + "E16159BC6982EFB08545984BF71FED1C4CD81C0914B4C19FCFE" + "EF54AF4BBE372F18CFCD3A18657F5B9450F99A78F0FA2C3CDCA" + "7461C4ED7569536883B66CD87E9C200962902EAA16A54DB6A0A" + "5CC26D889038C0760810B5BB4F33F1E5D639B6F9BC7CA62BA6F" + "8C9F8DE770260AFE47F4E0F82F102198EBA27F543252AC8DDD8" + "3E1B8DB0A91AC65633FD12A550EBE96F93AA6704ED5905C234F" + "A6D9203910CBD02DE166C4C3348FB81EF7B84AE1455FE318B5F" + "D170883F49BA2F24289C479A2C7531406BA989BEAEF3A79F659" + "028642E9B033F7DEB9ECEC3A7A9F1DBD2451FCB47C81E21E91D" + "20B924C6BD04C1F0B2710D2E570CD24BAD5B5DE4E49AA80B6AD" + "D5507B4D2E510370C7AFA814D7E1A7E278E53D7CCF49A0A866C" + "A3A7B5BB71EF3425E460FEEB29149F217066613695F85506A09" + "46CF68979F04AE073AF8028976BF0C5BDC2212E8C364583DE9F" + "BD03B34DDEE5EC4CFA8ED8CE592971D0108FAF76C8940E25E6C" + "5F865584C34A233C14F00532673FDBE388CC7E98A5B867B1C59" + "1307A9015112B567FF6B4F318114111FC95E5BD7C9C60B74C1F" + "8725")); +} diff --git a/testsuite/shake256-test.c b/testsuite/shake256-test.c new file mode 100644 index 00000000..068c661d --- /dev/null +++ b/testsuite/shake256-test.c @@ -0,0 +1,6183 @@ +/* shake256-test.c + + Copyright (C) 2017 Daiki Ueno + Copyright (C) 2017 Red Hat, Inc. + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +*/ + +#include "testutils.h" + +void +test_main(void) +{ + /* Extracted from ShortMsgKAT_SHAKE256.txt. */ + test_hash_extendable(&nettle_shake256, /* 0 octets */ + SHEX(""), + 512, + SHEX("46B9DD2B0BA88D13233B3FEB743EEB243FCD52EA62B81B82B50" + "C27646ED5762FD75DC4DDD8C0F200CB05019D67B592F6FC821C" + "49479AB48640292EACB3B7C4BE141E96616FB13957692CC7EDD" + "0B45AE3DC07223C8E92937BEF84BC0EAB862853349EC75546F5" + "8FB7C2775C38462C5010D846C185C15111E595522A6BCD16CF8" + "6F3D122109E3B1FDD943B6AEC468A2D621A7C06C6A957C62B54" + "DAFC3BE87567D677231395F6147293B68CEAB7A9E0C58D864E8" + "EFDE4E1B9A46CBE854713672F5CAAAE314ED9083DAB4B099F8E" + "300F01B8650F1F4B1D8FCF3F3CB53FB8E9EB2EA203BDC970F50" + "AE55428A91F7F53AC266B28419C3778A15FD248D339EDE785FB" + "7F5A1AAA96D313EACC890936C173CDCD0FAB882C45755FEB3AE" + "D96D477FF96390BF9A66D1368B208E21F7C10D04A3DBD4E3606" + "33E5DB4B602601C14CEA737DB3DCF722632CC77851CBDDE2AAF" + "0A33A07B373445DF490CC8FC1E4160FF118378F11F0477DE055" + "A81A9EDA57A4A2CFB0C83929D310912F729EC6CFA36C6AC6A75" + "837143045D791CC85EFF5B21932F23861BCF23A52B5DA67EAF7" + "BAAE0F5FB1369DB78F3AC45F8C4AC5671D85735CDDDB09D2B1E" + "34A1FC066FF4A162CB263D6541274AE2FCC865F618ABE27C124" + "CD8B074CCD516301B91875824D09958F341EF274BDAB0BAE316" + "339894304E35877B0C28A9B1FD166C796B9CC258A064A8F57E2" + "7F2A")); + test_hash_extendable(&nettle_shake256, /* 1 octets */ + SHEX("CC"), + 512, + SHEX("DDBF55DBF65977E3E2A3674D33E479F78163D592666BC576FEB" + "5E4C404EA5E5329C3A416BE758687DE1A55E23D9E48A7D3F3CE" + "6D8F0B2006A935800ECA9C9FC903D86F065367221067658B4D7" + "473ED54800D196FBE1089811DD9B47F21E3698B1573653ADAD2" + "31C39F145B586D6C0133378416138E4423F7AF7DACFFE965706" + "A3C49024002B53BA05871E3F066694B163630B0053BE41FA45D" + "4317EAA84214254038A37A9C83D62EB9EA6E6ACAFA6BBFE5AF9" + "F389690D5A9E27BF97C1B93D93ECF36DF6DA212E12B24481541" + "56E94687336B6DA91E368512B9F34C616166542923F3618640D" + "930F922A3DDDD2F87920378541446F2223F593931BD1BA02E29" + "07CE3404621F26B900D05A1119A9E4934A7CD818DD9237445BF" + "50475A011EA0078788801D21DFECB7A2BB294E4956DFA71D8CC" + "472405342BF80120FE18A551D88D6ABC24D83F077BFB25EBDE5" + "F4B03678D677EE646DCE3496D5138BE108782CA5A00AAFF3CB4" + "BB873EC0F2E932DD74847033EC5F07254E3027B0AC12DB7D6D3" + "F90B53D8A5BD63B99C3BF5CD38B453D7CB12D0AE2BF1CFD3EE8" + "8AF71BB6606B0B791DEFC2D762C8641BB8319FE17321EBA407E" + "B744699D92B35ABD79F5B9A85408C93D61233FECE638023875A" + "A02B9EDBACC84003A28CCA2D55A0742D635FDA888905986CA01" + "C1E6420D49EC25224D84E915DFD1638A492282F1FD053770168" + "953C")); + test_hash_extendable(&nettle_shake256, /* 2 octets */ + SHEX("41FB"), + 512, + SHEX("B64ECACD5F7499ACC085C908D35DCC1FC0131816F28D360592E" + "1265079F92A5F844C4BF6AA50D98D52720797E8C992F43C76A7" + "3FD95F9BC4CD272157842ADA2518190FCA342DC20D0C57CDDF0" + "1B3DDF77977EDED63445E40BE82DF8D26DB629A2D307EE9FE28" + "D2FE557E3971858C6D67C42BE2CF44DD7570521CE0647446742" + "5B7AAAE39DB90945BAD388009ED5715C684BB4E4981EEA324EC" + "F66584AD08D9F27C6A4DCF615591857BC7364E8A7C136661AE5" + "FFE828C734DD5EA5A071276E8477B8525E02B7B445D91CC6E37" + "D58740DC2B069BE6D92E7DF95C1AB52B76F7761AE34328962EA" + "C7156E460B3C04FFECAEC8722A56E7373285E42D4CAC5498F8D" + "7DD5ECDA9F9973A32F8D425171E1390BFC812C9EE4D4AB8FA9A" + "0D93AA90A4C258FC64D77BBCF49977E87C3810C80C458516899" + "6A31F446F9391A193B888CD321E22E9368F4F11495FE124141C" + "04015532345D7CB0A13A4DD9007D737B3A176A88E5FC153D4AC" + "2E8CD641C40C4261BBA70E1B87114030FF67CB22ACEC90AC288" + "D6B59D25B00038468B4780254FAC4EF158EC2CD52C0AB9217EE" + "D1ED0A5E7B4C4B3A64B1824E2B27AA53398765D5352BD1ED0E9" + "C7B3FB264D141741659F7D8FD0EEEC9F9163C42AFDB540D5F2C" + "87833880A0C942AE4CCEA7FFF2F4C798B8AAF24C33BE8054A09" + "459A3AF7200D555334241709A18ECF88CE93C99234D6AB02859" + "16AE")); + test_hash_extendable(&nettle_shake256, /* 3 octets */ + SHEX("1F877C"), + 512, + SHEX("F6BF0397DBFBB20E4AE30F0A47FE976CD109B3AA09B0E3F29F5" + "60E4ED333C0D083326B03F6EAEB57E277BBFE1CCE36C499434D" + "838CB4C8CD8B02A87790F4A6717B22D46F9220391C420A1A1BF" + "AA9ED5B85116BA1D9E17FF16F6BCE6704C80A49FD9AC42689DB" + "0996C6BD3266694077C6DE120043A827D44979CE8CCC6AA7E53" + "08EBA64ACF9FFFF51D36BC4401F8117D4B96340C62D106B0A64" + "45F01987F9C4C0A420E1A9BAEB594BCB1BDBFE59B6065EB91CB" + "EB252473C7858ECA475E1C81E8425C7E2C1706C4C4ABB3AEAE3" + "9332479ECDEFDFA93C60EC4007A51C5DD093B527264155F2202" + "E01D2083D27D71A6F6C92D839E6EA7D24AFDB5C43630F1BD06E" + "2B45B2C0D0AD70BDA111363298AB9754F26DB00A3FD93D72981" + "DD463DEFD286320A274F5422E9400DC6E7C78D75534C75AF6B0" + "398596EEE5048919B8FE33467C2B7C227BC88994B28819815D8" + "21DC27BAD0458D57F40B12A8A933729A0F6BAE74DBD150325D1" + "4C302835AB95DABDE87A2ACEE9347609A6175DBB538FDFB278B" + "E0B3D5F062768F9E0EB1AC9C36B4E05E3ADFCA73981CEBAF6E0" + "47A18196EA78846D9A782B6E1CEE2036866DBCA749644E74EF5" + "A4538D4AFB1706B360F734814313D20A1AC626BEE7AC0FE9F27" + "7D48BC50816AC9743A61E32F8B26CA6F4DC81FE7F3558AA2F18" + "586D89A8E3070868C76B4CA4727F541072DCDAB3D547D52ABB6" + "F356")); + test_hash_extendable(&nettle_shake256, /* 4 octets */ + SHEX("C1ECFDFC"), + 512, + SHEX("CE7FBC15503986E3B84530D84A16EF64332A6EA57E354E9F205" + "4BFC2AA8891F94B4FDD42FD227C94B33F9AD45CF3982239F81F" + "BC2CBAC7809F01E1C294073AD6D2821C1283C5C427F41FD4645" + "5EF7B4EA0D6D5E249AF95FAC80A8678C1A5318443E63122DDFE" + "D2591FC690527F97A09920941B02439AF3BA36B17FD588E187F" + "CBC1FF109AB4A9ECFC671926EF0CC9C82EE06EC6759E2758A88" + "59B8FA9DDF46D6C049621FF589F3FF56C9419D6F48A68B68FEF" + "D068ABEC24824D7FC150277C2439BF78D15D59DBAA2CB17E528" + "2E6E9ED744841F4A4BBB778CFEAB0471CE850B2A2F948DB3926" + "F733EF7B3AA9AB8EA84278DCA62B0691F5DD13EA11660A8E2FB" + "5CD8BA74A352C044E7219E750F29B62F94ED268A68029B94B64" + "F3D4F2193A7FC69ED34A59657471F04C4961084EBB581ABCC9D" + "50E3674A7DEBB285FC7215BF6606DB1392A7F1619B347A4D07D" + "230DA07811FDE2AEBE45A70178CF841C619F712EF26BEEECC41" + "83A1040076E73FCF6FABE5C25A4B71D564A97CF3C88F1856D9C" + "8B42E94F746CE4605D2AAEB56D1DA5527598E17E5680D309788" + "E09910BEB74DF7D3C3CD4EC680083F5845F4A1C15070E57979C" + "01B89DF7BE64435EA4817BC0AD23ACCA6CB878F7131F02F9215" + "E2D5C12CF3B4D24B29620C891A54AC8BE6E3DEC08397887DE0E" + "A86B81A5459B968FBAE18B4B0324DE7E7C1AEEFC7598644CE1F" + "F8F9")); + test_hash_extendable(&nettle_shake256, /* 5 octets */ + SHEX("21F134AC57"), + 512, + SHEX("BB8A8447517BA9CA7FA34EC99A80004F228AB282472841EB3D3" + "A76225C9DBE77F7E40A066776D32C74941202F9F4AA43D12C62" + "64AFA59639C44E11F5E14F1E5695208DB78F37CF3AC172469DE" + "67B80014D1A4B968A56F855BAF35A275B8EC77B9CA591257AA2" + "EF048663CD05D76B72CF3A9D2BB44B154B16E95EB8B61BD8415" + "A867367F0031BFF5D49237157C197473309FDAAFC8146AB9FCD" + "4254477B052AB306BB575ECA6872863B5F43F026C2BE3289E85" + "7D50441330EC02F6AB4C6329B18D3AF0A1ED9DB70F34016EA0C" + "AFF1F0EF08BA6D26566DF6CCE9A457E1900FBA3338A771E40CF" + "B39581F16019D521E4F398539C4A6F2CA22ECF9158B96064C0F" + "26B8A076E58B5F0BA3187342A5C9A5569E6D08A2AC27258CF04" + "26D995724579C723A0FA8269B4239026A08D88738156943F1DF" + "F6E0FFF5E4696149436CD97732424366626CE7B67A3BBE480E4" + "25B51872AAE7CE59E70995C194E00FEE82119A4320A4B91158D" + "B65B83195C9B799D3EAF3CBF8593D11DC67EE8C0CD7CA4FAE69" + "D9F46A7E70186A33DFAAD510D8DEF82AA5710B0ABB70DFC396E" + "CFD33F56F66957B82A220D1ECA09166F72358A71054A179C196" + "1B64F26A3D7AAFB030C28A73337862E8364D3F562B324CA2EBE" + "F58B7A8F089213178C8D0ADDB5A18022154CF010C722C279AE6" + "0AA984597EC6542EE1ABDCAAE8D5545FF45E781ABC7145AE2A3" + "1249")); + test_hash_extendable(&nettle_shake256, /* 6 octets */ + SHEX("C6F50BB74E29"), + 512, + SHEX("69401EBF1D4C7EA500BE60EF06783DCB009A13B4FCD8B341E5F" + "2E40F39E732237E86716F26873C1820BC36D20F6D5E64A9C5E6" + "36855305CBC3F4BE4A9905B5F79FB769A794299EAFA8E81FFA5" + "1BB4D602480B1C40F9EE9BEE017D5D7F6DE68C8A79EE92A20B9" + "DA5BD3D01BC565CDD3E5786FC4D48F719C01CD6D3CAFCD500F4" + "F768600E6891102FFC10F1394E3A40A1BD54381775BB400EE6E" + "20B95420FCB2C86BBFCF380BC95EEFCA33BC8DE823E13B4B04A" + "7AE1FDEB8279F3EF3E4FD50B2FDE530B0D4C8DABDA6F225A412" + "1A79FED79D8A013C9DF1103ABF081294FCBBC5ABF20BA38E007" + "5169A9C13CFFF94AEB271A46875710A60CD78915C33892D7FCD" + "6C97A1C74846ADDA847F58ADCE8EF762D11C4F15FF8B97F9BED" + "C97E1A8AE554C0B9E66BA1D48BCFAD0D56F91B65E25B03A5E48" + "CF4DB0DBC467BBBC1E037743991AC72B4B259D65013A2708EB8" + "25DFDC65093A4F4F5E98427DE7C60138467D8900ADFCE1F2740" + "8638DC66957D27CB774BBAFF0BEDEE0F6553BCBAC9724A20E8E" + "D0CE6B2F764E4F0D80E4521788A5CC88C3D36F19925AC2F205C" + "F6EB7E6D6888EEFD0BE49BC8BFD8A80B9E05DC7513BEBA7BE52" + "D39BF9BD2B2DCD03FDC8F8E7F90A83DAB2AD85F51D040BA0F1C" + "0A9DC38E929A50DB7F99A26836612E601C6E4346E5E895EF4CC" + "FCD6A5CC3777FC11FA64A9AC27D2CDA67E29CB18A7E99E2CA07" + "30C6")); + test_hash_extendable(&nettle_shake256, /* 7 octets */ + SHEX("119713CC83EEEF"), + 512, + SHEX("C02561C12CCDD167CA959D9756CC70946F7FED8BA705E3EDC43" + "3D3C45D9299D0AEFE9E8E25D602C4DB0D14ECAEFDFDFED2DE13" + "4AC5D0C4DFC02ABEFFFDD7667A434936151D529A93CB266100B" + "94AD0449597B1590398A1A63C42649385B4CFAA828C89037E0F" + "97BEDA8450A68520143889A92C258645664EB57CBA01C3B1134" + "318E11A1848D912D0D2CBAEBD59A71B52495671C548522F4013" + "94FE48DB49956C03044CAFBD40371EF657F1AA86E4969459BBB" + "D21DEA563A51482A47147EF85487A5CCDBC532BC2AEBC3265E7" + "1BD8D56F4521CD93354A73D175FCCF5AABEF2768DE2D8E851D4" + "FC21FF032829411DB2668300853BA5F8BB1FFDCE3FF59197BD1" + "833D2ABFB8C3027B36B21969F7E36C3B6F3FABA9454ADDECDAF" + "C213D347A44B0D364997A9E608BCFF3D2004139CD05005B9BD8" + "FEC09E5976EAB977B5DE8E39373C10D9EE2D2EC196B33689783" + "EF3ABC3DBCECA9BF33E8DEE9A1AFDEAA71A2FE42A3B0C60781C" + "9A2D5714278CC7CB349A3B6E7251B96E4E2FAC606B459C28AE8" + "1B551168D28ACD01D4A08416B6714D8F82485A1C6D5348F7DC4" + "981AA38E7F39EDABC981022C4CD3345383D8C25C929FBF66026" + "F91664998BC34F9689375D06FF95D208D4ACC7791633B222ACF" + "D3EA26F8B5C4858997A1FF77050F280AC7B7E5325ABE9E55FC2" + "7EA8ED1D9D32194B0C5D8807F94AE6F737276065CA08C323E9E" + "D421")); + test_hash_extendable(&nettle_shake256, /* 8 octets */ + SHEX("4A4F202484512526"), + 512, + SHEX("8A804FC3A4FEE6CEF6808C756A17BCDF6B235808493FC78E797" + "01E59A9E9A67D60F0F256AA69DC0258A2510F9936AEE2BCBD0F" + "679696F439F37BF9AFB170D44A58DBCF71EFF14CEC1E624D3D8" + "F1DDDDD3E33421B1E305C794C2C88FCADF9D7C51F52E4352BF9" + "C9C895AA457F5449E82FB36E2A64D1AA69771EF3D675F09030A" + "95653837AB2237DAA7FCEC36651355B2507713CC6A2186E950D" + "E82DC699122644193F8F231C607BA7F3BDD0A214B4EC0155D30" + "517F681FDC2A89D3143040BE0E0B6DC7E5185C723464CCAA2FE" + "321AF3B4174283355FE3D1CED518E00B6063DDD607B166BA388" + "978294244EA8EC773A528003A04914B76E9BE3337D806CA20C5" + "84B2BB66AFCD144417E3D93243F185D26DBA90EA39259C7F23B" + "8A6427AA8A7622F277605F4A463F78A0C189C8DE2C553AE2077" + "3D7CB4F7E26A13F4204B3752D9CEDDF29849798479A4BD0D7CE" + "4D22CC51F88127435BD161F026B1811A723E786DB1DC01F921F" + "E076C3532FA969EF1F8993E0A4FB6C17597D8DB38DD7AF259E3" + "22751CC0A1CCA2EE4940F4EA56CE9179941CF4696256CD04AB8" + "53266D12E7E679377D54E2C2F24832974C573192DD2FDD4DA5E" + "FD72114109248B03F0AE03123252FFFF977BDE87AF8D8022C4C" + "51DA68EFB87ABEEDA7A72EB4D0D1A2EB65EA4CEBC7CCABF3787" + "B9BE98E14E4A273635F69E3E4BA557A1A42D1BF69EBD359B895" + "320A")); + test_hash_extendable(&nettle_shake256, /* 9 octets */ + SHEX("1F66AB4185ED9B6375"), + 512, + SHEX("7B5562ABA86E6329693CE1CAAB2506AF93AD28BE4DE045E66A7" + "B277C4DC3C2C9E698AD5F6D8826230A38FCE87142DD83B28F05" + "5FA7A9212F5017374A7EAC5BB7824C1540597DE34BE9EC894EA" + "BCF751BFD5DE029A1CADA7E599D433BAC0499AAD9782579D282" + "23A5D16264EFBF55EB1370748E7DAC4B56255468FA9694A93C4" + "B3759F691D9A4A08B53A15F61FAA1268E38AAEB43B3FCDBF0BA" + "003E2037EB52C8E9931DB9C60FFC1D1FCEE7663D1017AB6DCC1" + "B92472A88A3D568AF5AFF930AEADBAE751753CBF2F987338DEB" + "1AA822FE28788866073319662438B6CAF6BD8D79DE14FDB6D30" + "F7983F5711177765D7D5E1EFB610FAFC9DE733C9DB3FD2F1C35" + "421D29CB96F87A0DD1E83AD19ACDC7C2BF7A6F047994A96E6D9" + "1BEC34AAAF18AAB7B32A0B379A60F12AFC697770CC6039031C1" + "3B5DD66E0D368609D3018ACCFB02FA4973BDA707CDA096D712F" + "AF59B43BE3EF5EB7C227530C987DC4991955796B2F588359112" + "B9E7566CA785CC5706AC333D12E2DA37A97A13B69540084D1A5" + "908ED3BAF73A0E1C55A6BD036F1342F8EC671593B9B555DEFBA" + "BB3364914E4396D6E2B2ADFA951A6A263AADA6D879B4FF330F8" + "48D2598CB418E530BC63BB11E7A247C5A2C21D5C2A34D237219" + "55567E4452DF9F5E2108C1FEA8FBF672422BB3B85C7C5664B91" + "8D3F3644339367CEFBE609A9B00C250111801C3F365BA752709" + "B76E")); + test_hash_extendable(&nettle_shake256, /* 10 octets */ + SHEX("EED7422227613B6F53C9"), + 512, + SHEX("C92FDFEA927EEEE73162C436C6A3FB97291C33787BF7C2CD80D" + "ECF6004C043BC4509A2CFAC1FBEEB0BCBC7C2974B168AF3291D" + "EE1AF2D0826935DA79C5BF7CF3A211F347C2A44630DCC20E964" + "E3BE24A20766A2EC50310F4B1990A3987FD8D144D3A6F091C6F" + "8ECB7B2069905A7A1BCE8A49A9779E9132BAE521FC44689F786" + "1B7C735815448984D6809C2138ED64A45C4320E09BF459A985A" + "41D024DC4CE0D95681DC9379FC4DEE3C024436E7A949589A74B" + "434F6B5D5742501D1E4761E0DF89F4F1943614C5682086D31F6" + "EB2B65A005FCA29B48777748132A15BCE74228E5CDCB95C05F5" + "1730E8E27E9DE71D582A95AD3E78E64B978D872B91A88C6175E" + "C3F92D5AAC14BCEFD0F6D8D5E2E19DE467C530FDE86AAF6FA5A" + "E0254EA01D70860278C24BE7F7C52669AEEEC52C606FE664D7A" + "8E857EB64948D663DC11E9DE33A410DCB3EB61FDF6E9622B66B" + "9B9F4A39C4B578A8D346906D14AA713D2B266DB5B85AED05186" + "CCB2809B38BBB3C9F99C2861793FC70D972B51F2199674E734D" + "46FE0E8EB675777AC9E4B578A7DE4DCFB5AC1E7A2EB0067237B" + "985050D66885F85CE3410467B5CA374A9F420D8CE5DA4A4934F" + "E78065541C53D071C88F0FF132EEADEFBDAC5E98251C597930C" + "DB32D79656EB44F95C78BBDAFAA59B7E36DA08A58AF3DAEE995" + "36EFB56319643FF422CFB53D152EA302A6458F58B5EB9F2C81C" + "31C4")); + test_hash_extendable(&nettle_shake256, /* 11 octets */ + SHEX("EAEED5CDFFD89DECE455F1"), + 512, + SHEX("F772DECEFF020D1BE280E7F93DF5056577E78D104CB1E2AFD42" + "2B021C6206D94AF56EB9404F8294403173E4A6932A1576BCC47" + "580B6CE2CC80B20FFB274FAC017FA05B3D804A6CD8E874CF258" + "E5D46CCFE06D76DCC18C9874CD3B7543973EBE3367AD38E51F0" + "A46B92D47A68018A819F2D90724EA9F5FC51F444003757B028F" + "BF96F5413296AA9BB8532773EB8CB7CFC803578FAF52082D4BB" + "8AF606301FA927A94FB62A73E2E9FE367E782351185516C181A" + "A674E19301A38D1375E1658A181DBF927973C02207BAC3A0B65" + "C0C6904E8195A3C6550D13CFD46C1885987263E82CE56485759" + "BFFB2647F420625F2B483C2750FB0B4707A2014FF57B1A42375" + "B37B444B0811CED4CB93D5C45551D5E1C8DF20BCCD9437B7E43" + "9156DD9AD4D905393AFAC1347AB2979811CD1BEAC7C454C4B71" + "66B85BFE52FF6C4905C55D83C15C3A9A7760BDA9FC4B90EC4AA" + "BF9CB3660A883BE7137733A1477971D479049268ADD74E0C821" + "0B1A9FABA84FB940F62B1193CCAAC3F020D10CE14DD8C058C46" + "BC35846C07A10DAE9C03C3EDC323CBCC83987DF1FB2ABD141C7" + "C0694624AA68DF9C306D2E179FB4D603F42C99EA369C90C1764" + "95104FA7DE772EA71A9FB014B467CA220F9C004F287F8F0786B" + "3D47C9DAF3FEEE80B2CE4A92AEB0FF8E8C09448DAD76F5FB01D" + "6997EBB139D7FA5DF8C0BF12BBE0AF2B6E354C4089F32B8C529" + "4634")); + test_hash_extendable(&nettle_shake256, /* 12 octets */ + SHEX("5BE43C90F22902E4FE8ED2D3"), + 512, + SHEX("00F3525289B33FB3C179398EC76F2E31B824A532B2AA6B2DA6F" + "FAD5287E07F9F9A2FDD2F2032AC202119CA0A01B7C9C6DE7248" + "77FFC874D5E578066A4BE43757BC2D9B09AA7B483749E0F8858" + "2CF9CC3D47B8A0A98D70AC793326FC5EB6533F00EEC34BFAB35" + "18FF4E98B79582621C2BC7BB7AC8AFAA8D60DF3F072FCAAF514" + "FA7FD9EFE2B1FCD3CB96A7F70A87436922584B93EF74BB03254" + "16EEFEC14EFD150432366C1C1E5F7949C2573CDE16A24C42918" + "C919ABD988F8951207149F873F78D2793FD642F3B3E93041B88" + "55B8CCF62A2F6A2B8ECE4DC704CF693069BC789D470FC4938AD" + "23D5B5DD20D13E31345B2169F750E69C4913E3DFA1F1E54A301" + "9A8333B6648659A6A2E93882FC4F8AE0234FD149123D831F148" + "213F578E8961DD07CEDF94907ABADF7EFD84500E501BF2588E3" + "B155E7D24815DA9584595EFD2FC6F1768F651C1EB10E0029553" + "4F89A8DDE9D37C05F7E4EF9EA236B615F82BFD07E7F6FEB1C62" + "DFCDD4F598BDFB3CBB0FC3259ED96D52AE156B20F0F6EBB0891" + "27CF98F045BDCB12DB84C2EE47800CE36AB10F982231FE746D3" + "2FC5002700E264AAA6432E7BC6BF4F4AF41E82E256C3DD6DDED" + "B24B3607015CDDF78BC1AC56F835D03D8297BDEE57F87EFFBD0" + "66C3DE372F285EB2E7D7359684BD2072B090BB78C3EE71A45A0" + "CB7C22EB4081CEB3CDB89CBAF3D124AD86A9A830457E273C8AB" + "8B33")); + test_hash_extendable(&nettle_shake256, /* 13 octets */ + SHEX("A746273228122F381C3B46E4F1"), + 512, + SHEX("1CF1698F0702653368463A9EEF102E8588FD5E711F4BA16E379" + "8D7C7730ACDCE6C65EA3849CDCA9D08437BEE09F78D52397C92" + "D0F00ACC9D5E9450213F337B9A75697E8FBBDDCA67CCBB7F8B2" + "CAB1209397A4EDA1BA9AB1B44366E4F7A0D2DB47D5480247194" + "D486D63D72FCFECEAC8CFBDB7F8784D4CC9214B3893FC7EEBC9" + "7A33B9DDEC9605484C96BB77CAE4D212F16229DD507622A01C8" + "61043320D9C06373E1E0D9649D95B42A990B0B447ADFBD307DA" + "D1394C30D12E010AD5F6C8ACC729904CCDFCA2162C32C5EE565" + "4316E10A97A192EC23BAAF594B711277A301FE6EEB4B54903D1" + "BB736D4788F65DBEFECB4761685C683DB56C05D0F26F179010C" + "B323C2FC8B9A44DD4A172BE2228C6B0A0779B0637E6B5DE0477" + "76597A17FE94D86AAED911A1DDD27F8F61710CCA8C5F38504A5" + "0F01304B559419F06B5F043DFE984B4DEA2DB6090C1A836F26C" + "0728048C0D89401722B9576577F11700BBC5A6BBF1C23C687BB" + "478112DA0DDA52C1ED622D0227382F76EDAE51DB2FF14C098BA" + "E8D25A2A53D98508DA98C99AECDDB7EAD8DA98AE41BF21A59B3" + "FE4B3DD68F0FB15242EF3056FBF77462D4FF67E0B344BE02CCF" + "03FB98F6DD5F6D306A4C2B2451EC8AA2933172689BD11A7E391" + "1B236905D6D8CE1C030E754A0B493CFBAA39123B0DC4B7085F9" + "FE5988B0447B706CF226EDD34B644BCB591A002A08CBA030F6B" + "1927")); + test_hash_extendable(&nettle_shake256, /* 14 octets */ + SHEX("3C5871CD619C69A63B540EB5A625"), + 512, + SHEX("413131ADD0DBA2B0A48443D3399896AD65BF5F4426D234AE20C" + "9D2DB3D9DFAB81401D7722842A58312F837E7DE13069802F58C" + "7CE9A3AD1703E9C7170D1AE751023147464CF8694515AB5E268" + "36B935ED493B9D66D9229BB0B66F1C5AC721D8AEC1F883DEC33" + "D0380BA79BE198A6AA1F2CF555818D54CD28C0682EB44FA0F18" + "10DF50A8F005557C9BA52F02D70EF769EE7724B852A94E1710C" + "6758307FFEE309C8F884DD0597012679F7C97CF59F8A41B06A8" + "45CCDEFD5CBDA268885A2781FEE48FE4ECF4D0559868607F352" + "4AA25D1A5CBE5C33FE0E8E8E47B6705203D49CAE7F1749DA49C" + "BC469B8870C1CD7D029F6398CF7AA0D3114F56F78885093A59C" + "0C188ADAA40976827AE1000BD6AB4C7A2154D80AC6786CC23AD" + "EF333A2C538152584045A87E942B8033C565506BD319AD99C85" + "A4655F6E47979F55B5F9F9822F9A338CFBAA50D580E27953BA9" + "D13BDB3FDB480226EDD2A8F8F56C75015714A51EA63C73FFFAC" + "63DC3FC6FB8D509BC40B87B9332FA37DAAA441D05984BA56781" + "AE25D324E508B300E6B07629EE5BD2DE33D3BBE6FDDB699E35C" + "324FDB521CDEFCE30D01570AE82803B0B54A7C1AF4B45121461" + "A848477C11F535B700633D88A68AD2ABD9AFD09A4DDC1BE5511" + "B574CA6E525EAC7A6CD7C26EED3E5656142AB8B24D97A76FAB9" + "4EDD8AF21CA7170A98660A5CBDA15925E67C5C579363DC4F697" + "0C95")); + test_hash_extendable(&nettle_shake256, /* 15 octets */ + SHEX("FA22874BCC068879E8EF11A69F0722"), + 512, + SHEX("2FEAF391D45B2B8632EA10806E35D465F2F767DCCEA9304502A" + "4CF9CFD85F7CD46BF0E5CDF2C31A43C6AADEB0C4683B3FE54E0" + "42C014457D0542A8AC09529C1931FD1CEEB0EEF6C5A1D28F7FD" + "1E7998537D78B9DCEAD530B0AB257E273432D3D7205E451CEFC" + "6906451DDDC6B3B0DA1D1F2DF3F043396858E7619B8A420D0CB" + "2CDFBBE43E19BD2BC670E2F5DA51A1B8141F7FA0FA79538FC90" + "9D31847C46653C8184114505C51C49C844EC18AE5C6EF782040" + "0D0859B3820FED6B023D1A3455C2BD6E1A7D25169B58BB71A82" + "107893F27E994BA04C79D209ED97E359D02B991E402CF0D14EB" + "61D4C1ED931B4526D63E9E9517FAA5BC83A23521620FB5B9E9A" + "C1CDF45536AF54E567F5D9BC31196D23C58C0C70939497A3E11" + "FA544A37991B5C06B8D7F57D3057E83C3EAF1758EBD0F569E5A" + "8979D340740A9FA1ADE5A9D956F171D9A0D0EFA871E98AE8D5F" + "3D5733FDF0388FD8D9564E6C267C6438F0F78D7A224DBADF7E6" + "E645EC6952B96A9D6FB441CDD640B576B2C92BC7C5FB11CE767" + "B0105DE7907DC00DD4F8F25DC85B6A84083500F3127708ECC12" + "50AA15D350437664D0D6ED61E83DBEB951260C1746C0F06423C" + "4B84FE75A752E7F034B2584920288EE697926B9BC87FD086299" + "2C3D9934876A978744043D8949273A3583A7C5DDBC25DDC0C7B" + "EFBDA1F306C9EF7A2F21E15543EBD5EF87C39814C91E1B60B07" + "9700")); + test_hash_extendable(&nettle_shake256, /* 16 octets */ + SHEX("52A608AB21CCDD8A4457A57EDE782176"), + 512, + SHEX("57119C4507F975AD0E9EA4F1166E5F9B590BF2671AAEB41D130" + "D2C570BAFC579B0B9EC485CC736A0A848BBC886CBAA79FFCD06" + "7CE64B3B410741AB011C54422568089405BF1E8DDD9E3BCEFE1" + "A713DDA18CC2B73FDE0EB323FA7518DE2808C875A6C55111BE3" + "E0CD20663B794048F5FF44638EF871FBA0F4C2ED41A96D36216" + "06740935E9EA1ABEFE15A1A3BD55C8AE6B2C021CC772B34DA21" + "9115C8F6072A09F2B718E26ECD2538E5F12068F577ED7D03A2B" + "BCC7CA7DB81D2CBAEF2AC8F33B1355798576CD3545B9DC792FD" + "BB9C8D1C123EE0407C6328E09103FA6CE1B4DC9FFB0BE7236DA" + "B3ABD29E704D0C352C524FAC14E12FB61929D98DED973D7E878" + "5A8ACF52AF56C01CE62AD93660C93B683FC22088D7302F72D0D" + "AE54553B0C3E6DA7C498BEB3AA46E7459779A1B0E1FB19556A7" + "1635B404C0BBBF3F34536F2776FA12206513FBB1F2A11CE9683" + "460D22778867ABA7335210D817B720B3D8A8C48243D128EA2A4" + "BA8996D160351194C0AD3988ED0AC5ED61C1F576A33C914C2BE" + "BEE0EEBE55878E2B43A51E510251068E3C0F7C7292189573EB6" + "AF979CDAEBA8B8E359E6B632BABAFE3528773CDD4A1861B7AB2" + "532113F2B259D45598A76D54C739DC2F4AF2700F3B5CF22431E" + "D9F73D53CAF41D134F5CC67ECF8F99549C091CA6697FF20E08B" + "F6AE9B6BE74BC77F26DB50D25F48E67A94DD705521F02D3CBD5" + "FD56")); + test_hash_extendable(&nettle_shake256, /* 17 octets */ + SHEX("82E192E4043DDCD12ECF52969D0F807EED"), + 512, + SHEX("87F2A509E9D42B0F595662CC93094F26F06A86D79D98398B7F8" + "7EE2BB5FB25384F9FE3F7A72AB5DE21CB3B7836F73618307242" + "D53937C67CC5F36A7552F917DB12A4364736B08671314EBCD3F" + "34C670E0BB066D3E8792ACE223608F5A152ECBF9FCB4242FEDC" + "1E27143835F0C06320174E7EEEEB60F6B5A8DC9AAE97ECA494D" + "79B3DDFDDBE91D3294AB4C3B3CBD1341EA4917733FB13A15BA3" + "4B46F0D5981C9DC457A123C4152776E15B37870C24EDC0BD9CB" + "73CFA5D290739C17289C2DE3A71ABA0DFACE3B76DF71CDB6769" + "7321772357587E3C2319C15D867A76F5C7BF5CA2F523265D411" + "8EAD7F96BB30349F5C4373D5E4FAB4076CEB6AB8C11CCDA6B72" + "72121A11F00F67D7D5AE31E86EDAB458BCDE042C58E3D3368DC" + "485BDABD40A3F6B7294C038B8ED3026E70ECC9EC7D6060504F9" + "31AABA816D5AA5EC9FA7CEFEC123E71C5135178F252885A7153" + "A4714E0D9C95AF171A6AAB936F0B464AB07E32AAF29CD4D9315" + "62F700CA1419BCA2ED1243F8EE1B442CDB1F5252225954136E2" + "E80A7FBAF9095108647AFF7F31D4C4CAA050EB1A90AB1D1AC0F" + "67B9F411006A4B76D5CB4B48D2154DA87303ED37C9F911064E4" + "D2F0531474E98F3F96B1A0A008DDD0AF4B86435F8B26BFC7693" + "C338C6AF5823FF7A9BEFA57D72E2F1BB2982DA356A8B3D08D4C" + "19355FD6EFB35D68B3A41144B49713A470BF61D0CA05E520447" + "68CD")); + test_hash_extendable(&nettle_shake256, /* 18 octets */ + SHEX("75683DCB556140C522543BB6E9098B21A21E"), + 512, + SHEX("20561970BF01E4108BC498DA4B8F900A0FA378770DAAE9703E1" + "66898874A1821AB0432D7CB1D0A7006E5461DD3049387C41163" + "27D1D3E0755CDE00A3C40BB5FCFBDE5AD0A7E46650AE7CB37DC" + "2F0E4F506DBA47437EEEC9F823ACD89F3EAEF767AEB39D38F88" + "00DA54790F362A3C183CB9BC420047EE86B3EC22E2B2F4C029E" + "F64A5270C21255D39363894AEE6478788436C758E4101F2096C" + "D7F13FE76E54CC5CD85C9183E6E1A1A3A218379997AEF9DA643" + "D8012F402FBBF88E6D0AE991EC4645F3118FEF0F66D7C8EE745" + "28D622E1E9EF1A69E39CA7EA0E045BB568980D4659ED20F0CE6" + "8503620A94ED7D5C9337DC20805D2DA7D0F14B5AB3B93637F77" + "1C9E63D0B57AAEE353AFF672596C4660CB39381A9010600CE93" + "197CC6A06219A3778B89B0F6AE003B5F9BEF76CCF6D551B852E" + "076A678A74E75E408E1D4D6B1960488FF21B6F6B7C308205F93" + "BD9DA1C6DA1DE9707307410BD7AE22FF24E24BBFDAE849FFE26" + "66B1BDBCA2E08CF9D0F3F7698C4F983D4B92EE28B5B4B8BD98C" + "317AEFCB41E56DD5534F59DA6C84B3D21587D2EE740F54A0C7F" + "AD62A63B98AF747237B68F78A39CBA4596F81A223367D345576" + "88B324B5335CFAA67E78A8095C92D70802A2AA76129DEE69B91" + "D175BDC0A485A58C91CB8EF326B2C8D1D82325C4ABE4A0F764F" + "C01A9F0A743E7F107CE384DC223D7AD7481AC8AB7BB273237CD" + "735E")); + test_hash_extendable(&nettle_shake256, /* 19 octets */ + SHEX("06E4EFE45035E61FAAF4287B4D8D1F12CA97E5"), + 512, + SHEX("F29097E10DE56C3A4A24746EE4E7A6507050D18E40F1CB8C701" + "B5E589FB645A4E400A3FD2C9C4D48E57BB9E146ABB1EF98D0BB" + "C6375C266754C7F1CF62682F0C6A6D6B11E2E0AEA41533DCDC8" + "51319A34FB197D56F4A35D3B82C3D314ECA59E03774E84391E8" + "846D236D0CC51E7A5591205C6C1738B746E616B2A8267709103" + "F51D0ACF3156BA42CB226BE3E94F2293E9E0FBC19BDF5717633" + "E17B5944A02505CC53B01325D1D77965295EA6B6B50E1294176" + "7F7288B9F4E6CCF3F567A1EA3D17379BD1DDC357039FB356D94" + "57956A8E149E30AA5092A4F85DBEE2083A62610F04FD28A5A18" + "80183366211287E9CDBE8B261E93557A38F6EC2D13FCDDB5DD9" + "05599B5469257F3F2E83125DAE5F30E8E7514D55241121D9685" + "08D1FB55C8F339530A437BDBBE04C42B6B229666763400F5493" + "E31CAAB061A67ACCF41954C2AA0A7FA0087A4B828A1AFBC62BA" + "09E91A3AA44FA4A74652882B7FF38C9C1692BF83FBAAA17F32D" + "EE6D25518FA0721463334FADFC6D050E0CB195E477150CA1198" + "EBE4D19ECAE1B1321003823BF04D8F9D4866BA3013C9A47FF0B" + "53FA6C70F57D220D86E8BFE71A61354F099245004487B65E7C4" + "5E090630E6F73FDC56B2EFE6B3469BD31D23384CD4A830A716D" + "50C7A91DD09A45A79F47D73BB32D14BBE85CFB56BBAAC47D973" + "A6F3F9FC23EDD774A31B533FCF7E78A2A75872C5954788097E0" + "4845")); + test_hash_extendable(&nettle_shake256, /* 20 octets */ + SHEX("E26193989D06568FE688E75540AEA06747D9F851"), + 512, + SHEX("BF4EEE53BAECA39E2884780A1F007B5069E7A90F1ABBD12EF77" + "C77A4038CA56609D52B9BEE113536D8FEC7D264F2951072FADB" + "F2D3A0B21690ED5478A540C02D903B3675787929AC44A2BDC65" + "97B2EF2956B3640B3771EDB189E98FBE8FB4CDDC8C641ADC707" + "D47EA2DBE17616AA0ACB4AF8D7197626577A5AB5A71AF722332" + "7FE96C4472B3F21FBA242416A266BD863BE3598D57DD910A265" + "335D17A7B51F59DEBF9F4049ABEA37CAD33B8F2032A4FD5FC6F" + "124044FBF2A9E47421FD6C1488DF87B942CF01F9FC7F13F7824" + "C7C09AAF6D739F4E3876B383546EC682DEAA6F633E630101646" + "BD1456CC22A7BAC50190548EE56C5FB0115809BE6B1D7CF5488" + "A26660E0A80DCA89EF655A963E8013A61CE27DA232430183D41" + "C9C9AF96C14E846ADDF3684782E207916820F57E04C60E99934" + "0F9630E8505C98F467E2A122FEFD1031D67789F890BE96D7B62" + "9828CDA153F9CC19BF8B6D0B0716F931F17014D9AC4B6D983DD" + "41EDFFABCF33693F7558DAB690F669C53C21A4D8DE7BC32ACA6" + "CC45225A2C980AEF2307A7097995D97EE060005CB965512CC85" + "CC81A75D3F2F0975183D9CEE293BC69A06C896634962369E01F" + "475098C62D574A0D6A57A5FDAB004DDD8C3D96AEFACB39B3E4E" + "1523447BC8FE397B488D8A5DA6E4978AED897AD0A2FB88C5ECF" + "86CCA7A67438B988C04F3C14A754A74ED3D03D478CE9EFD752C" + "0531")); + test_hash_extendable(&nettle_shake256, /* 21 octets */ + SHEX("D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A"), + 512, + SHEX("A697F36886208CFBD55C3CC1C407C3F978A31574E4B9A790716" + "E601C6EE0ABC421AA5E5488B57E293CAD8AF40065C161407D0D" + "CDFCBD172FFE700B60D7EFA289C4755733FA535365DB90082EE" + "E0B812442E367BCD4451F152FCD54687DE4AE20F7FC60FCB3DC" + "D1C419EDF74251EC84471D35E4EA43E684995101ACAACDC0D8E" + "CF5F39840850557C70BE1477A2F168CBE97FEA85EA188594A4B" + "DB583EF9DD2C5B682774E7E7E0CC85C1723CF91603793C711E2" + "DA65869BE3A24D481C032A8674C1E0CD91A267302CC084B53C8" + "4AF3D0A7D350BB62A2F3B9027E1F253C24D481A34AB8D8B164A" + "78B0A60C95C13454BC4AE87C5E4E101B7D04C6C3F00E6BC4B4B" + "B922F39C87A4AD843704E125F5CFCFD8A1E8E894230CDD7DBD7" + "BD40A9CABABEB5BAE9CC49DB656AC90EBEE4AFBE3897B0F7A64" + "059BB331A4767983403DF36C919759AD6BFA379920594D0F775" + "BA2390A522C3FA7B0348781155EDD29BE53891B41F44E16BC5C" + "290C1CF31EC33E66E588ADDD70E79FB26EEE21DFDF40A3C54D8" + "E1CD79F2848B4238F7B803891EC01623AD92E53D3EA22197DF2" + "9BB6554AEA8CF2D29EC4B673FAA0A0C64675F3BDCE07288EED0" + "3D980C36E4D10689DD5E525F34DF78B1E76CD87F8FAC22DA1DB" + "1FD9533F58577D136FE161A688F3FB9CFB42D909EFB98085FEF" + "BD8D26498A847C9493E02E5364290CBFE45570BA39BCE1415DD" + "5BCC")); + test_hash_extendable(&nettle_shake256, /* 22 octets */ + SHEX("57085FD7E14216AB102D8317B0CB338A786D5FC32D8F"), + 512, + SHEX("DA7660020D2EFF07955C3724CF85B1B9533278FFD2EC05522B8" + "A876DB92C7F9998F0F029B2156D630DF390B3F8F5A31A8E74B9" + "43D6B36E1C97BC4F059408DE495462A8E039F590D5FCBC3965A" + "663F33BE332F9E56BF37D9108554DC9FCDEA2E771A5E22EDE61" + "AD5476153969D1ECF5ABB108BBAAF6323D7E570B2747EC04C35" + "E7DE5EA2AC0306042CAECF38B0060984460D000DDD3DCABCDCA" + "CC83414E56EE2C44F6D6DCF4875EEDCC4EED761B62E1A338697" + "0571EE127D84563034F1BA93D2A84310956C532F0EC4414BB01" + "AD19BEDA20C714125176EC202A9F8F9917359794239DDF0376F" + "AB51A5160F0FC5CD16E7B7DFB0943CD524064104BD1CCE97A34" + "2035FA47138C27DD9FB00F6528409E10BEC016503B17687C66F" + "2A00072B6245EC061598DA570F36B9FE8F4C35E3E8FCB3CA1A8" + "D913FEAB1890C8AEDE727E63C6085B5C196E82BBF872906C814" + "40EC8B0A65B2271285616C7111C702964E3232AC34E7CD4AD5F" + "5568C9E30B813941C02466B817CB1523D6717E58B4ECCBCD74A" + "923E806D82AF352395F22526E06A71585B71569E87C3D1AAFE8" + "C06098204042CB2E41E92117E4264ECD229A7F2BF2A9188A532" + "64195766707430B432FC332E160D786A9415A0260DFD91482B6" + "83AEC0E62B0D1A480650041EB7CDCFFDC9601AB353D9197CA15" + "604351FC226BD574C3B66B1C6227B7CF6577DF01520214A961D" + "0403")); + test_hash_extendable(&nettle_shake256, /* 23 octets */ + SHEX("A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0"), + 512, + SHEX("F887A018985C64AB3D5609BE2121E73F7AB70D4A90BF47660E5" + "35B72DFC0A1DF20EC0C372862BBDD1C74DB76A0ED12BBC03228" + "3AA5FA615AF320E1C15315EA171EB224184691D13D38EF39DEB" + "FA2629DF136FEE74C49D61282DB8DBFD0CAC30B135330DD4F25" + "644B73FE8276C66325BA588C7178D39EAD3C8DB5BFB6A5F30F5" + "90181C84C6B88C421A4ADE52B6DFB74D1F1D82EB206FBF8678D" + "95442DB8292189EA349D3335C8A4B57E88C4F91B12CD0A3FB10" + "830783869ACC88BA943ACD63ACDDFA8634FED8339626233614E" + "FCE39D60DD2D8B1F6BC87799C4B7EBBB7D407C5621E56CB2E8D" + "3952E07D5560544F810B2BBC56054DCFA0731A9B67067CD1C8C" + "4951FB2AD6466098DA17C9547BC5831646AC73BBD06E596AEDC" + "C57804B01EB817EDAF9D46E3728F003D286B95664317361EF0B" + "5ADC00DCB1F6368295656DF2A41C950367BDD25BA8DB2B6B7AE" + "EB1161FD089D02E35BB9188E7A91415DBA172F906264905BE8E" + "E1E9DA5AF53B3ACFFB44437157DC275D26323402C07C77070D4" + "79CC89AFBA181029FB97F9F0C9DF1B4BE0F0B000A218E380CB8" + "4A40ABDD79E267578EE379C3B674A25A30E902400B0BFA6A69C" + "B7AB96661781E7CF05A6F225F301065B59C033C5D873A5BE330" + "7B6E59708599595FAB5D2A91C601FC75E97DAF27B9453BFE950" + "29ED5B7F2B95C35377E5153DE2FE9AFC847A82888E9469E8DDC" + "F4E7")); + test_hash_extendable(&nettle_shake256, /* 24 octets */ + SHEX("AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6"), + 512, + SHEX("2DBE1B6F378F1C56AACB5F9A71A12EB3516942F2D45CD4628E2" + "D6DBAAA4CA282D640806C927C93B3DC6D1C96D528FC2FBDC91D" + "7773BDBC26B2E5429063889F0842640D4EB0A69F2C705A11FD4" + "0484F16A0248077897C8039C575C1A1C7BCCA09952EBB491457" + "6C9A9D35B2043C7A5ADE1EC97B6D46CD647815941164BCD8D11" + "7E5C4892B6A5A5155B066BCA61A9293E705EDD00DED6402F12D" + "0DAFCCF608391F24657283102C30E71777B7B9F39F069B90B44" + "A6E84D87660D1BCF9587A25EB59F814CFFA8CBCE7D7EAC35B27" + "E8707F65F5B78FB16BE7C17812857B8CB6A447BAFC1CDF793F8" + "3B6D29824B3C355ECD204631EF1E176B53A6B82FDAF3D224851" + "FC7BC0F6B83A6D05D0432FB34567A48BE56368272D2012C0F29" + "6324BA45B7438F13759A4A1AF293C244C5B326D6C68D28A5A3F" + "CEF1AE25CEEC38D866D747D62CB9B5F8CB38B047151192FF44F" + "FE1B35B5D08E95344E09BD7194CAC4D66722C9E365F3C0B7B48" + "FE0A2293E478B4E6C8E6B7C93F41637BB0FD15FDC24E6443595" + "FAAC6C342E8DEF79F01DFD96E624A8954B0AE93591375B8FA6D" + "7EDA21578A51AE0EB69D97DE7AFC1F4FA797FA6D11D5C2663A8" + "B09665463770000249DB5A23233BF83D36C7A15D3E8673F52DC" + "C06270B246086E5AD0648236C68EFBF04A311A9A090C72A6A79" + "116EBBA4BACFE7F46B5630F27C99F257A3C563B864933B8FC36" + "72A3")); + test_hash_extendable(&nettle_shake256, /* 25 octets */ + SHEX("AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55"), + 512, + SHEX("59425FE5B259EAD7E04232543C65EB5ABD0C4DB6F9E03C18492" + "8E877805B9E7EC156D8C1BD0EE27E4FA931832B41781DAD3C7D" + "23BEA681C74251B1EC51A90077356D3C5CA2A2779BDE6F45BE6" + "ADC20FE6DD0BC489B3D6E43DEC4FF6E33A24C62421A20B8740B" + "A1E13BD6447E2D6CCEDACB692A4468C898F815DF88B8A3E0240" + "BCD64D2277D8456642CB129F8627EBA5380A9329932977021DF" + "D641498B40F8D75DB5A4F9F62ED2EFE831EBA92EA600BC95152" + "B3E2FDA2873F54800C15C2256768099BA5ACAD759734533E8F4" + "B5C729B42FCACCFEA0D6C7B5DEAD8A5A1D0D115836D63476EB3" + "C90325F3FFC48C964F69B2957E121D9501405ECF5CDF5C78270" + "19BF4A92417B1E44C444D8B714EE85154BAD6462317515CF1B6" + "80AADCCAD3F3B69D70875020FA770A0F7A969E4B1672DCA70CC" + "DB8D7122A7E8AE77CA7E0819D6CEE706D71F0732DD1AEF5106C" + "65AD8C66FD350C13F2D02237D2B4B9AC3DDA52E3771FE5473C4" + "7C77BF84DD90EF38104D8571AE25F6B7AE6B292708F0B967A99" + "8A6D8F66429C1C81CE5C03843877AE4C56F14FE4F5A24C8F930" + "72CE79E3A3BE409D902881B73D9BDD3AA0C8EDA88F0511E98EB" + "93B271FF5F244B956B1DA8C7A8F377F39C803355F1D70D55775" + "C7FBA96CC98C02999A47EEFD94E52811FAF30C099078C7C1C50" + "772057FE65E954FBF28CC414CBD5C2EB12AE86A0912D3812A04" + "ADFD")); + test_hash_extendable(&nettle_shake256, /* 26 octets */ + SHEX("7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15"), + 512, + SHEX("48612B3A4374024BF509409FBC6B12E049F2F5065A0CC31C49E" + "EDD57FFD19F1C1AF6263ADE73B4C29AA77E5C05BC0AAD40C904" + "106A19A8FD55DB489AC77904569ACD0D62F18BAC28A287299EF" + "6CACD0B342760ABAE5A35A2E67F85E854DF55C5BFE831408C14" + "EA2B0A3C0FFDF29D8B9FEA747EDB856DF6591B3CC76D3F4BC77" + "70E38FCF603F4455C9B5019B7D8A2C939340BEC5247E597CFCE" + "386A458BDD4BA5007D03BC82BF310B4A8CD328A62E2FA1E8FAE" + "543736C10633B3C70B21B98C769ADF07567C3F6D89A006BE4B2" + "AD21643BEC00DE1EC9F7CA7CA733ECDBCE3C58B45119E5F593D" + "CDC5C95BD07082CF5D9B9A1AA11530E302E1FC8D6D2FC3B0FA8" + "34AE3B2E98B428853C8A1B9266AEB7B8436543BFFAF69467D7E" + "ECE47F2DBC790FCF2EFE2791213482B641388D58B5045774308" + "78EF15485E437A4A1F2FEBCD994C088283D92C90975C976331D" + "051EA2C2EA887A20DF5C90E4FC77A9370306152FD2CA6C6410F" + "BD529BF9CA22B4C8FFD4444EEF136EF0B61276E42B0D0424F26" + "82F291C7A704ACA96B355AEDA4D382C16B3AD879BC6B6881972" + "94203661F21E3E881BBF4265C6B71431B5DC29F614E090D723B" + "A086B23051B00B7E81AE8D2315C41A90E1205CE8A1C5A744F82" + "B7582A099D61FC5FA6B2E9A28920E503B32A84F4831201DAF2B" + "AEA8CB98E034F7AB63655E670952EEA74E3DDBED01EA9DCA953" + "3184")); + test_hash_extendable(&nettle_shake256, /* 27 octets */ + SHEX("FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843"), + 512, + SHEX("775025E1E1E0A1C865E2B57B7B43ED67FF002DF27DE0A62AC17" + "76F894E1DBDB2921029AFE631201298CD5D51B9A2A6E49717E6" + "8A180EB27B9954A807667E4D24024DC3A60A60A819EDF287026" + "0AEA535698F9B5D83B820013547E570847EF9F4563931138791" + "B44AD298217000F039A9933FF02B99AB66A571D2D5E16507DCA" + "9EEF54B1910E26EF361887512D646CBAD74F99DEB082F7AD971" + "E2E9EE37AF77B80B2A763DE07D91229E8B5A0E9BF220B0C15DC" + "939253BDF45CAF4A8172AFDA5D096B47793461654341D08599B" + "FAEE496369D5D6E37562F9AAC399A413FF892F9DC07E624DDBA" + "B1C72FA0F2D1AA98EC442BB1BBF7609074E61ED16D25367869A" + "5F54E33B52DEE5020B9ACE4DFE5115ED049A6CE62227661BDDE" + "DDBF77AC1D45114CB734D9CABC634908FF540C2AC162CBAAB65" + "5CB35138CBDF81CF5318E92516EC9C4CF05E14547CADD180937" + "55458621C0903FE6ABC29AD174187F0D5D6B314CAE5A4F95860" + "12D396BBC69D81A66927352A9F4B926E1CAE962A73401587FFB" + "C6D9FAFA35ECC1B678D0D050F790BD8CF4B6EA3C3B663CD77FC" + "6004C257328256F26205EA41EF7A423CC757E81BD7BC408988D" + "AB45E8D632B669DCAD4585DCF6348C8C5D2DC651A4AC1806F3A" + "55DBE5FAE59D50E2B9F25F89200DD88BAAC59C14EA0798194B9" + "0641642B425317BDE993AD1467200432B1EBF23440D0F789EA5" + "A83D")); + test_hash_extendable(&nettle_shake256, /* 28 octets */ + SHEX("0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E"), + 512, + SHEX("36DA0700FD13A62A128D5C87F69863A9EE8DFC65E5E1F97C495" + "A675ED8253CADE4F79D45D9E34C8FCD3D5AF760344FA76B271A" + "916A539D467F9FEA26DF0CB98DCA0409602910D7F298D6E9360" + "0EAE6447CD2EDE4A76526014FB58ABD4A48ABB38DA5ACCA349F" + "140CBB391A6705E4E153C87A80C93E912C912B9C97CB89B101E" + "6BCD0B739CF89D18B522A1FFB858B837C643240DCC8F8553508" + "596EDBA0282847EA724B5D25CE6704CD3DF3EF40E5410D0C674" + "6F97F390DCD77F69E6C41CB009FFCC9EF3C6F9B2DAA646DD07F" + "CE398A9603BC223AA22AF0676931D4FDD5D2C06C6F2F4D31D48" + "54F72E44EA149ED172BF152CDD08D33AF58878B8E268CE44E82" + "46360AD41076FC4E9BD9F460CF5AD24EA05F4E32EE2AF4B1F56" + "B8813599F23DDDA7FBD9195A40C5683988D1A84FBFC951D3613" + "AB6FF84D372AA4A0EB2B68FFF9B37AD1ABF88725A5479E77E55" + "F320BD8BF69A2E174F715B10D8FF4E8CA72F2E29AB501F9A74C" + "D4DDFFA99522D1C48C619B1669ACF555F5E5221D34C7B36C56C" + "53C3EA3AC302C197D74735A1FB295A39AE38D87F451F86C327B" + "67C16A1D1BE50C453F3CA5C9BBC5F78D7C46F5FBE1B44C36615" + "9AF8797FBD29C6B025894B66266332078860D083A58873B8EDD" + "E27300B4177F4B1A70EF2557610F19B2FD8DF4692FA548A018A" + "014F55B90D77ED357987A033ED8E83E07A5D5D3648612854EB1" + "0430")); + test_hash_extendable(&nettle_shake256, /* 29 octets */ + SHEX("A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04"), + 512, + SHEX("4D2453D01B5B3FBF0FBC4E6F7D2F28914EFDE730877568F3DA9" + "CA256C3252560DC9F9AC94AC203AB2A3829A3202E6F4D385D21" + "5B843D64B52B3CC28B11E3876248B4CC692D4F7DDD46C36FB72" + "92794875D8353D945438BFF037737E3E9133FB6559CF65E7129" + "B98644141A1E5870B22751076F4AF9A14F2B0D198FF4772B91F" + "4F5329B5BF9326FE39D5BEA9B6D4CD19BEEE8A6B8FE1CF3EA3E" + "256C7E1A6A95C5B9336AC8CD2AF6D35C776B5563563CC59906A" + "BF1ACFA707AE71E6E52D6A77CBA9E960BCE2D3C11E7A6AD2378" + "74F6316D982207CD5CDEAAB3C5EAE28A3E5364626891555721F" + "81068F60301B1DB9CC8D8FE00D9949EF2998273BCEDF012A982" + "4B5942831AFD4922908624F4C2D3D218FD440652F59F536F8B3" + "3EC88CC3E9DB8A4513EB8880B95F29876C4747A8F83D089879B" + "29350DCB6CAB4497A8EB14AFA848432310C213D7439968D4942" + "CDA32B5E6DF26D29F42BCD98FE7C67020804380D0D9E4A931EF" + "9AA117F872C7C0AFF2E5F11451AF753C383144E60E661D6DB11" + "FA78E542FD2C9DF493DA608CDEAD669E0AE4ACD76744CFA6808" + "8420FA24A43B6E2C1706A10DB468D8A7B6E18CE68C4EAF1CB1B" + "9D794AF9457292C2999DC18337531ADCA5BE1225BE1825B3142" + "7EFA14BE2B500C0174333CBD3553E05AD1E4E27858BCA6F2BF2" + "A966A8EAA6012F4ECF1F3387F3E3409D3986F2E2BF7DD239832" + "C9FB")); + test_hash_extendable(&nettle_shake256, /* 30 octets */ + SHEX("03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C"), + 512, + SHEX("2D46D78B2BD91664CF875974D2CFDB0AE27E00FAEDEC3370C5C" + "B83129EBE05EC438A0A02232601C33AD623162B8BB160F5D8F5" + "C892BBA4606D1937A1E4F90782205CF7EDEF07C0EDACEDD95F4" + "86157A0C64E0303D30029CEF36894100E79693F3E794596CE99" + "ADBAF2E3D4B4ADA5D43B9735DE4B24520EA9C8041CACEA8AC65" + "9699DF823C7BE9AE82D52BCB294A43A751A71F6E0B939BF9F08" + "31443026A292058B62817FC9EB139DD0637B7EFA73344858078" + "AED6FE93A6F22E1E14B92E87CC3CB5C4FD7170413C4949E5D06" + "DDD44FE90AC4EBEAE413A7BAAB1FD2B99BAFF442E155E94EB49" + "D75EFDDD9C0BBB6C1EC6AC6496145C755788DFEB766CA0256DF" + "9C658B7BC660808F875E9E38B3E297543D2C9032B454161F9CE" + "E80B0A7F9F49039728D2F12142EA22C4708307B6593CFD0EF5F" + "38A1E29FE43058A735BA02D4EDC010C02F4B625AAF832030949" + "E81264B213AA8A16BFB10D35C5A369B86CBBF4EEE8DF699B302" + "B052315AB495B9B287E9883B05C6273B4C32FCA1D186D2DF481" + "F54355DA3AF3E7EAB49C1406857CB9F590E7B1B8EA5B7A0C5DB" + "B7FD778A4FB570BE2CB735F21CA599AF8903596E80F8379B517" + "D6A0F7F7D5125A7D4375BD90175EFCF5316F13C8B09219BC840" + "52B7FD2BC1D55656FDB9CF1918997717C6E2AA0FDB46530C271" + "14263E017FE5D91153FDDA221DD63F14C25E3439E05F5DDDB3A" + "C966")); + test_hash_extendable(&nettle_shake256, /* 31 octets */ + SHEX("84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29"), + 512, + SHEX("B3DC434BAD278ECE68C6DFBAC1416BF47FB37645AC6E6B7E4DF" + "D79E4605EE32B9795ED18683FCB56F910E223704FF1200F015E" + "AFB2EE06181E9EAB1BA17BC5D84BC22A2D5C134991C906A71D8" + "B20F6ECD6BBC27FE715EDABDCF1C4E1A374B15AB4D76EA6AC58" + "0904BC66010CD8352CAF365DA80094F461070CFFA34A86DF705" + "B87CC277D80196C86C602326E8E3AACE1BE7F0136C0988FAA11" + "A2FF91AE941799EC4DE96E9F167E4088C822BBACC46DFA327DF" + "7210C9B31A9F7306AE753152A86F9E0ECB03FDEB7415C9ADBA6" + "D61FCA7F4D3C776EE6FBE6901860292FCC6CB89FB45A68F6165" + "E36885DD40671EE372283591BC90C2B4A542282B13BEE71EBBA" + "4E12797DF59FE47649A27AF116DA9F41E0F0B6B962F7260DFA2" + "F569A97BF47405A4EC4A6463680E3903CC7C3CA2F39E9366FCE" + "CA8031DA89E447B37F3B80769FDC0449291FAF1BB8F9CECED3C" + "175062DAE783F51637581E913104C7042BC328E1F2571CAA557" + "2E75EE3F5A0F559B50191F3ECBC1FFC039BD3DBA90F7007AADE" + "D690FF35D8D84FD0A9D427B2171072F1ED51A8EA9AA8A066FEF" + "6B88915265D80CA283EAB1056B6BCA093D60BFE288E3B9029E5" + "AA395C9F3E3913D4B22BADA270A282FF83C963E97F1F7543AA9" + "2B5F419973671EE03A79D1392C40EE57265FDAF75977C9F0E98" + "C2CEDDD7F7C52B4122A4E517280C9547DF99FFB30692ED39929" + "FA16")); + test_hash_extendable(&nettle_shake256, /* 32 octets */ + SHEX("9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10"), + 512, + SHEX("BF7A4FFF6C7B53893BFBA9505594DFFF317A09278C3A59221B8" + "DFBDBAFD08EE237FCC272ECB1C7672B41B8DEC7D54B988B4CCA" + "65CF297E1D54DA65A176350AC489947359E11E34AB3E4D6744E" + "AD1775DF90BD5BE0712BD54EF46DC279587527976461D6B8F9D" + "0C0FE14B10372550ECF74B3CB30C463F25090ABF7DB84D32F51" + "E8AEE7298C49607E4D3DD79B9348E33F2E58A7D0D76394C0B1C" + "79642CF2C3077CA0764F291FF48A8CD723C953276A829CC1E7B" + "798BECA33E8B0FC0BD44224CAB89BA334E52D6943A1ECAC72CA" + "3BC825BD61DC4CAEE1A12E053EF31115456DA434747AA8D6DEF" + "E56E35FE67D5E761881D681AD8EFD3AD5C69430FF75794FAEA5" + "553FD91A4ECF7730EE8205AAAA0DB99AEDE2C52591696514AED" + "17F7B8942026AE16D67588A943E5D13BF47F15F1A458F06ED83" + "A48641941DAB491594DD02C681950B84718CAEF0E6187F23C89" + "FE46A40D5C22AE297A05E8B613B264D204334BE5922A6DEDFF5" + "B978767233AC58925C672F4F4B0B77326A5B283CB1DF217BDDF" + "DFBF12E4FEBA42E23C18675E0FBF0269E2D53A024B4286FA906" + "85C2D8E67E3A60BE0D7072C3AD8BE9F4A389FBBAFE191CF06EF" + "F95605A89C3C668BAAB7657A90F23B6B791421D214767736CB6" + "17BF1481CE103768E5A8A3384978EAA8F56A6F2E729D6307973" + "ED19B270247867E5861172467821A22872E52657BA2FFDDF605" + "2025")); + test_hash_extendable(&nettle_shake256, /* 33 octets */ + SHEX("DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE046"), + 512, + SHEX("2EA40CA6662A79D253A43DB2845535098F8F4D791E45EF610B4" + "7F90D0F28309EC047BF1C565F799253E32A3C538EC6AD842406" + "D9BF127CC56AEBC442B4B8FBB5DA5C759E1BE0C201246B96032" + "4A087B3A3093EF07CDF45D915C2A4B0FF70D64C1611C17C629B" + "E9852CC408AFE212FC303C196F422A085A72684C10460E294FB" + "60CE9F2D5E2A599E4F1E3FAB86740F61EE2DCDAF7E1C8D8BC29" + "8F40B993CBD0A8EDBBE0EB8715B6A58D2CECD21FC637B02E05B" + "AD75E3B8EF0C2BDB157288F763F0B190468016C186A94503257" + "2E71952325D30D2DCDE2A915169C51D0C448644D785AC658B0F" + "0132B3CC96884C41DDEAD9B57425FDC013D067697C0FDE6A2DD" + "31AFE31CCCF9D85B46325D6CEDD80B70EC717278D70C4344757" + "088906A577C2EB030F8AD2B18A1A196DE26648915560D228F70" + "2956B27046ED63EA6BB863F797CDE111A02B19A6F49BDC7EAB2" + "0E040938B9977D534BDD01D19B15781235C249A24EC832770A7" + "6520F5C0E5F5ACC6E6DF757FDE79DE7AD8C43028515B82614D0" + "DA808400C574E5A982D0CF9461BD25EB6521064152DC7BF3295" + "595B7A16410012FB01AEF4ED6ECF22C209FCE011888E29B8C3F" + "84CB29F42AE0EC1C4C6D4C02619F90BAAAF7219BE0F2129723E" + "AD133ECA7E0D50478DE346F90089BAED5D1D04563F64E3A3D5E" + "228988D71DA3DF85D906C9AFC972CA6314482BA62C557CE7CE8" + "986E")); + test_hash_extendable(&nettle_shake256, /* 34 octets */ + SHEX("62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676B5A0"), + 512, + SHEX("489A2DA0386AD9F87188CEF4BC2B22186F74B1561D79D8ADE98" + "EC2190003B99795DAFEFE1851276ECF233EC9ACC0142DBAA3FF" + "1D94692430F67C2B1D809A88A683B73E00BBD678D3728EA98DC" + "1A751FD5839B8EFAD1F4CB45009411B8F9B9442AC797B55E182" + "7B0B6FD2A4B1E9F078FD43D9553399B9A52E7567CDCE4A27647" + "820D8483F16360104A7AC8F3594CD786F51A9ED172443BCAC49" + "E1F4B32E4E915A3CBD7AC18FE691E4B9BF35F31D1E8FA401EA3" + "7458EBBB1CB6C4E99C6B031C6C6981D95422EC1A9AF5E74C021" + "8F403AB62D54E28AA116FF96CE0D6E8076420846DCCF95C9AAC" + "FAB3A4864F93B5D3869A7DADA5BBF8197411966166B2F4F52E3" + "150FE802C96C47AFD6A9F64F7554FE3D52B79BDACD6C95401C9" + "A78F11594347E77F727ACD5E0131CF898C4F36DBB067EE05E43" + "8B6FAA70D8B7720EB94728440147B159577CB5CFCCFE9A9EC32" + "1081D429FF88C4ABE02C7BEA2B10B61E521889E5CCC29470DC1" + "6132489FB43092B6C9EFC9517CCDC0B0824A95501D74B445606" + "62141114F0EB6C7A0B469CCABD358546CF1DF37DEA67E3946AC" + "D70A504A787ACF86B07298938882D0B67EE67D69A8CABD0B835" + "152633BCA5A76C2E6DB958FDA265756669D1105A67889F83C01" + "918398BD296ED801A0B5F0FC8AEFDD5205793ADB85A8D6EA15C" + "FBB6A82153EE69C10C2C92CB38C90CE0E73E32489522994096F" + "08D4")); + test_hash_extendable(&nettle_shake256, /* 35 octets */ + SHEX("B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5BFBAD4E"), + 512, + SHEX("578B2D3B14B19C349DCE30CAD612BC2FD7CE8D6F034FBF4D328" + "E7A570EADEF3F9624B65251F992132D25E5363BD653122D5257" + "002F806DCE93D0B15919FF9EF2C303C748D9782588C90E3B236" + "D51B69B1EAA1301A703B8B6EAFB6C200745D5B08A07A69B6204" + "BE3DB36CF6127E5F8399E5901318F9F0C18CEF9201CBD31324D" + "87CE630A64518AA7042AB3E2C64F39231AC3DE7BBE859CD3A4D" + "90109B2955FBE75A38F45C4B841C7E1E32F22EB69DB97F6AA4D" + "45D12EC5180AFF7863C17FE1CB7DFF337DA46F7F5B0DBEF813B" + "40DD67F985C978B9ECCC5685E059F55E503B5BE924769A11FE1" + "873EA406AC79242FFD6D45334D7C51FD4D1D5EAA28E1388E3BC" + "EB4D67320D9723D060EFF815766587FC11C13675DCC53F30EA1" + "660DC8C20332A3FF05E2E70AC821E0CD250132A59DCC4F40ABB" + "C8783690FAB8BD7693BF106E8F8C7A6D59495FB7301390819C8" + "7C86BD94442185DE8B4CC784A690D742A439F73AE7E8252A3D5" + "C0E4C0410FE919CD7A53F85F522C138A3D654D9B947963BCF29" + "3BEC3D253DBAB8FD39A48A340F8AFD75C97519BFF4506550BE8" + "F1C1C7C345C89EDAA8A56F128AF2DA8E86A19A6494BC33DAD41" + "2E6DDDE813E3338D16C4C34D40C2E6E1CA61FAECB934D4ED0BB" + "0A19D3AB88EA32F7E277BF8521AA733D7240394733A3A1FD762" + "3463857E1633F0FACE8BB83437DCC308E4F6791D8790A54FF8E" + "06F8")); + test_hash_extendable(&nettle_shake256, /* 36 octets */ + SHEX("47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835ED2C2492"), + 512, + SHEX("ABED83F7273F3C7A73A700565F16AECBB0E03D278594A29FAC8" + "3B38689AE49A72411CB6FCA5D636EBA8C560CC038B47DA87442" + "9BE7C50A9215B5098F94110EF4E38F88D8DB1C483D3EA4728F4" + "3B25D94E0C89BB50C66CFA25A62FBF536EBE3D8E7E71529EC53" + "33A2823DE42C50F02414C99CFC61B1E7B4C767828748216BF6B" + "14658C114C52B7A53C52A3F8BB35048343B19C5B19FA11FCF5D" + "78769F1712E6F8FB5B31C017D3E23091B1E8184752ED0669AB3" + "8E890D3D7880A71B0B22149038E81AF04C4CC7CCBA848702790" + "8CF2F50EF3D6563141DBB9B898D06B7253B4057E9A69D026A27" + "F5DF48BBF2FEE2B603240D44B9453FF485B2212828061CEB54C" + "DDC17C8DE430D2E86045C790B23C84499C6BB04151BEA457C8A" + "18DCF0094F969365AE1F25032AE0524C2A09B69F71BD3EF46E8" + "871AAD3B58C92BC4B694BD5D47A8A80CA8DAEBA6584E5D5B4D6" + "B5671C823E6F78D8B67A6745236BF675E28A17C2F8CACB4B5D1" + "67991D27813C5500951A5E78086EB87C18D0E26863260F69199" + "89F5EB180EA48DE6A3750B9E2C1F780230E0070E216D373D3E0" + "ED3DAA0F668A8810DA759CFF1494E3BD17B369EA71DE73CF0E7" + "EB3912515E454544BE78178DB41F9FBC4BE73D1EAC8C015496B" + "08839344D963F070E5AEFDBF29BD056B77C2B98826AE397ECE0" + "701DCA8AA45245F26D718D9F46C90F34AD8EF70972ACC600BF5" + "EEA9")); + test_hash_extendable(&nettle_shake256, /* 37 octets */ + SHEX("512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C6B2EE4E542"), + 512, + SHEX("A9D48CDDE90093FF80DC7846BAECF4C7D6F876703AA4404BE05" + "0345BF7D2F9FF3F93CE132E38EBEA01AB691BAC9F8943CB33AA" + "E7887E9783E0A11EBA2D139A615DF8A62EE4AB9E57BCE1F7FA1" + "9C3B3F6AA88B547F0BD5AC0E2237B514145173AE8DEEB6F606C" + "AF1545C9F442D84D36080BA514759E3C0D1D3688A3D8B7C28DD" + "8404AA5E09AAC0AF3C14792D78434762169CAA935E2AED3264A" + "1C0A005C359B3B58BB5F9B9A6E5ECE5186F9DC26C952A298B76" + "C49138D20798BFCB843D06CF20AA1D540111BCD50C6D39DFC23" + "EF7A8AA8E93526690C8608623A109B1554C840F15E670DC4C33" + "E3BD81784287C3FE98FFCDE6AEF5DA5C0038E31D111C333F48A" + "D6634ECB47C45213F23AC0C5787CB9665D3B31EC2A0FF9C597A" + "4372DF2CE34D443A86B8091729049C4EE58E4ED17EC95033607" + "39C966B1B3A005237C668A6258E67CF9B5B3611A91AB5779D62" + "82ADCB74958B7D45C06819E78E904B4C557BEC431704FFC563F" + "40321E64A7CC456211B5C981C6C987469FCE101A81076DDABE2" + "2408E949E86457658E07F61F5BE6BFC68B968FFFE044BFD278B" + "D91180A05A40FE65F26D907D205411B880D3EB4945652FC0C11" + "2525E06C4795C01F4B67BE8868594E617BDA761465D7BEEBB2C" + "564AB66FBF976D38521F83B8DF85A203197F0B6AEA473D3CF39" + "46E4DC87739A418101AEF50D1A4355B1E8E5E1D638191DD815A" + "5445")); + test_hash_extendable(&nettle_shake256, /* 38 octets */ + SHEX("973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E2A1493D8F4FB"), + 512, + SHEX("41CD43AF243BE7F0580A9B406AA597E72958D24E45F52A2E1A5" + "9BC535C207EFCBC9D8B65A567CA05DA450458C2FFD58CA8CA3B" + "01617AB6DF19A4C384294AA174D728CB93D6D82BC135EC92F13" + "870DCD556DB4421C1C6563803EEE5EBDBCF14B3AD79EDB4E062" + "970BAFB3E801D5DE4ACAF052A6E07B0235B0CFA4CDDE1E54C3A" + "0CEC7E8401A4D38E12193E7CBD66213B7C7B0B8046220FFAFE8" + "68E31CE93FE8BB7EAD861D96CC5A3EDD4820BC2C62DD8A4D449" + "FE9B938F1A55262E7CC25BDE92315E329D8F612DF71649EE0AA" + "A3983FB4984B6E1127188EA9F3D40590D854F5BE570543ADDD8" + "E330BBA204919D7911E56702EFBA881793087ECF5CEA975A88D" + "B706FB08AA8A10BA5F72D2302DB1A01BF15FCC3B05C96937005" + "0CAC51F54990D57D9A37790B5E26D08B56DE0AAFA61EB238687" + "D4396B2899FF6D250F92B1DD2ACBEDBCC1C0A194BA00DA478D0" + "BB659D901009FF593F6A4F66092F67238909056E1A0EE1C8D51" + "CD39BA3794CA92786AAB18D03C13CFC41F08373D1275D75FC58" + "A9314133E62C14E05467EC5829967856817E7AF85DC0A83AF3E" + "87097210E71D7325748022E25194512E54B9B18697C3B70B96C" + "A8D572861D25178CBA90E503B84930BF714AAFCE91CECC995B2" + "623C63F15A1F0F50849F57F5037BEEC1056D4163D728C59BDE6" + "F526F331DF17B5A34177D7B05103735461CD325EEC332FE02A8" + "5B15")); + test_hash_extendable(&nettle_shake256, /* 39 octets */ + SHEX("80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E30A934467DA4B0"), + 512, + SHEX("A0B529DD351C0F7C539BFAC5A3302F5E88906A29E665DAF3057" + "1447C3DCE7BCDEA802E364B65B3037903C5EDBDA2412E084CBC" + "D4F51A4024CA6E154DA70C4781DCFC7836F06E5E4606D16D2E1" + "BED0D60FB36B84F582EAFB152191CF804D121F0F69324156B73" + "3DBC79E1355B9B4D1726E393C22C82BF1EE85372CF04A594018" + "C63A02EDFBB2892221875F20DC73330EDCEE0E62CB57D2BA43F" + "A1E8AF7ADF157A79861FB48ED49C97104C6D89D290061229D51" + "BDFABA62CB77C498A8D71F627372244452549D4F7469ACE1E29" + "EC39E60E8563D3FFBACA5804D6660C7C1559879FF1804CF864A" + "E8D1C8EF258B41B21B48400ADF439A76C0BDD62FBBC2607D85F" + "4295AA0875601FCC1C3BE531B526ED081188DA38B0E40F7FF4D" + "7A41C4CBDBF8DB3F46C00D2DA9D7F8FA3459F60C7419AC6F691" + "473136ECED7C342D3EB5A39F611EEDBB0DDB3EB12AD67F1BE69" + "6795B951A7308DF5FDB83BE7BF1B650C1C9222C22677A4B37EF" + "E0CCE03D7237699FCA345A31238067F83547C5442946FAB4E12" + "9BDDD409F8A0176CE87A341BBC353CF8A3EB72E5C7AA696B12B" + "16E12C13FCD597D864771C43777E8433899F157A0DD21117839" + "D2BA21E85FF2E09FA0ED73C9AF26173B9C3B8AC5B1FC4BF7C87" + "F06B5AF7626CA15EEF79D529454ACD23A7643F91811365146FB" + "18CD0DDC3D46C72C7D1E97E4414225A76B55A19B226D5A77FB1" + "B5D4")); + test_hash_extendable(&nettle_shake256, /* 40 octets */ + SHEX("7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3C0308E29446B8ED3"), + 512, + SHEX("5EB982A2754FE46D19D8CBF86B4D594D14B421C8AB3AE447624" + "47E9F789271F5A1175CA9B6C604FE8046A9A8C11A9FF9354BDC" + "91BDF051AB6FA1F6A44D0E42977897F5342958ADBCC1E612A49" + "B46EE66420E34F2233E8AD857359EA92E3FBE3F84191127833D" + "6BDFF88019BA5B6982F446326877B3D3662767C6E91B0A6F9D2" + "888BEA239B25F1B6A248A6CDAC1775976958FA9624EDFA7DE30" + "50CB73602D24D13763C2D67A016308BF4C53D9C7B4A95AB5425" + "49944B74A2EB30F688B1FC9138B57FB76AB320AC7BD48727CF4" + "CE4BD34FC3B0C2EC0E95BDDD0EF0F5F70FD34C6C89098297861" + "3D2132FCCF37541042415FDDE4AF368A207D59251F50E14D7A5" + "310BBBD378781DF611B425495FC69A2A6644FC6B29ACCFA9918" + "EBE05436EE9E191946AF9CBF15011BB53CCED508C4CEC0BC4E1" + "56D0884347AA46A902F216ED6577E56129B441EFE731CF6C0EE" + "AF378F5A29586F5A62D10BAB2778F106FC6C3EFBF2452C75045" + "D578C38222E14247DB42FA60FA6D909E0AEC09EDFFF90CC41B3" + "2A9725714E41FFA9F350FF3C1008511534337DECE84A0F3D5DF" + "085993BD3D5C755B95E6ED4B36FCEE70B68AF427C3C80386983" + "920307878C1A01C5D782AF85C89C8BCBB0EDB2274BF7172DBF1" + "6AE9BA1CDD7A97D6B2BC2D06F20BD0431618115097621A36C41" + "C9788DC68B95955EA5E097177D66B0897C7BFDAED8487A79E14" + "DCDA")); + test_hash_extendable(&nettle_shake256, /* 41 octets */ + SHEX("C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46723B20F67BA610C2B7"), + 512, + SHEX("78C7D0D0FDB5FFBCFE55AC06F0E6E58C805FBF76FC2D13911B6" + "B63888088CBED5F7E2071F7BBC12063DE085394A691DEE09DD1" + "DAE2EEE0DD9491C23B0949C870102EAEE2F39E20A62D9AE95B0" + "426C0FA05545C0F128FB53E0B8BE090C1C82F0B66DF4D7CD0F6" + "3C9A85E17844988523296849AF7105F845E0F26200A26091212" + "8FE7F2265C9E41D7FE587BECD50B8B729EC445C7CE9135C9591" + "4C6C9686F43A56CF652A6DD275CA6A883651F78E8FCB8168E8D" + "D8FD780735F087203EE1A30B5A13D5F6B7CEA34CCCA3BD336B2" + "08DAC5878E85BF147B0B4E70D87F73DE0487BCAFB6ED9C3002E" + "2DF56F215B78C7020A1BC9F433161BA7FC94B4CE3679EE955D8" + "0363420768C9C7E3C6696E94ECCB0A748FC1F1F402EBEC06807" + "8862F1E2DFC8CD6FC23FE1051E51DFE3D65B3779CDE8824BFBA" + "8AB63FEF474D648FE4A8F9C083EE0E6CF8FF6768D1F54F31370" + "5F4A3D7568192D91E9F0408E8EBB101CBE97AD9FF76A1F347FF" + "152F45D9B20AEB7DE7CC2047E47635032953FC5CC5CE45D66AC" + "D2E11C77FAD0DA8DCF15FF123365DC9F35DE92838173EBCBDA9" + "DA15FA35D10B64E7BB71539708D8806145A1892FBD4176B2E99" + "31514BEC17FDA5CDD82C8EF9F6EB4E2900D039115D5B1E940E8" + "796FA8FD74127FA53990639F130732EB48CF50620A9DDCFB01F" + "D69490A8B5105CFC7A3EA274006F51221C2356212581FB16963" + "E7EA")); + test_hash_extendable(&nettle_shake256, /* 42 octets */ + SHEX("01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E6038210270C834CE6EADC2BB86BF6"), + 512, + SHEX("832BEFAECA90FEF41577649B6348182753EBEE32EA688306DBE" + "EF8665D6FFC6C5A26EC69EC8C90A0FEA854893C0C4885A2DCA4" + "AE77243F735048FF31B80D1A4C84F055DEB1C11F76BF45DAD95" + "16899555AAFEA86A129C4EED1D4CFC7604045D22120C8E06F67" + "793644533202A69B683B2ECB19AED3DB158397C922DC3A90B64" + "A8825541BA5DD9AFD7F82DBC603F156B9F619A83C7132A0D8AD" + "71205C83AA4A52B6223507493E0F9FAB9530762A190C9FC5968" + "0C961B08CF36DEB67A9A472FF93698FDB84DCF3CFF84C6E9D48" + "804ABEB6AA47AD62DC9463C131BFFDB127F9F63F8FF88D9EADE" + "CC6B0E00C657CE54E7BF800B9A35173DFC6669BB54A069D9EE6" + "2BAFE9B3C791DD51A21994CEE03FA37FAA5D56518A6B65572C1" + "B3A17EF52F642C7B2CEE065282FE742E5F9C9BA5003BF1676AB" + "07439CCCFFF7D7B76DF84E3D99FAA269F0475CB5EA7DB25D3BE" + "BEE36B96634B58596AC788C5F31B8DABA35211D4708EB1F778C" + "A38ADB4C15A831D8769AA16110DDFC406B05BCF25B456113196" + "03C17A40A24CB2C38079E5684B473DBDFB98877FFE06298C333" + "37326CC2AD1BAEEF678BDBFFD89BB1E35827CE296E20B0084EE" + "AA0AB1FC647EFCC0231DF9B9B5ADED6DAB34C75E6CBE206DEE3" + "E794AA42500FBD837B6F6AA015BB4C923F8F1F769B049888933" + "773CD24B688B0F787A2B74AD15275AD6C4C336CDFB1BD929ACE" + "58CE")); + test_hash_extendable(&nettle_shake256, /* 43 octets */ + SHEX("337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD21540D29BA27AB8E309A4B7"), + 512, + SHEX("0CB8AB1E6149F41D29171DBB444B0F3C07FEFDE56D9CBD1150F" + "C43E29009E0F5EDC50F89EA7CC0EA6C9E23236C6AAC72BB3321" + "A51AFCB32F9AB5D1051ED244E2A8D417431863649699077079E" + "1687B36F75C995D6A78B87A9E949A56A2CFBCC15CEFCAA6C2CB" + "51F054072A05C12FBA86B10D303B3EFEAC18F8515BFCDDB1172" + "D56B8C92C1AFD4AD5DE2476CF073B7FB4B7DDB8FB2C4BA8AB0C" + "53474857F1FF47CD3B1060612F7C564988D2881189248CD13D5" + "EA347F10E1F21E299294651342EBDBA1657862306844E274D7B" + "2DC9DC6D92F395AF2F5BD01B13FC7C7AFF630E854DB63EC517F" + "D3251D12C10B5F6C17DCB8990FB39CF1AD3B65F2F019B24591B" + "813D56D661A904405DD814AAE4334A8EEF7CFA455C994C3E31B" + "9507FC0E2DE00A1A0AF4DBCCBCDBF393391C5AEC9E3B4D3C8E5" + "F879D8E75F63078E686A1BDD5E6358C5807A669F89F90D4EBB3" + "1B7396C0152D5DBF665D28BC59327BBFEB466F1E7570462ED89" + "8A31E386DE5538DB505FBD1B9020C984A49BC39968A69D5B3E2" + "B9A9B61D6776D5349D4334C3042C0317A2A34234E8CB64B89D2" + "9E3A8B6E8799822F57C3C6C739B3C263CB4B283EF0F859305C8" + "4D11A9DD0DEE36CC8976E6EA1BCD04451B0E0EFE343634DFEC7" + "868AD52EBC551D5CFC0277B15B854614FAD548337F20467D175" + "EF3DBB135FC37367B916CA35E714B998C3553D5F494903A8B9A" + "4B7E")); + test_hash_extendable(&nettle_shake256, /* 44 octets */ + SHEX("6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B32B58EBC38FC2A6B913596A8"), + 512, + SHEX("9FA49C101D9901053C789B01A505853C8370FDD00F7FEC13ABF" + "FC91C7B06E1211DC293FC0D52911CC12AA9CED634B398284F38" + "70E82B7F5AF9C3298D53BCFC3A3DE488985CD1047318C2319B9" + "E2AC85752B3B0BA2C151FCD08C99E1176CA599557D3A63F4F1E" + "BF2FA31CCF9AFB729713387A7CEFFB6F61FF8162B1CD943D915" + "4ECB362E6ECC6E2669F746B1422904A3DCD93313E4031238B6E" + "B117166B374FA8AE8440A358C1EA7B11B88FDDBDE5737083664" + "4B72C0219747A0FE793A1D77F42E66D2D695BC1D9567CF1A1B7" + "43C33EE309CB4956BFC426B06FE20FFCE98A72FCDAD31EC5DED" + "9EA45D494C89AE577BCB79967CB532B97CCC1708EB2AE8E830C" + "AC0953C34ED28BE988E89992C9F0C8FC58FD5E7346DB2F24BBB" + "57606302B0520D7AAE54F3492DF6040916AF04B30F7F2480B22" + "B93AC47FC5DE2CCDEB27A47C25045695AE9F3E54FB27052CB58" + "141918105E0621156FF4BAD6A35DF5BCAA0FBA8D67A18130F11" + "7A09FF90B8760A7027614BE569FB67659BF0DCD1F3B7D13222A" + "338F9E5736D5DAD6032189E149D22D56861B72A561A9DA575D7" + "20F56C365C5C8BD0455C18B7B73DFA4652C1D570A338A5B1D2A" + "2D00A4387613D11BAA57160A513F4B64D91739E032ED72BB2DC" + "FAFE6BA6136FB381857071250CF63051059F9BA3719305D33EF" + "9DC8D33FD6D427402EE348324C78920278D6E5B2678C1C4FD40" + "8760")); + test_hash_extendable(&nettle_shake256, /* 45 octets */ + SHEX("F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB38467205F5DCFB34A2ACFE96C0"), + 512, + SHEX("7818EC8E1A13963C319BD2199294E1459323556D3E1CA05EA11" + "081FD706655C1CAD1A9270495E550DD34A71D6D6B2554C2CCE9" + "776B30BF0CB151ED0A87CD09735CEBBB03A188EB8A1D62EC0FB" + "614BB8D1D67418F91DF9E7FEF2EA9971CD46A1E6AD52D2433DF" + "FE98DD59E0C9F32A4A493ACCE9E6B2D946A56DA432A43E45A79" + "14959AF23F1D08F5CC55B3C06669308021C004F0AFB3DF5BC10" + "A7F19A7ED2DCA14297281D49952D067B094A4068493E7DF9940" + "3063AD007CE8CE76E2A7ED02F7023543E43E9CFECE94601379A" + "048A73663A9B06B04704D59FDB6DEBA49799D3E8052C1AB3430" + "2A2A2392B53A5FB9547628ED4F8F157DB8D795CDEA73F992122" + "97512A04269B0D5F418E2795BFE76E939F8BC9F2137141DA25C" + "F095F2B754F6D0CFD84B3901A903445B7A71612539F4F736DFC" + "1D4DA1B9A8CFA87F15E34D4A813808CCFE2C9A9A710A1B97521" + "66996EDE550E14B55DAD529C8A99BB9FE2688CF2CF294245707" + "15C49EAF94C0EA0BFF227ED445435E3626F31CD5E887CF1490A" + "9A2B7951AD42EBA5B24B02EE726F95E1E6862DC30636983C88D" + "C915361F209DD5603672C9B4D4ADA1703F56955015B9128FF7C" + "0547DFEDF772E63AD7EC847B946A66B6E4D3DC8A8EC3B50745F" + "F7841318BD115BA649B662C99B973F4E7C26CB1604D407AE95C" + "E967406E70396558CA27ABD91FA7190A5D0F4AC89A070F45B85" + "8B86")); + test_hash_extendable(&nettle_shake256, /* 46 octets */ + SHEX("CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77B06CF0F5A0EA15CA907EE1C27EBA"), + 512, + SHEX("5F6539A11001926EF3E0DFFB0142588D4E48ED4A212753128C4" + "C944CC6503E5FD4111583D67FBFD4B2ED2D82447E985DD03CB4" + "DA9CCD8ECF25069E84B4741A4C5756D6295E55075601098D996" + "A375DFC3156D5F56E28FD8F3BD4793601603BC999BF93659D63" + "F3B95AD0AF1F5E1749DF5197C95AEB05C683DCF37E9F362DB1D" + "D64578E8ED9C1CCF0A3AD93E69B82FAC004ABB2489B0734C4CA" + "C5B1A9316CC30F44AC42914AE696698862938DD0DBB3D8FA6A5" + "3D1F70D25A175CF810AD901D29DC3BE40E4F19A5308CCB795F4" + "4F2EC364946D99F59D2DC1DC21C5DD162B7C8CD5BBE8F4CA8F6" + "06A0EF5B4619EA93B278DCDC2E943455F178ED62FA747193215" + "D76C8F76077F9209A9311F1F848009483C82A82BE1A9FA17EE6" + "9D1DE59AA305DA992F709F2C9A1EFB33DBC8108A7D22AD38934" + "D2995A3A5D58DCDB8E435D18099D9B3A5F9CAB18B940F9E1B2D" + "B9BC9768B6D29C2098273BE3EB77D07DC6E48868CEED85484A4" + "6D94A3807CED72C292FD699ACFB6B1DA030EABFF5456FCDFAAE" + "70E851BA49142CA528D91D00CE148758B54F0293E6C53C7540B" + "55288322B015B6067DD16C0CB711C63970CC16BAFA980A8C3D8" + "DA5FF2236D8DAB951A2FAFE29FC72257AD99409F418E405858F" + "BD1A9EAB6930977C034B3D020A86C25586F8524D6577557D732" + "68D225CB8E38892D3E7F0095F68A98C1B7355B5E331D69BD487" + "FE4F")); + test_hash_extendable(&nettle_shake256, /* 47 octets */ + SHEX("1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730BCF84D0D4726364B9BF95AB251D9BB"), + 512, + SHEX("B3120C516E7A7039B7F8D2A886B4774FA9E14B80A7F7B1F33D1" + "B4FAAAD74D549E2195E5B6345B19AFCDEBA3ACD5ADE7200500B" + "CB9C94D6848357D6FA88CF9125E59D0CBCE876D681A68B6AE4E" + "25DD5994D496B7C64F0B9124BEAC30348EA6B80803FF17C0846" + "E19F9ACEE413E07E6FF849801C131DAF7A36F2EDE51CF9D21CC" + "0ED6300EC5D6B64E6FB9F2A9B909DEB4069738D60D6F9F6CC50" + "D749AA7EF264E2BBD6DC680823C45AA8D3A349255823EFBE4CA" + "C62C0D38A4388B1FED31EFDC5BD3D6227106FE03B4A40F21F3F" + "0411405A4A80E92F3CC045C7967CB7AF2F33879DCF9DA5E7ADF" + "813091EB357EC9C0DD097B868FE2D715C124AD0A44E2B6DADF5" + "B360FAF6A727448D5D7B76AB2C716543A09E2F75D570103A8E9" + "589AE58D01904ACFA0DF54E6FFF01ED725266F7E52B992FB341" + "44568173065E406A1E98D8DDE1889D0B7274011CA00357BCD07" + "D4CF8323F103D682B272A98395A60A95237482F00DDD5220433" + "2947D4708D9B8697F9CE529ADF3599C440E2B435F4F6D039B35" + "1FBB198BF360D3A184616B86573E7E32113B1A5E1EB52A1D15B" + "EBB3C49407AD6282EE2551859F9CF87D0D8F0AB362A439EC535" + "40B4B024EB49B525ED29626DB292D1333F579B1896A6357F9D0" + "B51BD283718D2A7ABD8F3786A7DF2B512070A2C9A1B53457F27" + "C6B859A2C6956BFF50AA7906D546C67786B68EC1DF3E93CC60C" + "6968")); + test_hash_extendable(&nettle_shake256, /* 48 octets */ + SHEX("D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7C7F157298EABC4DCE7D89CE5162499F9"), + 512, + SHEX("F59933F9E9FC474342B7BCB8B4DD6BA7B02AF5EDD2C1824B227" + "BBD2A56287267804534E943EA69B571990EAD3AD5DAD06CA9C0" + "BF97FEA1F3878824782E244D77407E3E83D5F527A1F5BFD8C74" + "7FC08C5170E4F6CB114A9CC34E96AC2758782344451BFDCB090" + "2EC52A9FC82087195CD1019A8E5B03E496A42762FDCCBA6EC57" + "3D5C0740391697D95934F983231ED9642A0C6A2F92198B49670" + "AA7F76C1715F3C80648E606B97CF708596AB9D8DDC7D039DEA1" + "F4DE4D22E6ED297790AD73D9EBC2B1BC55315BB60E90EC7A2FA" + "9A7922FA5A4E824BE742EDF41693F595571CA33EEAFF4EFDF58" + "FBC0B9B1CB610AB2E658CAF31FE6E0AE74064DB62CE339C1F43" + "9A55FDA0F594635573C511D040CB59F2BEF552F38D87F31AF2E" + "98B59E9F0E67BC57D59F51204663511865BFFE1CFC42B00AC0D" + "69487AABCC648BDD8201362A43AE19A9570DEF75BCFFA6D0009" + "62E931AD32E36A9118D74C777F9A6D853496E9638332C3E6D7B" + "0A5F030B2B4198C9B31A82CE117412C144914E784D9B0DBCB8A" + "3320FF22C4F4F4810D5885C7DF3D0FEF30B4F2272230278C600" + "834133C4E11AE65BCAE2069FDC1C863CDD701DB750DAE4CDF37" + "A2314E39DBA691ED7D4A0087B8057EE27B3F6AF14AC0A742826" + "FEADA8C5B5D52557952DA2FFE45E7C328E04C3CD61A5D8F5E11" + "B3ACB6667A08498AE0582FE0E06105101CCEC61C63FF3CDE8BD" + "1798")); + test_hash_extendable(&nettle_shake256, /* 49 octets */ + SHEX("BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8BEF788CDB5CF4606C9C1C7F61AED59F97D"), + 512, + SHEX("5DB567B895164625131B8049728A0A66BCDD2B27D37828AF413" + "53DF5AFA10DF9FCCCCC110DDA3071A35319EF50821CF1796B5C" + "319D4FAE433E8A2599325C511C3C03E6EBB7C10E3BE35451756" + "75F7AB719E906640DFECCDADF77C345DD798AC7E2B7EE83C98D" + "D194CA19BC1131200494A4B67428C23061CDC4000762C12565F" + "A1C731A574530D282C2502356A75F03685A4FD08D1E938BCC2D" + "6E7EEE748DD1391950A44AFD63B73ED549895F0CB38F7D29269" + "7994520DE110F782B0CF47BFB07CFFBCCA6D476D468B227B340" + "6F44CBF3C6EF6920B293FAC69927DCB2D153350C7C8BA2D84D4" + "11E3CA70EDD9321CC0387A6DFB84221915094EEE0A272F267DC" + "111F18E46C6D82CD6B98933261B5A880FEDFD23AB2F7B6CE349" + "789EDE97CC034D0E0408E3E3B75D951D7DF039700629CE147BF" + "B2E2772EA80C8681D6DB87667A63E3FF358E74AB45712F0BC1C" + "747551DD96F72A6290C5E9679A45F37934E7E22378A2BB4A031" + "52DFD450B98D76C233E107C57142B72389350072027BCDF9BD1" + "82A304E8B255F28459D96687083765E46F9B4BB14DBC374BB40" + "1EA0DA7557ACB2684A96F2791E1B8DB0919365820CD315B730E" + "F8BB83124577E55A139DE4C9236182B885ADFF4CA2298F157FC" + "460972D6BD67D538CBA7E32F9051AFCC00FCDF797FC8231360B" + "A6B7ECD5C4D647338F23E1F578469E1558F49F87FEFE28CD761" + "BDE6")); + test_hash_extendable(&nettle_shake256, /* 50 octets */ + SHEX("7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D3786E779CF053C77785AA9E692F821F14A7F51"), + 512, + SHEX("B3D7178BC88BD577C5D95A67B110545C8ACF8F6FB56B5DA15F5" + "738785E6C950347905B928DCA2E70CD2A5E574811DDBC894EF7" + "FA8EC3446C7897B2BB2D68A61763A892632A3C5C6A3764AA0F5" + "76717ADA5CCDA30BACCDAF71740316910CC08E8272B67521292" + "FE1749026FADDEA743358421EAB011087D10D4208FAE8D5D607" + "EE0D89976BCD79A12F4ED8B1C5D0189B0E2ED5B0B396C85B277" + "63BDBF52D56B92E015CF080DF4F2EC80398DFBD733519F3915D" + "3F102D0066D425EF9FE1AA3AFC8584C8F4D594ABA86AD52E71F" + "A77893266C4C606A63891C41A679964A5E3AEF1C277D6D35D41" + "0ECA6156F8CFED13DADF8022AC9159F913C4838AE1AF73EC268" + "F9D3BF085639D69F2CC51C39EA594948FCD238D093A799F266F" + "BD90B07F4619E342E38AFD178864760AB109CB4949E518305B8" + "2ADCD68FE6E922D1ABAB2D132D10E0AABDAF78F0CFB74DEEF78" + "CBCB422BBDE5083E57F016F4C5679E9D5010D4091B3FE615458" + "86A65AFA49716EF8CB5A6C0EBBA4A2386A6591BCEDB3563BDA7" + "F0E792CF28D257BD066D44E3AEAE8478D093FA9482FC26C77D7" + "3DD3150D53D9F1A030063122916FDA66BAC51C69CEAE533F7A1" + "569A3B9536CD35067EB190D2812EB2CD089D3E1DB98F2DFE5A6" + "839F5B04B6EDCA6732837D23F985E1CC9444AC04DF0B2BBDBB4" + "4E24D39DF2F447D72FFB90B7E9C68A46329ED630CDAE9470770" + "4428")); + test_hash_extendable(&nettle_shake256, /* 51 octets */ + SHEX("9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB443304FBA401EFB2BDBD7ECE939102298651C86"), + 512, + SHEX("341AA5C875EB43F10E8DE28505858865870E62A9A4FF45BF977" + "B947D0BE17B2DCB74D5880FB5316C5C0B5E1C7DA24D8C8C72E5" + "CDA4A9405912D12EC5316611EB40AE84A903703F67D3817BB73" + "AC7C2C449D4D6D737CBE06C144A20F99DFFC12A8F104DF9E448" + "A96DE38DC6D7F83324FB3A2626BC91405EE5917F3765D9F2288" + "7777226BE829584D6E0F6544B5E1C25F939FC9136BA2E0C0D6F" + "6EE5F4EA97DE937352D9428222667D974F4840FEE0770657DAE" + "58BBADB5F47EB9C88232FB7BCC6F1FEDA76600FA2659F7E8311" + "29B3E3856ACA6D78E0D7C582852503A67876877DC6599C10D42" + "DBB81E6AFD2919A18E4EC01EC7A032ACF2A8320C5AE348D28CA" + "B36C85CD256DB5C30BA1F8891005E68F91D7B0CB0AC4476937D" + "1748F2ACE0A1C512AD07514E31CB0CFD743E5C29633C2646AD1" + "882176BA15E7CC8427FA20B2295100621A6E01F7FF4F27A6AC0" + "766F9C25934E64546F16F61B5CEC865028BD0D7DCAFDB3D6912" + "C5786372E1E4ADC6CC8DD3E0A0F299B65BEAC5FAE69E8219787" + "A8EFFEFCB50E40C8BC1C3D033742D98FF30D64D72D089AEEE28" + "489791F6099CE354385DB83256150A1F9B6CC7444665BB95614" + "AE6E6F511CEE0C49288B3EB31F9C7D04B3D126A1535531505F0" + "C2710CF6CE7A6DB31F043C7C535F89467CE1F6E85A10AAF5486" + "A3A6953CD351D865F818FE959E6E74F2DE42C1FD6E219DEB606" + "6C86")); + test_hash_extendable(&nettle_shake256, /* 52 octets */ + SHEX("C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E787D68D28CC3897452F6A22AA8573CCEBF245972A"), + 512, + SHEX("BA270D4DAD10865DF673F0DBB9D72EF788689673116CDC469A8" + "CB9C89E6D8D511DBFFF6FA38E29257C9A5820781094300C088C" + "DDA2A17AFBF164D13E360EC04FA44AE98CBFB972A68D35E6FEE" + "E3AE61CC217487D7461F7315449E201D707F8CD0E9FBC64D920" + "12B22175E677A304D903E556A5D1FEFAF8177A8EC3E50635449" + "6CD693531ADB22BE09BA71B4710549BCDD6D5EE1ED3975258C7" + "7760725D1C4416EF3F3B45DD8210433BB44882667A2154D4179" + "2A37F2B7C5C85DFF707BC2A89AFD652D83904EC084D1E03496A" + "7F402FEBA9F77254772904580CFFB1E7A0A8D489B6CAD6D97C9" + "A5824545FDA36FCFA2E0A6F7E11710A8BEC33767303FE884319" + "5E9F17B1B75A4625C67E39FDADECADA6A7E7755DA7742548B79" + "7662B6A24194E07CE2E0302FEFF4671E6CD972324173F14F5A6" + "0D443F6162CF2D6A3E2E0A7F2A6BBADACEC5F4B43D4AAD80900" + "3722982FC7AF821AE4143D123AEA6B7D8550541DA9D704D81D9" + "E12820EC03E8443866EAA80A534A5983581F1DAFC7F124915D4" + "2F9A24887207C2232B5EF9D8DED3A3ADCB4D493FA2FDD6061F3" + "9F28CA3B489676CCE7E0600DFAE247A62E96BE8A63ABB977A4F" + "35F8361B71C8578BDD63F35D17CEA1463AE0709353F4667367F" + "0FA0B6B6B6EEBFA049BE6133350F71E9CC1B157ED18C9D90A1A" + "4D134E553165549C18004279ABA0C4EAD5F342CC05039DAE1C9" + "CFAF")); + test_hash_extendable(&nettle_shake256, /* 53 octets */ + SHEX("EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52"), + 512, + SHEX("C2911768C4579E3876B6ABF0A4A30646D8271FCBF3DC682C48C" + "10E41A878609301F10073F3EA87BFD934854147D129DEBA9124" + "FC69B6E29C271062CC8B3A5785367FDEC382D365D4D60E7E63E" + "946154F948B55E7E31A0CAB5D25BEA7CDCC82D8B6E200C28C7B" + "4946B4CA30B46970EBB415FC18D9BB60C4F81A308BECFB2E40F" + "796B8D6F914FA7F134664B8EEF9FFCA684B296D26BBA051BF45" + "F3EDB68ACC5D0C79C08724BC7EACF702633C99C47DBF4E08AF4" + "3A48A51A25620C1F16BBFE4CE1A52A60B4DD603524DE38ACC2B" + "E65240F51E36C6533D85A7B0FB06FDAE420A7E84C4644B943E5" + "CC4AC48505CF042ECE8FBB4AB90B16B7AF3ADE3E24F871DA2D8" + "6813A100C82E62F949C3570FB117407AB71A660BB4284A114B1" + "F6817621EEFE246CC0169CA7C09FE6684A9709BB5E7C5C09A35" + "B4D5E109E133D23CEFFF9E438BE621577A98D9B49B0F30740E7" + "E3038C8BCF07E88ACB767F9A43B60DA387B617D6FFF8A8D8784" + "513D649EF3A142ABAC0BCD8159F4FB65DB24616225FB4FC636D" + "6C1D94DB757E647934BA77C946BB7D010AE5C78E05157466590" + "CBDA903630809649BEF7F0D27000A9156B2D05DB89AC90A91F4" + "D1F295D296D7783E6872FACCB70CBCCD244BF620D5499382421" + "C8CB3829E756E6B415AF3C26F952539D14BBBE56C034B58124A" + "D973A726676B7F278E7D4111701D69681412BDF08731C4CB14E" + "ABFB")); + test_hash_extendable(&nettle_shake256, /* 54 octets */ + SHEX("0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7FFD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33"), + 512, + SHEX("C2AFC53CC5DBE46697F64D5B6B37BF1DB7DDD06D54EE9DA7873" + "C77D91DE47377DBC5D525BA8C14D5F24A2BDD473DE53FB1BCBA" + "E0ADF93B4525C0A77D1952A21BA5E575AB9AA889A19D85A02A1" + "AE4D420613BBEB7BD2A7032137F196E0566C284CD11822EF938" + "C191763BEB392EAE3FD6FAD77EA7252EE72798E5B4318961EF6" + "7E595BFE0BE036C478C88B80C50C3F7BD047066F4CBE031A867" + "644529AFBBE607C6FA77602ACEF9A635DE3B1FBD6C967B61330" + "40D1A6649F1FF5598CE0E76AF8ACE89406FC02F2818EF8C29FA" + "FF1F46A551B534BCE2C30E6FCA6F62DF3BDDDE56FFD8550466F" + "48C0D14BEBB386F5BADCA240D848EFB66AC2D339A54AA1ACCB5" + "C753B081F0B6F782388E7B82C77304F30E03B5D3BFCE0F1B515" + "8AEDECAB4749C17305DCF231A04EA2436F423F5A818C461E90D" + "65EDA69DDC5D977B19F26E4C9DB874F2602A3F5BE5AB8C5C70C" + "DBC57E5BF757037768E1962D0AC697645B598C46D639C7A0DD3" + "1B7CCFB88E4745BF2776505308C28FDDB084F67618B84D0451A" + "B2AA45437202474ABAA0780935EE78D47EBB4E07C6466D3F8E8" + "3C1B27EFFC1064FE01880D2A7D571A955DCD4F55D631DFBB3CB" + "550E3541254C0D4041479FBB331EC591F8AFE5B644F6DF9F430" + "0375805BED126EB96893BCAB7FC5AC5CCAD3596D8C011258F3E" + "D269A6B0A6C4736D467BEE9D495D414B475D9354174B36E9756" + "55C8")); + test_hash_extendable(&nettle_shake256, /* 55 octets */ + SHEX("DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C9E880B96C574825582E8812A26E5A857FFC6579F63742F"), + 512, + SHEX("B9E75F5D4B74FFBD244CD9566DF861526B5DE9584D3280BA5A6" + "84EAC9D44C91C0DCEC5827DA4EC0FA7F60D29286D348F576F4E" + "2FA03AC5BE8F27E9F9912BF500D0CD549F5E5799697C61F0403" + "C264C4B2D986DDBFFE72FD8CA6439FC01D1F7138A92947364D5" + "86D67C300F27EC2E3E75F9088A5B787490494EBE0C42D00401A" + "2ABA6374CB3E33BBD737ECFBF80EE24D4985F6D11FE24FEDBEF" + "B387D4EDBF4AE1F409E67F10719F47397968E406A51B0DABB4E" + "9391FEF03F9F7BC47193215205386914FADE37017EDFB0DFE8C" + "51B4C35C0AEB6F8A8E6D4D69FB538ECDBF65CF92325A7F280E8" + "069CF9FCFCDE610BD024CBA87827E92CAF22482413C694F9F1A" + "DE65B67F8E1D32E4B5D51F038C2FA9D89FDB2BC1848E3E7B54C" + "4CD4D021F4C8BAFF61875899B79EF4A1468B0443691981FABC9" + "5D076070BBD5890EFAEE194A6484E584364BAC001FCB37C2285" + "8F74E1A01EA8EEBD49D9A55A19F5967B898C5B71D5F2CE93F4E" + "52CE4B4D00D7C42E58D71C174E9326C5AE1E40BFBD8BD37DBCE" + "9369062124CB47D683DB245A4F289F052F89812440BE2ED28B4" + "0049A9DBC75B3FB1003BE8A1B996BE44270A83DC20A38D62C59" + "71D09D06FFDC3F89379A99923F2BE2FB6651407EE37F4BC8073" + "E396887166AD4F0A4E156C72463A524EDBF462F62AAB251E321" + "59CB3D79A2CB3A8FCBC196721642682646A83EE60425DD7207F" + "7360")); + test_hash_extendable(&nettle_shake256, /* 56 octets */ + SHEX("EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF"), + 512, + SHEX("EB24ECB6C9CCCDA1E8AB1CA26683B63A43CA864E23AA7681A49" + "27AFFBD8ADEE82704B24B321D6C909A1CBFCB453AC084557FE8" + "4AB25E044885ED8051A0EBBB457D9821E9C132230FF27C4F279" + "51432DA415D90D59CF7148569CBA02AF32A8F4B774D5E4667AE" + "594C2CC4776AEBA2CA7D5F678C522A03B426AB2325127E56A40" + "57837CFEE2607207DEA5F913CD64BED09E7FA723148ACA13F52" + "2B584AF9A36E74E86415F7C064C7575176488895F0EE6A6795B" + "51729AC947BF09668A9ADEEC199592B77227D62205857B75E01" + "E62E3D2757F02C4892A9E9C2A9187F7F3DDB16B7ADC28C33F58" + "89F87F949EB0A61E5FE431A3C11191DA6D127BFC899CDA0787E" + "B269D0296F31F3580D9F630E0693F292D2B9954444E56A82D6C" + "81319CD99D5DDB2F042E9242244455D5D9F59CE9DADF0BE7804" + "94FDCABC72AEE397F13CBD656D246B6240A1C21BAD6E0126CAE" + "A1C93096A41CF648BC0ED7A051E03DCB51E2C48AE32C8818863" + "4021A4B64ADC4B2CA9A5118D4B6698E87C1E3D4C2666996F875" + "4242214F3B07806C8EAC8CB63AFCE0A03B64D63D46AD53F0345" + "DC3A9FE550D43E9E569F8C2BABB2C025D843F7D568DEE6BC762" + "D3B4DB80B8A3119DCB19A17CF5FE1639CA313FC74EACEAB5F9B" + "AC2E546C36DD7C292B959A2C9CA98CD143C5822BC94179DEF33" + "D146A16091688CE192BF03A7E334BD033DB66A3D544A8FE17D2" + "F5CB")); + test_hash_extendable(&nettle_shake256, /* 57 octets */ + SHEX("416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC25497D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E"), + 512, + SHEX("75102A95654D885655B910E6778F8A72B263B0854442230F8D8" + "923AFCC92C5BC98EE5F2E8D53EE1EB7F7A85A7562FB96535AF6" + "C78F0491EB11B4BE2CC71CCAD0442DBA422B84FB16ED529278C" + "57A543A3B8910D17232B2B7FC4B81BEA56A6E99F64A50DD73AC" + "D26E506EDD60A788548DBA27AA66BF6D41C8CA0CC603D8CA515" + "F3BC948AFEE2E7EC3F8CEBC56A01682E66A082846E8EDD0CED8" + "5A6D5ADA77A9567424C73F049DBB2CDC180E6DD85AD73D624BF" + "E10BA0CE3609771E50B51004BD62029259300E333D18697A3DD" + "0408D37C5E275CC8A4C6C5AD85040365B3A427F21BFF9F1660D" + "AD79D439C5DAD6855E75840577B6AA822F614B42CF57561A70E" + "E8216F9CCDD8B10F36455A2677CF93756A3E30E2E177029C4E0" + "A3860CC01619549AAB73B52E7E5340B42EBAE37478CD899B71F" + "9FBAF7DDE36C57450CB5793E371C903EDE8143F9CA3C8EA2231" + "BF5F3191A49681EE8F45374D81A774E9F8C6EE5465B567BCCE1" + "C77E8289C72411A1C8F5402906046F42CAFE88B54A5E8C7FBC5" + "311B1A7C43A1094047935A27B2D89E9470EA28569211F1E6D99" + "E9FCD1AEA301A6271F90F51DDAB660E90A50D10003BF425858C" + "FB0D67ED630F74D6FF46E57FFB7236D55703A55531F89D92EEA" + "C17C6A050F56B46BD0466A0A918EC972E0947A991B024AF21D9" + "F92B6147155A1EF08EBF620FBB65C309863A25F3BD1D9ECD818" + "E354")); + test_hash_extendable(&nettle_shake256, /* 58 octets */ + SHEX("5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66CA376460E100415401FC2B8518C64502F187EA14BFC9503759705"), + 512, + SHEX("603CFB5E53D83CCDECB22C5C75E67F5DFA0DB7D874E6D280DE0" + "14555B1300192D9B769482878950ACDB484E87C26F366D2DB04" + "9FFE8C92799954FE31DDE56A061E2F80A5DA15B65A0C9382C77" + "90EBEE8E676373405BC1BCFBE974797CBAA998A0315CD9051BF" + "669E00611880AEDD88DC690192D8D485726B47879861A85349C" + "2017D9892692DE8DF315EC3EB4E6C508B85002FC7E6D7812FC7" + "E025FCA92F14EE57EC9F507EC05FB8D143DB2EF6B83B8785289" + "C2FABA51E962B77754C0081CC1253DE4CF8C36D2150B263FA01" + "E19E5157EAC5521E29414407FBCB604A442FDCE7DE9C99D46D7" + "1F78D1B9931033AF38940D70651884B766762605EAE11457A60" + "F44BF5CEED9C0E9A9C600DA70B87B57E4B5C280E3AA568BC6E3" + "988B5481006298BCF9239583F39C5EF439E551B6166DAF31970" + "DDF7BB6B7E068DAE50C15D7A1B3D4F3587A91BDEAA59DC66622" + "0C2DFD238BEF11F99DD47B87DBA8C60598B531013468EA5F15E" + "DB0E2F43D4F4EFA673E88AADF4572A50C25B3B7953C4FF0CA8F" + "32D374FDC3C130CCF67E95ABDD315FE7390D5160F6B307F3A20" + "497C76F69CCF18151E5995452F01ADF1D55BF3A678D0ACFF44C" + "50852F940DA91AA3FA8A5BC8CC72DF7AF11AF0E19C167F6031D" + "C780DF8583F290059F5ABEC6917F7EF54339538424234454004" + "BE4398CD0CA6CD1E71D0372F2229591F7647142C13C5B089780" + "6F30")); + test_hash_extendable(&nettle_shake256, /* 59 octets */ + SHEX("7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA83161066DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A"), + 512, + SHEX("724E26AD36068E3825E1F997CFED8AD10194B96E76EF425BD34" + "7254BF19BB862DD449E0182E9B8E20C8CB5440E34CB7391935B" + "6F5D49F3319A984E313A9F4ED7107C43D737F016BD20D7F454A" + "670199566CAB98C4D05F0D31B2811A48EBA4DF019936B0C6E98" + "3C3557DCFFD42238885A7CBA1376CDAD15BC2FEF1E75013CD3A" + "CA86FDE4B616F2BFE310131AA5EE826F5B0451D4DFC0F0EBDEA" + "CB36A8B6AB96D7D81B2A21F7E09C5E908FCACFA763DED4361E2" + "D9EC86559DF71A827662EF692D503C72987CC9F5A9FD69F9AAC" + "4231BF27E8C64ADE3F9B51FF7DF4775B966A6C2FA6F913FD191" + "F9B79DDDFC077363E1E62810F9D82C82A0CA9FD45B9267B1799" + "8C2FB7E812195CAFB0A08831CA47857E00E329072037B3A96DC" + "9780FDB52379E7180ED0E84866D42779D89F56F94A8D86C0600" + "302A09255F838EFABBD08FA7B342EBCE887CBDE92743A36C14F" + "61386BC9FA5662F7A2E39E0CD165E0E0F635478EB28217C1E97" + "EE7DF96D6E6143918C7CFE29236E9911D10C756871E749E2CA7" + "21DC4F1D0DAFB1715591F3708971409A54712588AF7CEA3FD2D" + "0D06C036CAE4F76B885F50B3FE11A39F304C9702BF5F24DD5A2" + "006E9FE6AD23AEC9598E34B4B043B092CAED032C3FA42306064" + "805E73FE03560ACE3BD87D974C8FB95DA0C68E0EC4B245C849B" + "BD06B94A319209514707BF5447113EE3B14AFCA06A6BF308DBE" + "03A8")); + test_hash_extendable(&nettle_shake256, /* 60 octets */ + SHEX("2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D14C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D"), + 512, + SHEX("D0F92C3953C2696FC132FA48BA36EB7576D34C5BACFA4E9D9F6" + "DEA8F7B0B6B746F6F7914EE8B9C25EBCA91D601E781B29C99D0" + "DA92A1C8670918927A45B2AF16E9BF00CE9A877E361E797F951" + "1B9A116AB72209D7E8DBF0E299991B173E4C654021517A94F9F" + "4CBFE6FC4BB3C3EB5171435219EC0D80BE57E3900BCE9327D10" + "DFDCE70BCD32C129FD5D5BCC54C4BC972F67562796466F9BCC7" + "399DB8444C2EE896ECDA88E0F9ED729985992F0BD707ED3ECE9" + "7064480AA1D10D4BB176F65DB3327A0F34D3CC32140A95594DA" + "7707F565849D1258435285C1B9828723EF42C475D30040AAFB3" + "237A759141EDE73070E8995D2FF72C727B1F8A215AF3E511385" + "2FEBC029413C2D2F21849CCFF5269B8D188C147D4FE3843D195" + "0FC09409BA0E5FD2C5567F11F0DD098810924E56463CE5B6C74" + "37163C6201A9252DC484800303FACF0D6B004CC856BC68AEDEC" + "5496021B37A667B02F5F7E7234484B531F07ED78B6EB747CF59" + "5367EC3EF33DF41D25424A858F50A63D5D503EFEB895334466F" + "C3B01DA6246A5801B9D06071D765A65E64F2214F93B6F072115" + "343D711697EF2E1463E021CF3ED9CFCBE5A81E54DAB729D52F2" + "F309BECF754E3D420CF0CA060C7BE4589D748B84028517AF792" + "3767833858A35B26B0AB5C5E3B14E68BBF50AC28A3129F6AE08" + "6BF783612749DAF4CFE87E75A4C89DEF988064E32D616F1CCC1" + "7D46")); + test_hash_extendable(&nettle_shake256, /* 61 octets */ + SHEX("95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFED51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D"), + 512, + SHEX("F31DE8CAD77A334C3480D93E3B30844DF1EC344A8D44CDD277B" + "0099F28001239EB0DA5B566FDC383F0E1577F67EDD2BC0F11DE" + "67F3E7A4D97C56C9F3BB0FCB4D3E4D08F7F3D5C30FBD2D964CD" + "45F36826F614668193554A33BF0170AC3E64C10E4E3570EEF84" + "DF387944A6436A814DCC53645D01968C4EBD1BD0BDD76354580" + "805BFADAC96470FD354BA2630F7FF8F7AB29282ABA946B1A9E0" + "63C316A6D337A7CEC2FB4B562B899F626418BB61EB4F9E9BD7B" + "294C7ECA75AB522D642CE495640E4BB1E2B14A10775704DCE5A" + "DC7D7E3C091520B48DD18A291841CECE5EF56E1969915FB4979" + "60D011A8F46A5B08EB39232283EF332F7AB0D8FDBD900BC2001" + "83186BE31A6EFF7F5F4CD27C12BBEEDB0715A0E6E1F6E35753F" + "E7F3996C75AE34D2E8E76E43F49EBDD505DEE66536E5F2332DA" + "F4EE462B7B524F3BED1293BC45DF9511FC03D2734DA036EB3F8" + "C62BB0E623031939E83745744F7DBE93E57ED65EAC1016E4147" + "15B54AE83A15FAC6E76057D77C3811491F390C0B4EA0BCE2923" + "72A8633E26C10C11E301E57983109903DBBF4D08434A6287B8D" + "F665BDBFB03957CEA7AE4EEF506AB1F7AF1358EB48E7FFFC960" + "6C266E6CD903C75772E2E88E954585DE90111A250EE62FC12D7" + "5C5C58CB7C03C9C06C2AAC9EDBFEB02A1207AE5F9A92D32DCE6" + "528A13725EDBE757F309449A40E93286388D8C09F9BFBF49E5F" + "B826")); + test_hash_extendable(&nettle_shake256, /* 62 octets */ + SHEX("C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB32530C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D"), + 512, + SHEX("A3D9ECECA03A1016A8546AD75C7B35102D5ABB0021FB5F2B1F5" + "3B591624EF0F6C199F64DBCF325E37F4A361368CF60F3BDA9F1" + "1BCF5FF2EB1A4C0B0546B5E898204EA5E4117F519F72F2F5DE1" + "017B2BAE0723D91A430B2B3C1987FDD24FF0D0F1CDE2483A22F" + "C37F296CE16998C12994603CFAB4B496D3333B25ED48ADB1EC9" + "26A44CD5DB14C2072588F15EA752A31A8A3AA559A35EBC900FC" + "E948111AF7522AFBDF7C56065B196CDD00FDBAADE3A80D2DB10" + "271BDF6418F0F817FE991EC055CCA474B61E1AF6BE6FF6396AB" + "04716809433BC8AF75369049E605C1C0028A0D370E7CD0C1EB5" + "71FB379B757E8BD21AA61C2E2F2B0D0DBD2D73ACB2DD0887923" + "B840079BC74F6C69682118B2B3DFD3FE94D3A76EB8BD68CFA94" + "034DF0B5419104675B9F5E56F8C6E0EFF12D9B20E27535A09E9" + "FA103803B62C66D7AE09F8E39A5F505F3BF93D27EEE1B16546F" + "97AF0616BD4923425A1F0FEA1655334A528C5DA469850A02574" + "96C820A351D826EEDAB469A3871182B8435615E8CB1C8C81D34" + "F8904DF7F81D48FFDE990B69F0608E6B05AC130709D3DFA9E8D" + "9F343622991BC686E80B4F0877C03D9B1E0A190D4C33C11246A" + "20CFB297E127FC359AFD037B1A90C040D9E10F77A3F6D9FC45A" + "2877711559C8B09348B203FC49A1770730D1206DD03B9E64C39" + "0A308BC27896309BE2EBCED1A7ADE8D7187E8F6F9A76523FC82" + "0E30")); + test_hash_extendable(&nettle_shake256, /* 63 octets */ + SHEX("F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA"), + 512, + SHEX("46F35DCE4FF3A34E944AC51B64AB60D314E30C2CA9C5B4675D7" + "59E1E852835977B6E247C025A8FF0248C622C492A04B87C5A2C" + "906B2C1CC8F9CF2E03DBBE046644ED26F37B2C4EB2D16B558D8" + "2E2A3400EA2BEE9B4D0A3641B7065FCBC34ABD67EABDF5AB7B3" + "F278C47D24EE127515A2C94BA955A01A098BEFB59261082F233" + "83210FE82208574B95763FCA6132AFB3E644461B1D78F3C8E04" + "D860FB0952F9A33A7E56C1AEC1CD3CA913CA62FD35FBCFF62B0" + "032484ED07AB9C510C589F62965D676382EC7E55E359F5BFA71" + "24A54B83C245725AD796987EF4E9186C74E8B1B53CF02753334" + "1278B0A6B621D7FC68B556F0B3E1A95312F4FD3471EF1BF3C3C" + "5ECE8269B29A51470ADE59A3F15F2600B858EAF8B6B109339CF" + "1B15B0EDF36E0004992BED6E1B187BA60ED3E92A542A83753E1" + "4E0CA85A0DF441E5B03A9709EB1AE714615C7C5F2F54C373BC5" + "ABE342124BCA909BD4F6696950E0483BC798059A94CD8D852D6" + "C5E596A6CE12FF053874F459E68062C5650ECC934EEDE1E7206" + "BDE104CF33C95FE103D279108B60B4078DB9522F2CEB28B77DE" + "F8E4E59C93552B8C09C0D74E8AECB3B6C50BE0C123E2EB39470" + "908BB7288E451C51F6F7154143DC78D5F5C4ED402217A3B6146" + "6CE80CCA2257D77DBB99B6069FDC6CDCA949BCF279B3E4DE579" + "68DD0EF83C19C5E1A07B19B85FC60E593600470C3F4603178BA" + "08CA")); + test_hash_extendable(&nettle_shake256, /* 64 octets */ + SHEX("E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7"), + 512, + SHEX("77B7496ED08C3933BD75983C0C0494BDD8262493A4B55DDCCC6" + "4167E67EAC0F6E6307ACC15C33F3963744E26CA6C504D393B3E" + "E8165E4D49EB3B6E649207653048F8B822FF884DC74937443B1" + "C4A888C7A768C63D5B5D29E7446873923B9D7A56FA5D9E90760" + "AB86D5718E3464821B79EB46D169141FF16120BFB650C76D4B3" + "E5B3F6CE61FEBDBE09AED7F4C91066D903AF6E56531E8FF7154" + "9508B6E420CAC6BEDFE0CBEAE6BC228476BC8C00EAE43D40C82" + "CBDF6B460C376D7C11648EB2815B6506ABD4339B25D58D45CDD" + "0A0B9E35A88E251FDC34D4810D659D179F59EBD03717FD31A63" + "94CE12CD5569066E138885CB2BDEBBA06367557CE849EB869F3" + "CAC38800D51C22B666AE2701E580796394DFA02F4910BF5F86A" + "AB53951233364EA20CDA35AFBAB445BE7F686643856F825394B" + "E7B4B6D2C918D0151F46FB9AEE8A7BA2D706E48CB0BC429B064" + "262C1A0EB3524FF14632F5184575C15F6F4A3446E93CB4E86B6" + "A931BA268409CE30B4595FD2059A27183B3BA8D0ACE8E482866" + "D5C7D5B03DB8DBD24B99D59EB6EEFFD209E124535D154B98F99" + "91D84FE1AA763C5133D41ECC233930957DCEB7896AF70F735A2" + "F5C1E79480AFD50943BC5014BCF0A7354AA7F713163B55A1E41" + "BDD05FBBA9C1DB2C69043ED9EEA4FA45C990CCB4A8DC41AFAB1" + "8164018E54C47AC5BD6980FD796ACF0DDB42C7042A4877E8BE3" + "DE29")); + test_hash_extendable(&nettle_shake256, /* 65 octets */ + SHEX("16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652BDF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC00"), + 512, + SHEX("8229BFC635A769D86656396B7723FB46BBA9868712F27C37792" + "5CA6B358B8391E0AD8C30DA71FC8F0716BB95ACB0DA00C61F3A" + "7BC8DF1315715E925F1EBFBFB5D72CB3E098F0C014A80E88A44" + "231DDA194DFA8E35E359F60EA5D7A5E0D1E64A8FDE294F4ED2E" + "3E98294DAB838B2C6B3FAFCB2995AC17AF67669A24FB7131823" + "3A82DC8B934C8693B3DF784A5BB34CE9CB3FDE79AFCBFA66C07" + "D1202C954E849DADC0C1D5BA79BFA74919C1C6FFFDBB834287C" + "852522A65AE3D32E337C2BF16C3B5E22D4577F5B05F1B872185" + "32041B9692B0EC561881479C924BA92E154B57A1AFBA6214F68" + "FD067D109A92A9B0E127A0A6B78E85808268567CBD1A2653201" + "233B4E80BE103EB951748A1D1F8A205856A650C58DF15E8E1C7" + "6644E52614AB4DABF51A2320A98D259F8295412291464E1D918" + "C9BB8F5282301BE5F91DCC507F140D8642B7A6FD37327CF38F5" + "10679845853CFA039FF4CBF749D48032D6650BC7AC2BECAEFC5" + "672CA7C61A8F6A1BD69D321D2AC1E6095B3AF7111F509BE0062" + "707617C62DA3336C3086C39B2DCB9DA7F23BE732EF32F906243" + "250CE4D38668ACC8CEEBEE87C43F077DF2DF1EA4F6345477490" + "FE37725ECCB8D4F47B14A85B0D36FEEADD4A020DA3DDA4A4889" + "5DDAA45B5EF8499E937D06BFE6DF88897A828DC19D9AD93C622" + "E0263E74F818F921C4200856C9EC9D36CC99A6B0BD59FCCCE72" + "CE3D")); + test_hash_extendable(&nettle_shake256, /* 66 octets */ + SHEX("FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE37FC"), + 512, + SHEX("66126E27DA8C1600B68D0ED65E9F47C4165FAA43DC4EB1B99FF" + "EDDC33E61E20B01B160C84740B0F9FE29FDA1FB5EFF2819D98C" + "047CDD0CF8A0D396864E54A34657BD0C0355C75C77E5C3D9AD2" + "03E71FC2785A83D254B953277B262EE0A5BB7D0C24ED57FAED4" + "FDB96D5FD7820E6EFEEB5A9E9DF48C619C4872CF3B2516DBB28" + "073273E2693544E271D6F0F64BE8DC236ECD021C00039FD362A" + "843DC3681B166CBC2407495E18903E469403807FE623F3648F7" + "99F18FBD60FFF7705D07464E801E0AED4F2F0642B9A2C5CDD0C" + "902B59B1DA19A09375C1C13175B618091B8882A0E7205EE63A9" + "219ECBCFA943A10D2D9A50C8C0B5D43B003F67EF0D52ADBF9F6" + "59BB62FA6E00678BB8D4449648872A99EECDBB3DC381B5199FD" + "500912AFA93C63A6B23D00D0A416468FDAB93AEDD9115265BE3" + "A4440DD4029FF7F88D9755623E77F9430B934DAE529BE9A6B30" + "7B1B292AB5918EB24B14598554B4CC6269419C701494B7CBA5B" + "3D69F6CDCD5181FD03E0748D08E1E0AA5C4EC62C47877C10858" + "73C016EF24E7E45DA71D3DB9DB23B153CCEDA9A9AB5CCD8C546" + "6CEF29810098E976E4867075601F83A2D2CDA1A476A1E990CE0" + "4C4567FFB99AAC428922D9D8B25AF68C36463D3AA4F689CD778" + "F79E743E0BB5F935E6D45F978DCB2AED12DFCDCA469556556E1" + "9F25D4C959C98785FB471D4BD1675D3B84742766D5BA4BFF2A3" + "F912")); + test_hash_extendable(&nettle_shake256, /* 67 octets */ + SHEX("ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E3322FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888599BA5"), + 512, + SHEX("EFAEE039C0412FCE8F55F6E7772889EC18D0604FB18040DC1E5" + "783596CD820B421A0DCAA528C8A62B17A22164430672DA6D818" + "E2E555AA8E79665A6F8F5721A4E17FE8FEDA551ACC9116F1F50" + "E95839FFF2427DC1D988B0269838102547D4D46C11D2548BE3F" + "885111D53F3061A74972C56579C681C20BD5D47A4C2A9523BCE" + "154068FDF3813F5D45A8D446758C212614E3A6E80EBCFEF81E4" + "4034E0F2D02FCD0AE5E6B10DC24EA09B94DBC47873768C0DC6C" + "F2991B9477448540924CB57D3582D7B8E453E946C57129285B5" + "48FCC831B3E311CFFFA3161941689E3CD649C3F47D96037804D" + "0C6A4FA8C09B11A7D5A35F6C4AB89B64C735153422A3E529E19" + "B9AD7F7CC346F904912E1A6C098CCED3BE9755137A26907CFD7" + "F7AEB1A573A971C4A5760CA5399CBE642F0106497AA1D364DDC" + "DABF375C547BDDB6011F26B564D0CCF4E055DC0869BC280391E" + "5C0203005D92246E377DC560D16F3A9588068473B14FE7E39F9" + "C25108EA279D98DF21902E60DD4EB03266E873D3B0C24DD3306" + "6991386C4311E58197F24AF80FA150068407821C2327E900340" + "550E7826B2F510AC65D4B21E9336610945A0E5A0EC8D132D694" + "316F2B8A21CC24520C6204EF036116B2FE66A79CBB202F65E1D" + "1782AE10CC71BE51DD44718E2FE9D229C705B94B9BA6B27A392" + "5E55DA290875588C8EDB8A1866FAC9EFB7FB292F69A89ED772C" + "C68D")); + test_hash_extendable(&nettle_shake256, /* 68 octets */ + SHEX("36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D440706B05"), + 512, + SHEX("F64CB396701785B64767D4F17A768EE198297A74E5D1617FF74" + "A3323C096579C0279E351C2407BB889CD4AE718B09ABA711FE3" + "AC14AE7D7DE0072E8BB0B6A1F92A1C93DDB46DE891CFB1F3681" + "4E585F672BA871601E817BCD6327F3A7FA7DE35AF6A0948DCF3" + "DEDBC8A7154CE8529033F67FC656F95FD47B60E49681895EBE0" + "824DF50F8EA0480B50EB3264243A88BEF29F5F4FBA012B86A5D" + "FC98054AF4D15248CDADCB160193DE7068CE71EB76E32ACDD0D" + "D94F6B27B5158D9E63EB25831219768454C8A951E9678F41EF6" + "F654CAACB0F2AB5DD614BF0BBD932DE06FC31D7259309B23DF8" + "B5864322EB2D8F39A07E5A3F324B64876612BE4A1C47B06F7C5" + "BB814169D94B78CE22AEB7249C96A29C52BDB5550C7B292C96E" + "A9ED6700F5D3032D2A81CD68ED3A6DE8FCAF9379ED0D95C94BC" + "B0082915FF7DB5EA1BC25645EF3B546A728AFF4CA20C6F8288F" + "F0FF4B7DBF838E1A3EC5463AB88CC827D03A748FBB924797A98" + "D309BAC09E73215BF8BE798C151D322D6110C280D85B45785D8" + "54DA39A80F64897918C169BD7E1FC52D003999C084BF69B696E" + "6D747E859DD2D6EC6FA1339A395858477BC49241B302FC74E01" + "88A2A8138507331923C357AB4EED3F64FFA908CDAD9116039A4" + "69229F9A62070799026097EC7F5A71A7FB01B5473E8035D383B" + "9F236F2FAA0E06DBB135A939EF9CB31AF1E312F47C6C9BE1F50" + "DA36")); + test_hash_extendable(&nettle_shake256, /* 69 octets */ + SHEX("ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E329C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB31D06C77A4"), + 512, + SHEX("CD85DEB9DA581AF66C0B3125B697371F16EE34606A577AD6D8A" + "C7E4E4A948B36C844EC9EA85EB168D7A5A1EB4B72A685AEB80A" + "75075B420C9B53B963D960F7BC88DCED631C734114C28B2E20F" + "0657D9256AB01B1AFEDDA9B9F85FD30D0DE3B98DB38AB90DE60" + "045836CFB12C41E5BDAE57B937B637C11ED47F7DE242EB9F72D" + "3253C5D883B22333F181FFAD60A541DA08601791FC0F8D9F44A" + "94B551B1A879B76FC2B7931A2F4301D121A4E6861F5C84FFCB0" + "139FC37268B5F8A4C3FD490809CF44F68BC1E665B369D4D74DD" + "0BDEA71ED0514C37A47124CE146927274D95067C80036ED9F1A" + "5B0A10AE71E837A09DBE4DC358DF4687392D99B2ACE8BEADA96" + "56677518B1607C8E13B7F45100BFCEFA1D4E38B9BB29EB23D17" + "B9CC66F70635A6C531BE9CB890AE833CD7CE35498CC9F81C576" + "493913BAD87532B711F3F88873E9ED48A83B6B2C503E096A33F" + "824FEB4CCC702E82CEF00FBD938FF9BEF6E3F80E149EB343381" + "6A1D3FE7F005734192CCB5A8B0D7D43327B535547A9CC7F5FA2" + "86F9EAC26E9E6A1CFB86DB35831F75A9902A3E78F6BF9B47288" + "36C81B3C614923C3EA88D6C5F55449A83EBA0F5FF7B4F070842" + "06D4590BF817C1FEB43595462037AFB6969A91EEB963BD244AD" + "B1B654FC98A0B0BE99029B3D5BDD69D2158939D677B054CE55D" + "ECF0F332851E0A74EAF2BF3EB672D4CB1F467D0E5391F98501F" + "EC2E")); + test_hash_extendable(&nettle_shake256, /* 70 octets */ + SHEX("94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760A259FC4FBD72"), + 512, + SHEX("A90053A8F738A68C18CB87FBAA8370BD14270412D0014C5DE80" + "08FBB74E619182A0442C121F7E2449A5B019DC0CE597BF1D7D3" + "E64D1184946D45208A864723A73CC1E242F7187811C522F880A" + "CF53056D835BD150FCB7DB61363D22074349FF54A3E5FF25712" + "72910A7333959D8CC29F69B540E5ECCA50DF7799236338E2925" + "5656930E22679A3A585E32B88C27452BE75BDE73789B45623E6" + "95FB7408DC51891D50A3BF84C5088C5F6FBB1B740DEB7FE38BC" + "A05F1A3BBB516E9AFED0A41F8FCE94411CB84D8BFD51EF91718" + "4A66C56B31A190AE02B86F62CDA2FD7471EC030E94EDB56C144" + "025A1BA9B792A515DBBF402D33BB6451825E52A87B7B82C44CE" + "E32669F96F3D8DAAC5923127B51AB5C5ED43E5A9344B32C5A37" + "05345EE98CCC5259C9D3342CC10D660274DD628F1C2C031FE9E" + "D282500D5C3982C7976620FB46190C57856E519C6FC1760A306" + "C3497F2E001C7113248F53EA1A4BF9DB370285EE441E4B43459" + "B6F8690CF10BC1785138F8855DF859BCF1AA581DB4A6EFB576D" + "938FC273E7D126CAAB7FBCBAD62DBED1FE2C33F24640AFA899D" + "EF2825AC2C0FE928DF223B1043117C061F1C7EEC723C5CBFA83" + "14E1B18EA6CB63C02B9D6FA3B27929B4D42F1D785813FEFE124" + "9F65B725D4DE59AE071A4F6A40AAA26935F4DEFDFA3760C98CB" + "E805A50DEBB3011E006015FBE8400CFB1B6B3D2162014D675DF" + "4246")); + test_hash_extendable(&nettle_shake256, /* 71 octets */ + SHEX("13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFFC3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CDDBE5FE9694AD6D"), + 512, + SHEX("27BF218A01125514BB1B78E582AAD16720267373BB27FF96A59" + "4B7F10CC1D0A393FA753F50437C89301542D27C12C03F53FF77" + "1CD0DF4B38F40B607B67CF419020D34C18F5BD3BD424D39F47D" + "118C84A53A635E17365F84FA0340BE3212056C155FD227D3B52" + "F9BE75538FC23287B5DEEC0E5737C8484ABBA0BE6CC43D956F1" + "7A41CF81DCE5E78326633CF09326E0004B172763089A593DFBB" + "C1A0960A16F207F464F9EA2AFFE732208E970E00AA0BF122863" + "4E98031155B61F6EE509648D4B0BF58FC9CDDD0B470B95A0AED" + "8A3A96DEB2F7FCF65CE08A826300D4E48A681019C5A8EED66E7" + "FD5FF098308138B4E11886528AA9ED32617392B0F6E133A9968" + "3DADDAC328838008BEFE9DC680720BF4231E88848660C8EF4A2" + "973046D8E70D8EE8D8497AED8A748B3185A77B238B5650C9909" + "5D8702209C0C31FE1770042FE3BDC2582F5FB841EB5A234CB4C" + "9B637FB4C5DD9F90225DB4C62DA420F3D1895FB2EB05E3A3D67" + "67F73FDBC8B94D48A555CE4CDE5045BF5325B782E0C242FB3CD" + "27D963A9EF014DDBA4B0608F2627FCABB2EDF570A49AD5377B1" + "BC7193D9CCCC23F5D35C2DB59D05DF8D4A8E5146298B6EBE1DE" + "25BA1089DC746EFEF6BCE22B43FB99EEABDDAA76566452F544E" + "AA85CE4559BA683A122CE76927242050FB236BDA091480AB1B9" + "ADCA148B639F986A3E936BBA565B54F727A0D45F369DF25B9AE" + "8528")); + test_hash_extendable(&nettle_shake256, /* 72 octets */ + SHEX("1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801CE25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC3237EF57B91397AA8A7"), + 512, + SHEX("2FCE215362A523D7B76FB836EB458667099C58BC51D7EE6F6DE" + "B9894B6A337576B0DAF9A806488C3D238762B7A2E7B12AACD1D" + "696517EED142AA5DC5A0747F08E5E39A2486D75F497CBD6C489" + "9D6F5BF2AAAC9189A6ABC6E787B0D9C5283C840E518C6AB0393" + "CF60337369251DF935A02DE0463DBFA4DCDC1DE9034FC9C21FF" + "B9DBD7C48384DFF31012BD5F5A9CDFDB7139C3C35F560913D64" + "3DDB728910413F1267BF1BF1586C5EE69DAD26B53154934762D" + "4C80C34D511BDD8A391F83D224F9F8F83B61DAA046C542BC78F" + "153A3AED27E1268058F6952258D274F11C8D9634A5BDD4E69C6" + "0DCF1F89DF2238EADFE783CBA652A554186D9E8307C7773722D" + "1049C3815526F583612BBD8F6C587D058B80FBD38113957E602" + "12777A9F67B612312583FEFB67533C065286CF371001440B1A7" + "A43DE2405E5E92D633F12A63EE2EBC408164545DF22803FF239" + "DEE66EAA20780D103D940880E8BF68B9D815EFCF16F59E0D858" + "AF33FE4D287A2B8E61C6EBF26E16E354B3EF63774EE01A14691" + "B149D81F010A655F308E966C990E1BEFCB6E4253FF43BF473AF" + "A78AA88C36EBBE735B6B2F92BA9D07A738E000C9B42BF8A3A4D" + "8FB6C38AA36B3329F909676183FBB520196D0DEDC80DC6BA0DB" + "4D72AC6544551CC38B23AFE000A91F10A89956D2120494543E3" + "FF5D7D1B2791207860A0B921DEBBAE769E55713A1D611F6B117" + "5BD0")); + test_hash_extendable(&nettle_shake256, /* 73 octets */ + SHEX("BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C644B78B2D48DE1A08AA"), + 512, + SHEX("992E831E9BF5FD994A73F17699CA0ACAEF65E8212E5C4A49556" + "9654B5DB523BB04431B7910A343FF254F4432485B4A6A88701A" + "FA889B11C45C53B4A1C4A1872FC685D644DEB5DE2340511F29D" + "062F6CF0F39803BC333044CDE83103155A49F77FF8946A77FB0" + "92D1CF1715F02297ED4F6B0A43254863641C4C244DB87FE486A" + "3EB78DD3B57CCE06722CCBBF53ECCC862A8256625AB03563FE4" + "730F74C8F78037BDE37D538DA822AE9141B8098A8B57D74FCEA" + "A072746DBED8C4B23F91B3DE8B9B733D06CCFA2FC18747590C9" + "AC01A9FA675D8CB51505098F8993C494592C2561F8F2FEE3B26" + "7D8FB77A1AB853432850F90B8C52D08E23A19226A61E0589842" + "ECEB48059F8F1B749D563E2C652B70C426B91B8B0E19EF2B319" + "F2D7DFC25F0D712A76CA9332F92BB38CF89DED9802BB7AD5654" + "B2357325CB1CF6F1C9FB364EF41EE8B0A8BAF5FF9E8878E56BA" + "4BEEAE384BDF029E4911DF8E84F5B570704D53B67D6BB1AEF37" + "976B38F405D9AEA67C6A6D77370E37BD78034645A9B64056723" + "66DC061BF384EB0E9E73466FF5D018C9BA52DD262DC97970CB4" + "B8AB467847C23DA0FB101F5A7B9EBA51ACE6C0119ED03C7A14A" + "FCA676BED44922EDCBACBC79B6DB231C60DCD4ABBBFA0C13C0A" + "B3D680AECA78EB9BF0F71CE6886AFF6C309594A9DF2D01692C5" + "6265A6E9256C366C4C53B6C0FC38B6EF18ED8C571D94EE27E85" + "0D4C")); + test_hash_extendable(&nettle_shake256, /* 74 octets */ + SHEX("0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1B3A6C9FED24D70749604"), + 512, + SHEX("47CB72FC64AEB3F76085626534EA346A2B4797B5D61839BD7A1" + "5DF05D5E3552C2751C697BC2C532E2B3A8934B9ACD898567145" + "0DB65D6F44D9B6E27972FBE050E6A76537EED3E9FB15849ED61" + "C3B2F6E30A8523DF8E95BFAE3A93BB306343212F1C288113594" + "42759C85C3E6829A179C03F86A442DBABF49940297DE3F29CA9" + "F6EE25EEF49B9C7B37DC4499A9D16D3B32DA2AB391AC1E6BA6F" + "3967532FA18E50B1E52D6D3EB2447EE20CE459ED970D71E33D8" + "0A20E933F09E494A753D15590A29B15733FBC93217B47B36851" + "00AA31D5029DB16FD7E293C51C55E54E15457F99009590EF8C7" + "B7BE110453B73B4652B2F9C048BD7F2EA2590D33ECC5508BD62" + "BE3A0918C174D99C5939FEE9C48592CFC220F59F28F57777DDD" + "43AAACBD23A61A8473D4CCF01389E982877282E8694F03683EB" + "B44406C798104B9F3223B0DF50EC964665492EEE586CBDED57A" + "75F17762A2903604F8120FD1D981AFED7D6AEA59FE70DDCE738" + "A41F53F611B927EC3DD3AB7E89A0B0B3943EAA2A74FA2C02098" + "4DCEB577F6B3E7AE98CBB81F3CD9780E52D44BDEFFAF466FDAC" + "7A4429BC89295204B0FBB9C8A22A5F202E8536542C244CBF300" + "0C0CC1CBB0C4E18A29CC92697B0E58AB1AE77AE10B1D3EC92EB" + "697364CA69279C4EEEF39D27C06E63DAC76028DF7A5A974F8C9" + "7AF5C7AA31B5BB5F1F4DB2E63B3D4C9F6849129084C77ADE975" + "62B6")); + test_hash_extendable(&nettle_shake256, /* 75 octets */ + SHEX("BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D8B033F77D384CA01593C1B"), + 512, + SHEX("458FF16E716EE4C47F3B60B3E473D91157767621E9E3A200EA0" + "BA18B511B00C9BA311C7D542289D03F07ADFA6110675DCB43D5" + "D8EC69C0EEF6AAF4664F917E01FF8DC5F203E89540EB96640FF" + "807ED60D761C4D3D92F55604EFA648C5CABA130731FC2BB5351" + "46EF6EA4FF3A7CF388647EC25C3879671874BA259C6ABB31B4A" + "8090BEA5AA7D6B05F5647CAEADA7BA35B45FEEEE744BC0E76D8" + "EA6B84CC4103D358192BACB126800CB5A6E114709E7DA7766B7" + "61B6FD0A83203B82B74E87D426E71AC1AFAE590F4F06008537E" + "79E2025007CF2F5ECD0BC1A0E14C5CB8384B9DAEC501CD985C9" + "858212CE2B9AB2422F6F7EE0E081FDA987AA90A6D51DDC1173C" + "CBEE0592E970CD3DDA52431C57FA323758AC0A4E47D049EF3C5" + "1211A4F9312614312B6DC119336D7BEBBF325C2C4D24727E290" + "9058543BE4065C58F4E9E3F3F0ED88B8C392CBF610680123210" + "D5214650EF8DE411B7F6EBBCF2DD95F7FEACD074A29516E42EF" + "BE37C239E9AAAE6E0E1E1C61B418BFF50F0D7D56347579A75AC" + "A891D51CB5299987734EE208F0D85512C846AED6DB2A2F453B1" + "10FE2475852C92FF1BB3439D9D6F3EB76B49E239F72883D067B" + "F9D1BFFBB1B668D677F940940B9D042C06EDFA9256B6AFAA37F" + "918A99309E4E40CD3D374DB5A37BB43DA60682FFD1D01CD1EBF" + "9E90971FE16176DFFDA5867150FB83F271E4402ED52C1DF78F2" + "BF52")); + test_hash_extendable(&nettle_shake256, /* 76 octets */ + SHEX("90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603013C23F1E9611D595EBAC37C"), + 512, + SHEX("021F06C7138F663522BCD444E597C2B78F4C8369C88747A1550" + "80005E09A68C6A73C4F8D1C7C088D3CDA2B48F310D5371F336B" + "C261697542028D48FF92523DD78C100CD858FC5FD1F49181424" + "47E11281881D9C22680800DAC76D690444458D53E35D263B2E0" + "81F470C9E8577565EF7F8C530F78AEF2039A0B253A28E29E6C3" + "0FD26FFF9677E65121B5175822D0942D0DBBA9F764514FB9363" + "69F74324E8F950BFCC192A30921F04552245EE79CBFA319063E" + "4DEC133E10EC6B02002FA61EBC288B8404DE81D9A513FA7FE6D" + "B2C61BC4ADA6DFDDB4B49B5CAEE1D7CCF5BA6F40A39AF92EA26" + "222850D4F4FA9079F79365806440B89663C705A247629C8E28E" + "77FD17D39ACB37BDA2DEF7847C12D7F180A67BC788795D6AE91" + "87E6AEDF164E282C1E76322A8F38856C6D95460977FE8F6A760" + "F49111400467E7E0EAA5AD7E9C5F9A17B462CC8B45F308CBA67" + "71CAB434F407CA6CCA371A6C7313CAC055A13D5C79195DBD949" + "A4FC9C176C26E6D5ECF343B199E478A25DDA55FEC4FD416E270" + "8AF001BB8AC3773E7824BBAC1C0656953984B1109F1F95DB0AA" + "DE0CB53BE77E88CA83A86563E1E87011E718FB3616BA3E54A2B" + "F9DFF761A42EE1E809DD1A431C7A832442461DA90E7AD5FCD58" + "1827BFB2C8FDB0A046F09D30773FBC1481DA0FBB92A6AFD073B" + "A96811ACDEEEDAADAFCE7C70E4CE75421C85E9C1AFB270D120E" + "186A")); + test_hash_extendable(&nettle_shake256, /* 77 octets */ + SHEX("64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE324EC5A49FFDB59A1BD6A292AA0E"), + 512, + SHEX("DBC0350CCAAEE7F6E18576E435CAFC7CC65EBC81B27DA2F18A8" + "88ADEE19418BF6F4D1B3088E5824BF663028A690354F4A953AE" + "73CDCE6B095A835CD45ED5752D72E699ACF031529D73348218E" + "AB5DD6F98D675E33880F6E79D0FB3A78E843F26E018F543872A" + "313560F8024A6756013DB3AB13FB23661D33EF9520EA60A0467" + "5454B5F3069230447000ED2A879A1B342F560A8AD2F37AFAA80" + "668E90001D315BA266D03152E714434FB0F52E287A235EF5DC4" + "252AABC8722B6920A069C98F69C64BFC31B1E13D01DD0052440" + "1D4F8494111137EE283EFE82C2215FEA54304C3297E6A1A88E4" + "6F000084AD090551A994308165AA2D0D96585DD4C826554CE80" + "D3C00344140D4387322650F857350812C6C4E660D2E3EE5DEC7" + "3D27A6455D6170569FB0F56313A561BC6FD1BB6FC11BC6A830F" + "32847050EAC3451E153C00BDAB83D8CEF319894DB18DD80F111" + "2E560E2353DE9C2DB6BFD428327AABA644C218FABF3D75CC42B" + "3773DB2113D037588AF31F1B1F21D076F285F1F5CAFE5312E7C" + "2FCA07AF2E6FE3651AEFA91BEA2740AFD1C2AC77EF03BBCCEA3" + "6940AA9A7D733289F9575E9E14617AAE7402DD7847114C75EB4" + "432FFC2D3D0BD56117F9286609DC91E9CA63E1E064F09F2653B" + "A905CB12C8AB6D7772203B0AFE6332C4E9F73BA4B652FF16E97" + "59FB70AD5F548540C7ECF6C6DD7D17C5D2A9B45C548B7EC8819" + "E8A5")); + test_hash_extendable(&nettle_shake256, /* 78 octets */ + SHEX("D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAAB725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4498E1F6C82C6CAE6FC14845B3C8A"), + 512, + SHEX("7AC057C0DDA89D3A001AB997F2E405B4C1D1906191C3A50399A" + "9A49B2E01CB2C3D20DB6618A7AEC42F8143C580505145E60D6E" + "1D4559FE3F46F5AA1373502EB0661A608C31839BC4D7FA44AD6" + "586FBB53FBAD598C05B9443D6CAD708C8664079FB276947C4EF" + "022C1BC7267B41C1764B249C8E7B347BF006DF1498E31CC9EF2" + "558F96F7F7AE323D6A633E1BF23312C1E9E2146676730954648" + "727B61A5DB507F1959250D49A52F9804668AB3A56ECB6C49EA7" + "819D093E85A0A1335CCD4F54360466F7C37DF0F65CE52F7B396" + "B49D39A3AAAA0FE33F053EA711351BFEC78A1E05F55954D7056" + "B7380430B45275E2CF57AC13F7FE332B760D8BD793CE4F88613" + "0C3E4581A5995F865DF2C68CB2FC01B558997A54AB8A684F5BD" + "67855972CB3BD54A9620F71CFD3C9F0FF260B80CB14CFE4FA9D" + "61583CFABB12BE42C4C64C85D1F26D3B0645AC60065F9E85C70" + "883BE7F06B9376737F83313DEBECAAC3F1146B050F8B360A614" + "B6C72EC91A3E44B196713F5754F1249F6DCEEBAEA8049FF32F3" + "08513F9C0C2353C9814C0E67CAD64A1F332624490A39DF8F9BC" + "FA61C315CF2563031429567334038F1D086BE0B9A4BADCD9C4A" + "0840348BD476C00A7CDFD8862E80EB9A833BD2BB56D88CB55D3" + "D064326B8FA084F92F3DC2D8CDFBA3E3A0E3EB9E44B1EFE0563" + "BC7A75F9A736A87A89A15A6812110FE92ABF5B8F77EA88C2207" + "517F")); + test_hash_extendable(&nettle_shake256, /* 79 octets */ + SHEX("12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C588435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F5B01FECFC146BDB251B3BDAD556CD2"), + 512, + SHEX("F0C453711D0CE1B3A120BFAF25570E3E949207F575782FFBEB8" + "A6600D7CAA9938D28EC6872D1FC914BF8BB02331C40728D3BE5" + "31197694CE644DDD148D0EF54C077D56B6506A4A941B087A61D" + "3D57B8AE53824DA8D8CF069D1CF5DF46E309108D74F318D38FE" + "1968F1550AD7921D976ED5ABC60953E4FD073A3AE7FA378A105" + "E0FC3BCCB3CE3469A536EFA3F9E5C8590F19EC7E8708AF92A9C" + "A35CAEC1743F2284DA30E613AFB371507EC61C5574771BD7436" + "583415D8E4406EF39150E50CBE233A781E8867639DD491B1F53" + "217FDE1FC5B93671C1B6931E07966DE705D162F14EF3C95E67C" + "40AB1C0841380F9A9165C5222477FEB97E9A3C88104D7CEE9B3" + "EC6876A0ECF0198D258B9E308083B826F32FEE17E2A59FC2004" + "6CA815FE0955CA88A81FB56A7C90BC922136AB0B3F3E034B626" + "34FC830837F2DFD86798A11B335D5FBA27398E5023CDE6F1340" + "241509E92C6A4B298B3BD330ECB2012B8F95DEDF67B68D5309F" + "A1AC9DB856561D6E81666A49AADE4DE719E1A4B519AECE0BD49" + "41A36492E0B79CB7EFEFADF4EDC6A344C4B0640A17F0E7F70E9" + "0E77DDE40A82457DCD58658316B4B9378BF058B05AE39D0C750" + "692B92BB2D16B5F43200DEF81CCC61B2A26CCE991BF939534D6" + "1592328BFBA68AA8C9F51F3A04466759D7D1B966789FCBA85EE" + "120C66A8F3C308E6A1533220E4A38C21DDAA4B2FC51FB49F59C" + "84B3")); + test_hash_extendable(&nettle_shake256, /* 80 octets */ + SHEX("871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2AE9CD5CF0991878A311B549A6D6AF230"), + 512, + SHEX("23F75EDBCD5D5F329F01E45502B66995CFB9A5F0748E9E1BCB3" + "44B639873BBA79D21EF36B8CC1BD8A2357D8DFBF3C32BA6C0C2" + "E8936FB968389D8D1388C20B9F572BF9CEF93891C643D672C86" + "55BD67ECC3D0EC9452C6D1A0789AD3C734B926188E4A1B3D684" + "F14C0A5D9E72CD2A10C5CFA8BEDC0BA5F3AC6B5150A256F2B94" + "5586981F8092E0827294FB846986D3885F38BC6F945B900EBB5" + "46094E29FACDEAB1BDC1D7FE1C6C83E562D09E08319E2BCA1F3" + "EBD4A82B9ECBD8E6B38906D861E2E0704EE4F55DED4E7A74F18" + "8210EE439183E80DFA8795A1F75F0EFD49A4FCEFEB97F187360" + "69BCA02273FF542ADBB6EEC13128F1D74C87D6C6B45726F62EA" + "57ED49321BE6FA516B1AA2349B3C85A5F971C4E15715BADEAFD" + "2E8A217D1188129CF49A54FD85803EBB361D73F0D8D0A7D557D" + "0E17C8D83C27DDCE473908A1CF9ECF0F8085E77FDA3DC89C826" + "09A647E25FFA8D2FC86194B2A793C7B32B4C893115EAB9A7040" + "85047F9225A29236C6188F017AD4972661C796A3258ED494935" + "33BEF9A59A27DCBCF614AEAAF20BEF156AD261BFA23FBEE2D84" + "D76AF0E721739AF02DF710D020CB80E895BF20685D3AE61DECA" + "82D34206351870AABBCE23CDA3567DC1AFFEF9319BB1A212D52" + "BAAD92D069A332BD020420FD34E6FB6F97102C9AF3C877ABD9A" + "790BDAB7E7940B1CC01702D2E4CEEA1A3A2F20E3B4027BDDC6E" + "2FE0")); + test_hash_extendable(&nettle_shake256, /* 81 octets */ + SHEX("E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615B50C7C681E773D109FF7491B5CC22296C5"), + 512, + SHEX("0AF273F2384078BF8BECF3731049A763753EDB89CA1AE2BA03B" + "82EF5DDE8C5E23E692982C524035D406DBAD8FB897AF5D7DB96" + "1652A0D6F5C18D71EF1F1A541D0A29085AAA1D26D2C4366DA7E" + "41781C34FA40A3FC7E9132C3F0CFFFF267E2BC771DD29266E2C" + "649A94F3F15FBC71A561968E0A755D4D0AC7540B9E674539AA4" + "D15D2FE81AE969EE492CE89104F994C6201EAB2F6A726D9AB88" + "479E324789BFD003EABC2944C43BC061C1E24B7DDFE1C980F65" + "DD598C33942482475F4D717DEAE78BA3D8A7A887120D9A814D5" + "81BE9D593422AB033A1776C3C7A6DA30D4D83E8E120AC733303" + "C401B68D1CA76B2A20AF4FF0FE49780E25B43850D495BA91AA7" + "27DBE6E28B677C8C7DDABFEBCFAAF67B8ECD8BE1B459BDD68B4" + "29E7B25B6B0A02DD2BF0ACEFC5CBCFE5CD07C814E3266027EAE" + "612C39077C810E766A872A79D68BC8FE8EDFA04CE2C80325C2F" + "EB03B5C838425860B24A6BB2D91BFA5F67102A3F6ACD3DD6C93" + "37BDE3E94699F3B3431D8293F793886238228BDDF4B38F229FE" + "244ABE471B16A1BCC73BB7BAE6A93788DE0D349CB75729D422A" + "FB32CAECCEFFC42B7BD0694B154286F4CDA4517534D0C2FA7B9" + "8E72AEF0E2B8D8E0BB6A5FA82EB802C27511256C1352B20D2E5" + "9D0D3D63FF5EC33670FA27CA69D2F586826D3A1EA098CD9CCA9" + "231E74B91E999EFDA12F63FA8076A44894B40840FDBC4D25DFE" + "1CF7")); + test_hash_extendable(&nettle_shake256, /* 82 octets */ + SHEX("E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA9702C7CA303269ED14014B2F3CF8B894EAC8554"), + 512, + SHEX("7FC1F7FC27223766C8F4310087A3C54A5A8AA061EB20D367194" + "243BB62C7D90099684BBF368CB6BB71802C62C9F3258992C0C9" + "79557622A5FB15CA0E50A26891E73790EA3DF4859829B4F683C" + "7F5C2DB0FE08ECF76B9D4E897AB80530D9F1D1242B42170C198" + "C7852566DFADAC5740D61A52C4882F46E29AFE2C7335C5A1157" + "E5B93610D0A8E4529D8473330547EFE22DD9757503C7A67ADA4" + "E9B2CEAB8AC5B383F2D6170D6D6A17C03EA9F9B9399FD6C1CBA" + "624E7911DEE9892B31D463B3A44946FBF246D773629EA484CD2" + "0B03D8AC428BC8AE87CC8182D96F8D220A7312DDBF191F45849" + "3769691E7585CCD740C30FE7D63101023867C9A3F02D999BC0A" + "D653B71DC9A611BE56A44D4DF2DBDE402A0B7B6D7644B5754D5" + "0DC81F59FB17F7C38E62427A844DB406846BC74DAE737E24FF8" + "06505C5C4351A54AA920CAD01DDD8A5960AE143F476608A6DB6" + "168FD5D72453EA010B1139417277E6C5116D1D32008A40CB300" + "6FB65EE9D4F5F9AAB1648B3990F5B9DD338836460075B8BC504" + "B4DD2FC04EC57DBC63D32CA39C07EC7C2348A459FDE1533B30F" + "496F84502367BE809D0AB0C6E86474EB2D7A3A4CE29CC8D0ECF" + "B87B4662FDD789A99034A64C5B40F763D098888FB32346EB644" + "C28FD6BD6BB62E0D5AADAFFEF0BF0BDB801A809F76D79B84606" + "183067B5056528CFFF3ABA4F0EC0DC926FFCFC2377035C8B5F1" + "0D57")); + test_hash_extendable(&nettle_shake256, /* 83 octets */ + SHEX("6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983FACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA21C7F8016B93BB9B9E078BDB9703D2B781B616E"), + 512, + SHEX("1BDC443B8F1E6A47C575A1158C00EC9E69048BE22AC067CDC12" + "33171A69E773B6319B0BFE0281F0CABB4DA1F75C583320A96A6" + "2FE8DDF10D0C3F7871023562177E827FE0B58A02D38C5A4903B" + "7CD8B0CA80012238372DC5DDA701A4287D071FA2B29771F7054" + "8CE43ACB0F2E5A49313FC76EBAFE8B75E121F0294E417323EC9" + "BCA9FAFFA81FED2AA775AA2D2C641D7BE624EA861BD5C24CCFD" + "AC1FFDFAC4627C3985A41EE5EB57E229E1A1B9312C6FDA42916" + "05D26BA4401EF106DFB5BEFA7DEB27500F11A09617E8CFFBD39" + "AE95D9EEE736EBA41AE469988947A863FF6BFEEA212EEA29297" + "025F96453DC3AD935E75F12C5A7F0E6C12213BD7BE910D70EB9" + "78624843CA772959B5918E29AA377A7B4413946A97E546A9A05" + "BF107C881C9499B9E907A667CCD1B3C64D674E3A5796EC33F6D" + "6E4A2AE7D114D744BEE7729773A627C063133AEEEC4757F999E" + "A7F01298A783C32934D29FEE45E2048322AA3FBAF20F9D70C1D" + "8A0183A630E3E73CB2EB1C934DB4DC9101C949C46C1954D95A1" + "7B7D362B87FC51BE9FE98FB76B19B7FE9D1D76104D3D49FA7F1" + "CAFC252F2E4FF32C3CA43A23947EEDD4B88EA640E58DE625CB0" + "A9E11212EC1FBB24BCCB39B06AC90973BBDD279578666E4D169" + "290B0321C5B2197B6A5759FCCFD8CFA820ABA055F81F1030840" + "F3BEF889E8ECFF87D0EE1C53DB99F67827710DD0CF59346F2CD" + "53DB")); + test_hash_extendable(&nettle_shake256, /* 84 octets */ + SHEX("4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF18F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC877437BE5C2436CBF300CE7AB6747934FCFC30AEAAF6"), + 512, + SHEX("78FA82E4172CD8CF41CAD3D431E39EA0C6A88544402B5CAD9FF" + "3D8CD6DC8890260D989AEE087DAB49C092A94975EE3D5B8706D" + "0F1F522E5AC350306B01B4B19A81377667B20C201241315C3C0" + "5A9F7484EBB70E79588EEAD5D9BEBE5ACC3E226B807B46192D6" + "4A2CB886E4B811817CF7F219934C57D5DC2D00E3EE234B579B6" + "B6E2D5346D3876CDB3752624E65434E88D55E1284297CAE6249" + "95B1B37671B89C57E876FB361ED8AC6345693D82BDEBE00AC37" + "DE6617239205AEF566C1619F406F4CB1C9777AF2C07F693E35E" + "4289ACBD91C59F067C502446F21CA1602D10CB1D78D18DCB043" + "C4B4E06972178BAB4C90062342FF3646CEC8120A5CD14E19715" + "F66EC6F619DA0EDBF1C9D9BADA80F0BB210F09476085CDF3832" + "06FCDEB987623CD69D591F301D8DB94018EA3F90B8F067C3E14" + "7771F148A60B440CA6BE7A1943F544375D50D45DB2BAF339441" + "90F19446F7A1F04F7E45D59B9548E01EAF6E4D6D525B37A6576" + "9D280DB6DB391F27A9D84E4D97C7CE0AFCA3BCCA7A97636FF37" + "56C6CBA855DD5C625574277ECA6A2195027705827C0E4FF945A" + "A57E25EFBB65F5128D312145C5A8DA0A4D46D805C3F6ACFFB15" + "1B0484EF811770BDD87935CDDE0444276CC8B64E84B877A31D8" + "17E95963F3621AFE6FCE57D94D50771F91CD0AB1BC61DD97BCF" + "03EBCBC2C2EC687B705A2BCC5D0DEB20CBE6459644D14633C65" + "B256")); + test_hash_extendable(&nettle_shake256, /* 85 octets */ + SHEX("08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D32785EA51D49894E45BAA3DC707E224688C6408B68B11"), + 512, + SHEX("414EADC6832F91A04B7700E668AA487E63DB05151E29EF1718C" + "7D9F4C6EDD1C88B05910F23D8A854B94C7156C421126272EDB7" + "3A6E158350EC7A39980DA19316346D1F330C3FB987D7B4C46B6" + "469B7A59EB6B1649BBB7BC0E074C00A152517624F22A4A58800" + "447E7505D55F687F08FB939D1AA6DF8E73BAC6CE88467B30976" + "150636146526031BAC9F6667AA71516F9C5F70E502D7D18868F" + "6DD359D8D026A040AF3CAB533EA5A95DD7CB2006552796C5E1E" + "B2C3B46DBD9F2481F1B428CFDD1287299E7C7129B377E3954AE" + "0EE96F955B7F0354610B84652705A0594C045C3CDBD1B564BEC" + "43FDB5928B905023B1BA41B448E39E649C0B65CABE745C1DABE" + "9352D05F165BBED160DC2C52794C5D0F07D1E18F47CB94F2F97" + "190944BE08C4BAE53755B30D062B3D697575AD56FD4C75ED40C" + "F7C239941F7B052500EE5CA7CEDAA9190988F47A21216E907A6" + "3C795D2292CE926D541F331CBFFA9F16516D54999DFC9911310" + "CF564D8F1F00B92BD9FAC0AAC99A951EAE3175AD20558E8B934" + "E05FF58351056466A61EC5CF4F11A01E3FE0CD6EA280E278388" + "99BCAF7FBD8CD4308098E2EE71A4E9EC258D03118F0BC4619C6" + "6E52F35F1AAD2378D82BDA8ADB750313705D41263CF2FDEBA1A" + "D5E025FC76DC620CDC3B684ECDE0283F9A7D69A8463B58F4AC7" + "F5B1E2F3F580CA7F4188F32706D722BE4543E8E0942B3169603" + "49B3")); + test_hash_extendable(&nettle_shake256, /* 86 octets */ + SHEX("68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C49138E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB04E18D475920CE828B94E72241F24DB72546B352A0E4"), + 512, + SHEX("0CF9AA0F0478443DF90BEDFC2457009F3E58B06EFB22D1F282D" + "A4A2320623A250D584F27E2D45F708DA667A9BCC26E35C19C55" + "B16A993AE9D98948FF2366D8A0AA06915EE5712D137D46D48C5" + "36DB9A25BDF88F99A941683E342B5541AE481B1BA6A889B7ACB" + "E9A6593C53349C1B7D6FC8FC66627A2FAF7811C0F0A49D90424" + "6B95E9B668E8BB25D521F0905841B7B2AC64B2E359FB48FF29D" + "7A314B1D2E7E01B0D210986664C249DC711346449FC77BAEE4D" + "F54344CC18A816AD9C980BD0D9D01C4AD4EF0C702CFD8780510" + "3910E81CD3F6CF4D13D1398E755E5470E23ACCA6B510CA59FFA" + "0B523A9D7FF7A5D85FBAEB3E5A9C11D947AC5FDAC04B0B77E4A" + "E7943F696849DF0FF931E2300CB099F0DEF86D835A8AF4B53FC" + "6C3D38BA33158A1F95690E8C5560C060B0E48783AF1E2001BB0" + "4CB4399CD27280715AA0EDA7AE754B8A13F84916B003F87DCEE" + "BAB5938FC4342167EFAA2A889C48CF92F6892BD9BA41B61CD1B" + "3BF94D612C2ED603687DE8644613605FE9F066E4FCD8FF75DA8" + "FBC9C63C37D1828C173BC4AC668AACD20AB1E3F449A7BC4F4EF" + "0A6AB8D5B0A70CC2D706B6C6821771DEAD7CB29F2332F4292DF" + "7E397BDEE393D57B06A1AAD3DA51CB8F1D11E43D2FDBE72F69F" + "951D0FD9217F4462CBE5C701FFF1025515829CEBBAED488FC26" + "798BEE9AD6CE88F33029061A588E177BC1CBB24EB393481F3B6" + "1616")); + test_hash_extendable(&nettle_shake256, /* 87 octets */ + SHEX("B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2FBC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C"), + 512, + SHEX("2B8F5423A417D9B827D98AC1D21EB7C1CDF4348F28FF08B6F06" + "389E4CC2311C5721509A5888DF03F7F4B94D42CB66F3B885EA8" + "B130934A1025220769D1C352F72D378F3A63CEA1E762ACEA574" + "66C3AF188772872C16D889F06BF0AA321170FC1AA842B413BFF" + "9FA32FC1E060F868A370434C99FE586E8DF4C6DF1D167912F35" + "E7BB983D668225DFE5A00241A1050702A5CEF8CB5EC957B779D" + "6CA1C9F6858ACEB4E927E104A1DC59C5E90B31F4A6E27623B46" + "D40D472D6D4B6EA6CE8BA4721A5A765DE104C4ED808B4EBD73D" + "60A56363727CE0273710E63FB8A2D565C49823823F7B001E44C" + "8571B885AAC4E14F8651CC95C11EDB3599BD85989C931F866B7" + "C63F80EFF135DB2FE1B17D5DFF147959606FACA0FE22E5BFC88" + "D43F6057DB91EB0AD0C5491B66B2EC9B20EA01E215F40922F41" + "ED4ED64616960272617F32D62F28897BA03C5A8657B1DD4ADBF" + "0F8E53492998922A47BB2D7897502F8687C465C8A7615089062" + "108D70164677E11E1F63917A4F230E8C577346F880B7B8ECD06" + "40D10622131731CF447662AFEBBB230C902B28D8445C5F3EA03" + "1AE7AF04F5B22D3AE7CE58C6CB4EC4158DCA5266AF0C50F609B" + "12C5F4527F836F8804777BD6C80F5D7D9B0F317CB5A663D3B7F" + "3225361EA81415CD5AF56BF24629D511A80ECD169AAF9558AF4" + "87D46A569495A70C76CFE83462733BF58B2A7C78A7EA1FD0561" + "1DDF")); + test_hash_extendable(&nettle_shake256, /* 88 octets */ + SHEX("0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD18744C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D"), + 512, + SHEX("C52001EE31F26ADB120EAD7699EE35AC178D71FB5B073129955" + "2B57DF2A4F521A021CC56D54F2B43D18D7726FA977FEC221F68" + "19B5B7F933BEE2EC643B67E16BCC26A7DC1BB1DA3B40F2FE026" + "45CF5BDF3140E89ABACE926E710ABF0F07205291A336187AAEC" + "AD9371DA35867EE8D8845E09FB47269ED94D04B47A3B6C460BF" + "419F13AD2F65D63824805ED264AFFCA9E7EC9774C4E36695806" + "86C0A02ECCD98277365940F4CBEA5DD5B0BC84F981C16FA6CF2" + "D6F1A292EC956C7D0714C6895E96A7C884173E662CE5DB1018F" + "B512CE773ED4752CFABF9045269922D11718C572A94ACCA1EDC" + "04CE16D533B064B416684D921D46A8F2859E7D09660F620DAFC" + "C232029A20886A552D29CCC30509A3941847244609911CA6C59" + "6E2FD915FA8BE37D7EB41D403043683AE9C74DC7D6F4770086C" + "F8C6E101E989FD6A5C60E34183C4EF08EA869FE2AF0FE5EF701" + "A6A64EE0D0F813A14E574D504E219292C103469F9A11DE75083" + "2C2BDE0261475856D5C9FB4727CA49EA81908A1F7FAA20248C7" + "39179CC09D93E4901ED63F14A57B20EF9190176A27BC07F912C" + "C62DD1328B032B893642118EF3426B1A8B95A0E36FCB8A77570" + "25606E9E485B56E84D0E691234E072AD64FB8E836118634074F" + "D8362405DBEC4D8AA12E9E84068EE3B29B7F573CE1B52649CA0" + "DC1F758C1D4F5E2B72A861D6326F01084B6B49E478FB4CD8EE9" + "2750")); + test_hash_extendable(&nettle_shake256, /* 89 octets */ + SHEX("1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C5125185104F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD"), + 512, + SHEX("386C3B1A524F2EC39C33FB31CDD3981FDD57F1E33D04FAC5482" + "8C54F42EF763856B72202799D4CDF4AECF073B8B9EAC39F0F69" + "54545BF60DD55CE2FAB4558DECD7E1A5A40B87A293D35394DA6" + "4A4F606956213326FF4D8849A3F19781AFA9DBC0AD0E0BED551" + "164275D4FC11638AF3ACF95C86994C27AB72F0E5EE366CA8EF3" + "9C000661BDDF23551AA368F347B4526474496CE14C30503C251" + "3501404987446A193DAE20C4B384D0D9926814BAAA863320946" + "B9759C7BF1BC890F88826DA59E028F641CFDF7223DB20B34B63" + "89B048CBB85C4A0E4E84DC5C5241D2DAEAA82E9092ED266971F" + "D185D3B661971160C05C4B42BA8E1E8E31FE588C0BAA81A2BF2" + "017B1E0B99BC360FAF13315CE88CE653C20BBCFAAA8ED013EB8" + "9FA5DA39FC49D99E3C050E622122B7E393BD933B72C5392B165" + "E60538BB6E29DE30A5947053D4A23038AAEFB13DB8BA4FB3B1A" + "65B474D94E4CF985B2402BF22CA7FB723DCDD83BA875DF3C603" + "50886CAB6A1BD02FAB32F1DCA0CCD879B351196E1F8BCC3531A" + "C653604932B69E7365B8B61E557585B7A836379D0229844F6B5" + "D2C4F31A6BA2CF4A2585B7153C6005D10526DBC144189B0747C" + "BE58EDF2F4FFCA80FF99A4BD7C8CCE3BCAC36AA5D0D7DC2B231" + "A5B888198AD71042CDA93C5AEF246CF3FBE7A663FE60BC04CEC" + "70480CC2D83C847371FF5347A93D54059926B6B8F52CE6AFD2E" + "5630")); + test_hash_extendable(&nettle_shake256, /* 90 octets */ + SHEX("B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7"), + 512, + SHEX("6BB18C45BE71508441EE815061ED782F4BB5ACF5393BC9BB825" + "FC79CAD025C6D970D615F4285185696CE226969D5E06E1643F8" + "BA93F5617AFB096ABF46DE2EE7D32BBAA335628C41F1FF30841" + "8556C51E6DA30639BA5DA36A14976DFDC013551F632133723AA" + "9555B8B11BF0594457A6B288B01185927A48412019E58621806" + "FAA968CA26366B884C428607D2D6FE9E8924E6D8D769A7D2DE9" + "0195AB6DEE4896ABAC3119FD15EE61251FCAB1D3858527E2E6E" + "1B8EC05BF8659EA345E519CADEDD779E40D2508BC6EAC6FB531" + "DE15CF7F3478A4288DF556D4B6C9DDC5F1B6071FEDF3C4F9A96" + "0B18F8301064B4F83620F2402614C600EA80FB2B24BB9B8B777" + "BBA3010AC1FBE61AE18BFFF9502F66111B8CA1E0DF671C311A6" + "F11697DD8C245C4B946B8DB03D6C07EF14C45CFFC328E6C1294" + "8D4137D6803469E996C1D84C3C1DBB8CFCE592217155DC8F9E1" + "E558CB58693620F57F5F81578F060B23A1A75ABE8010FC53852" + "4DC1B5543D84F5F28CDE4AA509B8A034522F2F61F8E3A683EAD" + "34ECE04EE84663475D65D6DB75CD6FBE011D6F1994D76BE3566" + "04D93311CD0410D3B022FC328CC850D7BCC1BB96AE45E8B4C9E" + "53904FD8BB8B0FA1D8AAB9BBEBBA0724DBA6A2C71F28AD705FB" + "E6BFD958FE493AC47D70A1C4B3BD738C519558DF9F66130C688" + "31A7D748B7B382023810865CD9989735E25186690FA187E8E24" + "B77B")); + test_hash_extendable(&nettle_shake256, /* 91 octets */ + SHEX("CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E05077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE8727B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F"), + 512, + SHEX("51F3DE30531335B02C0A8CDA5285FBEF9AF618E433142E9E971" + "3388602B0486A99707BE420AEAB53DCFACA68CC6CC6A3133075" + "A518D2EB1C500F0AC2E0B8A91D3303594BB38FFC45B80AFB8E2" + "5C4304A85280E6124891E739FC9DF8E34ABD9262DCB4330C2C0" + "F22E78447B3FA67677ACC1F3D8E836EEA94AEA4D616132650C9" + "288804C3CCA5F1C0139624E198643D52C42960052FBBCF89AF0" + "0D58600A9597BD12A39A33AECEEB161EE527398BD915ABF6427" + "46E4C965A77E916E700CA905CB70222A3A8B8C5DE3ACF75A9A0" + "065681497F27AEE6B1F4402EA711CE6B24592BC637F83BAF912" + "D3E10E0A7E03CE9314FB264E5FFDC3564307362837C28AFBE2C" + "94BD89AD3CD4A48C1A2EC38090C38E6CB4174149CF0D5841049" + "C1D7DDA1E51DF8F3216CAA119A9E3229CAA062039EB165F4D5D" + "E68FCB76ED32F1E191166BE83CB6384FEC4528588D8A3188A9D" + "A7BC1F5DE68C42D9E2934CC1010DC535EC87804810C009982BE" + "6646B3C50DCAB7EAF4DC7786503F29EB3F1558A7341E49348F7" + "3479A2D3EE6B8AC076BF5AD17375D81F9E4DBB365B2489F17C4" + "0B9A4CC10F6DE034B4B81A3D4F81475BABB9581C4BFEE62C562" + "6FC436983570D5C6144FDD5A55E1898919A8BE4CE3780FB2548" + "32CCA90F988004D12039A947502216651775160D987DF82F432" + "75FC7B8A308C63DB7C28959AD9D8E6D27A5A551E685B6639744" + "65D9")); + test_hash_extendable(&nettle_shake256, /* 92 octets */ + SHEX("072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523"), + 512, + SHEX("41143CE195B170FC23ED53D7AE8CA61F397CDBB72F261750A7B" + "D26CFF56212AC7BB1B18D002493F418185ACC703DF4417F44B9" + "3F4A7684D3D68F8F042A73C3841B6B5FA0079163D4881C39BCE" + "CAA548A50237E3F8DF20F986552978ADA9C4EB2E57062DB8D91" + "564BA4EB96503B932B5FBE3D88EFABF452A03EECE5B3E78492D" + "C555ECC95714A1C5C1B201CB42E10852C9A5FE101ECD53FC6AC" + "D7E1D0D6EFECF81BA76582E6E9CF80E70E52C0384EE05978A31" + "234DDD1C2D501DEC0BF1F26706F1C6AF4A6DCFE1E7245D7BFBB" + "96DA619EF27B4CD67527BD6B5117E4E55297B9474A5BCD251F0" + "F17B10F196CFA95ED3CE61458ACC55CC2BA83904796AADD71E9" + "78D4615E6588954F7D48B1BC705B497E073DFE2ABD5224792EC" + "A6C09D611C311C544BB332B2C9D144D24950F3A27857B9F9AD1" + "DB4DFB9AEF65BCE2C224EE9FE9785593CC9CC74D076BB5DC575" + "B4EA65FA59A6DFCE634EF83072CBBABC5AAA53AEF5CB4D2C19A" + "613D0054EDA3954BE7E649C2C38CFA9F7746941E2B77DEB63E6" + "2A9FFEC59D15329CD7D02FCE7006406F3119CF579E1F6F0A1F4" + "FC74C7031894D240B5BCC9A7306754AF9B43DF80005C7B62F88" + "5574AE9C44B90D5CFB93990CAB41FC3E9962CD0F8047CA1AEB1" + "399FAAFC6D6FCCF66B2F02CFB9532899CCE1AA8E822EE9498A6" + "7C3972407DFE98969F9DF9CE328A4B9A1DAE1651BAFB32AE29B" + "F666")); + test_hash_extendable(&nettle_shake256, /* 93 octets */ + SHEX("76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26"), + 512, + SHEX("1B0D344DE5A414960E67D684D301901D8E89C25EBDF7494DB9A" + "1FFED44E5D688207F4533CADD09FC8BD428FDC3592959E90956" + "13BD808797BFEF5130FBFCC1FC72B58D93BC4A291284115D5EB" + "47911FBC0A4AA5875AA2B6EE1E1BCB296507183AA5399AE8192" + "EC6AE579D9AD172F72F5A1957BA10B0FA4E9666FEE9611B0487" + "30275A0F4D6D48F98D860939936C9B41D1AF5D729B11C930853" + "46D8769C141B81FED9F17FD85C0197380482483C5F45B3D8BEA" + "2C2E90EEF2EB489B6986A891BC0F29EE7E2943355E4223C2414" + "27C49D7A897C956323ED10B074132449FB6371A9BFFDAB8D113" + "282016AF1F7E8E26807A0B0B4809BC035BAE86F476F7FFE002B" + "BE7E30B4C06B00E712F1D54E954D59AF083DA123034E73B9854" + "B45E9BC2EFBBB7282743DC5942BF372D94432379EBEA4A65699" + "7088004A5C2AEFD6A4CE6FE94C2A06C8A0446495DF224269E31" + "0F1DC184DD37ECE4EE46038369C031FF90AD3787331AB6BB1CB" + "AAB7A0194FBA947FC6485B371A684E7E1CCF4E9F4D272158A36" + "B559451E48095B3C09328DBB52C7659C7E163504587962D87A5" + "E60BB3C4868CEBC204238FA08B97AF71DE9ABE7F409AD0D2945" + "5E1CE59433685EFEAAECCBE01462B1760FE25BACE44CFA6E1B5" + "C28DCA00790D96D2B6FAE377CE4BAC7CE64A97AF68EE913C331" + "07E4A62EFD4CC752DADB23877B54795A43A7AF8593E085480F9" + "B43C")); + test_hash_extendable(&nettle_shake256, /* 94 octets */ + SHEX("7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90FAE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374"), + 512, + SHEX("69271E30637CE53639A9A80582F8E9D91E0A19AF1C25A4E316A" + "4ACBFC4534D7B6DB55BBDEA37F2526E5CA0407D0A39D06E2AFB" + "6538C125B3390A860E033378440419FF91634BCA42EEC9AD80E" + "55E65D43147358146038C9BAEBAB808C1A9B2D796BF22BAAA54" + "D92298212E7101E56D1A0A229CBCF9E08791C6BD464EB997164" + "502445C2993B1D2A6AC4242D1F4108C2AE4DBF48FC403FB8F35" + "3C5CA3EDC09C5D4993048962D1DDB474928BFEE27DF6AF8BEAE" + "B264EDD09DB4950AC5E12561751BD3ABC41C9A81F6C5C339AA9" + "F7266CB4A28EE26F29571A7F4C9B350974BEB0AAAD642D9934E" + "9EFF77ED136BF825A845041B9C01F0559BB1987FD6FC951322E" + "4A4B4EE50C7A7CC43324391603D689BD19ADA54982E03A2BD12" + "610A09BD076C0C3F6D6E0CA348110D8DC5DAA5C842198AC5EC9" + "2A79099ADEA1FDA0DF0B35E8871373B312D61554391DBC9E1C5" + "F9007C9D3799C24DC4A0894E175706DF7D04EB2D69D90BAB571" + "17E04B681FB24945F3BA3DD7F1912171556464500D4FBB90840" + "08A79EAC50D8BF59163AFBA8E0F1E5F82E15255398F62890C95" + "21A0571813210FCCB582818A6D1747A31822DB55C4B6BF15A19" + "076B7D6349873C88E86BD87D08E0058A212780C86915CA559E5" + "81EC3DC7D5BFAB9C5403661F09484F908DFB2D98B65F8543FB3" + "F102C2C5D0B89B15E565E9B04E07F7141E35102BDB056801100" + "B160")); + test_hash_extendable(&nettle_shake256, /* 95 octets */ + SHEX("E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE1988E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD"), + 512, + SHEX("2730675F5F4DB76D342EAE88CF856B370982277E24A1F95E071" + "EB0C28D6655D9517CBA67DDE32BA6A4A322D37AD4A4EEF90A60" + "E2FE3A568417BE75432F57964BB1DD7A5A165C24F38F4085CC4" + "551C35BD0E2663198DF04EE86803D75EE5ECBB14D7BA6166934" + "32B0FFC83F27E82016D7E3436C2384D1A7AB87E4CE758A5A83A" + "4FD63831D6F88E4E80D1CD257ED4B418FE1BB498004D1CE8CDA" + "CEDE429A53F06EB77D0A6AB47BEEAEE12FEBEB07D434E26A719" + "57E55F4F3284BA0F8157DE3F1C8E0E4874DB4E65E5243982BFD" + "57A9E70D18BE390834A9C3791E6AB6341739A963A946E1DA81A" + "4D9B3722BAC231191EAA013E424C2B965967AE986D50426D983" + "0E92499E0808FD6EA92A8A1054F93A0F84C11BF417DE01A7B0B" + "A5890172BCAABB3D2CC23853822960E666558B2B4695F38A22B" + "576757C0A1A84437E7B627989A4053B14954ECA09DF2221D6C6" + "E88654EEA2A741DF3BBD6EF2A8C463D797222E72DE8E44C8C6F" + "2FEB44E3D2310ECBB139AAF3FE2C4B2BC9D7142C0291BF9FC97" + "71178A484417202DC721876800E010E53F1972E3630B5DCE021" + "6351E687552AF2FABA699A4E3E0C5385D80DC367FD0D07258DD" + "59A6BA5D2E0FFAE60A5E0C48243794913CACDFC14D20001CD9A" + "097A9CC57D313006E0B8945ADE9791812B63E98A291CB009E89" + "9DFCC7BDF9F58F3866F6C33AE77718081A517720C34DAEEFA52" + "7641")); + test_hash_extendable(&nettle_shake256, /* 96 octets */ + SHEX("69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D59081587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600"), + 512, + SHEX("DF6FD8F4E768031B0CE25C199F02EC29053EA8200B7EB306E80" + "2C8DF23CB213CFA06C37630A3B14570968948C5269A67706225" + "27C87D432098F0CBCCB733A5D28B035CADA562BD0FCC032D2F4" + "5DB8D2C948FB341AC2B0C5C699C62BAB551553099E8A21518AF" + "F800C8ED42B44DE7C30F29E691C1435CE72CB67060307D1B1C3" + "8192FE198AD3D20E9E12A8C9529F8A134A0CCAC8DE552AF3FC0" + "5D48FE2E3ED1DE5ADFA0B7C324320E262232A14D3A7163A0498" + "0CFBF087BEC24E356DFD8AE4DE9B0620BFFD1FF904E58B39085" + "22AC13D1D541F662D95008B1F8C52DA67829B7CD208BC9B8A3B" + "6927E575BFBF7E29F1CAD832D9D01ED41E5512ACE419B92F71F" + "A0CF5F79E33016D5E19EEFF561C94827584623118EA367D768B" + "C24927C92FC19999FEFF28E3A09D2F266B28433CDCD51589571" + "1FC081F8B1D143323B680E8B7469EB0FDD467143C292C8D822C" + "C16111E9AB2A0C9EAD40B2867303686FF4B9BB4DEC4C8B552E3" + "796CD91443AF8C4542897769EADEAEA39A366E91D65E92F06CD" + "6554A1F6CA905996F5F62CFD559D1B300D912E6FF9166853488" + "0E6A8C414FAD3C107A180BE3E0BBF4F33CDA343032D01C98C63" + "20F6DE582DAB7B15FDD6E75AC3AC7FD079B191233D872AB351A" + "E1A56F0A4CCA8D0215CA1FD5F9C45EE171F4BC72D18E78ED6D9" + "D651E40AA77522F6E3451995FBC3207FC0F30D1B39EE836F937" + "1A36")); + test_hash_extendable(&nettle_shake256, /* 97 octets */ + SHEX("38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D10FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F49"), + 512, + SHEX("3C891240ED9F62F45658B5C1D3E4D77975E45CFB10C45513927" + "EA9D911B3E41414DC0EEA38C8A6868A9E0AF20F96BAC833C1DA" + "F71D0BFEABF41B8C26C011495F8DEC94D72ACB5C5C9ABB1C372" + "F8B779BE741C860E722A0F85CAAC3D21C6C9EBE61C6489FF558" + "1ADF5650B6416E0E88A889CA60CC641052D601D491057BEF36B" + "4DC3B5B76BAF0DE4E7248A40D9BE6D55A7E8C26663828D08495" + "DB33F94ACC7E7E49A7A61F352816D8C4C0E23F36540418AE6DC" + "009FAB33C945C6E48ED60BC466478788002220DA9A5560425A6" + "162AA03AFD5700CEBFAE439D20A85F2CB826CC8814940F2CF25" + "E34754D8DF03DE448FD1D1AB38BBC2B1577BB1BC39DA7B91B7E" + "63F78C5F43A875C427BB110E0D5FF07E004AC9D810D333300A2" + "778A06369B7CD684AC86AEBC97D7B9C09442C35E66925BB0E4C" + "04C5B3D11267F0F3812A5BEE8E18653D98B6B586D5735D4D3C9" + "2E3B76DB5BE509AB32060E954D97FC8B6A428509EA98E4F8210" + "F42DB3229E07E1EEDA684B47911556A8C34FB0DCC0998A781FB" + "CA574FA891C24B35251C9D0D8429763468CBF0214B2D1EC94AB" + "3FAE82E57C748122531C615BDBD4CDA56ABF319D6EAFF738BDA" + "7683BA4CDD78737941DCAC4FC45E379BD6512EAB6D14C4F3D57" + "48A3CF45713792D314F81F1D1F5ACED67A0A9AA026433F32053" + "0632E5F72122B63ACF01F2BCCDA9BD4FC579E6DDC1371DFCBF7" + "347B")); + test_hash_extendable(&nettle_shake256, /* 98 octets */ + SHEX("6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB72D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F624955B52"), + 512, + SHEX("201561B1D68F1AFB93098777B7D95E56B790194F45057B3B50F" + "08EA89436E54BAC9A5E945BD1CBB51ACFBB0D61E539D1B3E896" + "A1BC1426C1FA408B5D16D706457C35E3D67377AB2817127A852" + "DA463FE06D2EFDD25016521F19B8D5E54014A54E297014230C8" + "1C917A983FE4429B47F6A460FCC4AA5A4E1E322CF74A9DAFD30" + "D313D2C0F9EBD1A8468A300F12E6CDC0E971BB7BFF172593C7D" + "B286F467899B9A23ED3E222BD6124CB9C4FE2AFAC157CF81FF0" + "98F021B95F1069D7609963621C368AFD3EEAF84A17F1469AEED" + "DAEC2DB5BFFFBCC39A73AA2A62578775100A92AD74DDCE3A0DC" + "B27A740A6E7C0F4C3E36E4AE55B04F04CB7D9527176BCD94DF3" + "B884FD4CC2EAD608CAA016EDA2E2232D0AF888A3ADD12CDE0D8" + "488650EC6047199842056744B77FA806BBBB96A47ED253192D4" + "6B47D828EEDB9DC0CB38D576735E870826F829D76F58CA7F3A8" + "0FCAEA1CAC1BC38A6339C307F23DC25E3231094211FC867B0F0" + "BD9D1584FBFF5A52EC3B5624DC814208E484B5D069B78A577EC" + "CC017FEDBBD139C13B50B395AD16CC551430229B56B4D75A145" + "88A765728774CC234D1DC46F0E64E7845CF237330C3D2422CDE" + "F5CB1D741741DA30F39D99035D7F7C49D6A3149D02DD061F853" + "23D6E0054DB7395AB8FC496418B7770355B854FD36FC1DE72CE" + "F330976C2FA6FC73469B71B80F5D9B5CAD008C38746A54578C3" + "D195")); + test_hash_extendable(&nettle_shake256, /* 99 octets */ + SHEX("6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBADB885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B2089CCC1"), + 512, + SHEX("42A5915CC1DBAC56FF74825DB482AFB8752991EDD5B8F5D040F" + "E45B30161C75178D5D56F8A6FE9B11A71E19D0EE241A656171E" + "BD9501AA4B5F2CF0344FBD23EA5035D9A2C42FCFACB5F13D921" + "2805F353932169A0628D015644ED450E8F8717A1901D5A21FD9" + "F8360054946A29CA31DEBE683956FCC9F862BB5AB04F07AB11F" + "751FC8D7CDB0FA9C616DF691794C6D26CC1A18A45847FEA7601" + "7D57D9BD6BFD1E5CEA4C92604ACC860252DD0F53886C48D0187" + "054BDFE1939A2E6D5C570A82C300A6553BEE5E107EE319435F0" + "AD18B92552ED9B4FFFD472CC482DF76B6DAAE5432D17C247544" + "4BB76CD79313CD14620C1D2B3487D91C25A47ADE446E1DEFA7C" + "6D2C2ECA3163106F10EDA5779EA6C21F8D778C29CA3601FE5F4" + "56B74DD08C7ECDE8FF599B26540624BAB26314453247A945612" + "4F680E68CB91B8247E0E5A06CD366E46055F31712DCBA81B590" + "FBA34C8E619C8F3EFD39D2B69CCC6C3D184FD058A9BED65148C" + "E65680F31715373526C509EFF8DDF378A0127E1482809CA13A8" + "34FB3A1B00231F6B69A8523F72EF580150A4805981F9B1A7488" + "AC880BC4018105545707B85F24569E4F864C30E66E750AE2065" + "BFCEAA2DB440250568C6909590AFAC5C1DF88D3E6F02D2B4D60" + "9460A6BF76FF7994EB5F64B00831C849F7851A3E743DAED3866" + "8FD1548B333A01568140B1DCAA00E180429EC6BFEF620B06C98" + "DDAD")); + test_hash_extendable(&nettle_shake256, /* 100 octets */ + SHEX("433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B98214B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E0846DCBB4CE"), + 512, + SHEX("BDA93EAFDEDDE22B029F4618B2135E9F7AFA583C8BAFC3B62CC" + "667C4704CBCDD4AC6620361A0690AB8E857335C150C2D70FAC2" + "C2F2D60D6472AE760C082775D54C8EEC450421D536B1A94A5DA" + "5D803D951709A7F5BFFE63454306D7B229CCD3A89DBF9436C9C" + "91C01A1D0964D86DE868B4FEAE6E3B88592A85E2BDC82CD5C52" + "968C85F429B08A2E61E1FAAC0945606EC462EA7B2AF859609EA" + "AE3025E43B4489F7B1274922FA72619B9EADE2F6C04D5863B03" + "EF76189A81B9BED9A47BCC53501E96C2367067012036D07B95A" + "C0604FB0E6A793881CD81D9577BF495FF769B72DC8B0D554CE7" + "0FED81FD3AED5426525241924423A4B11391D3AB16C02577ADE" + "31301960A579833C3FF5F9DC0EC068C3C92234B9DE3051B5833" + "0AD87D0BB6F704B210E1C5A167684025AF9791757CB0DA0517E" + "4A271C89AEEEEBE529609529B69E9A53C1631AB89AFA3D0FDC5" + "82E923E5F2293903B75A4C321117BBECF2E114BE505DE8CAC60" + "8C1DEAC6FA33C658D72454FC5C3784989803A839D565DA08436" + "E700F3BC8DF99BD3465CB4C1E8886FB20354E132A629FC964B1" + "0714F006978121E9737D70A77DC73FF77830E2DFB3ADBAABC83" + "657D8700206AF318714867A1BA3BDCB8354B91F4F1A8B09BF54" + "805BA01BC303E5F9887210584913C5130B643F15AB603ADCA3D" + "918C3D5F15E97EC27FDA51E4E6CB73402AFAD08678217E46B0E" + "2283")); + test_hash_extendable(&nettle_shake256, /* 101 octets */ + SHEX("A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B147A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2BADF45685F"), + 512, + SHEX("E4D90A392BAB78DD363C8747C586035358F051EE8909762C3D9" + "AB4B2F1B7EB50B4738423C4A5087A5B12A9DEEFE186D0086F4D" + "D0F9131ACCE891E43D131627316AE63C4E7D1250D809E78F94D" + "276EF45C3C8EF4A37AC5910F1DD5F95989C938C98C55771B6DE" + "1AE68F3A9015C1FBF2447F3F72C15847EB55E0296B711881E0C" + "8518995BD7F75C3AA9C1193F3F7B47B9C133AF09CF53E1F55C1" + "7CD96318C821DB4A6C7E79DD718684CD83D43E3EAAD165FE26F" + "A204B797C59F33589E92C43E7E799E5A857ACEE310E66F1C99A" + "2406CF4D2690DAEC060CC7E3019CC4A842881657E58818BA193" + "E4C8B8113EA7B3BA930ABD58A7965F4A176CD5EA1447B417476" + "94FB36775FA90999D1898949F8CB5943013A9CBE7654FC5D7BD" + "7C915C1D251A22D6D8F7671D77417459366581C5587065C55AA" + "EAEAC19488876ED0D5E5F2F3F0A07006500D03EF8CC151AB6B4" + "6D587DFF8930AC8EDC3845BD2596387A56825A0036E1FEFE70E" + "2A53A4C19B5E45AF6AD1C463042EEE139B244A7751DAACD4CA7" + "C5CA075D2B639FB6AEE355DDD4FEC35F13C74E822E5F2C23A52" + "EB2C2E209B62106195BDB80F19EF1636CA813E2FDD96425C971" + "B6D0ED6B468A5E8F462D521E41586D7C848FE3103559D65B388" + "A0D0F84FF6C4A48318BA3860CE5F2C419696931CD89F41733BA" + "B732FCF8551B4ED28A3FD2F1DD14D2BD570048FABD6026C984E" + "CBC8")); + test_hash_extendable(&nettle_shake256, /* 102 octets */ + SHEX("006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE394096C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C9B62C60A4771"), + 512, + SHEX("AB362A6667C3143E58DB5D5E18294445643F1FB212FAAFCEA65" + "6B4C9C9DA509609E7B99AB0BC1C7F782CC8BDD2C2C49A029910" + "9F842442A6433D9515BADCB9E961C0EAA0CD90906C2970171EF" + "25193CD49FFBE6609BC0F5702CC3FF1CAA859B50E59ED6407D9" + "DA7AD2D44EA36BCF8B3F48AAB75C1EAF0C2A8A41E33135358EA" + "ED3C5005CDF6114D35E4EA2B14E2F8EE6B995CA73FD75E281C3" + "A145309C620B66718E058E171740649DBF4786E8B83C19A5CD0" + "FE67B68E3FE2509662D968F4212224B466D04E4878C70B47409" + "E5FB56FF2A5F324A96E799CCFC6613B28DF7787A6D967056968" + "7D8345FF1F187DEB2A909C66F5B890CBCDFE18594DD52328F5E" + "1D3B15F6398F9C3B880AF4D314B1924CF2FC30F96B45869E40E" + "4A147D94A4BD92E3CBF64CCCA69B3476477B79B571FC5F91152" + "9E151C3DD2FAEA561E9FDDF7DE4C93E5CE3BF3B90D25642EF62" + "740EEAFA53CB4356CD598E9CF40339CD8166FE3CBEFC35B5990" + "E642D5E2578D893C0A46505AF49280D544CE6865733C1AB75BB" + "F194A4B6AB0447EE0F33FDBE80A41E860D80026A2D0C3FC2274" + "C9A1BE2C07C57482B3E3982CE5495BFA0F9B5A10D2BC46F5DC7" + "8E78168B552CE4D6FC9EFFC0FAA5CBA0CFB66AE078E6DC8DB24" + "59C127F970B379E87A267C3A0A5E1672B5A16C93E8E239C9C3E" + "51A96EC777361D0583010D4A0773921DC48B63BA3155DA483C0" + "3D5C")); + test_hash_extendable(&nettle_shake256, /* 103 octets */ + SHEX("F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6CA58D5DAB38ADB"), + 512, + SHEX("D5D2074E7D45403D43D0FCE78C3AB81E2BD601A0337B163AB2E" + "2E11CC4F0E73BC0E41ADEAECB5CE2B0422EE97DDD18869BCFDF" + "9B4CFA9CDFF5DDFDE53B05D65B5ED250911B83BE8B9E5865568" + "5A8D33C72826A1EBC1F244A433A9440B24DCFC691D9A78F3237" + "9BD8BBDF4F8E2F8EDA7CA1CF74FC4E8C3C07349DE823980D9EC" + "8229A3C43BEA5FEB0BB8F25610127ED1FA1741F90CF25DFE733" + "15D440088C3523D9D5BE12431EB81E23EF5F5E9CB1571F08DD2" + "4A7EB421CAA74C374F7CCDCDDEB4ED57297222210FA4930888C" + "9AAEF06E36C78C43BF9196848CB07E1D941C719CBFB6AF8A501" + "4EDA9DF9B205DC905B28EF6F29E2C29CF457317E01BB34ACD8E" + "34C67F468CF41729BEE3532833D147CE4E5618855F28936D3A4" + "EB6E0382049614A5DE0B05B317240A6E091CEF8A26C7E13280E" + "02D19A6635033633EFB03FCD57AE2678C639B262F016647C61C" + "E5DED0151951C7EB1FA1E3BBD1808210A3D22ABA98835A686DF" + "3612AE6536D2180DE2DB5103E4BE1B2D74A8482450BF1B9F4FA" + "91861505F5739F64D7C8CB8C5A3A2F864161F9B495445A1F668" + "EB9A86E0C25D1BD0C50FA6431C4D4BEED9F53B6E918008B3DCE" + "F98B484161A8DAC12C642DF9278601CCD80F789B770F05E8359" + "495DDEF5D6FE54086827FFA8E7B2BDF03A33397CA2898214DE5" + "A36D18AC33EE1CC0EE0FC4416A86815C7B98EA08C63D23CEEA1" + "977D")); + test_hash_extendable(&nettle_shake256, /* 104 octets */ + SHEX("E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826DB923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A21691E1069413848"), + 512, + SHEX("8A80E00C325A49D17ACBB96FD41E874EAF00A0D141CB59DD136" + "3365DB060F20C1015929E88E0BA0589FB35CA348B3F02CB256C" + "D5FAFC7B1D1A7445C238167F325A2611F7C5E2B7ED44395938A" + "5CE501D6CF78C9B9560D8F84210ECA3AC12ED40954EA0C8EF36" + "2DE08CF11FCF47C34A3D56F271453BD62F74578F06B1C3958BE" + "6D87331D8128070C244900B6DDE1423B2561504156FBC045755" + "E1B591234960E1A44FA54CACB1795AD8EEAAD38FAAAC0A4EB84" + "6A18B42A526018EAC0A5041DD1200C4169124590ACF93F2F26D" + "B5D173608FB0B6C3C83F5C0B01349C558ED0E5851C9DE615CEB" + "684A3C9C663119444008DA4A12E9386C98E15CF23CFEEB2F863" + "2EBF15381D17268A5F92FD15D464D9E1F6EF896828420C9367B" + "14C2B7E886F42C439801E0F119D1086F2A99B5E402E786B8C5A" + "3B7902D2274FF1B5CB706AE0B5DA9CE63EA943B8AD8743C0AF4" + "CACFA6EC9A2BFB45EF680385568AACC518755B7A2C4ED40F276" + "E25BE1447F1131D064A5C54F3BDB80D4E6E1338108251B8294C" + "BE4D3F182F3F462B3983ABB7F25B4D9AC8A3E2F3CCA397148EB" + "CC154DE7DBA5A4820C677FADDCB502B6A67AF0DC0602CDE5BA9" + "83C7BE0235C8BEDF1916F51433D80AD87B4815C6C397A9906B2" + "D075BFC0F72431DA10F04AAE61545A62364F336754248606AB0" + "62799988E6B0D71C2DBF907E211C963A3823332D6ABF4450D31" + "1080")); + test_hash_extendable(&nettle_shake256, /* 105 octets */ + SHEX("64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207CFBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924EB57D6D0C2EDC4E78D6"), + 512, + SHEX("B645903F62E2A0394B7D98A526CE6C1725A03F4B35CAB927AD4" + "FC2831F460CA6EB0959BDC5D90BB37E1D0E3DDC6CBDBB8F61D9" + "21B7CC496D903A92166BAB4A436BBE6E9230DD0F91A6ED79188" + "9B67727338EA636F54AFFE59D52CAD1B0D26ABA8A29C92874B5" + "D6276369FC45769A3323C9788A7AB268081689614622BED3DFA" + "207A0382680219D24B2854EEF3024A34DE3FD4ACC827D52FF2F" + "1A4B40F1E957729609F8D3AFEF23A94D9E3EFBFA3E66BC1ED44" + "C426D27ED4FDA0B4BBBAC6050DC71D064DE236DD800D0E24188" + "EA0B1899AB6D0AC16986034BB1C8A21C7AD7F069E706730450F" + "046D5F9B3C066C6CBF98C5151E5B45D6B0F3ECEF0377AEE19D8" + "3941CAD4484AD07338E7DA24439EE38875498207CFD01349A3C" + "B8BCAB058C70B48827C22278667026ACCE65A8F643BDA30A3A6" + "FEBB5EB7B981963CF07F6FDF20AED8769C8EC35425C4366EEEA" + "26AB28BF43E7FDC8B4F762A2CAC06D10E1A8C6EE35BDA64C6F7" + "1CC02675EA4CD20B112B6E12D45DF6D37D83F04CE55DADB9F54" + "C8A68E2C76AC55AAFB1A3231C277AE27BF2742D08FFEDF08DF3" + "F098C5C60B59D2A89D2AF150B3FC73E399EF94B5002DC0AD109" + "7767F47BA07F442D4DF4A4D72E5AECA7B2A37899F50FA3CDED9" + "1474DA106FCC96B28D8418EA340BC983344BB58F244ED6755AC" + "342B9E6B00CB19F9AFEEB3135E0374CE803CDA44E316EAA0B6E" + "1E93")); + test_hash_extendable(&nettle_shake256, /* 106 octets */ + SHEX("5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA268CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20CD19E781AF20454AC880"), + 512, + SHEX("B15D1DCC49B25B2ECD567E1D0F46732CAD3F9559EFCFBBD1793" + "DA46A5D9BCFAD723E504B12B7C1B65EAFB9647DC35A48448534" + "4B9DEC5C378DDE04227F7224CFE6F06A962F380AE104146DBC2" + "425FEE1D7AE7305E2D2C4E2F91D9188BC88799B730ABF3647A4" + "365562ACDA20CBCC7DFDC5C6DEA8DDDB20443B9253466E4E215" + "360F4066D918D938FDD204CA826E4A3358D169FB34410D45F8E" + "783E7FCBF97A9CF0168E8EE6402C8B627DE5BC4DFFD8AE2C880" + "7F863D10EDD57503A99A46035173A20DC10DF3E6BDA62B518E5" + "8E94E5624659890F1174B3B7D798206691D3FFA692494829382" + "1616184E160F237C1241F11779CDEB4FDD858B73F3DF45F05F4" + "3BC81E0EAD584999DA04F71EA4914F8D8AE17DE086CDF69C31F" + "CCB48B528781FBF8DCFC710AC421D28E93EA95DB4A6D38C1D47" + "C800FCB3F816E36C86D6B3E5D6BB31C325C7A0DCA4D395867F4" + "36F077C6711BB96DCBA9A6DEC6318FB9BAB829AE40BF70C5514" + "6B87D9FAD9A839CEF462249BDC49B8022926E3C664D66595231" + "23A6EE980B69BEA87437322DA1DD6235A74163968C0994AC0C2" + "1156476D83F2B8697A1B510795D936DBFC2CFE67ED401CE708C" + "7531F1B4DE75E8506DB082FD9B3B24673938242FFF4F30BE97C" + "AD8ECD2F88BB5F497A8F154465921C9469B70FBA1F45D76C9A4" + "0228A93D67836CB7CFE2F25A5F56C216084521484A7224A7A97" + "6323")); + test_hash_extendable(&nettle_shake256, /* 107 octets */ + SHEX("03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666FF5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FEBF0FE3C32C17AA188A8683"), + 512, + SHEX("7AF1CD3572930B440F871CC3388678A1C612D6A590CD2B8692E" + "0B96010AB4E122CF856925DC84AA0A87C7FB1661C5C74B08114" + "88D3D486014E81B0D29B73450A0670A6F8223DF95B542590B3F" + "6506CC18949FB6593F1A552E064B4E1576AD7A7CF202E0B8F90" + "EAF90147D44EF16031D390940DA5D74C35A269B4ADF4A663584" + "292007DA777B04C15C03F7635BEF56C1CA807D1CB3A8DAE8218" + "821C44C7E6275CBF64D82453F764B458ACEB881816234494F71" + "7F5240CFADDB3F11C1AF02B269F0F76B9DBC8ED643FB3B7C9F8" + "A540A453C1EC85ABF9E8417B1E4DE9DC65181EE32802ABD6170" + "A581AA2DD01188752C73D406461892D0D0909C5D3FE0ECBCA3D" + "28F65B905A2DFF142E61CB088F9086D3C492E73C0EFF3AFBC37" + "216EE98533B236406D80797933E54D3C21AE6B1B81F459FFD7B" + "8BD1EB872FD62CC0B95F5384668A1BF91A474BFB97335DBD8C4" + "761F3BB936E2032365256B534F98E9F4B3C50B4034478EFA268" + "E9ED9EB9864044E90DCEDF4A2ECB9E8617C4E4ABE7CB4990511" + "43C30BF73D397836E422A2CCD222A299603A3E4EAEA9BD2C3D6" + "4A0ECB3CC7C0BC3D867C79231BBBC8C2ED4212EDC8B25C04C57" + "E9A3EE8C103AEE4AD6AF025016C1A177288F4A17FE20A2E210B" + "24A7AAB63D3FB4E687ED3BA2BC163F17C9067D07C18204D0AF9" + "6A41CDF5BE9C6B89502D7CF1283E82410B11537CC931443076D" + "60CD")); + test_hash_extendable(&nettle_shake256, /* 108 octets */ + SHEX("F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E00A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE04292E937F21C005F17411473041"), + 512, + SHEX("6B1B8AAC47F782208F50AF3F977EAF8F2D69FC02390EE17BF17" + "61ECB73D1088D236A5345380B6297AD1FDCD5117D16A3C410AE" + "EA092D9892AE95C7B977930655C75CF7834C101F69D2E33A1A1" + "7A489E040C5DB3F83A5216ED5778D391630D17405EE0A96FD7B" + "834448FE0BC61CEC5014A6AF9B0F85827832E7469869B087249" + "7033822D3419D43379AEB6C31406AFD1199ABAECF3AC8E2546B" + "9736F8C4E399C8698B674DF5CF6BE81C73E52DCA979D3281200" + "B9DF8D99BB6C65A7B6F620E1E4E6538A918C99CDE6CB33150F0" + "896BB75421B8265AABC241C02D93E63476C351396E5B86DC66A" + "05C74AE2EC87EA1D175D15A12ADF18F9792970DE3B9E30890D8" + "896309815D57AE238895AA7E76DD6A46019F005F193C737B452" + "D32649A8F39B1ED00AB8961A6EB04F699EA62357B7A38C423BA" + "9D421529266459EF292B324A16062538E8C6550F822C2C14081" + "6340F907D5D10B563198BB1539B82E5BEDE700F7FAB66EB8DA0" + "45B23035DECD3F8DF11DF98A297A49F5B896A3536BB5A3E17A9" + "DA1B266EE18FF6D4A6E59AF619306BF30316FDCCB7FBF580091" + "6C18832F4CD21659774411F105DED35DE8B0D4B0B54755440E2" + "6230E519B66319696E6ABD180FF5314EE184D3B2781F338FDD3" + "E3935855F4C8B4021154EAFE67497599D0AE393A516673A970C" + "FB9B7058826D7F0FC29F3ED34ED31F45790A63E5AC7918A4C3C" + "B494")); + test_hash_extendable(&nettle_shake256, /* 109 octets */ + SHEX("758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D896762992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF612F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D29F695815D866DA99DF3F79403"), + 512, + SHEX("F76B436C25E0BF2D75A0DF0152D04117ED8DC0AE55B13A2CF83" + "9E41A90C6070415EB8EF70A90BF205B0BB330435ABB41BB3329" + "D015E9E56E86418BD671D0375E3AF8056EB882AE4191F82E062" + "339D5505526AB42BF6CD54F0D36251A78EF274CBC797B89672C" + "A224CB9B94E36648B362338D4981821B0B388E08CE97253B5E8" + "C776E9B3AEA33DFC3815B5929A3800BB83543D42E0F331C264B" + "1855AD3C002BD80D035932268DFE4CD6600F2B1F215F1670D7A" + "4512E89C3D1509271ABB42E2608D7B4A900E00593E0509F7C88" + "2AB0008AA83F5879F30D95A319A4058987804E5014212D415BA" + "0E1C2407B9AA7B80945CF460E60609AC885BD7D639C9BCC961D" + "6C32A96F041528B64747B5AB9557971EADA1EBEAC47F78B3992" + "EEF2BF2806213952489934E7F5410602ED0987D8470AF3728A7" + "F5BA326B77835694E32675E463C604C18DB4E4F5E1ABD056689" + "66B8D102172E232B4EAEDB3C73E7A406C36DDC641469350D593" + "336E9E5C8BA3C246154BD3CAC8E14CD60C9EA724FF059C931B7" + "78B00A3C6E1016C1C41B3002F01D937499518A969D02AD08B5A" + "B385A60CF5D018EF405DF9CAA63BC49015407B04AEBBE02F206" + "DAB67E72388022D99D5BA4F6D57695186873276770452D60263" + "5AEBBC988B7718F6EE99F9F05A6028E074BCE86FC134ABA4CB8" + "2E1529ACC2E50E53F466B9B38FD3FC7181163D9A3B58F143AAB" + "6297")); + test_hash_extendable(&nettle_shake256, /* 110 octets */ + SHEX("47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D33109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C21BB15B447589E86E8D76B1E9CED2"), + 512, + SHEX("C870CCF74F9A979827E1D0FF8E1DAC93A2E0F10A0BA7A4DE041" + "853915DB7D86C65010DB41421201025D3465FF1267EA5DFC8E9" + "0CDB4D933FA58F5A5E830C646A74E5BF807495D973929CD2D47" + "63A0615902B8DF2D04A9D2553BCA94696DB2A332EC56B5612DE" + "10CBD2E117AB226769A0F5E12E380E890489C4CEE3156B4CF1D" + "4FA2FE55E20DB06D84DBB0F9833A3364F64481567C74049517D" + "B8D75F6607467EFED0D8976ADC7C7F265371A552767BF6DDF87" + "F88DD1BD326C46CC7C9A895D1D88D4452A1D72E7ADBFF6C02C5" + "114ED5799C4E75944294BFF16DC782D529341BD289DA6136E0A" + "4223F27E886D8AD057446E6BD41AB8EFD676B5084084A313E0B" + "BA30C1DBC3C461AFD8B5C0EE02AA0D1BFD0A1ACE35369F78D55" + "31286FB268F94D4EF50BA6A502C2EB2B744651B71B59974202A" + "8088780CDEBCAF18AB8CA8E5AE928309EFDB5D5A639D7C83BEF" + "87E5AAB4D403F7A9D22EDD1CBCD409B822F33225F05AE21C2BB" + "E9E7A0B116B502DA93D6547E3931763F4FBE1507DC031CBAFDB" + "08F4492396D4D32FDF8936D0BD082D45E70B3CDF8B807D974A7" + "0BF17FC54A4A034BCD7F5DDA8C1002B92A641DA7E717D8C742B" + "7F22FAB4918B1B3929C2CF7533666121184383746FC5FBB06E2" + "796EEE83E6387DC610717FE4C7FF316D87367F6236E36524CF5" + "25691D656F77732B4989D87FBADCC67886E151F7A61FC9141AF" + "81B4")); + test_hash_extendable(&nettle_shake256, /* 111 octets */ + SHEX("F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618AAD3D7E886DEA4F005AE4AD05E5065F"), + 512, + SHEX("7AA373D1AD451F79A4B17BC9D3E2EC4D43457C6251E958E44F8" + "D5EF360EB256CE5ED5082B938095DF2EC30DEAC299EEA526894" + "6CC240AE0CFC0B8565235A77BED4B58560F111FA5630996AD51" + "065A6A957979344C26C0FBC9843251B64C899ABA1DBE5124A21" + "A604E706A50478DB8E93F239CD11D53B2F168A946E979AEF98D" + "6A3CEAE032713C241B8176F1F32A7F132ECECE3FC57309F6F0D" + "C9876B9327C4C03C42A74EC216E0DBE026DD167EE94FE8B0032" + "F9BA033ED3E6BEF8DCDDCB288CE5F8D1B4DBC01A5BF51FD7252" + "06283C7028D8013A170F0DC4AB107A442C95B0214A71D3BD7A2" + "7CC48CABE6BDE4A5AA4698F56258E175BA1C6F7BE6D7EE60CB5" + "BC4926CEC0D94A422554FECD2D7666462E125FA3C2FB84E98F2" + "095B119AC492EF8EB3666A3BBE51A6E4CE3CFD1375A21D1570B" + "E8A1CD22009E8261B3CD6F2E2085443A6AA76C91A349A7C49CF" + "5F477FC017AD18439C580DBAFC94E96739732DDADF4829F9DA5" + "FCFB6851AFA968E208D4090AD99F61F9657EE958698FDD1DD5E" + "F21543D238D05C4C604E26D21DCCC8C878344EA888F12737221" + "8A4511B803E3E6EA03CDDB2574E636EB40CA242FB31698290EB" + "9C017D326A35D884A88C98B89C33E8656B717DD734223EE76B5" + "EB147AF7521BF1F827827B37A6563E601AFDC3796D8DA4D1084" + "FA462CD4AF969A800F522375E2C754BF20104F13A95FF2DADA5" + "674F")); + test_hash_extendable(&nettle_shake256, /* 112 octets */ + SHEX("58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC268A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7EAABC35F5C2B0A0F2379231953322C4E"), + 512, + SHEX("A1D00913CC206BE2D1C38C22B6C732A05368C8AAB30865BE534" + "3BE3C73AA6B7E8AFF69A544257DB1E6B6677E6CCDB6EB358A0E" + "D096BC9FFF0DBF89B1E5345037864132FA7B820DDDDD5A88B95" + "3CE834F1AA89BF56FBB02670DFC9FA29892FFFE61DABA419585" + "0CA669F6E4AE00687AE4AF3A15B27A4E489A4AA01AE62E23FA0" + "12CFE38BB601B343095B5DA20CC2B48352CB245C5306A2FA9F6" + "CFB324B6DEBDA6513221197B24EB1EC2564E2527491B539289E" + "AF593912458D835E3F8F46E058CD6B3B85D0833DE691A1E08CD" + "6742E7B2957DDCD0E04858FD64987C66B6BAFA7A082F32D5158" + "52E931A382792AB4FFE17B39D8918CFF002CB01C0CB1E1FD32B" + "B8B02DF964752523E64DF6C74B8442719C3D7DC75CE9DCE5474" + "AD6F235280CBD1F0268F19E695549016E948A7141FF4602330A" + "096C67699B29DDBBB8F6600770CBD0E398B013932B04526A055" + "B51D92F0AE8535A7E91936BF21AE70368E09005B14F3FD9E363" + "5F35960D89E134E9B1447971B0D1CACF554845AE74CD93F73FA" + "FE94189BC22D1DB9815A65B414DDE694FD053AECCE3BBC3CE73" + "62F353A9434A49FABCDFD7E3CBE73ECE064DECA30E4BE01B113" + "5FF6303E45E8065EF415BEFEFA948ADF42DCEF4520C2772C8E8" + "438B60113919975CA0DCD2798BB026D4B59D3904FBCA4998533" + "ADED822B15CCC86457E8507AAADC7E3EE221543472A87B730F4" + "E5C2")); + test_hash_extendable(&nettle_shake256, /* 113 octets */ + SHEX("BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE14E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E62BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A159388D5C3277E227286F65FF5E5B5AEC1"), + 512, + SHEX("E28D36BD926B9E8C105FE0099CFF1957ED7ACCB9618027421FE" + "BF9DDD3129F4E6713376B3B7EE710430EF381CB12B831C80C7B" + "1B93765F7693506733A75AC0E8FB5D3C30C6F4DC735C4C35991" + "61ED02F4ABB5CDB174E53D93D91E1321EDFD79C0F63C92C7E5A" + "253C1B8C4842F053CED0033405FAE5F16E2DC30024A6B1663A8" + "6829ABFF72DE6F2A91C1CFE5955CFB584F8C65B9334590C9C46" + "8A9B0FAC172792AA152F7DEDEAA4FA22FA7BA44131A1143F790" + "53C7E2CB5AAF8ADCCB6AC72300892F792590BF5A1A9745FE593" + "4C712CED382A316C487EFE0E6F146C8A562E6B40834FE20C362" + "E495FE9E5CC871EDD2D61361492EE60CEF26ED38B4DA0480B4D" + "FA66F5E71D44F10159016093841E02C34001800C5CDAAD0F9CD" + "2A3144911031139CD6C54443A1D82405921B86DEB03E8F0C1EC" + "D58F63B88944182F034BD07B0D021EBB7447F660E66BBC0A821" + "C7852D183B806F0855AE194D80073280F3D07C2DC03571D5C6D" + "0F0675AFD58ECFB211EA27733E870A6E86AE5108D8C1C3524B9" + "9648541B61935746310FC6E99935E7C9A5D144E0735F2CC32B6" + "DC42B34679052203A777AECF26D9461946699F834940BD34F8F" + "CAC7C22E29B2B0CECC60183C44A5A63078127C10C1C14112226" + "520CEBF9D47A7FBD4002AD482CDE289E7DAD3AA891BBA0B6B2B" + "2FA378D26D629B4CE428F375BAE3FEA5E5C6B048928EC92099F" + "3C3E")); + test_hash_extendable(&nettle_shake256, /* 114 octets */ + SHEX("8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488DA73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1BD168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65407847DD0DA505AB1641C02DEA4F0D834986"), + 512, + SHEX("E3E693B2585C32926882C97BEA160D46ACE5ABF0FA47A9084FC" + "FDB22DE3C65F43717358C2C2CE680D6D132443D478478A30471" + "1BE3C5795F3EB0A7BF043CAE06E84443EB599DC259B3CE1F418" + "4ABF1E6794556E9F2ABA99E5363DBC7E9C2C802976C87FDD7E0" + "E3884B971AB33DA6CAFB65CCABD6CE492A59D359BC17D221638" + "1AD838989DE9FE82245CE07CCB1239FA5A3D664D5B8F2E3410C" + "023066AA47E030FC73BE5EBA27D83D656106401BEA73E36CC09" + "F8A78BC0F4FD7C4B2B4E7D36F4E3CC31867D1EE207A7936FB3D" + "5FCF512669AF63B9F01E4188ED39B1142CAF6578F788B53C3D6" + "303C25C545DCE3F0B037456E3E7870392F43051FB2E8FDE663C" + "80350F94F7A52D511A56CC268335D1ED24C9948C6E0426AEDBE" + "1E082C0F075863E3DC0269BE5C83ACE9A98AF1EE45C79BA263A" + "A81902E11F880205B7BBCDBA54F766150E744BD1E2C97E64B4A" + "50A179B940C01A7AEFEA23E22DC3443D655E31FFAFA67FC5557" + "27C8D02C3FB3DE7D6C13438F6323B89B7C975FC5B90D80BE8EF" + "D41BBCE90F636CA01FFBE3AB39AA0F43460F33DFA492718A411" + "711E9E7D38EAB956655314F35D36120237BEA48EEEDC5492560" + "90DDEE8AB4BF2669131CFB590C65BBCE018CEEA3CE349A8CB83" + "E3518CE8F353EB07F9007600C206C7F6B6B1DA24F1A263F0397" + "73EF5F99FAE6D9B2B3160199F17D49AD69D51BF66915451F43E" + "CDF4")); + test_hash_extendable(&nettle_shake256, /* 115 octets */ + SHEX("B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD4799223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A7630BE61CAABCA69280C399C1FB7A12D12AEFC"), + 512, + SHEX("A178F3B574A841C88EF21B6A20A100625334F4FEE5966AB2164" + "686151AB9FED082CA4A9115A0B5F099C5DD4BE4EF1082D53321" + "2BB862F084225655D8856E29F279418DE6FB723ED15C341CE31" + "0B53E695C08689F776E4474FB6DBDB7DA46A9A2DFB7BC374AF8" + "6984E1E10AD9D48B744A5FA98A0B161738468E06EE4E836BB71" + "8BEFA381CABE18E9973FF07DCE1920B19DD797F84CDDC52DBD4" + "9B4A462FD1A12ACD364804A290BEAB30AF0376CA098D44E5D14" + "1D1636F6073569F2CE7213F6407EE376680E8D676942211A9EF" + "B756EF9DCA40574AAD2084FAE0B617D727D7951C1321616F265" + "69D96DE5ADA8EE101BCFD2C43C338F8957DEC234E23F5A1A0F6" + "63EBECB98C35102DE1C101B99E8F42BD8EE7C528B1651099545" + "F7BC9BC315C8861FD7EBF26B97A519931A63E0B06A73B14CD23" + "65383B44A2107FE1AF0998F1574D9FA8818DC51D642240DBD0C" + "104E89393B2C381944308D828720564763D3BFEE221BFA99D97" + "6701717D4214CCE2FC25763C1B25EF67286BB7E497593B1A077" + "912E3AF76993A4E20D4E8ADD7AEF4F715E5F1C8BD68E8913D9D" + "8057447F273FC41F70A0290A5EBFDCE46209090032801F2CEF4" + "4C8015E865D75759C7B2117C6E8EB6B57398B992B0E073C1FAC" + "374C819B7AE16C464AB5019A45E7A6AD57B75380FF42D35339F" + "23436A0D58497F7A12E4C3EB34816C4AAB9A2D3655079C12E05" + "EA36")); + test_hash_extendable(&nettle_shake256, /* 116 octets */ + SHEX("2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183FA201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3205AA1615DB44057DB991231D2CB42624574F545"), + 512, + SHEX("11C57A7AF45809863E024835F2A86BCB81763412DBCEB53F311" + "53730FDFDC32A8ADBE3A8BD6D4778EA33AFC063D9767BC9E3AF" + "EEA3C78FFAF5FA3023093C798F39111A182516218F0BC78C030" + "7C75EB212B0EDAD184500261E00823F423D84BC2DAD3FFC6C2A" + "B675A24CCFDF0DE5F669D1EAF91973071D50EC7D2C0CC4B6E42" + "552199CAC4B65938F7E704248CBFF272C647E953FB9719FA8AA" + "9C319FCC45E4FAD0752E7416F9DF0063F1A8BF43E316533C046" + "C4F2E7254A02FEEAEBDCD4DF19B01C18B8DFEC1D291FD670BA6" + "D434B41EB6068A365973082107ABD6DFB62FD428B9B183E1FCF" + "CB654A6C7A55B91E0615658529FA4F6178FA4F5CEF329376169" + "AF143B137B9B81B273796CD26CFD8372AC3184600EBCB2DCE06" + "AA7F22C055A7B622717DB8E15571ACC61D94D8DA250FB8E6354" + "9528CB53050322520925FE7FCD065BDEF0EC79AA38F1F105348" + "614A57605C94BCD50DF80E692D1117C13BA3563AFB44E91117C" + "9F6E4E7FA35397DFC58FE7F2DAADCDFC756EDAF5BDA38D6E1EB" + "819A1080CF354F2AB779F63E2BCC763C8AC73C6D811AE2B5252" + "E6FDEC79E2E97D8971D1EF39E2A144E84EE8087C673AADF3C46" + "C4E6C1D9832E68BCAFF8C1E4DF1A5454D3A677040413BA32BED" + "431B2F7D3F356CB060431A7F5B1B6CFBD5709736A408EF6CEF1" + "B455EA74191F09FEEF230A1A0296807E8AB33403A9E3EA1650C" + "D2AF")); + test_hash_extendable(&nettle_shake256, /* 117 octets */ + SHEX("DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D"), + 512, + SHEX("8E03C6B48B4E91BF5364CF9311172442253B6ED58B95D147A46" + "74BCA639D75820FFE93509AB08FBE7EBA70544A9331C3BA3347" + "B0B44E0FE36F9B799963212514AB2E673133EA5D9CF3181FFAC" + "7F79475971369F7A0188F1A3687792258617C7521CF2EC97924" + "1D8E9345B9205243A1CDA692418F8855BA61B57C75CE8A7B2D0" + "19880D2C56C61DC0E3CACA0CD632E8819DCAFF9336498E1D573" + "C16269D2D56509BECED579C80C3F09E4165081EA7910BB8D13F" + "0373FA802F498AF190EBF8D7565A93A771AFCC8C417EA460E67" + "F4AEA898C73ECCE5B17EBCF6EEF8A6E31D160038604499B3996" + "5212588826D1F896915500497BF4F949E2CCC4C3439315E7AAC" + "C2904A77AC0113A2AEFE64F6D625A7EF547E99FDCF9374300A1" + "CC15373494BC1210B8DD5B5CE04B190A824566A9AE4A02DFC70" + "FF8DF3191528A91E97DAD97057AAFB0357AE7F509FF7E464675" + "124D0D23399AB6DB37B80397BCAAE48B8520860B79EFD72D955" + "F53611E8D782A28C729F51D3174850E4FD61A4328709DE8170D" + "1BB7B5A811BC3E0FD06F20F03CE1567CCDC5891673CD8E65947" + "2015EE6A557D89B104E22E70315B40701B49C76BA0196F68A92" + "55EEF2623E531D73D151A7F321409BDD8183CAAFFC18C6DD63C" + "1EBA47F07B5B3D404C2203373EF356CD26D89DFD8F5BA2F7006" + "46507AF3CF63DB907F9F70DDCB125259F28275CE8F41B63D140" + "58C3")); + test_hash_extendable(&nettle_shake256, /* 118 octets */ + SHEX("42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F3120EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D27240BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D0993BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7"), + 512, + SHEX("845E0DD7FCEA5E19E5DBC6CD03D58C2BAC4B81CE809BA7D0C75" + "CB867DA6ECDC9CEBCA177AB9C3273C8EAD7B8C9F571D6D1D14E" + "D0CAF6FFAAE4F1B7EBE653443E9BF099DD54CE3A021E0944BB1" + "F8B34CB8CF199ED9B23FFC94E2FCB6FBA03D50D0C84C2C943F1" + "7C1BD9EEC662420EE42ACD5C5F18223B92AC269B320BC190355" + "0C1D55B7AE5804EAEB6F67C57537161EF8460E45E34FAB823AC" + "0EEFA232404C7907DB88E4B1D74AF7DA5A2E38F82F96A86A506" + "DF1E717E636AF1FA85BCA3259C78FE7CDE8FF56CD2461997FF8" + "D3B31BE985B73E4EB0DBF36D39923CBA9982870DDEB52ACC02A" + "97CAE8688E230364D5637170C328175208F8D225E2B19289A29" + "205A9568F426FDBDA7BB04224808B2F21E4E80E2F18F4E79065" + "4E0D6E486340464B6FA48C95F99A4106E95A6A378458B863655" + "6C700D79FC45697C09A84D2EC41BCFD560F0A147ECE64006071" + "3A86516ECC642396E16A63203CCE11809E7DADB5BDE418348E9" + "1E30DC65E66242E29B69B9CEC5548D4BEF3E15A6CD4937C492B" + "2F0FF83DD3ACEF224EF66AA27726161A418820196738EBD9569" + "B49D51D1583129AFAEE4F9128C55813151895A046E4D5B4E7D1" + "695B0D47BC657EF7795107148B165D0484F346C9C49A8DEE187" + "E3C1F28A6D57FC3B7DA49042B37250DD02BC9807FE1AF57D5A3" + "1664C90D5371542B28965E805224651F96836147E0300C2A938" + "639E")); + test_hash_extendable(&nettle_shake256, /* 119 octets */ + SHEX("3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6FDD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F46176EBF044C4784467C700470D0C0B40C8A088C815816"), + 512, + SHEX("EF1A40B1819AC20C49EE1F31E36B853619C8E960DA1A5BC8667" + "4C5720C0F255E8099CD4572D09FA5B8F035ABEE5FCA1725F988" + "954513E2E7FDCA92A55A757145B0E1A223A7CD4E0D18D3EC7C8" + "BB33221B24AEDEA4A08F01B2130D58E19570272456697DF883A" + "B29F4D4F86DDBFD1D97F1018277F84FFB615451190762B9B725" + "56677591E6EBA3FE45F8769072E234602E222C77DFD8CC095B7" + "3D1B231F3F09B89C2ECDCB741FED58085CD763E2B016623BF23" + "92631984B6E4D2FE558B7F17973A8F58BE66D73AFAE5DE5C5B4" + "6A6205E15F8A7F5B3ECCE65985EDBFE4C86D3830E642C99E44E" + "F35AA55B834696DC519635240D6A693AC09CB3D567105420449" + "664EB7B6BC367C482CB2682B1A34A9A051470EE3DAF8045B0DE" + "FAE0EF10581830A1C21F75045D1297C9EF4B874E9004D4BF86F" + "D770B820A9AA1FE967388215AAF00DDAC57F9B3B9CF0A67FC81" + "E27565F1F3378A620C9A99B50AF301359E98D31EAD034DCB033" + "4BF45D3CECAE0A95E4F0F0D60B0725F97AAF0EC1C4EA1D7D062" + "D5B13A69B68CE5FB382FF7E25A219C7FE8CD1D78B47660319F6" + "EA04418970EB3B5FA6778D84EBD4377C8B3DB2632CB616631DB" + "82CF68CC4A03A44768B082F8A5FB606FBEDE8AC366B9D0813BB" + "58017098A9B2D5BAF9C5313451F7FC5144F8A89EC34DA3CDDAC" + "B079A963BAD7E08A4D68DE34612B116A0587731F4DF81355999" + "40B3")); + test_hash_extendable(&nettle_shake256, /* 120 octets */ + SHEX("D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB1910094691ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E653441187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840"), + 512, + SHEX("B9A11246D631A7C9F33911215F36281030AA4959E598F2E3660" + "2AD66E236F4EADC9E87A662FBB5E30555F7F2048571DB711D9B" + "28389525DC1BFF502C1766BF7EC7A26688CF30EAA16A23D00BD" + "408E11756BF0E9DC3265ABED5B83643260DA0F7B58919078EDC" + "C9F62B2D14029657426407CFE5B514E17410F3351C401EE163D" + "1897525441D6738ECCB5976C16EBF309ABE15FC5B15B3623385" + "16BB8FC50DC69EBFD5E3CFC7B79571C7DCA79D57970AE090454" + "7677B30CDD7D09A0973AE65D6E00F3F9205BA0D806CF3DDB5AC" + "BFB5AC1DEF3AA8766E4921B42DF7B9E3AD5299747300C9D2640" + "6CF195DCA47A673E232454DC80031FDAA0E3DA4B66DA9DF72B0" + "40893378AEDD6911D35D3E007828EB749BED4E16657E9D33867" + "E0319E6D4BADA0F16C466F3B1B8502BDC2584BCBD7128A976C6" + "C8BF2D553D38AB28B982802D1E626C47B5EE08530FF22A9852A" + "C113C560DDEF6931F6E6145C3E525F5E6269E7DFCD4C0517C16" + "884C681B1BD78D4A415039439BC5947C65CC35BD52E7E2D0FE0" + "C88B2C92C903A0DB75D5BAC3D3D6A5A323CAEE0E55C61E8BBC1" + "113A7D8AED0B031020CD7C50346B2C9EEFE61C20C14AB947CDB" + "7B3D153172D5F32BD267B4D77A7606CFB5080058F56E51CE9F7" + "3E7D75C94A46A4E917BF575827D37773F2F9EB5A552420AEAD9" + "8DF822A7EED212538E2B27DF5EE2188561775BD862902F3DD19" + "A9C6")); + test_hash_extendable(&nettle_shake256, /* 121 octets */ + SHEX("626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F21B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC06624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25"), + 512, + SHEX("EA756978CE1BC77F9C84A151604F37CED854B00328DF4A486E9" + "626C7DA6098F1A6380EFD8434FA59B037AB18C3488B404C03A4" + "838A9E6C60B37C9348AA2CC3E09F016B1F07FED8D4A0B93BFD9" + "121B4200A706887297A91AE12E1B385830536A88AFADDA80D4B" + "14FC5CC9C49916CCCBB47F970378AEB5EA6F6F583D131E53AA7" + "08196F749644DD153A3177F424921254A7FC92CA5CA241D54C6" + "A1E565298D2BAFFCB173D22160241A535D34358FD0B54640CFF" + "9E04890BDF23BDA5DC770240FEBB778D1D0B4B3C98CA7AFD251" + "2596EBDF02F8E1EE5C74BA26A35E1482784F6284D0D5FA17CBC" + "695508026CD49F30D82FE5819378DE13150805555406B8EBB6B" + "BB8DEBF55A28B5F1350EF5AF18DAC71C9A02E76054EAF28E2D1" + "259EE670492E75E1B3BE45492D6E3BC5096BA2952E7B1E97DBF" + "5E18618EE7B197E6FC3B0A31B2F071376F6C55CEA08BBDFA37C" + "F676A24DE82F23878566B48269141C17C7304D6252952158078" + "B481FA4270C2DD631AFEE7D7518D1F1DF43B9841F10871D3B80" + "E4680DBB89CE8C4CDAF4E16A4892A83F927AC7E4EA692C6EF1F" + "E6A6B2FED3C8393A5100DDEF4B56FD158E45A95844E2195160C" + "3D3E02FBF51A715C0117627C783D503CB241C636DDE3443ADFD" + "AD82F5D9226D49921FF60788295A47B0D76AF43977FCAFEA4D6" + "1DAD09E2318EA16E32C44B14AAAB6224193C3B9EEF105057A2B" + "AE72")); + test_hash_extendable(&nettle_shake256, /* 122 octets */ + SHEX("651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA19D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EAC6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940"), + 512, + SHEX("609D7E2F634D0457E311972039E1645E66392CDBD1414D5A8C8" + "39F8B22618AC73BE81A745B9E2B83814A527F78D588119F7464" + "CFB235E56D9E2F794A5BD510008689ECE3EE818707BE101A3B8" + "A5E1211E3116AC0E9746F79A01AB9DCD01783E961C316EF4EE9" + "08CD69C7C2B0E3560FB6DD5649896403D07F021539F8ADF22CA" + "4E3535A81EF643AC230A0C94913E9584FD8AF77926360D280FE" + "CA2283F8097DD843D509C5E34A9FA8B02BBA9015753D3F728AE" + "F7053407A90DC48F15EA272DF1F478B967DA4C02C8D4F2903F9" + "A98F90CA1589BEE5590195E0F6B24913641C2FFB42DA043B454" + "8D82F8F0F580356E9946022B06DDB0BDE4947D4A25767C65D1C" + "A02148954D1F33F07ED0886552C23286696067FACDF37B5D468" + "B1A5F29126A2805BCBA687F61D920C53B8346579EE0D312691D" + "FDA9E53B3A0EBDA1CE213C78DE4CDAA3C5D9C6D5A4C66A5B532" + "37A7E5D80E8C1DB49656E28B2DF50C02E9BC580A62EE5E6F72D" + "9681435BAA70C0B51AFD2CCC109D0D45634072BD404964FB44D" + "2107A68E1A9CD60E63B847EA9C75EF14D19101E391D8F80D05F" + "6BF0966C949DA6D9C8E2C865C0468C825E29BFB9CA2070518AD" + "838A6B1530723F6261277EC7D1291104049503198B6C3B95D1D" + "0EFCE786D5982F6D0120D9AB2D1C0DD9EA89644103442A76E68" + "04A57B54FCA199E6D714576D631422BDA28C2A7F8838CEFF879" + "E0D3")); + test_hash_extendable(&nettle_shake256, /* 123 octets */ + SHEX("8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F"), + 512, + SHEX("F5D0630D6BD21787A4101E2287550ADED2C2BAEB0CA91D24CB6" + "1EACCF83B0D15700C6A95E643D8EA2383929D23DE5A1819EB75" + "71F38CE173F378AB7275776A771380443B0CC1CFE1B9EFBAA85" + "79FE6E002FE75B80FDC73AD20C727B003B6281A8BEFB7F7CB25" + "45F42586AB879C9FF523D6ACF70F24994342EBADBDA27D3168A" + "755C2DFC3C99360FE377C8A19F1465F6157CFF76A1D7C8A6FB9" + "91058D582D5F2E19ED583136320C4DA569D9EBA4692E0BB19E6" + "20C600260BFB0C95F7A8FA4560B1B715727CB04A8D37410DABE" + "2ADC5CAB24465BBFB41AEC1E946BE1C50ECA676F47EA99D217D" + "68F6B8F3536E879FDE16A355E71857143F7D07C9A207F4D61B8" + "9B82354F0A0273AECA1361C3F949EFC2A45BEC3933E8A6E7A86" + "E90E0EFE5D11F6A20ED9811A1CCA507E33CF47FEA26D7E67FA8" + "8D374245B1A24D8F5C584DAE932BE1EE25ECC5EE61D31111A3D" + "1EEBF220665EC401E28BB85B93D615B64EAD0FEF0E6AF725CA5" + "EA8454B571A784EF95A020251FE236952D130692D81702B16F8" + "DCF03CD82A809877B08774635A4859E1A516E9C4135FB415100" + "359CA6DA69426D4139E90F00EFCADD155F85A4AB1CE154F8CBC" + "84EFDFA7603FF48D5D1EE94A4D27DC9A450E35C60D9CF43594C" + "9182B69FE9DF540F498C5C92DB68065F2ECDC52EE7D22736561" + "FA617970375F6EA3D01FF39E2E22C979AB58DF80FFDB75B4258" + "F49A")); + test_hash_extendable(&nettle_shake256, /* 124 octets */ + SHEX("53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D69688F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C531564D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E947CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2"), + 512, + SHEX("F3B73032FBC450B21DB7C6C263ABA819ACCB297B724CD95C552" + "80FB7F4E6A5100181FDD6E010964C62FC51C0FB540794CD3BAC" + "D695A082B20016E1BE1F8FD89E77AADA0747AFAD6ACB2F963BB" + "476F1B515CC0604CE5A7B18506BFEB875BF483189D268255146" + "FAB7B7820A26DFFE97C737A7D5BEE677524C4B64539CE760CB4" + "AB6D03FBA155D05130A50D5C1EA81873C8A45F1FB83C2EBC11A" + "2A1BDDD45AABBCC572D9E93611C4A1429B802EAF44EE19A4172" + "43C069C99825959093A9E0E5BFF186C757A7270E33D02B81768" + "D94014F17EFFAA3B2D92FEF370E552C8A8EF2B3557C2F930B7C" + "79E9F6C0573BFFD8585000954D9264611E3D6BB305B08973D05" + "83C7C2C5B2B0B5AA1B0ED46877FB02646472672121A60424194" + "81D4A0A5EE001E1E067F6A7EE1EA4B880D00F7815FA9658AD9D" + "D643139A37B3FEBB46585A2A74BE0EC2B8BCEBFD8F63672F2C1" + "F213511E611C677CD92B2D6C4E43792CE3709AE1CACA3103F7D" + "267940A0CA5868AFE6296458811BA67205A5BD4B27F96573F8B" + "88F8DF2733B83C420CB2015DBECC6E0146657CDAE3C7A2D2DE5" + "EAF8BC9EBD0A7FAB0FA37B24206B6118CC56087B0F573FBEE9B" + "D0C4B70512EA4784D85D8A89E75E08F86D204A4A03D4C247CBF" + "9AF7C20FD532A65D0C89311246CB572C77A35CBC9C65BE40FD7" + "EA2D41A3F5A4AEF0BE01C4DF6AEF0190171932B03EB960172A3" + "8101")); + test_hash_extendable(&nettle_shake256, /* 125 octets */ + SHEX("A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301FB4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E"), + 512, + SHEX("FBBA34F9B8B88C9851E1B6A8613641A26E5E6944788449E7F78" + "C66F32AAB088229599E67B048058A2BB6713C84033A2177B563" + "407BF832D136FBA8A506B3E0C3AC8632F8C6DD058E1D242A247" + "54D64D8A0E8DB424000561EA5298EDF2E5620237F4297CD4B2E" + "48C87AF4ABB28167662B032F617D89C4CBBF064EF09AC2A1227" + "85D55C411970A610ADE46475CC0E371ACE344B3BEE172D73E9F" + "A4CFFD1806070E7CF48B722DCEC0756EB1EA059E8481DEF23BD" + "F94A0050CE2848AF21B49B59320D5F4EDFBF2C1A653306BE31F" + "3634E5871156C44D15F8C39C7F50FCEBB93C61DF9258F81941A" + "EE98C0AAE76D92560FC4987C0CA8CBF07CDD9B96E1F24E83F59" + "77A2C561870D6FD4752796900CC41AA4F2B256988403065A9C5" + "06FA78C50E0B5B9592A4116FDE380EE9E6C7FC67FFCB5123FCE" + "3B27A6D71EB875E88E0A8F20ACB50B3F2D46963913FCE830FB5" + "E01BAF0F2FEDFA8E9717576B96F788FF8F8734C33C3CD9595EC" + "2F6270BE920AA2A4FD56F83442141C1C1834820C1A41A51DA30" + "8F5CB8457E6C835C4F075706051A7CDB3901413FB9B42DD9E0A" + "2B8664BE7490CB4043ACAD67CC806886EA5C41BC8D81E00EA1C" + "C7AFB5BC34E150EC26E4D6D8D5F0C5A362A28C98ED6B3915A09" + "35D7A237BB24AA18D41DB5271BE154F4F51DC25AF823A978B8D" + "41F46AE142470ADC4D008B260928F7382BB08C320F4802705AF" + "6EED")); + test_hash_extendable(&nettle_shake256, /* 126 octets */ + SHEX("0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED54A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065"), + 512, + SHEX("DD4FC79F3B1D5201767CE9A0F89D3AD0A3949BD75668744B955" + "23562A5107CF45ADFB39B5999D79CD3CBDB1F622B2B250C8664" + "7A45419A243ADF4E7FBCFE227FFA2995BA39FDBC5BAE183B786" + "704D8631EFF1F88CCB8563F112440DC48D87B97BF8E8CD8B894" + "CEED6B43C857627AD1EFA81045CE505FEE7F370CFA478BCB4A4" + "174D133D9A7057702E7122229F53CE03D281771CFE58EBD825C" + "4285B4D7AAC7CB00A835FA094683F503E92B690A4A35D0E4F5F" + "01DEDE83FC829E4F3C5F783737A68DFC9EAA3CCE682E3D52786" + "75D17A2469FB0A814BF71FC212D7162ED80707AAA514CD5B682" + "B95B948A8A9D79EE3CE1B9AD44D3E6E6EB455CF198927072D8F" + "28950AAE0B5FDB628ED5280695E7A83665C94A23EBD16353679" + "7EE6733166AF631F21F6C1FF398D8D363D6F7ED518FEAC9EEA1" + "F98E9E3976706F2EBB3430AF64CB788A2461B736D91876FD481" + "F5F0135B458B57CC00959BCC1D145B2B776D7B5B1BD0ED154DF" + "B602F78C8D567F30ACF34341C9356BE887DC85E9415602E19DB" + "053E965601CE5DB866C1A9EDE8C12A81850F1A46CDC15411256" + "0A1E38C40A014E1109195FF23054954F463AA825FFE1A377D3C" + "B1DB279D2E5BC7FEA045CF3B2681170CF42D4C0518BC9E51C3F" + "854052263D31C50867426552E6CAEFE37267A7725A4460FE2A7" + "F2D951DDCF55A66AB59DE1A66A7FD15169BFEE7339428308C04" + "77B0")); + test_hash_extendable(&nettle_shake256, /* 127 octets */ + SHEX("A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC288207944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B"), + 512, + SHEX("FE149A9560E60DD76DAC07CD65722403AC64637033653BD6005" + "3F3958D0DF1EF1DAEB343FF6488587F49945A19479820A98DF8" + "484CEC8E3608A8C7D15594F61FAF8547FB0BA643ABA3FE942E1" + "91D61E2A84A548A4B76E0144B71E061D01E5B46629DC585EDA2" + "1696B6F716ECD7D98E54FE49692B5FF7E74ED15183C4A4728A6" + "A4FDC85FA56D49615E0141C65614DE51776C73A46D19E2EDA71" + "226B5716FFD83C06813B631CDEF6BAC2B5F480CB59FB54DBD0E" + "0FFF0539FF70FC1F5872D8B78B3E03335675925E2A6FB7FDC93" + "78D3202F396F05DFCD0A2193FFA3DA954EB44486C054D7D8BC2" + "2194612047F2F8C5FD5423504D6A06F0FCD4E611880C74BC84D" + "7D5C3B66E017DCC79EF5EE41F9322F7DD863AA5428439D8E5ED" + "3222F2346E305759B46826E039FFA8A2B0C7147C2AA44060262" + "6FB79B0699ED15ED9CA54125603E9A9525DB238A518708E7870" + "9D5CEE0F3A196B4CAB52198ED5A58C98775EECBDE3EC721214D" + "B7A981C81D419F013F1DB230746BA5EBF30CE37882376DF8785" + "ADCA0E04E9E18D0EC75778369F7516F5215AE92D67C4C475109" + "0246A8F3A719BF83E3B310D61FADDB911B2080266D2B43F31FC" + "9E3A5D9747EEBFC8816F63E398C9F506C00821D0F1097349FEC" + "C2DC05FC420FE673F5398FFE828CB99B3EEEBE817EAB6208803" + "339D8D905C845FC934487F51FFCDB4E83D8E337DACBCDC57F86" + "7EBD")); + test_hash_extendable(&nettle_shake256, /* 128 octets */ + SHEX("2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C14129BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CAE275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF28198E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817"), + 512, + SHEX("E38785ED93686FA741FBB6E5BE64933963C3C872F7A4E8C8D54" + "0EC3F82284605625D32A24BCE8B40264EB51B164DD86F318ACF" + "D9867F3BF23998275042AAF23BDA01F602622448957B81E5147" + "5F15CDB31A9297EE390F681E460EC01A024F183110C728BB09A" + "12DDE89E6F5DE2B4F8C17D981E3E9C531E6D4C19448A4A6BE28" + "853AFA2FBA216F7C8E2CE4E4DE31F6B0E129CB5DA118B4A5956" + "9A439C1095EB50C51CD83105B1A12B3F7086947EA7381969A78" + "308F8FDDAC8B2D87F4540A8E7CAC8932CA76201F86561ADD09D" + "833361851CEB9759AD1EEED4E00ED19C642BC6D0AED034276B6" + "6D818E8791A7C1F42F8604E8B026D4635E3BDB27CA0FB28E751" + "7BF662BB99AE3A3C698AD0AA2F02408E76A5F93ABFC933B1691" + "A89EE3EBCA2885EA633D0FEA4DBCD03B05B68E0F4D267144FDC" + "0898DE46011832ADC872F4A7F0D8933CDD482CA54FFA81774BA" + "083D3D9FE07DE94F8E03FF66D9F1BFE7504E8A497591BA8F527" + "58F92E0A4CA6A93979CD1F55EE9DBA17BAC6C69E83DDED4CE2D" + "BFFB0B48C0C6AED657405DE18E7891B3C854127459E89FE5442" + "CA6D5C223B046147BFDEE435CF4EFAEFD705373DC87E20B7D31" + "C7D37907D30B8B32054BB9ECA80D0AFABB5EC5053D94D517F15" + "8EA958C7458CF71FCA85B607A352A9A3B8F4F161E3B8853F6BB" + "61864BAD12DD9B57ECDA507A3CAA63A1DEC726B518CB4FDDEED" + "6A34")); + test_hash_extendable(&nettle_shake256, /* 129 octets */ + SHEX("10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD23431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CCA9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4AE2"), + 512, + SHEX("66FB94B62645F96FD55EA261E08A93AABE783F160AAFFE07253" + "A1C3D45DC65F6AFDE9DF121A894A1A13CED4E5D492675BDA359" + "26A1B147D5317D3CC09D4D34EBC1BB223663B349D3F66F05DDE" + "7A66616E7F89B0BC6859A3EB8402B881890B21979BE6F60CFDB" + "9F6C2FDE570D79CA9D24099820E433DD995E4C2271EB269937C" + "BB96839A03BA7AF726ADF23B7FA2F86348C0489E09A559D0FEB" + "FFCBF33D77CED28A439F09E2EFAA7D6334A783075B588134C69" + "433AEF0F8665C05E97EC2AFE49336EE2CEC0724842A64123C7F" + "43689D1EE88873F89AAAE9730B1A29768BE0E49A87B52C1F5AD" + "08D700EF9B57A20F5DCC7C238A5E56CEA3A0EE1F9BDE550F279" + "2741F607E81744855A5F109FE91887BC580199966DFE28A30FD" + "1FBEA9AC4259E7BDF7135E4A9D83234F9D7ABE3BFB1F264E23A" + "67F456096E27F540FBBD5DF0E8DDB5A6A455ECE063D4D528C25" + "82BE8F111E1F7C7F204B82D40F60C2AF6099DBDFD64DF85899B" + "A2A02A26870E3FECA6C07E99AD43F93D21DC275E1AFD1E136D2" + "F49142B4D208EC865F91DDBA5822148C6884B7CB283DE5AACC4" + "E8BB66BE3B08804246C808569B2DF0AEB08BD4C255AE1829AA6" + "2AE9495A89D238DD93E2BDF5D14159E48510FC82B572402302C" + "63956CD215341A1D367135623C644094CD845B08ABC7A8CBD4F" + "3B66F48375DF7155BC5A781E69272EC1B3AE4E3CFA1D8D39BF0" + "B4B1")); + test_hash_extendable(&nettle_shake256, /* 130 octets */ + SHEX("9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C651CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC41361EC"), + 512, + SHEX("295E0FBF3C5B510D6B244381BEDF20F8BC3D915CFA4BF9FC42D" + "BF6932F44DCA91744D812CB9F639A9C3D376C49CE3C7DA90D26" + "7D794805A61D20D00C79F42C37BE018C67857B6A02E46B6D6A1" + "47506210651E31B280043610584A1440A07BDC8540AC46E637F" + "7D947792A65ADCE3B790636FE1794E90598CA6340982EC58F3B" + "24AE1C703FBB91412F1AE7C23A3CAF78C4BBBF32C90C365726E" + "D4832016C5A19E94685A7CCEE376184A10BEED6DA7E26D1A426" + "0EFFB7E9F7A0A0C71D7F164CC967C7526A0F1EDF1FF54AEB114" + "109F7B34361DB5AAEF9EAD31A4D4896CB86556D2619DE0ACE07" + "C133B14006119BD4BC8CF4F8EC09CD2ED91B4E524012261EC95" + "37B3BC4C67100102293836E22AB5524C979F1C1AF51FBAA2ABF" + "3F0EFE6818BDAF37CEC4D6CDDC98A994BFF1AC458637D528BA5" + "F701DE0BF4E4E9E691149A6CD4677BBD9821511DDFA6561C419" + "B473D2BA019CF1B83B7AAA3BBEE141E2FA38F032635AA559CA6" + "29068DD4639CCF579118496A903BA7DDE88FF54806AE89BA397" + "4B9DC0AC520241BEE278E3EBA1B3DF1C026A8E5F0D5F28C35C5" + "B04145B570D2F06D25F45BEBF4DE2785D75B0BC9F1E6F9AEBE2" + "AE510D422180CEF13F6B0C8A0CAF76609A158FB6F3B17E7282E" + "168DCBA19E76DB7841E384B54F3AB29D78C86861560CDD934CD" + "B63742933253D7BB82B453CF829F33B99B8E56B906C86131BD6" + "4F64")); + test_hash_extendable(&nettle_shake256, /* 131 octets */ + SHEX("E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C39031549CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B72DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B9B5EDC"), + 512, + SHEX("9E8438CFFC23A52D75838690E7074D2C713B1188375D1A77F8F" + "C8C24A4B89CA5979F58692D90DB14DFBFCAA5EF0AC0C2D16F3E" + "84E6F771ADC26FA9081F3B10E02A3EE1A3DE40DB5DE17F7628B" + "A3E20E5563BAD66BC32BBFB1CEBA7598AA4480C86A0C4ED1036" + "08CCEB103AA13182F48D9FB363913000BA6559C855652B4EC29" + "D06BC99148569B66C77F58A757B75C3BD5EF2FF832FAE020EC1" + "C9E19C1117A107F0529EA66F0607A499DB0C32966A95D882699" + "B96C4949912380150F951991AE7768E5A26267A8A43CA76AE9C" + "5EDF31D7C52F2B09C9EB15E1CF47F85B20BD55CA47FEC048B8D" + "F899A08DBE2E9C2F72BFDF3BB803AF10B5A1BBCD7B4E1915E09" + "9C22307154012C67A39FA77720D7006B86A1ED4F095B6644AF9" + "72CED451453B3DE57B1FAD8B4280AC62E1ED09E219873B92BFB" + "50646343C46CD3C42E84E9C7F05F1AA5AFD583F685A20F996B7" + "C0683002691CD28D454F71334C2387DFC43D32E633900699C8F" + "C5E3A3F6494CA0BBA96EF10B7F367DD31623DDC14E9907F9FFC" + "2C65DA666D06987DB1DF8ADCE1C74BDA7BC6C6D5263E3CD777A" + "78B9020DB37D331A16C38D7419EC5036FD95B896373461E6B83" + "84B2ACF96E46C7C9AB6D43C6EEEBF62B7BE5F95F8AB6B2AA5E0" + "5D66BC4DF8A2FA1AD9C3CD9362CD183C10C8CCE216FE48AAB2B" + "1C4F6FFA39CA9F8D7B14AC5BBD8C71F55776F6C0EA8583ACCD1" + "956A")); + test_hash_extendable(&nettle_shake256, /* 132 octets */ + SHEX("FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB75542D75D68"), + 512, + SHEX("07024716B8E95D104783A37F82E66D4F5B0BAE8897F1EF6C45D" + "ABF3A59253261300371A4FD20601503F6D187CED1067AECB11B" + "4A4B5A31FDBDF4A2B1BA9C0EEB0C2BE7730178FE435905C1B80" + "AFD9CD27BCC631C57A10F3BF3F285BB80D9C4F1C70ED3099694" + "1D1ED225386B7F4777C18A01EFB5F1086BE223EFDD082E01755" + "ED517AD6A3E423E924147761C95B74F6BD338F1DC0E53715AA3" + "1BAC84F7E5BEDDCAF56574626B23DC247D0AEE8ED77760F53E7" + "FFE467564AA3159AA300AD159159259DC3252D95942215C81ED" + "5FAFE0CB065758F72366E50DF7FE6F2B41E36371408503C5E23" + "A4CA0C93460C0ED713872F35CC71D1B71A34A80210069B12CCA" + "79CBBB04836E6D9A15E78A638B0879F74034339BB4FB39EED0C" + "8D6684A67DD89B201B46010FA73CE5FBAEE87FD89D4B5C40F04" + "D9CEC8510BDC3D07539C82031FE9734826CF36BB41B30426D32" + "A10225209C24B631A071FEB2A9B834810E81B6F87A6128F6781" + "5E4AF6A6582EA36D9BE5DCBB1D7FD0BDA2D583D1F6BC2AED7A5" + "34C33A8D183D5EDF42F3080BD07CE9D78647DF008D417D0DED5" + "021D7B6996D6B541DE75DD175E820728037B531521851C9743E" + "D03F8DAF292846B2EC019238655256EE960E0981DB7B65A3692" + "B50F62033FD79A29F4A36C27BBE7A3B7BD1E813F3A2EDA1CEBB" + "29979D91720CCD125D0C43D708892BC38D0D297047637447A19" + "CB09")); + test_hash_extendable(&nettle_shake256, /* 133 octets */ + SHEX("59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587AA1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA7815BF3C49"), + 512, + SHEX("585F27AF67FEE2446767B05CE40627BB06D403430D94A62719D" + "AE2864CD44E7A8EEA340B98DAD0520D8C16C1BB1AB562C0FDCF" + "E6F1DE4F8A0601EB9A73FFDBAB82444E77487213D17BA31E2BC" + "39FEC719979080A501C8E15932AD588000959A18447B98735C7" + "3A2A8F4A949A8FF187520E6A9901647F47DB442BFB2772E8E8E" + "22FD759F88722A98D24D01308B15A0BC715ABE9568A34201B86" + "75204BF68AFEAE8CB063D6CC9EA68AF9E4CD692F9718FB5EAB2" + "70A2B74AB623B521B4B085700CACE113168F56A994A639517F3" + "6E3165029BF100A6F19162A8696B858A0B0716751430DB7BF07" + "480427C2CDA01070F5E78E3DED7471874DDB05D2944BFB04487" + "629A98E06CC4C984AE8C5F7695248D01CEE11D75A9C7F545CF8" + "6BA745B8AD5564F33B0A8B72E78954A7FB253C07EC8FB3D3BDE" + "29DDD91DBBD94D332FE9B7438937018E8243C2D2C30657959EA" + "4D23A319854FB2CB994CED4286836E83324FEA54C58DB55A969" + "165A1755D965C416E1D67468ABC701925F4A80BBD9AA9DA82D1" + "48A26158712C2B9830804A4CD1CA14A2B246DFE8E8A12EAC9C1" + "07E8CBBF34EF9517674350973E75799A251E72A352D2700291C" + "C3F1AAD40ADC9050BEF9881170EACD3207AC0C573E238B65500" + "B997DCEB347B94FCD5069CF43BF15AEEF15E4C135DD21B4046B" + "201F411513AEA9629B9887D21CDC43768FC1C1B12EA4CA4595A" + "D463")); + test_hash_extendable(&nettle_shake256, /* 134 octets */ + SHEX("77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B328561531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383EB497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958951CB2068CC6"), + 512, + SHEX("E57DD7DF74504F52D00B8079631F542A532610D77DDB4BFF891" + "5BDFBC9B8F25352AA3D9A2D00CA2E14C77FF661B3AA44E30BCD" + "3D4B110A8CEB65E150DFD9109EE948FFF11CD01F6A98C0100D2" + "323F52E323E32E9FE7BBA6D4411EEE3CCF70122DA5BFEC8B92E" + "72119D4B1CB1A1626DC0CB79FB4E4C938A4A7CAA7962B04A112" + "9B4A0A9C457FF38E8D3379044E4B65B82336709B95401CD0CA6" + "4C10F5D22A226678A1EA4E2C54509085ABDC41AEEAD761C7946" + "F33140AB775D61F7B001F141D00F5209081B11FC2ACE5D9143F" + "BCB710176BCC8AEE25D0182461AC1A446F3A94788B3513B88DD" + "DF5DB0BEEFCB331CD2553416A3606F44B5CF36318C72501FA20" + "07F76BA506EC510508B27D692CFDDEBF075B39E531BA243F3E2" + "71B5F70EA6B58AFEAA0B8264202BA2C430C33D1409693AC5251" + "9F44B001ABFA9C5595C0726DD1ED36C8B7CD2F29FAA912E2613" + "D1C51E2D0C6F8B27FBCDD6137307ABDFC54C0E6C6FCE0630386" + "2A8EFECEE12EB87CBF8423BFEF01C6FB87225DC467CA7A0B024" + "3CA9D531811A5E5090351313FA6F73D413755551F6E7187057F" + "DF4CB58A1B3B3A63F28A17339A835A73BF21EC013EF4B2BF89C" + "B3BF1369A87239A546A6816D8B06EC5B1D5A179E67A86665EEF" + "CF439D667F5F9890DA8B9E1E7E1AD08F757CB0E3EC6D8CB8FD4" + "A140846E3768076D342FDF0BE4CB135D68FAF5C93FAFBA48137" + "86D1")); + test_hash_extendable(&nettle_shake256, /* 135 octets */ + SHEX("B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E793F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3B0FED6A8052FBB"), + 512, + SHEX("6C60955DCB8A663B6DC7F5EF7E069CA8FE3DA99A66DF6596925" + "D557FED91F47091407D6FDE32023B57E2EE4C6AC97B077624FA" + "C25F6E13F4191696B40A4DF75F61CD5521D982C6D09D8342C17" + "A366EC6346E3528B26CFF915BE9442B9EBCC30FF2F6ADD0E82B" + "A904C73700CC99ACFF480CAF0487CEE54CBA3753B6A5DD6F0DF" + "E6571F0115E8737B071031023B6BB0D79864C3F33162E78269C" + "EE23FCE47B91B4FDF91F98464A1D21E799D17F76C1BB807DEE6" + "67B0B273054BE298299BD12B7A80FB354CE3E6D1ACF98443879" + "A554ECA6B96DF061D04A117C98AEEC1CDE1AFA9CEF62DD686DA" + "91BB2B1F12379BBDC9FA32A6B6998B77E8EB0B50507862AFA77" + "99D018E272091F51CADD81ADB587EF67BA67618C45D1F3D559D" + "BD299ABC26EC712DA8FA34BA33BFF400D1F0F8B6345CF57269B" + "858578C0072A91A63EF85F9D378900CD1A55D2BD4630DB829EB" + "484D89CE7A414ACA173C52534AD5F9355E80E395E79156D751A" + "930F7F8B5D9F4D5A2C9A753723083C5E8EC6CB24D8EF93C8FEF" + "2D1BE4ECA222C6E6C2ACFD684893CEA65CBF5B096B3D8660071" + "36126A33EF496BF2310F293BFA4C93AB826821E2B93259C464E" + "0AEB06D6DF8FFA30B1C1E7E384C7E427A2BA3D99FF8A666380C" + "5C1B678F742C57B0C3B08849FD65300DF13499DD894EFC33116" + "E7D0774064331FDD407487417D13BBA4285299AF650D3065D95" + "1131")); + test_hash_extendable(&nettle_shake256, /* 136 octets */ + SHEX("B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F835D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB37674C6F8E380C04"), + 512, + SHEX("CC2EAA04EEF8479CDAE8566EB8FFA1100A407995BF999AE97ED" + "E526681DC3490616F28442D20DA92124CE081588B81491AEDF6" + "5CAAF0D27E82A4B0E1D1CAB23833328F1B8DA430C8A08766A86" + "370FA848A79B5998DB3CFFD057B96E1E2EE0EF229ECA133C155" + "48F9839902043730E44BC52C39FADC1DDEEAD95F9939F220CA3" + "00661540DF7EDD9AF378A5D4A19B2B93E6C78F49C353343A0B5" + "F119132B5312D004831D01769A316D2F51BF64CCB20A21C2CF7" + "AC8FB6F6E90706126BDAE0611DD13962E8B53D6EAE26C7B0D25" + "51DAF6248E9D65817382B04D23392D108E4D3443DE5ADC7273C" + "721A8F8320ECFE8177AC067CA8A50169A6E73000EBCDC1E4EE6" + "339FC867C3D7AEAB84146398D7BADE121D1989FA457335564E9" + "75770A3A00259CA08706108261AA2D34DE00F8CAC7D45D35E5A" + "A63EA69E1D1A2F7DAB3900D51E0BC65348A25554007039A52C3" + "C309980D17CAD20F1156310A39CD393760CFE58F6F8ADE42131" + "288280A35E1DB8708183B91CFAF5827E96B0F774C45093B417A" + "FF9DD6417E59964A01BD2A612FFCFBA18A0F193DB297B9A6CC1" + "D270D97AAE8F8A3A6B26695AB66431C202E139D63DD3A247786" + "76CEFE3E21B02EC4E8F5CFD66587A12B44078FCD39EEE44BBEF" + "4A949A63C0DFD58CF2FB2CD5F002E2B0219266CFC031817486D" + "E70B4285A8A70F3D38A61D3155D99AAF4C25390D73645AB3E8D" + "80F0")); + test_hash_extendable(&nettle_shake256, /* 137 octets */ + SHEX("04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31BD0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3F22DA873C601016A0D"), + 512, + SHEX("1279A95CB87B1CDF2F8A8A47CE55F0DA3766E35EC58CF921E07" + "B43B176CFD6CE8508A208C9D6F5412515E0235C95397A47D2A4" + "B13A357DB4882F69B9C910C985A5F82187BFCC46BD48CDDDA7F" + "65C3E95481A37202EFF9C116BB3F784BD46574FBD49E19B45E5" + "E2D18F57BE7DAC826A447ECA6E2A6BB44B0061930DF56864C37" + "8E020A183DEEE8445648EC2F95EE5F09CFB196E3D8090535664" + "46FCA6BC36896215BCE115B0AEE55737A4421316D2058F24C36" + "D46279B458E901D3A8062300024068D99D8C1B8BFB6F3E5883B" + "FEF3C1AED55989151C2CAD1EB940CC82398DEA1E5A92351F0D5" + "AA7D47E16A949F396194EAE2EBEA1FB731BEC12D2734C2F1E74" + "64CA2FE27F036BFB28A32A9657C75EAEE79F86F2CE5EFF1AADB" + "68DA0B32A4BF88A37F1D66D13DF4ECE65059BD4ABF91A3EBF98" + "2A1F5E9A6DA639623D0C8E5FC5C0C8071965221C4B79CDE7D44" + "FC258F20CABE3C38862851952741FC9E9E87C06AB0CF8B8FED6" + "C18666C5C70EA25973FED36D90429C54B157174A2583E142E26" + "F2ED492A9FA74F1985FE52A421C2F97F94B73EC7D881F0D0B0F" + "930461FB896B1806C704307CEF682834CB583B6E996BD31A6F1" + "D8586D416FD8C91EBA59935FEB12A1E77D0F3E05F80842B14F3" + "4F27ADD947EE3CA2E54BBE018FB8CA27FFD1C24227572CC277F" + "723535CBA0133E359217D5522676485181ABBEFDBC31C8164F1" + "7847")); + test_hash_extendable(&nettle_shake256, /* 138 octets */ + SHEX("8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBACDC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F1701373FB09A1A6E3C7158F"), + 512, + SHEX("7A2DFE06B3AFA54B49414379BB9C7A80EFBC8D0630B8CA170F6" + "B22CF65BFF168F2BA6E32806E6E7D9D366D53A319BC2C8B8AAC" + "7CF8158128617229D76AE594AD71C0E0541B86078A62D71E299" + "2E555EE6FBEA906CCFE58FDC7101964EE8C3C05D0C2C7D8A01B" + "7E1629BCF62233C0487E36E1C25474E129B72F1F9BAFD6E0F7C" + "9FDE8DD44DDC1DD9668840294C5B39C408AA1BD1395D1F4A236" + "8D9D1E5168093A63732545FE594B32EE91F89B297E3A33F53BE" + "9A1A00642C17DA7061C10D1525F34180D04C78BABF6B1C866A8" + "AC1D19FC17C24F13CA4032D650DDA748E2A09D3D97A2125D52E" + "670C1DA4AFE56E60DD789608F50E914317EBDAF125BCCA849CE" + "37F38EEFE8998BB2B1B10CC1B28AEAD1FC48FBF1C95B2A0F063" + "7609CD569050BB5F3711024CDE92BBEFF1C73C9B6C8DBA71B2A" + "A238AA26B4007978EFB346D3FE0031C391A70F362C4C5FE1DA2" + "D3C73E4BC52A400E5998660D8C127C46CC7FD589DB2C952D2F0" + "77E4001B2B6B46EE5E56A44578B4B8DC1AFA33C3994CE7CE49B" + "4D8181195076B938BF605F61A74F9C505C64C2A75601E7EC3A9" + "4B22157308BBD481553ABFD8ED5575B828CF247F6D321FF25FB" + "AA245F9B30B39171E1CFF354B9F20D55196EF66D32C4693FDF2" + "49F528C86EB82779B5FEA03F8A95F31DC0579B1CBF178B23B27" + "6E5618941760B117AF65B83374C919D6D423B575C5C459B5AAD" + "6A2D")); + test_hash_extendable(&nettle_shake256, /* 139 octets */ + SHEX("FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943FB4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F339612E830E9E7A9C29065"), + 512, + SHEX("FBA46834A6995933AADDF85B59F60EB3B77B5AD38BC21A86207" + "9D8D2227CB9B3CE3ECE89D90C70B990F7507D5C3A565974446B" + "54D43288ADCCE2BFBA8914EB498DC6001BA169417AF6DA3ACF6" + "85DCBE3CFA0C59963F0F0AB94D39F05A69D5DFD320EF409DE76" + "FF85E01636F57DB9B2DF436D94EC2845F0C0D1959DB6308941E" + "40C946F4C3B3277A065847C9E3CCDCF113DEC5DCBEF5AAA1C5B" + "91C19E05EEB66F6E698178B7B02FE00B89DCC98526FA0E7B2C6" + "247E1C175A21EA34F5260B0C0A625D7AEE1680B20B4667B44F7" + "2F1353BC71DF6CCA4346EB54306DE3C380438A9B8E6CC47E6D1" + "8D84FBECBF9A6132F63C191635999105967C2E171B74615F456" + "D2E111E7FEE5DF00217B49BB49270BEFE5BDFCE1486C13C6A94" + "E31A20C1D377C410324C08A17C2D04710CA267E85A2CC1E17AD" + "A367C0F65AC3A70AA5FE14378371132026169657D1BC1B84C19" + "08AB46689494C3E8A34835F4DC43D19E9328ED0A16341E5E9AB" + "B80BDDEF1BF5FEB5DDEA560253532A6607E2E128480DEE2083A" + "F54C67E971CC6B56383A564B0BBD2D802C6FAA7BC62629595B1" + "7D04C3AE20F73B35A9AE4D356D401345E0A0D5174BC457256DB" + "BD844F9A4BFCE0DD48F35C5F8A915E61A23899C40FA63A51F0D" + "1160E16260BF4DA1902AF01C67E8997B2AAFE1989D013846CF9" + "85164C03418930E61FD06F9D30F06897460DFA1987D4B5D73B6" + "8CAF")); + test_hash_extendable(&nettle_shake256, /* 140 octets */ + SHEX("9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B83610564545642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60377838973C1D943C22ED335E"), + 512, + SHEX("4B60950081987C82C2F1A1BB9EBAA9A72E125557E296BCE9895" + "561C6A959371EB1AC9A13914F4419B4A0A1048B3D422B53261B" + "0AC26EB9852E9933251E154996DEC6219A7063D87228A8D72F1" + "3FE94A0E75485C8F23DB2341EE7439FAF87A1B359CEAFE42903" + "19F4705B49CBA0ADC24DB4FE8800AE05664C544D53EE119CF4F" + "1572DAA355E48DB605695BDAE5BF22CFFB60C019934F2AA9529" + "18B388EDD9C53DC8FAC2186CA0F77AC6543AC379B1ACEE9913C" + "D75CA8E0F9D89616383C9541603430AA548E9A9DD8F90F64263" + "FE42A9B8F66991CB2B8B45AAF683F51D194A01098A10D4BA110" + "7C56173825AFD79EE0A334CE739915D4F046C814412DF526ADF" + "F4F23811BF1C6A254372E8E46F0008F6332637980417043BAB8" + "FC21E3715B713AB4BD1DDB3D50FB9D5D6AEBF94FFDA51D3BD4E" + "25C82B295BADC7F8F11CA787DCA045DE2B52A79226ABB945F69" + "732A1D0DA3A3228D44D8F43828D8958E621851F4824590C0719" + "982CDBB3602465C28A97CD4CFA33D6EBA65A3F6428ACD37D669" + "67B8C996969D866A02FF6EFC1B6240AB557321260EB4C9D233F" + "F4E1C293ECCA825DAC943DD1B9A624AC37ACD1A818D2F74AB99" + "B2883F0837F77D4D00A52DE0924EF55C7536916677D2AB4FAA8" + "F19E8DCE97C05690570FF0117C32A3F500C2FE817AD651DF2E3" + "C28F5E867083F607E8D0509745588ADD19F1BB7482087A50821" + "7DAA")); + test_hash_extendable(&nettle_shake256, /* 141 octets */ + SHEX("2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F2D0C9E7448DE3043AE22FDD229"), + 512, + SHEX("5CBBC93FED206474A11100E1973984D5BC5D06AD92996FC8928" + "C1E6BFDCFAD5E32665F4743EAE8FD28289DD226A0136ABBD5ED" + "BA5016E975381D4C3CC95065FA4CDAC2336B39342BE8070AB2B" + "59DBABDC77B8742E4B3C86F1EE9ED0C2B5030FE1ADBE28F8271" + "11FB137C180B9994FE150B1F5144081AD59131A6017CEB8FB07" + "15DD2DE6B3BBECD2FDA4C3E9E8A652B5DAB4D0B39CAF6841383" + "8CB1960241AF59A46C8B5FCA40552693CEDA564862DF42C5827" + "EB371311FEF9231FE1B23ED07F72DB6410172597EAFB5D077AE" + "D168197F20C3B01CC3C52A94546B722B4AB56211B48192F908E" + "7E7A7B7020A8F6370A0B73E046E3211DF3352DEB1D59E4940E4" + "5129A6667F160D2ED6EB703EF962683540E3A9C7C94A61875CA" + "C09C4E22ECCED9E2CA6DC519698042F67AA518EAF3D338C5ACC" + "D5C2DE5C3DF6B4A2273A0FB8880CF3F81D046AD8B24E73A8F3B" + "D7CA65CD21AC2D950A7E36D0A25362788F1AA26B71CA434AD14" + "EF3B002BAF6327D4A5293D91CB838E4212949675DF185B70D8B" + "42C0C01F289478F0A9FF736E6838EEC5E54413CA6F7F22F51AA" + "DA7F3E9C69B9009599BC437C0D806BAEDE6DC1B2FB9BBBA43FC" + "3BFB5CFB408A9D8EC1C1DD1528CC2AAF144FBF9079F86577A4A" + "042A085975BB1CB5DDBCD728DF6BA69CB23A8BDA0368924466A" + "89DA791D4328DC55800FE8639987EFC172BB29836A901B3F4F3" + "FE9F")); + test_hash_extendable(&nettle_shake256, /* 142 octets */ + SHEX("94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389ECC64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5CF441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A5B6C338CBB8F6659D342A24368CF"), + 512, + SHEX("CA9CF74ADED61A4BC20BA078E8053702BC1A444CEF69AB058B9" + "C0F586286C138CF02AA36CB69E0CBCC52F455623D27B9597C93" + "68EA5DAEC4278E75AD5E3FBCD480DDF8EF39B3D10808D202470" + "D18118A215838A0F6C547D324FAAB761F7C8CEF462BE150DD49" + "A26DF4E453F997C31FCD27280E846B15F640FF8C39BE270DF9E" + "44CE57CA82F6F6762777089276A3E67D8EAB0E4A0C2E1946FB0" + "8B3FDD3FAE438CC2E9EC8BC1754275FCF4060E31428B9F08E95" + "3F9FB4F80560F2040E4B6CC7BFD6C278FF01ABA41F43549DC0A" + "A0407E5C8346543B1F1C24D1E05475327A48821C1C1058850C1" + "80776EAD66996DD5A02865702E0E4705E8E2E7D4D25F058528A" + "C980EB831D6B70E7CC06EDA314D80E1433B2A63EEC405BEE2AC" + "B18CAC238ABDF254DDBBE72640C8C609F70D04C77D2BE9190F7" + "8C8E448035A9206841C55CF9152AE5F7CACD798AC696299551A" + "5D45ED113C94CD862197EE118CAD47B8C08BF4FA1C6270A61DE" + "6D538D608E126C0FFBEBC7F44D418BB87E557E550CDDA20C2C4" + "7F2CF635411189D30DEDDBB9075FA6F0521D2C4FF0E4D641006" + "CF5EEA1231A87D020664366EBA5C5610B63EE5B5A50C2C8CA6D" + "7EB8CDCBDDC34AED08ED7E0EE437E235449D4C1CF095514E581" + "E3C8A15EAFDAEF19FDEB31DE6619BEE6B17B31A96140CDEBF75" + "34E0C277EE33C54319B140AF0135D6F91F7D2166026C67C71A2" + "1287")); + test_hash_extendable(&nettle_shake256, /* 143 octets */ + SHEX("EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24F6954BA0801A1294CD8D7E66DFAFEC"), + 512, + SHEX("9FB76F906CEF4A8C7A9CDDE3254E6D4581DCF745B26995FCBC1" + "23E716F079E0A0B9F7C8CCD9DC5AF8894B2D9783395F7BC05D9" + "5E20419C15D74EEAFB23B6F1BA427B4B20BAE38C2F6812B74A7" + "A671384235DF3618A7531123412113D57B9C2924EE4AFDB9CC0" + "55070485A2960E8E5CF1971171F604781865624B075C3C01FA2" + "7F9B602C29E257821ED92B35F7941637C2BC6F0048A579E3845" + "03182CA8498AE7493D398476727A2AD321785D2273F9F548F6A" + "CA80FA7F1ACC1144EAE7C0AE58C3C4BCA20EEDC93C3742954F2" + "E2963282084853AF5C8F30A1A4333374B4A66188DE73F773FF6" + "A576A0A0DF3C690CC59521378CADB123BD673A04FAFB26DB9D6" + "53D60A87F2834683D97F5D6E23FF2ACE2AD0A5FCAC71CB00320" + "39EE01A2C3E37B3E1C14ACE44A5A6E43B1E1A0FBC8AFB0C811C" + "911F2853C85F10D06253D29362D08523834273961E37C4BB0EA" + "D4F79E33D77EBD0D843709B121F8B509C24396549D2187DF52C" + "996EEA9805C4A3C4F7729003D7BD7FFAFD6384779D6B6163AD7" + "C632A408922507188EA22D685E05C8851EA9C6E625D9461EF06" + "AF864E93F9B4544F00244264DC57F4A91920FEC0120357B5430" + "4ECD0A45DD8A6879EE01F66F222C6CBEBE8617FC06B28805F48" + "0CBFE90D42A38D1981A4176985775CC92E3AA632CF4D5A49B20" + "1EAE275628A3CA7BBD4992A39ED5737CE0B4C32ED4C4D84D9E1" + "5A46")); + test_hash_extendable(&nettle_shake256, /* 144 octets */ + SHEX("157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5FCAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBCEE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28256FB33D4260439CBA73A9479EE00C63"), + 512, + SHEX("D512EF86B19C0FAB408DF09A8CEFF07E8259CDCCBF0C060CFEF" + "D8FCD3951BED94BCC30005DAD8002227AC4524A8E6270961266" + "6F54866074F2272E6CCA23A88D5A05DD5B44DCF411E137F4464" + "5187BF03D8CA19DB835974CE314ED8F3F1CB3407CC48650A61A" + "8352FA34C4C307B8DC438634C292E91871A5DC55775BA740B8E" + "1085C14BC779A0260288B48C80AB4B2CEFF645FC47751D6DFD3" + "039246A5E7F8B1D66FAE0E2B71172C24D599CD5836FAF10B567" + "CBB834804C16D111B56D8961EC67CE6DDC989B0AC0FB3975581" + "D3BD70043725331685B959E22AF6509D4C9CBB8D4E10C9876DD" + "F6460D62AB09A97A220038952F7025993F3F3C5EAAEDC9D9AB2" + "AE948F56F956CCFA1DC670C47CE1946EBBC7F1F537CBDDD3938" + "686E65E58F1573806EE42DB6E22E1D5070820787198F27B8424" + "09B337BF0A5647C63DD0355838F52971616FD7318164CF33164" + "1FAB6E3B2282547288A76BBA5B973E138E4182783FADB159CDB" + "1141DC950B70EF4609055076E7EFB532C9A944C419BAEE914EB" + "EEEF7E1890B292F27ECB8B7DA25B0C7DEBC52FA75F50247BB67" + "1087A0DFC15FF3DFF6A3E57791F2471889F356D44A3A10228DB" + "2C3CE778ECBAC53F127DE3F4621E6D83F8714C0D66763460A01" + "1958101123E9CE31F5562B73EBD4F08947475E62C6D815BD02A" + "3BCB12B8D058DEF7A9DE8B4A70A00D039381D61DC6C0317A0DE" + "62AA")); + test_hash_extendable(&nettle_shake256, /* 145 octets */ + SHEX("836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72BD8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BBA552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A5994C1DBB3B5C7871A11F5537011044C53"), + 512, + SHEX("FBE450F412E4DEA6DF16609A1C5513DDC550F7D7FBEFC4F5F9F" + "193F3AC88351CCFB1C25955818DFFE5DF50AD08B3DFAFACFD7B" + "FD484A628F6C9BB4E32F271F4846BFB90BE00B80572C12457AD" + "35541C7FE0FCAF156AB66548A7D90458713F8E10E725C575908" + "6D33685D43F3ED682B1F53453707FE17F0D389D0A8497E25856" + "6E93062B31E3538ED95691CE730B1DF2F498F010A2C2DE04DC6" + "98410A3D4669329E685827DEAE4BAF2C15DBBE975C9DAA13430" + "C440543AD94624501AA63AC4D012EDAE314DF68D7D4954D4119" + "C5B9505D566B8AB9B54007F4B8D92D9FEEC562B9E0E37FD8643" + "907D8E7B6FDE785195650580373D3FC69619FDD039606064E84" + "C6C6E44118E4921A2DBD185E7DE90508FFE7380ED1C9917E0E3" + "8DE26D8941D6AB0D0B4FA213DB4B075A362B314BC7C3CF21A83" + "41C611551057F9E07492C8D923D54336F3F0AA44422C423E2DB" + "0D598216889753280B08103417F431658F1EBE267237802E1EB" + "FCA862027A29AEBADF8ED9A603983E0BDBBE84B3D9A5F862ABB" + "F5E18E5552C0D3E7577B96916123B4504AAF2107F643067B88A" + "DE293F5B3FD3F6955CCD9AD7E134C9F5EE60F6DA78032AD1C85" + "D710BC21939008111602147E0BF1D79F7F5302686729D44E44A" + "7A6521B8270CC57CC8A6F16770BA66EDE8FA823FA088BB7DA7E" + "EE980C6C947D7F510DEB93BF0B5F4380390408823AA8EB980CE" + "0F04")); + test_hash_extendable(&nettle_shake256, /* 146 octets */ + SHEX("CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B14C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C011674E53426CAA453F8DE1CBB57932B0B741D4C6"), + 512, + SHEX("6658EB2FEB9A739FF1724FE1526089D0AE807945741C2C6CB63" + "0E8F5B9C88F3455017BD81A5ED8F441AFD50414ED0B9C267E52" + "7786041C4E3F8DACCF1DB60A0ADE7199F689C8F0C04CC846318" + "F0B8C34B122BB98386F48B0E69317938DF76C9C6D502BFAE1FD" + "A37DDBA108AF9E2D07CFEB50BB79D828FD5A67C9C3771FFAA07" + "C7A47FA681A1358611BA76B079F4FE14DAB9A0D3A4E5D2AC41F" + "4F1374319FF9B81D970511464F5DA9AE9D6312FA8BAF22FCECA" + "2B4BEC1A8D887F47811F1E7ACC1884DEE4740AB2F6E2B4F8C11" + "C81C7E40BE19F90F27FD1722AB95BAA214B4096B4B11A1A9B55" + "3C4ECD789AED9F22FCE58AE1963A62E450D754CB048C68EEF0E" + "7D2C2A146300A902C56ED8D149BB5C36566CB8A3DFA8582562A" + "48927DDEC45BE750F639881CBC33D3B48C128D91108F2A55724" + "BDC5162B652CC03D5F591E96F4BB40A571E1B22F504A6BB6D8D" + "897A73884057E1D2EB15DE0D3585BC14CDDFAFCE3AD5D6A861D" + "7CF82B5F1AF784637A99B79F91528C4976720F34A3A12BA0A4B" + "C84975CEE3167D4E72292E9295629503D642A29196B934E71C6" + "3425AD701820E79DDC9220DA7C7A2AAAFFB852793E822B69157" + "34FEC8B93344BBBC66C5192B7F1AB6BCC63713B11CC23D54144" + "1C04428ED11444BB2F7EA981603ED4103F86E6623014FF97CD3" + "2DA3C6E1CCC22EA8BBF3B6853764A733E61397302A96434ABF2" + "905F")); + test_hash_extendable(&nettle_shake256, /* 147 octets */ + SHEX("7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA7083872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5DC9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1C09FE6A1FA13EF3B96FAEAED6A2A1950A12153"), + 512, + SHEX("CF7D80DED88E700DED518B2F0049405AEA695691924B4EF0620" + "5DD2849E7A0090647C3A23407CD4EBD5B582C32B6554C506E41" + "6B9D13903A3AD69234826E36E3C5862BAEF9BD93EF345125678" + "E32EBD5BAE0961935232D5BE54AC721FD75FE1165341A41FD88" + "0D239DE12065471AEE6CF970CB6A0F02ADDEA861FEFFF91E6C2" + "E482EA9BC255FB00CCE1FE8CE3DA479EB28768F356C2EF83F40" + "0A0F0CE859606F3862A3579E609DE48F1CED3C86A9EA302462D" + "E9A27B0F251798F9D0ACB22E6C71011F0DD45B11E8E33543A32" + "75B24B6464980A5B6FFAB2E9C8055CDA16BE6C60FB616A8F3E8" + "B759552A2DF2B05B846BEAE18A01DCAB1E92545B0B3CC2DC251" + "34379021DD7DC294BD97A775C174A04F2F67591841E080308C5" + "87E208D1B497E229220C38469944EF41F61A64C83E06A4390BC" + "F318E53E4A6E9214F943D1EE957B71E8580E0A183C6B05924CF" + "32809772CDBA700EA369448AB56F399385D4B8D851CC8D6E800" + "3F1035C6E739C91E03F1FCD9662AC99E372B45FC08610265E53" + "0F53FF726F599C33820AB468E6BC2C551204260271FE46C0A29" + "75A18BCCFD87A53B2A7EEE2095A180B0A5BC7D64D57FF8EFA62" + "8349E00C84B271DDFE13EB009387B1055F3B0E7B556CE6A738B" + "9DC880B22E79666148A6C4D97B2CA581864FF4400749750BAB0" + "3AF9232815BD21A1A6460483505C34F282D59863B9F491A39D0" + "28D5")); + test_hash_extendable(&nettle_shake256, /* 148 octets */ + SHEX("EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DBE35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4EEBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733DCB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26"), + 512, + SHEX("FDB4CBEF885524710F96F1B489099A8E5F9F5EF2BCCCC23B6A6" + "19BC81F9DBFF63B9AC609BD5DA0FA7AFAC0E67BB96A54A1A64B" + "4B943E0A492A5BFFF399CC9A1FDDB5787434F5034A30CA767CD" + "8A31B69276435C99C64F3C567EBAF3C69FBCEC540CB2FB671CA" + "3835ECD228C7C7649410107D399EDD661BC8947D43D5BC441AB" + "2EF39AFAC6788BCCDAC5462D5698F60616114A8346707606D15" + "01C834447031CFEA921A85AC882194750FB8E4D22573A27F290" + "1B75C6887D085A6B47E2BED5AF785C9B60DA38BC9F61750F16B" + "2E06CAA1CC77CAD2B95C5D583D0E1BCD7E10B0D8FA8DA7E0975" + "07D11873395166E3591BAB851EF4CD7E1F05CD8401AE4967378" + "94EC50DA4EF475424485BE599A4E8387B0309629D5B634BD70C" + "4C95BE723932EFC24CA8FF978CD31B08666F2F6DF9E94A6F8AF" + "CDDE6C6A01AECB63950A4B4BCFB4ECBC1FEAF3B54454CBC7292" + "A65282C9B0D7C6A053FFC11F6888DA2BBCD6496CA74CFAF0F49" + "A6F5F56E14E51955B73994015313404D46BCF0CA0854407707C" + "176F36C3AE5986F67984A33F252B86B2758CDB7D2FBD63606B2" + "E43F7BF0919CBF97D2E38F01ACA8B3983421CA447A78BA415AD" + "D0580FE56E391817783F11533C8D70E3B8FFC4A3CCDEC56297E" + "D51F80215BE98C26B343736196F5C68A65B308835C869328006" + "1865435383272A77397DD6FC3249B2CE17AB3417AC9DDA62EE7" + "4C43")); + test_hash_extendable(&nettle_shake256, /* 149 octets */ + SHEX("1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4DF1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC546C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A02218595B3658E8B37382BD5048EAED5FD02C37944E73B"), + 512, + SHEX("748DE9C6E6A8886E9C34D67A5B2625315D8B0057766CE2853F8" + "DD047A3B58A410B2327E56234572DB7EA886C90F6DF31B795E9" + "3AF95A4C52632D7E03D255668255F54C0DC1264EE989E25DD0E" + "A77A8855BC74EA1066F201C999C0BE63D1817DF33DB624F540E" + "BF463C4B48569136E891C1082A37E6ADD6922C08FE512D92563" + "9CC37536A324F3850932B474F313647E65FBF28CC1804D2EF15" + "492CE09E84413A465C69FCA84014F15F2FF3FF5BFA6A9C38CB6" + "9E75D66145BCBDC462E3A6FCDBD7835C44B9D95E1F6D72C1A7A" + "F0E9E9730559499553715B0A7EDEB6E5C8C5A3536CABA0B67F6" + "19AB317AA8F60A005860599BD1A1ED20FFD191CF7AD26B63264" + "CE022E1CA0EEC821D6A4BFC1E97482CC33A14BE20D3F6EF96A4" + "7DA800CE1A8FD6939069DF50C10145BEE28799F8A1C43D37CAA" + "377AEAE5A2A19E6DA2F173124CED0AA5652AA34632BE11CFEB8" + "FC3C9A0B4C45A7933B671432AA666FAFFE679562D727F786960" + "609A91D0972C35B4B9AD27DADA6A24E00589CB1EB9E4706A476" + "C5BF749091DF4370CF99FF6ADBE1B029505BBAD815AD50EBDCF" + "22208937FBA80A453A99CA49004706A3CC3A95CFAB7F0C2FD2E" + "03617F379FDFB8A91442754DE62805797ADB4CDAFDFB7A69F2B" + "0CE9DC530A9EC8C741E892758512C4AAC208564935791713B49" + "B95A9DF215FDD74F906F8EAA7B13A0EAA443D78A482364ABB88" + "3813")); + test_hash_extendable(&nettle_shake256, /* 150 octets */ + SHEX("4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF805689004FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF262881428099C7FFF95B14C095EA130E0B9938A5E22FC52650F591"), + 512, + SHEX("1060697962EA79B9519FE3AAEF385C997B2E8028D68DEB08AB3" + "B76F71CE161EADE98C89D223EF0384232AB3AF3A6CB1D43EF5D" + "20C1B3BB819423C026BEF0BF54F4800CBF8E9E2D40F9A4C6CBE" + "7487600BF451783A378558BA27268A5074AF0630F5F2CB890BD" + "A971A4AB65CDC37C0215DB1C09BA96240BE066F95F158CF863C" + "C18346866522529503E615E4CFEF990F49583EDE896BEB63B14" + "89B6A62BBAD9330D5C3DEB673D42151ED98A3854C1E80E0868E" + "27D8CBCDB90DBF3505610FE170537919EC7C191579148E06D7D" + "89BE3F5C88C430E38FD36D820DB5A941680E08B5D1859EA327C" + "82EF50ADB1D8E6E5184652064CAE2C617337ED36CBD1ED42CDF" + "3ED0C411CBE1A9E92E0F4ECD3CF84CB6C07093D51CD4D5E7C75" + "43D385B9F420248749675CABE9FBB87F56C865325B826C4D32E" + "28B1E4BF1889F2D00BA87EF01720D73EEFBC38828CA76027C65" + "6E3758DDD1CE730E2AAAC0354EA71E79D53C0D3526ED8FC024B" + "B8CD675AB290FEED6CEDA91A29A71F5C128473EC94EE59A29A3" + "81E5046EFEFA8BE3AF7FF0858DD54065B41FDE35F618235D522" + "1AABE2B4BE62C1E7FDE8BEAD94F7BDDBAFB8A471199B3BC099E" + "77D8190029CC7508D576DB31F362B09E5C1131B0572D86D4A7D" + "4B533737EB4D7E504DD0852E079F2A1B2B3A526175948227EA2" + "511ECD4385F616B3BB086C54F191046BD1782EEE96257960104" + "93B3")); + test_hash_extendable(&nettle_shake256, /* 151 octets */ + SHEX("D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A815067FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48"), + 512, + SHEX("F31639CA0F9455E11389937E9E58792E3D73B9CB950ADBE8066" + "07B1AD53D80F2A199F577E278137035136AD2AFE7F8FAFFCF0E" + "60F0B2A71E0BD9B938B28FCBA94A912F249FB9AE1779F87BB1A" + "A714D1FCC57D4BFB899A233B99586F81F4885DE6693DCE78D9B" + "6631957F1689E843C1463045CDA6B921173054E14BE9DBD0688" + "90DF88932F68ECEFAB3AD3EECAC1B4C398292446B17E826AA8E" + "35F6067C908AFCE46FD92899726677E2C0589F525AE021A22A6" + "01839BEAFED00F6A8FF6223FC5A92EBCF6207341B63FA2E66E9" + "DEE2FEF1217D9D39915924E522BB52FD29501247B1A7B9DBC06" + "678C5F29AF7CEA3D8722374446992A4BFFB0E3E623E881EFA7F" + "957DB1946496C2EAAE98F0929EF3DF633E67730D06483770197" + "B9DD17C7C9838AA5003C5BDB4BC54E7389D453E769765879485" + "ABB3D565749C8CD5E50DA9C4517F31ABBA38F1D7A0FAE0D2816" + "CA0BA1DFFE569DF4215D215676DE0FCF55A75FA5F7E899F045A" + "4B6051DD9355032DAC56FC56C4988A4C082FB85B74A4C8A407C" + "E1A06C344B2E833281CA64C2F23FD8A9F996C563E9AF8742137" + "617C0E46C5168E0B43877446E07563DEB3D7654D9EA3C8AE3DE" + "C58C5753F34FDED605A49236336F0B355E95DEF3BEA7A367507" + "F19F4E0A6DD03ED3090C285F761C48A3D3C5795CF277A87FCA6" + "88495EFFDF5D10FBE07840C3F202D85044FA3BC41CDEC4D0AAF" + "59BB")); + test_hash_extendable(&nettle_shake256, /* 152 octets */ + SHEX("842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E7201E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B2506915BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717"), + 512, + SHEX("F04B251F8F1A9FE87E9F8B0BD8A641566174CD2157ADFBA255A" + "4DDB7A001ECD9B479B7877C38E487DFF1D830D01DAB9684F143" + "8C4812BEF8DA03ECFE57E7EB68A68E4FEFD3E0A70D607EC7710" + "2538D5535C293339532953138995CB4F23AF709F5C103E662E7" + "EDC447995FE5BC716C7BC482CD0CD13F17AB48D33C8BFAA67AB" + "6AD30482B6DB8BA5B1290656BE81E1B543793D47C1D0EE7BC95" + "3C812E187535A0659B2CAE6BE47284419744C6AA66B9E53F76B" + "9F90D4AEF8DFCB04A98C82FB434C0946E5B98F2C3BF25C128CE" + "F77EFB9F6412EB11F36E484FAF2043A40CF44C6C3D28761F9CB" + "7149C3DB4620D09B220720767AE41BB097C865720185C19A474" + "E4C3D706A636E42050A23766C2FF3A21C4E9DD7AF62F47ECA67" + "1F473E2B487A65ABBFCA74CED063E33F75955E9958240BC3907" + "BB90EC6F49F384DF5E936AE14FCB308F8ACC1F7A406DA680E4E" + "FDC2D2BB74B922C7B49E4972E388596B4F05FBA68ADF9A22FE1" + "6737394DFDFFE2F0D32F1283EA81996B8309C2D10D4E32D4B7B" + "C3D88484BAB364D0B7E35FF5647053CB34180E037A66349A254" + "AE2AA8F81CC7FB5514E76D9A01F96394E3A0044039C452ECF0F" + "DF5B8A57A2A5600AB31AFFD1E15D4642F1A37DECA0EC60EF753" + "797AD668B7D9F2BC02DE248C719311E5696E11688DDDDF71F2F" + "1994331CBCFBB9FF22438825620033734C27F9FE72766BD9C7F" + "B021")); + test_hash_extendable(&nettle_shake256, /* 153 octets */ + SHEX("6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D27157E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A5503FA829F707272226621F7C488A7698C0D69AA561BE9F378"), + 512, + SHEX("8728A95B55D97271B701B1BF2C2987AB3045D39FE0978C9467C" + "41D44C006486CF3CA11B8C0D22C619A8E4652AEBE67FE9FD7D3" + "5357633C8E11B865BD4C55571D764E6F92E29B5C93606273522" + "A958EEE0CB2315E89A1B5C45E763B145B1166A4717784E993E4" + "A7A699FAC6385957AA914BFC856E8CCC62DD39159F0FA5D2F4C" + "74A4C9E1F3A1BF04F8D73BA5A3133243973562AFE874C403310" + "86E7A9705AC76CE8482B7B029278CA61CF74B5AED280A6E7959" + "06C4C3F525C5CB382E55AF0AC5C9EAFDC520B0AC74F14E0203F" + "1209FE6641D1D971C76370204FC14BCD6A8223E30CA81B7D9E9" + "4F35DC53634646A21C28E873BAF741705E4862AB6945653A312" + "125F534A75B6F2D1CD4409D8F842DBDFF9FEA090F6677937DAF" + "354F6130ED77C32711AA0C7CD448D92075909ED7CFED67BBD5C" + "CEDFA34495624EE4373D66FC2F3B25B78AD6A1A9E9FA9A714EA" + "24240161C8CD88F24FE72CC3160D5F68F2387347B580E945F40" + "1B0B025A21E97FEEC0D4DCC412D2597504489B3CC20E3C883C0" + "D88F26591AB840799B5E9B253FE02656CA6AE1A1EF1BE5F1961" + "F29CDBE35A40BDAF2760C7BBF051ECB62322DD178753B3922AF" + "4CEF0AFF4955C32F32AC28D3A44B7F1E8CF93FE6547E8C3DD35" + "159E92A9F3C6E4CF2A75C97CACC0D732B984A8B7A6AF9B81898" + "96FEC2DBBEA60C3B94904F154BDC8FC291E027ED03EEECFED06" + "7969")); + test_hash_extendable(&nettle_shake256, /* 154 octets */ + SHEX("51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC27D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F01200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA"), + 512, + SHEX("B0EE2D0215F195934D2937D523D38F1AF153FC142C04E5D6848" + "34596F3B909241938A56209D414BD1AE0CB43EB2B46C314C1A0" + "A0B155D432947C318642FE5C5B4FD6D0E4C21A9DC594DB20530" + "7B41EFFD14141454EE55DAD5667CC7459D0283CA6652CD5092E" + "F8BC35C908ADD07FD5DAED66AFC6740BAEC7FCD64B838368A8F" + "F0DCFE25B0D46FEE0B842F9E9F59EEE18D73C2549CCE009C388" + "B5A8EBBD54B35676B6140DEED07EFD4624D5A7F816189DFA779" + "929C5F6B1B9489E27492AD0F1BD085EE890794529B75E10BA00" + "6C1B66F3F662C30DF8B1295E1FFC301DC7060010862CAA14D7F" + "A09817F0D91E928ECD89FD8E76E69B3EF4986A15DFFCEDC9AC2" + "4E5E28783667731F07998F8A36DA512BB5BA0CE50640A1A5328" + "FE037F5872A85288158CD5C66B6C03F1925C12258AC4B5E675A" + "CD73716AEAC389F9C235B02FE363A98CB10D9A0B44FEED935AB" + "067C2EEB499CA83FEDE967F576681A13C999FC7C1C0FDE2754D" + "FBA713453545C6AE722F4FACA5F5F2647378BA9308DC27D91BD" + "1538624F459D0769F303AE818CC52647AC15E2AF9BEC6476A23" + "2C1AE81BA4B355C9DBCD37323D125228A53086E0AFDC98C95F5" + "6E12A48843170E9CAE703F5001B52DA42C0AC9D285C8A13AD72" + "0104244F19C30B38CCD620EF8453401CA0FEEBC8B58025BBC6E" + "6C2C788899871D3A5A363D51D8991B5CB5085F8AD525A71E985" + "B3DE")); + test_hash_extendable(&nettle_shake256, /* 155 octets */ + SHEX("83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D8071029810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F5502840370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC045B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597"), + 512, + SHEX("19E39F7444A4A0E1C003631423A621C055D0E07F0E11EF5BE18" + "36B71690CB0DE1565684C355EE9F2E6E65983B8101B5100F391" + "57DDB8C8D92C736604693ABC56491C58CD66BD66498143554D0" + "CE34D601072BF9D0E18EA1B018A7ED9A65EDBD0B81212EC13AB" + "745728ED3A328EA157B9C4B3195F8CB8BAD94A977015B94FE80" + "50F37A0BC14E58EEC7654B336A9E30BAAD27C441CF8AFE09313" + "2234CE47CE3FB3722990F6C5916468B50A13C611B194D148A15" + "1B9AC97A89539D1EFD2F9C6F72F56A8D22A557B23EC7D932A6E" + "41B3F2C177CA9F2ECC2A1EAD4061DDFC04AB1198DB0E26C4B00" + "301E35B18754DF79332A46190ECF89C0DA6834731CD19E2C8DA" + "3A09ED16813D2A41F7A0A4ABE02C93F7307FEC1537ABA546865" + "A3130D38ECC496E548A8EBD2858EC00A57E15E307C1A35D1355" + "B8B97E9DECE5A63AD7CBC97B30F2C9DE69E4975DBACC31E04F1" + "5A8C02E5D23ED01506AEFEE60A449DE20C5A50F1208097BDDED" + "F6D2CB34036DA708BA53DFF7BD6A1E41057E05BB57B3F756197" + "9EB69C40348DEF728BFA8382F5BC8DB63FBC08E6506AD80BCE0" + "C71FC94036EEAB1C0C89A2C8AF4002BD15617834A901FFA42AA" + "249F7EA700E6FF4B211F7B052ED5BDE9B242C9874ECF39B318A" + "3713F1DC3066425ABE76C4AD47F43ECFEDC86A45E1E93544989" + "CE7ADEA7E4CB3CF91047C4F9EAD7C98AE963F34E99874B4002E" + "3FF1")); + test_hash_extendable(&nettle_shake256, /* 156 octets */ + SHEX("2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2"), + 512, + SHEX("18AF27FE1B4AE8A470778480F2586A370C93640BCDDC33453E6" + "F3EA1346B5A4ED3EA3E2EA43B143A22FC66501DD52DF724C0E8" + "F222380B4BA8BC23F2967D0A56EC241A0574E2783A461098F26" + "3533389D503B5D8550C8F60FD6FE953C5631635B6990434F8C6" + "8F8E9AC3701B3600C2D80F5B12D14218481904D1F15A776CFE1" + "FA745103B995F9CA8E8E2CA062C5A3F1FDC848BFB0DE4A47EEA" + "DA11C51C743CD15C32BF921D07F242B83086660605B29FC36AE" + "394C215251B49E9777A93AD91179CFB0551E113DC372F992674" + "ADBCC2D90AEBC572B4C82B454CEB33910B60CF81B1BA558C2E0" + "1EC1D837FEE34B86124E15D7BEB7155E5456DC94D2427F7D916" + "B9C34D24312EB2610A48002415182037AFE89B29DDF5DD7E70B" + "28BEC4A1F3FEBD72CCFEE8360E838FD787D0AA2AF3A502D6454" + "33AEB1CFF47E8E6769834CF0A2A85BAFE9A89B43302BBC64C88" + "AB6FE4712F3181A056921F6AC281C872E3EB21590C50B915F38" + "172849CC8415BAD8161DFE0A39C2532A34551441D78825FE790" + "4B3FEBD8F645BE5AA6F7DCC6EEF96431086781C17615141D415" + "9D6DA40A3A5C22631BDDB7F00040F0D39107BB366D827478515" + "48F3ED3DBD028E3261561C8D7FCC077D3905FF42BF3CAA9E351" + "207137F7E8271EE970117E56D30B35294E8B91588DD9D990027" + "4DBA4108BE1595833284047739DC4E90F9E20BA5EFB2B736DE6" + "548C")); + test_hash_extendable(&nettle_shake256, /* 157 octets */ + SHEX("CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B4460186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644"), + 512, + SHEX("AE82057AC5EA69CC1B5EBAC395B0EFF26850C394AF8178B55AD" + "808879AD634569BFD8D0C5F34F9A3B26821F63082C5D2C322F3" + "47FA6976AA88ACFA9ED8393E126F7F47DFB523C0560DA535793" + "7A74488B51FA67583C7A7E1230C015FB5F233E25B744F2FB683" + "0278B123F7784C4F6070C8F905F96486B2D5FE137BE8D57150F" + "47CC7DCC0011FD99F35DF4D9E15F0F937762C87153AC17645ED" + "67581B38E2B34899A7D726A9ECC1CF2E5198ED5AFF13F2544AA" + "A1A069CE8A30CB66E1B984002D20F769C0F94C95F99F914D324" + "02741D5C4D631B9D6E561D32D1ADBD1F1DD692BB89F48C6BC4F" + "88B669FE4BD2922CE6A3184605053322952E113C98B330385D6" + "C4B6527303563DCDF099BC2102F915DDF3BE0989EC8BCEB029C" + "E61974AC41A26D6DC7F53405A4F3A9130C5CCEAF71F828B3F7F" + "58117EB476A46263423F68ECC3427D9A94C292EF7C4C1D67B32" + "3FE15F69894DF362E54B441BA5C94D3E0B56B772AFB5FCBF8CE" + "62647DFFD78BA7F48DEDD2E457AE9FEE60580084A05F318907D" + "FB90FAAEB9F4D9C160259A6F8523AF77C8CD8AF344F41DD511E" + "46C699A8F9A5A85EACA57780005AF313705820D8051D780506D" + "02A09B04470398D0AD323ADBAA8B3DBF61AF68D9FD9DF29A76E" + "0A37678C08C9D102BA960DB0B5D20B6BCDAD7750D3F8CDE6E99" + "4267E190D7F3DA06C36CF7539B6B574034B43F55EF8DD370F72" + "7B97")); + test_hash_extendable(&nettle_shake256, /* 158 octets */ + SHEX("F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C310EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B146C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F"), + 512, + SHEX("39B12FE62B75D707C8E18FE1C8CD23D3C1E15B7F46FFCB24C70" + "A1D86604FE6BBC36282595346A3374B0B2305F60CEBD77DE112" + "5373F5230535AB0E4BA011C6154F65216CE58A65856C7EF6091" + "2877E44ED2527C3038CA202B5445E97BF817BB6419725ABE41E" + "A1529B6DDC64920DD8396A7FE3B26054C09E310465BF65AA7B5" + "6B1877D949DDA06057B7373023EB09E4CA1790D66A773BF34F1" + "B9D4011322E08BBB7139B1750278C2DCE88626AB16813803E32" + "0515640DDD9D6A7C5B0DFF8FDB445CD65D6BB454EDF83D6BF4F" + "3387CC98E381C65AD3811C8DC3B6A42C203FD2AD6BC464783B0" + "73C1A9D37C1D29F85061E9C426DD195A98DF3EB0C2584219628" + "57EF89D643F8BB18DB27F339BA178E85144040BBEFEEB116088" + "2C3EF2A1C4950873AC4E5C853E48DD7788250DAB58A06BEEE19" + "03C2E68FF0F8D7E8F55AEB58CB0D65F5E74FB5E301BAE225831" + "4D5B82E3C0D7C7782AA1B34E80BEF2EB258E0BD322451097B0D" + "F4532A717E2F0FC166817E2A9E24A318E6A4DB618B6A8382A1B" + "D1A600918CA08EBBC224AE9A7C1CCC8978759F512D7A97E4D1F" + "05173B33F670BF3C40E2807128F752FD2995EC3A60891575427" + "5EBD215821A4F04AD21DD823341B15A484D0C12BB3D829BF99E" + "182FE774D2EFC726EB37638CBBB521FF14E10D73C7FFBBD8B79" + "EB86470DA14236C087EC3BDD336E8244E780454DA1A8E70524A" + "19DA")); + test_hash_extendable(&nettle_shake256, /* 159 octets */ + SHEX("25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF68E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D501C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1"), + 512, + SHEX("939D443F3AAF7809342B2EC600A9D1A47E0C4195C9E1D95CE22" + "F95CB98AA970F4FDD29A7EC9DE471A1C342D4830D20DFC5ABFA" + "98F8BFD4CDF752E00BFF151D7CA44D5BBE7AC18A9ECC1157354" + "B2055AB08B1AE7B304623D643F6D471F23A82C2E1C67F11D527" + "985208C5494138815C3CF6227A6A6FACC9E2A1E3D58B32E2964" + "15E5889E58E1DC8657B0324BD1EAC60FF8DB83674B75683348D" + "69978F04697A1D1D3E6D29D02094C277CF034D8203DC4D705DF" + "8EAB7046C4811C18F2EC906B735BFD1C2AA3306FA0C9AA47E16" + "0B6EAB89E0B390F37E53B92A1A160560E9A30EA3F005D100F05" + "21AFF20A2DE0ADE53BCBEFC517647C81AB8684B2754FD62E5ED" + "A0EBBF56AEED4F4992A0FD4D26AEC29BD186B2E254DA07E1C5A" + "D03F8194AB350510998A3BC11F08EF33C61069D1CB7D271F7D7" + "C799057E6C2ACC1D3FD8DD666E1B2C2E15CA2F99E55163BB01B" + "CA7F9D53F6389704874B3E5DBE6E74D91F110CF8A4D5EACC7A5" + "19F664C962B11A48E022CF65D4DB4E4E506951513D83669C786" + "FDF84A79AEFDAD75414A6CC82EA84EB3A173E887D39230631B6" + "CC2AD26C55C938C6C82181F57820FE88DEA96AEA2B20E330C29" + "C09A645134472B1B1303B1F46DA40901A63C079689DB2C84E46" + "FC548270FE88A4A2FB5EA27C58A4374F72849B9C5C7C18AE207" + "5546868A05EEDC3D867F9601C5C8EE585F14A1E3A84E2FE9A1A" + "99A0")); + test_hash_extendable(&nettle_shake256, /* 160 octets */ + SHEX("21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CBCA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E"), + 512, + SHEX("FE0E80E36E66E0610581835D69A73908F1D951A81DE93FD2BC5" + "F10736DEF8A887EEFEDE8BB6074862EEA4BB0F131E48D2C3FDC" + "8B8B8B93AEF4C06BF97214F4D0C9000940F81664E04D88316F3" + "732B39E7F9685BE377B90FD7343947E7A79FEE7BDF5757C386D" + "E6D02035FD4082735CE2FE898F18BDF00F3DF5BD160D792D3A1" + "56584EEE92B273F9A52ED221831942EB0F148DFBBDBC2196006" + "4D0E9E1CFE4E08C7927FDF1F0956288419B0372D3DFF7D1A252" + "8062D31D97D17F7F8CB09ACE01187710E9DC2CD842CC8C09A0D" + "1FE34424283FCE75E64446608CAE796C1F6385F989FC93B31F1" + "EDC36BD2C3EF3B71D14F25048B2E30A5F279180FF3FD0B8308C" + "A93F4D1E72F7F45C7313AB6315D1F0B198F8D5B47742E94EDBD" + "33643397661391A82832744EF99CAB293F26C8E9B0F9D6C9C82" + "BEEEE0A4B4E6ED3EF2E7395FEF4222F3DF7B032EA28430478C0" + "38E45D36379DFD182877F827D86081647DB55B2A05067913DE6" + "94F84EE85BCCB1F60902F787CE27407F14C445EB5159BBF643E" + "F6195DF2F23B0BC41ED595665D47B91223740709DBC82A86E35" + "F615897BCDE5F597FE05047A6CEFD2529394CB85C4945F4188A" + "078693C56A6124E040070771A4E509036DF1C9B24E2185908A4" + "3E4FF81ADC7D10D5578B00A6DB9FB56CEA6D51590B1CDA9BCEE" + "86CBD8263557AAAFB7F81418FB9DCEB0DD67EE6EE7BC761920E" + "F784")); + test_hash_extendable(&nettle_shake256, /* 161 octets */ + SHEX("4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019CCF"), + 512, + SHEX("083A1EBA0EE14492AF390762E0673F2B41C1179C8616870FA5A" + "A69C40236A6CFF19F322A4FB8AEBDD659C5FFB5F1A953E65FC8" + "8C42C12E37FBFFD6184035F0F31AD80F7E257FB2E898C9E5DAA" + "5A20603A0EA41FAE59E7684646A826C4501F0A7A8C622CF5A27" + "D37E998ED954F0DFDA36A86CE59C8A8DF3DA65DA575DF054192" + "69438F0DC0F41FB34064E48BC4EFEEC93BBA805B5DC97F7AEDF" + "F9E08E3D4B7E2AAF58747255F09A4B53658D7AE61D97EF42396" + "161CBC2080DC7BB7392BFB348AEF7F4B2925CDF9F641F3BFFA3" + "F140C0142D0E61CBE3D1DF06B016579A748B56C89D5BA88466D" + "B79E891CFA7B70532A4D6649C4176FC21531F62F7BAF5D9EF29" + "76227ED6EB614DC44CA99F9580C82418FF886E169506F8BBED5" + "68FAEA7CE2551346EFCF70FD5C32B6A30572BB72C87C62B8992" + "EDB3DB0B4C3EF8CA466B5144658BC4148909BD8D9E1AB5CE3A1" + "801D15F93946217CE9D8C0ED536B3C2E75C17B7FEA2E99820C9" + "01E80EFEB0FF7FB8226CAD685CD768A41B8CDE2C5CC8BC44B67" + "3CE5C44F63840C99E557F3B45C9EC92981CFDB3E20EE040AF13" + "A92DF41E8A0877D0559F6FF5D9DBCA2F53A4E2A8B47218CFAD9" + "CA6AE3892F21A0D9C0FE91A4F027BC25985947AF0C906537E82" + "7B3C79BBA1F37EE38F2897CBE9ABA9438CCE9D972EC262D358C" + "33E2E6F2F814F0E28B4709C2ED119B50594BE98F594CCD2B7D5" + "6F03")); + test_hash_extendable(&nettle_shake256, /* 162 octets */ + SHEX("FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B85FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F1DC8"), + 512, + SHEX("AF0FF42EE50B300F202648FBE2DC08423944429568354570F78" + "7B96531A0045C76189E453369381CB7B0A537B9EC05AA22679E" + "96C7BD7CA55793DDC73B6C3FAA3A0D2B03D7561D321FCB377A1" + "BA87C098D9FCD1C03D7B7BBA6262687D71B1B608BF148694673" + "9A69DBE87B95F0E7010103AF17A6B0C50DB308DE00442641B51" + "C5852E91E621133EB561C24655C9D59C22B6AEA470E4D235350" + "46FB88105E7DDFC08339E99D8A750B641E81EAAB46A18CAE3EF" + "AA493790A9E942EEB6990EB0E14BEB6FCDDAAA0BDC5D67BEE8F" + "DDF1931201F18D0B0EA4227D1E89BCEE6C293EEAC60D3A724FA" + "6FDDA3AF62D5C4C5200E14E2D40F3E031E71A8DE27CE3D3956C" + "ABE9C6A5BCD67C0FE25DBBDEB5720B823777815EC277B594C91" + "4F07C989824CF0B1060ED0D4B3ECE3FB65A5AE726412E6EB6FC" + "F3047C6326922A0BD1BA7604830DC4D4981FF12B0364435544D" + "4836505719EEF8BCD246A326CA1A756193FA0A94EBE98A632CE" + "5A0D88E115A4CCD1B030EA7B1651F43F22D2D2A530E2821F238" + "0857E916920FAB974AEB69FDD7C3AF313B46F2DBD14D5B4BEA5" + "14041E015EC93A6A633BD6477DE78B51E592B3D87A708B831A3" + "7B70AC70730C606A7C880CE3FBC11B727E25849F2BE6586D32C" + "F7F31E20A739CCB25B62C03C1DB5AFA7B1C00B003DD9C5BFA49" + "606830CD5A9B9204E1A51EFA571688496D5A49F4733DAAA295A" + "EE26")); + test_hash_extendable(&nettle_shake256, /* 163 octets */ + SHEX("E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA654A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A9198799ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4C25E88"), + 512, + SHEX("95D216D4FB11C900CB83674FCD99D4A0B0909B307A2020BB00D" + "6D6A5590B6F82268D377E255BDDD9179249C3769AB3EA09D935" + "7447E99F9C8E924FA8C39B378790CB629C46C914EC79BDB4AEF" + "7C4D0ED5092B620A3CB3BF6D19DCB0ED4ECFDAFC9C049E7A8ED" + "ACD6C91A3C15D7587C58669E0AC51E151B613503DB2AFCA0AE8" + "1782CA58BEA22467B9FE7CF5F095B376BADFD9EBC0BDAEDBCC0" + "832D80AECDD6919AB2D31646D9426CC46DA1E5398DD475E94FD" + "FBA98129C8997AB4EDE6A204C17CAF9B1691160FA4362909B1C" + "1BE81420092A8F5005A3FCD26FE0FCDEAD650665E4ED9CD22DB" + "75382D898075BD2E68D240E13BC340C6E4A59AE944A626349A3" + "E27F9C82F4DEE5B593CBBEBA0A2BA46A5C0FEBC5290675B2FB6" + "36EE868AFEBE35F7BD08F1137ACB12C6D8376CC8E737827F199" + "C899B3D8AAA937349CC04B3C64691931DC13F10EC5C57F4D5A1" + "3A38E26614302C23E30F28AE09669C4A01F7FAC9FF0B2E10683" + "43862364E799C63D74C7BFBC5F7CFFE79C24A58BC2CE1041045" + "FB01653157C9945B626B3CD315D9D25CB0B694074AE8F29D372" + "067C308F6BF0C44CECBE47E5528E0EF9E373DB63E554FDA5212" + "E35898975D708652AD71C14A51C6E5E8A04CD9B7365ABD43F61" + "FC7B3EFBE60715574C0AD0BCB0C1D53DBF51172E669E35B19F3" + "33A3CAEDBC4E08617C47E51AB3863D61A13A8A2B2D5FB54190A" + "0B80")); + test_hash_extendable(&nettle_shake256, /* 164 octets */ + SHEX("F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A665E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA73406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3AC5C06729"), + 512, + SHEX("C2C5A2155AB4FBD3A3997BD00ED2EA8F049205A6E0668DA09E0" + "DAAC49484B0168E6767AD78868347272E6D8C97EEF06AD0A3CB" + "9FF91678DEC7385124AAC34817A6DD435A0A88DB8E19A4FC75E" + "8F9EB34376E8C1CC7951623171DB22DB1CC5DF9D3D607E5FB17" + "E450C15A20A748C340A56142289E0B1EC83CE82D7706DDBA124" + "759E895CB7B91522BC46E011B4EB98927D860D09BA48EAF80D1" + "FFDF9CCA026B5360AC8C2F04E9B0C30582611B8E8085B8E986D" + "28C330BCFE80DCF11246D3544F4AE7C655E46654DC5151242CF" + "A7B620C429757B1D527071FEE890C73EABF1BD1630DC5BB4621" + "ED4C5C6FF7F41F4BCED4D31B215DD2BE6A5952BD06DADC42A35" + "5F628616DB922DB19CEC424BFCB893F948F1364AE7BE1F79413" + "A879FA372EFBD59F62FC3879FBA03622CF947D0FD2C02460D1D" + "735E41ECE1A2AB970FA9784DC67F0F7C2A3A0A5460F1B31029F" + "B65D1A9A6809B4F2AE29F3A68CC2C780D0000F0790998C0FEBF" + "AA59A1A56CED99F752684AF6DFCE832901B998156C73E007C77" + "BF401CFDAB4E6BC582B6CD477FCCBB1549C870FD6E62633B90E" + "D103EDB47D749D04C39D2DCAA3DD4793957EFD12D78B73F58D4" + "3087F456833432124E312D499779CDAE6332EE8D884F5719D07" + "786A7C85A9642FEC61B66834F98C25E0A802B3F84DDE862D912" + "7923E3A20E5A20E184984F8661058D53FFAA70C5ABBBCAB51CA" + "8E0F")); + test_hash_extendable(&nettle_shake256, /* 165 octets */ + SHEX("CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240CFE0AF93EB"), + 512, + SHEX("B3CC34C482E9402EA5A209CCAF5D017BC118F61E52BEDEE634F" + "D56C7616E6ADAED42D02F072AB4EE1D8BCCB8038B00FF3072DC" + "D971616FD6A2B0012581638F835E5441842631D12FE303D6E53" + "3D22EAB7CFCB702E4BDA509C832BBB5C24EC62A468CA885AB7E" + "4E3B951C5380A30CB6F132408D31FADDEC570800B8EB58AAED9" + "EBD8A0D6618D439B46F83116715568A5957D2DB94E0C2CDCF98" + "21D86A71A96C622BA5C0F7C214375686E71F4AE74FCF5A75A6D" + "B5F8EB274E6D93B52A2A5110C0B77A1E21E599ED0ABB78A93A5" + "469747A6D1FC4E3E3BAECF8EF33580F00D55CDF9124E2BEEDB8" + "814C8F5D5171CF6596DE35AFCE94CEC25FE5D6877F40DAC4B2D" + "2FDAA0E98FC08DB03FDAFC3A4A2A98D0E865C99B766F55349B6" + "88506D7B701BB01BB06F80D6BE98DD374BD84211C61112DD0B9" + "A25EFA21F9804D724154881906A7BF815F206F4AA1175348212" + "C54538BEE673B56582501A659061A157444DCE84C226936E99E" + "51252418498DFEB02F2DC665B8CC4622C0326978FA7A7A8D171" + "D445CEE519A32D81721F99DF529614BF09E4273B24A6809CFAB" + "9A1E81E5280C84ED3CBA6D4B232080BDD034F1895F4010BAEF4" + "62074898949A1CD5892AEF5DCB2B09D46201509847179505980" + "A2846E58DDB22EA9FA0FCBE3AD9DFFAAA42F4FEF4A9DD839149" + "5BA470A2EB80D5992DA78DCC8E893C1BA2C909CF8208A18C31E" + "BACC")); + test_hash_extendable(&nettle_shake256, /* 166 octets */ + SHEX("2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181AF467BC75A9D1"), + 512, + SHEX("1A2EB5A7E3266CDADC696D082DBAD5D9F73777F5B95DAD3E9C6" + "A936271F12762FF3E8D1D959ABBAC6933BB19D2A0125AD59477" + "611F9F912F935D662ADE6E1E40412BDE3E00A99C06A4906B908" + "55AF6095DD7E6114EA48DDC1A76F3C8FFFFDE5AC246F5C0F854" + "831EE7B48DF6A32CECEC0E4243A792CE3FCE40BD5AB22838DEC" + "6155C817D272F3AD602F58EF870D0126EA18AFD1F1527931C32" + "1A8D6DA1BF60665D077AD15EF615584A249ECF7D3728C0E9D3F" + "C09BF8D3FBB9D260FA4FF13BBD4DBA6835590D67EABFAFB92CB" + "3B0435F26E7EC265F7E2077446E1580FD1747E871D7AD1E992C" + "1A909E068CA3F8B8A927053CF31EF7E071D5C7B4044F2CF61DD" + "D48E7B7115AE0CC2861DB7E26302DF02CAD460358D06ACB7E2D" + "07615C0F3786BA02000893FEBD088584ACA9FBE9F14F85C8894" + "3671D24E9CD0B8FA46601C2E40D3177EEB500E8AA2931473DC3" + "BC46F71C749C281E02B67D8F0B3D012DE4942B1B3C60A2595E8" + "45CA454028489417842D9A6C4706424C5C0A073BFD080E5F820" + "CCCEE99CC4FD372B0BBC447C5F3F54D87755C0A59C986D98E31" + "6F8F1899821CFAE312B9416A4622786B2910910B86D19692C8A" + "7ED50D63E252A3A5655D6E49AF3082BDBBD07690DC6D4EA42F8" + "A7BC57DB816929B9FF8375C4596F57D9359F9FCDF8A3FAB33AE" + "27624265296A093DBCBDEA292450D345B8116B86FC54A0B4B55" + "F12F")); + test_hash_extendable(&nettle_shake256, /* 167 octets */ + SHEX("0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286EDA20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750EAF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177AC6F4756017FFF5"), + 512, + SHEX("1E67E9FBB0568660EBA48D1C701D75653D97D9A94E770C355E2" + "F3F6DD9B7C3CDC771FE82EC87BEFE4AAB21BA7C689FACF51593" + "CB278F7A8A4D81B9CE798CC2FBA50145EEB0DE079F016362FDE" + "491620CB0A3C26CB5D5FB09980E783774C8FD2C9D8900EBB103" + "D73F0BAB02D0A8E2827D2471DB29F3D6EE5D9D620D4D13D8925" + "F1933B1C66869BF74EF967204238E095927961ED5925D1A271B" + "9277AB9DD7A30DE1FECD4C6BD9615618BF79850EE7E247121C9" + "28AC9BE6F81D2B41378E984F4BA494180D7E45CB7ABB6DE308D" + "B53804BCF43DACC10AB3A98157285FBAC9B183AA49EC18E98E9" + "B40D12B022F40B213641CB2E18E3303E4C9078DA836466DB8E2" + "E85962E5520E9FF66CF99F96E7699212816124313E5BA6347F9" + "9DA7109940081419B4EED3F4ED2763D655A00EC6D183CA87907" + "4F237BBC49D40D598FF2BD8F47D0D69F2E41397042B4398D4FE" + "449CF553F6096BA25C1A2185A13BCE5545FD0DEFE4D11168BD8" + "1B85CA5B0502233C43B6E863447578EB6F074EE2EEFBBE6C52D" + "0E8B1046F304DE2CAF6484AC24783DD77774F0FAFEBAC731E42" + "9DBACB0D95BE662ED9C71FDD6C0E6595CA063C748ECFF992064" + "41F8E96C96063EF61D741B4D622B6EF6A6D547B738AB27B50FA" + "D2EC5C479EA8069B9D67654C2F12D8232AB8A97C83AF190B8F0" + "9E2B8F62B7DAA334DC8F26A3EA62A999433FBA70A27B9CF7FCB" + "61A2")); + test_hash_extendable(&nettle_shake256, /* 168 octets */ + SHEX("C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DFC3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB679D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E8445DBA58E6CB2C8EA"), + 512, + SHEX("7204F8652F37D125BF692544B8BA0C8859BEAE66E4B04ADA568" + "5C6B4C3C1B8A3825B2AD6BCB2F5443B4C28ADF57388FCFF481C" + "A629934CABF872354E4A33942B738CCD4E1941621524E895188" + "D2ACC9EFC69DE7A170BC974C430B9830E25DF96097B3785A2F6" + "B86F39E59574E1D9C2B91EED2231D4D1AEFBD5DCEE3E5FAA424" + "72949D0D19DA8980BFC6276E41DDD600DDF78E82393EEE5A9AE" + "0C87578071D667B886EABBE6757A52AF9826F65E7CA80529825" + "23F61184B5892465B3F82BAE68FE2FEC1577EB935309EDE8041" + "63DEE46EFBF5C93E7A9DC3BA79CD9A866966BA1FC0A721CA4AD" + "17364C3A4033E805616FAA6075672DD6FAE31A67D891646B74D" + "D8AA916E078BA7736A9B00F73DF90B09732A42E38FE3EC9F8FC" + "907A5868CA170C669ABAF99571D14771B91F46C68F57DC6215B" + "94DC0BB03F890BDE02DD41CE5D0F8F48E4FDAEAD1F0A05DA9A4" + "56DA80B82F44EFA53DB9899F42BA31CECD9D7CE6A5DE33B70DD" + "6427D3A9B31C83ADEE1EE073E06EC4238FEE4EA0029876FE6EC" + "A5DE76E4D32B65564EFCAA326AF3519EDA46EB3E443A85E78A8" + "E26D21B158328A56AF40B07AD19734E341A45A5F43D1EC2C9EF" + "FBC7C5DD92ACEF61607F3CFDA8BC72D33C045A6B883972CF4FD" + "1282A0ADE3978D1803EE78BC6F6FD297EC9E3052460483DBF79" + "E6C35AFDBC10FA87D769AE6A4E2849AD112EDDEC1135CDEC2EC" + "FB6C")); + test_hash_extendable(&nettle_shake256, /* 169 octets */ + SHEX("B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A6686B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D2910B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92E8419D48FDFBD744CE"), + 512, + SHEX("A3D5CFCDCC03334632027FA1B1ADB97C740F9C5D33F0B6D8468" + "B4AA9B37A5EAE697D6DE7717B6F7C3E872DCC4A62682DDD76D8" + "7657096D143DEDF97F2B9BA36734B9FF5816E247243B1F32F5C" + "A122AB49647FDA690B83AE0FEE45625B4A2606C8E366CD5031A" + "0C938407CC9421414CE4631477C3D4494570916BB41C60FC05A" + "C125A3E81346759DCA0CEBDD763B61493997B774A582475D226" + "1F6F8500D2C51C70DE11123756EB6B958EE5F20FB4A49429358" + "D743E4B62D76904D23FD5DAC9ECBFF14854BF27DDA819B3F524" + "21329B0576CC399EAC734D73FD9BB8729168E35E2A3490D7BFA" + "A39E53E54340457AEC4C5C8F4C0FEE9339053646E4D74EF1A14" + "06EBA208822B8E66DE410CFCD49A464D9FF545604C26CAA4FE8" + "4B018C69BE18112B5C3D7325481078C712979DC88842E2842DF" + "19F39025D28FDF45A5DD6E8FD2D12BF27D227E79210F6266B86" + "CDC7BC6F81DB57AF57AA252C5BB95A235746B9C869BA7F8C90E" + "0AD3F5DED409947173D071DE216ED1B137846752653CC6CFA3C" + "52A32AD6CA0BCE29A5B12475C049488F0A79ADF5ADC4510E646" + "8E714BBA37C0005A9CFA3DDB24363290A04BAFBBA92BBB2C2E1" + "6CDD9D40707C56F49C05C5276C89BEAC3B239DE284867611CA3" + "DD8250E8C7FDF522E0E84EA47A3A06554DFFF6B7DA13349A5F3" + "6CA447499C45DA4C491DFC113892672B036507FF3A1E7E07B43" + "FB95")); + test_hash_extendable(&nettle_shake256, /* 170 octets */ + SHEX("A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F61FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F359D5D1EEA105F28DCFB"), + 512, + SHEX("23397CF5C6041FCA9F1503B12A47F1389C4C35301F1747D574B" + "48DEB270CC2FD79DA5718D0D5ACB78A7F30782617AA2E03B9F4" + "6736620E512A6AA4E55E2B94537A74357E5C1E6216BDA724677" + "BFC4CCAC3E3DCF4AE21D7E56D55ED2EFE6FB50A2222E98139DF" + "C739FC759BE57963D8427D0B5D2093CF5F42347A6D9832E1FEB" + "B4576935FA18E93DDB20E8CEF2F2EBA33C66F1E5741171BB64C" + "49F128A7B0A9F095A35F5A20A996A3F9D7A68AB3B0D0F84E8F4" + "FD43078A80266377D0D7020DE67E18DE20656BD59B86726C99B" + "1DC8FA25B83A1FC8B7C256DDAFCC67540C1287CC377AC10D392" + "88CE00839AF31A1C078B403A863171CC669DD72ABF4D48CC72A" + "F222FE939A2D75CD7F195D3BD8CF8069F6557F1FB37BC8F9B67" + "7865E0D23BDD29C9B240CD2993874FBDD5FD3B8CC57B6226C40" + "890057994A2E13129F4613D3ED31EA5804006F5753047F1128F" + "9B8C0A7ABA719A1449B3A2D02ACFA0877E81306179F9AB717AC" + "84819029006D73D48EE55CA13A3D39ED293AD0AFC8EAC8F8D41" + "971242877788EC1286ED35F06330683FE33042A6255835CD54A" + "A07C0166350B851F98F2AD2A06FDA56B180F11B9616BB51ED98" + "A2FED5BC2F9EEF7046A38754B91543EBE97B8375A81B7FE9CE5" + "8DE4DCAFCDF8183541E44CC96F855CAD024C24EA87313DC05EA" + "A1D933D6E238E9B3A0B9628239344E8E81B5341D615B63D881F" + "FE45")); + test_hash_extendable(&nettle_shake256, /* 171 octets */ + SHEX("E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C642BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF16B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D88567ADFB974EE205A9BF7B848"), + 512, + SHEX("3753866FC2D045059FA925412D3FF0FD1254724DEC38E00F109" + "6AF36D0A7603903089900F95CF9BCFECEC4CEA14B7D80CB324C" + "56E60569AAD9E0F45D3A726F87E6F18559701EE6AE0E7A8622B" + "45DCC6991A1FF15DE6B78BBCB96F976089F26A38EF190EE0C60" + "9DB54F443F5F1014762F336F62EB5F7CB7B102E99FABD87F36A" + "ED3359EB0DBF739DF4EEC4AAC458546C00D16D412841142ACD2" + "E08CAADBDDE86843ADD14E3D28426295762E564E1F4854E7C61" + "7F48EB6F2FAC79FFA8CDDB09FA09A8DD73EC389285036A52440" + "41DBD60AB71F8FB59EB73629BB4A827A7584B20C12B96FB1F0B" + "950BD3C87117DA69C7EDA0C1645B6C8C81DA8A6397DD821A983" + "DE84390B1CA902F135160DB58F9F7B7AC9D010CE8D6BF713627" + "0FAE0D3994F80612BB12916993AA73F22FAE642784D75E1CB5A" + "CDBCC20A3AB148D6F3F171402391121BB404F8F576EEFC9ACD1" + "903BF9AD2CD4EB1208F143DC84643E52570D406BA31F8DC9F32" + "83B2691F826C4ADBAF431EB2F1DE1E860F9B4C0153C9F002C80" + "9822875F915F7131EF63262ABBD8BF4A5D9D1699D893435C731" + "DE48756C8D03C94D11D1D484DDDBC5C35660B3318468FEFD827" + "78CF907FF52D652BCDF68C20349F64006C640E7A544DEC1FE17" + "09056FFD9EA7D41590F84F653AD4F7474D008765BFAEFFBA015" + "DE99D523A56A6C989BA11AFAE097F4D5FA63F04AE0917212E4E" + "AF48")); + test_hash_extendable(&nettle_shake256, /* 172 octets */ + SHEX("B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323BE75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024BD7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FAEBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F7487743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588EC77F29D211BE89DE18B15F6"), + 512, + SHEX("2381AA1E335043C1F7360D64C703FCF6190747A616C550F787C" + "33A573B2F9E83DE427AD8EE50610A2FBB07AC92E4F912B3E5C1" + "0001044FA2CC3FF1C2182C672BC03183AF502D6530443D890AF" + "4571611DF65A2FC50879D08E9D664D78D5F81D74957D38726CA" + "EE5451AB88DF8853CC4A034065C532346A4F0D548D65745AB64" + "9683CFE185C649CEEA12D79E0904E2C059549F895DCB1ED12D1" + "CDF00D530D4653B56EF9FCF8D3BCC70FA91397B87F34FF839D3" + "C0DEB053D46FDFF9262219004961AF9D03F50E1016E737605F3" + "5EDED16ED51F4AA8FFE0A253AA21011DC002C5C0E0B1AC706E5" + "3DBFDDCB1B02C0148C3AFA9D69B6CF7A72B1F793EDAC9A99ACC" + "99F988EBEE210EE108093CE8EED146FBD98436299B159760EDF" + "3D07BFEC6A9C1D844E98DD632B1E773D93B9604CB635457E33C" + "063991D2A6D4DD8AA72883FDD742E34ECA12975AFDBFA2EB997" + "609F91CB4BD53CA40BA4793B9849ABD509A2B6C01094400526C" + "493FF33E0F8F1908BBF783E0DFD92105830947338537C9F7B6B" + "2D193CB2923F95CAF113C9248C601EB39147661F7C639FB0528" + "1E0728B916C59D98F36DAEC1F61FAD84E7292B6A5821009FCC3" + "0EE7267969243B36134675F3C8F1F18E9C341AFEB5377426BB0" + "4517D1498FA7A271029936FFBBB4248A786EAB072387B991222" + "017025BB84EB4DC084781F21251CD8D8CCEA15EA2C37C89632B" + "B67E")); + test_hash_extendable(&nettle_shake256, /* 173 octets */ + SHEX("DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D59DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF63EFE793489C39B8FD29D104CE"), + 512, + SHEX("325A6883E6918057ACC4D7E6863D245ED59957957AF4E8E59EC" + "6ECA35EB380641BD39550268A68EBAD703A51F9B47DD05CA256" + "81BDC853EF0897CBD4A0DA6BE9E911C26E801DA8F5360140FEA" + "2EE9276747E1AD0879FD741E52A7DC8F0EE3CB199826F9C1D39" + "7E150641E8EC348300BA4F7EA7746ED0E94520577FDD253E04C" + "47223521661A308D1C996A90DF8A9AD18418193D590E75F0F17" + "FE0443B5B130C1AABE9F60E538E6193A19690368A2C17516D7F" + "EBC3DF95DED8445ECC260BA46156C88B5218E582FEE9EBC4F28" + "CC4171936F7C5BEF008D7AD76A70BE3CD3F0701791702A23716" + "0798223EEFBFEED7BC108E9C793CC42F93381BB9D5F97103499" + "BDA63610303A55088FEF10FEE330C4F35D0A4D0F36C1CA06CD0" + "8496DB0D06553BD612848212539DE0D698A530DC287F2FBADDE" + "DBAAEF0195E050E3968850FE8E1C72F8E3F11F24BCAC475593A" + "A28AB2CC69C3FE6F3ED03A38D8B278FD678697A3F6DFED6CD52" + "AFA4E9947CA56D1CDF10ECEF90BA6EF87D9C2765F2777C14323" + "25C464C685557129808CE3B91310C301547B673D498A4105833" + "4562074A3BD3C64FC8B02BEE8EA642B12783ED71E990CA90B95" + "B7020D5458FFAC57BD93F882F3EADD4707C98591CAA667BB0DA" + "EE9880C3549FE9DDF7C9314387A85D308516C64FF98CCE50E25" + "3CDC710927DDA784DEEC547C4442A0818045696F4D4BA4E0D72" + "9D13")); + test_hash_extendable(&nettle_shake256, /* 174 octets */ + SHEX("BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E2022302EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0CAE5B257BE36A7124E1060C170FFA"), + 512, + SHEX("0E479E6C1C78B597DE67FF30F0BE1D251DC86FF0AB0F4D5C6F6" + "4BDEFDCD6A77DAF29B772FCAB3EED9344D32BC3ED616C10F69C" + "F4AB3B34709F3941F3951FCA1A173CA2CD707FA41B8E4586343" + "77596865BEF5CC8A3CF52C0ECDA7CCC0DFD8AA8CE0CD7CC1917" + "A7BB9A3BC9084AFE456E5DC02569B3FA4D9B9DA03B8E4B223F7" + "CF033C1A8BBD6002B3A457C0DE35A222A30A0E86F3EF9C9F255" + "D449CE4EF5AFB51577391574F8271E07EA98820E0308EE56B1E" + "EA91B35058030AB6AFDE356CC83D526BDAE2E55B1AD4E4D8016" + "FEF14247BC7D95C34F06DAB7D9FFD1A9FEF761AE01F8DEE1D46" + "75172C1F0CA15361CBA994EF062596BB767C52A275792F48B19" + "1B1078968C1793A9D274166DB592267E1822585FCB1A9734D4B" + "503F5E1CB0754A7D9F47359CC91E0646C4A2E754A29584363ED" + "4C8C806797FD102D6220DE1814E665409104D32BE7A346D3B12" + "6FCD51F55E5625A6BCAAB74F0E69BA1F75A4D5C4625E2F5AE12" + "4CEC4EA6A702858A3B03CBCB0B014D3D841CD7A87D02C622F96" + "AAF3AAD96A62939602A2AA1F9D88DC555038560217BAAB657EE" + "87367E05345E1612532F9B6D83043DB59837E1F75D82B8149B9" + "3F1105BE13BF51E20F18CECD5DF87067A0716D3F860DE8C998A" + "487C8A197149E7C8AF4B414217B8579C314F698FD6A3B612B2D" + "D67FF6E3471856FD9F66799FCEE14627293EA94D1C32D915CB8" + "1C5C")); + test_hash_extendable(&nettle_shake256, /* 175 octets */ + SHEX("5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0480AB79D4E6415B520F1C484D675B1"), + 512, + SHEX("0A5995025C3DD9437884196FF09C0B92B5B0B51B59D0C3C9041" + "AB172A1685DDCB3B0324186F11E2D7DCB6851F888ADE6805249" + "7BD16C4F1D98DC468D833E4AFDD2A9E3DADCFD188C9B1E35BA9" + "FB9549F88C8C7C74352A7B420C1019D2E7CDF02601E5609635E" + "AD96CC57FE29A5AD98B2FFF301B3640BA441CBBED877477C0DC" + "1D6143454456C0EFEA8C4038281E97C02774A7ED709A446941A" + "2819F3372E18BC1A6C119EB24CD16A623CBF91816CF2921D2FC" + "65DEAC91F3E0EF24F97CA518D167F295454AF8208AB25540228" + "A9AB1BFD0ED0C8D09AE579B7116389B9BAA6EE388612F323D1E" + "1627D1667F4E524C562B0993A807BAA0E81D02241049A4C0BC8" + "EC95701E9CB045A91C4340D8C3067686347867D4FD94D48C566" + "672DA8C89468D71B488F7D5E1409B3F1AA17B019C57D5A94C01" + "53A887EA366253DAD36E9ECBB20DE67E5F09F4516DAF9376170" + "0BB4E094B88ED56CF935F9D0E5454D2168FE5F5CE0682838386" + "AD55B4C664526B48138EC270BE30135ED84A63FE04CFB99DBCE" + "6B70CBDB32110F954491044970D3AAFB62B5123F2B43F3B8275" + "CD2D1034068864A94A1B63532F31D2E65B9C197E13199F86638" + "808D17DC9E3D914AC6E078CDE60A1EF9DB9F94E56C29F385418" + "AAB5F5D5CC324F0B1E2B9F9CC9259971FC57A2BD18686045E04" + "A3A74C3606B8EDE2E2E49E2B3F01CEB4B4516E695388AE331CE" + "C186")); + test_hash_extendable(&nettle_shake256, /* 176 octets */ + SHEX("A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E784BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9BE6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186ABD42956588B3B58CD948970D298776060"), + 512, + SHEX("9FF0E63D6E1BD2C9B671298EF08FB86024EECF3A41662D465D8" + "011E44C55E4312A2F4680A92984471B885FD730A3C3AAA6329C" + "CC06E9684350543475D8CFE2F18079DAFAB03B9AA1368AAFD26" + "5C5ED3D0D160EF317BF5CA211642F7C86D4C59504C8E6D8EF5D" + "52C7770659C91AE1121EABCE4318D58F2644DF56D18909EC977" + "D75D27D25D291EC706A39A3EB13E49691F6C3188C300B827E3A" + "D1F6F8088318DA476D07666AE4192C08D4AB797E53445239CEA" + "485704F0266C49ACD7ED67D24DA7333AF799B40B301AAD88837" + "03F03869628F8F1513629FF0888656782C23D43D435962A022B" + "D19FD7E4AF8BE40CF34ABDB1D0DBAC698079312CDFD5B01D166" + "E6933DE574914A62472C5B2954740A5A26217E9A67329CF4720" + "5701D8BAF5E660E231E16BB87EFDFCCA4E982F44CAD53B2893A" + "83DFE251ACE8C49B225C3E929221D4FBE452CBBEE2F6E59F786" + "8F876E20AF55F8B1DCB4AD5CCE9F0B8966D51128D08698AD8FB" + "267D3164023985F5F5E48A237F4B638437E074FA4CF83030DA5" + "846E64E03A23ED2EE12EE42646D1075B8F91B861D6DAA8BBDB0" + "7FBD56AC72FE8675031C1CD0622AFFDFC9227F4DCBB642146F8" + "7D2930B859181CF5AD7D6AFCC87BB905AD387AC8B8A7DA70CE6" + "26CBE3E13E115572780D38DCE4F3AA6A95641842109B9750AD3" + "FB5F711E1F1363119BEA84B4589D0B7287BB4CD094564DB6325" + "1CFD")); + test_hash_extendable(&nettle_shake256, /* 177 octets */ + SHEX("06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F5572713575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A62A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E28371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750A96CBDE5FBC953D9E576CD216AFC90323A"), + 512, + SHEX("9EC7D516BB276EE7BE68912E86FCD71EE08EA4BCB5A44B9520E" + "84F7433811160E5A742BF8E444329F4FBE22D72F002F82459DD" + "538D7C26401399B8882463CBCBF2457A7080F8ECC02A05F357B" + "AF6BF8DE31984ABBFF66AD082CB995A180D7455BDFBAFAA83B7" + "4CD95488CD8F5CFCE16EBB2D9F08E54BA341345648D0FC55700" + "2487FE6F0D0418858698CAA9FD4171CCF3880FC0A9E751BFB56" + "6BA907E13BB78A19E7D0CC543F9B7303C74BD957149BC505530" + "B246A8D41638023B83B84BEEC79A91CD21D3982B7E57582780C" + "92BE8CA813218B287C280A42E73DEB3A84F1027010F79EA2CE9" + "D4EE57DE696DD1D4A13F099E4E1CF4BC7CCEAE2C7A454775628" + "D09FDCDC55C6B38F545566682D3546A6F6AA8B57D44EDC36B0C" + "4B9C1B92CC2465B6BC7091EB78CA0030DB7D7E31805AB459040" + "494DF1120307A2DE8315C3CE802491EBB0FF3F83FCF2F99D9F5" + "69D3E3F32F0CAF2D7D6057FFB6183D274919B9D4B4CBEB125C9" + "002A816A83941ABB5120AD9AF40A76398D31B07E464482FAAC7" + "67BFEC63CC221DB2A54860BED4D5E9405821CB176B47838249C" + "689FF1D9990CB3CEC4EF1A0D9280F35E8F23246537313B77F26" + "D517221F0A21E7E6D4D28D88632B44D7F1C381F8E7442A71C0B" + "0473F7BC702326364489A943B6A0CD0A8B868F21D7F26A1AA3B" + "8C7A4C7CEB574FC2B266CD8067D83A53AD469DFFCA9088ECE43" + "9207")); + test_hash_extendable(&nettle_shake256, /* 178 octets */ + SHEX("F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E878796347168060A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A367B5AD93D874812A1DE6A7B93CD53AD97232"), + 512, + SHEX("045E2BEF203B8E72121FC29E68F01176B8AD2E0F24352FE555C" + "9F0B70FFB38AAFDDAE1B2FA04C3BC2DABAF4BF3BACDF7658A62" + "3446FD6840536572EFF9393F5AB66C080A68D2341AF34AA2A13" + "B6EB57D8DC6CAACCABAEA593970B4D91A3B861AEE0B6E53F326" + "3DA68DDF75CDE76E5BD94AFB4AC78ABED89788BA89804D6F199" + "7684CFFED40B3761A782E3EC1F1A1FF12F8151E91A935A088D2" + "AA2311C43FD731CEF31503C775781EF5724508B910976DD89EC" + "BFE79B17F1813B01B82B6DCCEAADD6615CFB8D2EEA27EC7377F" + "8911A39E9A15E622F3A91F88333811CDA86007E57EE652797BF" + "9177C898CD8951B8C123B8188BDB2E60D32493F4E94C34B9FF3" + "A00893795AE0028061050E9C03A53AC787787A332DD4C75FECC" + "1B7AC1E6DA30E69A46DC94C87368C2150EEB3717582D5E5851B" + "B5695CCB416E4D8462F0448E0D711B42F1B6FA0DBAD40E96C6B" + "69E67BB1907B460DC319B8F01591867C73655F8A28F594EA245" + "8E163EF0D562B36580AABC8E9FCCE61D09CD83BC4DEC826C8F7" + "DBD76028588BC905777AB6B5A5DBE81665971B23C94DBAE8B51" + "3AFD7DF0B6C83469ACD22CBEF596359BA0203C6F320983A5527" + "4812B49E7663A6F48B420748AB10062EBCA4DCE4440D1EF9B72" + "BF4E121B76075D209EB82DE30C074CFFF86CC28E464A6959691" + "C66DB995C279BF50CE2ABECB94CBC850A33315E4ECF650FFC27" + "1DAD")); + test_hash_extendable(&nettle_shake256, /* 179 octets */ + SHEX("9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CBDF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106AD10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80352BDD3740DD6A16792AE2D86F11641BB717C2"), + 512, + SHEX("7FD29D970989B8F0DAD5286CD8CE7F5E793B80EF8F62506F75A" + "119FB3ACB39D726CDBE6F4914F8A5930D30A0AC1E36E285AED4" + "90CD30FE63A2713AB0DD473A7A764A19A70BBD9AD5BCB2B2A0A" + "D63A84FAD80466D1C9F513D4336E3D6C7F93645C3FA30AC5A54" + "B46205322265D3EDBE4C8C58B5D8AEA1856D2FA81C81E12F27E" + "ADE6958F014ED3FA3C844A65321EAF484A2E7543D362627F2CB" + "C4A83415FA3CA616B9CD7EA8CD1724F426C0161AE41CE8175F0" + "598FE4AAE91A3F12D6C8659B063FF5C64FED548C206329F0C5D" + "A4AEFBAD704D16A1B67A38D807E64F03A3A9DAE4B464C78462B" + "842B0DAE0036EB466AC7CBDA234F2DE626D14764F6F49A8AFEB" + "062402CC9DBA983268333225A6678D2FD9E506ECE66135E6AFE" + "7A9DC3A16295F71440ED04E8E391EDC134E91C1699F0D31F81F" + "CA6105F485566C13A93A2DB218DBE8D64F4B2E242462A67FE3A" + "98A785BF276E510ADA824E88C5ADBD9889EF2857D5347544E43" + "1603E717EC7A7D17C98A7C326C0A4A83955C7EE31379B241C2F" + "2ABE038B2357D3A9D940D875F2A5634CB47255DC92FF11AB7DA" + "C4D675E13134C24FF7B058C2F99C985840287CB3009B6CC3D75" + "AA5E79C29C68DFFD9D95E37592B6036A4CEEC5E34EEC8DE7EBC" + "A4B80F0E103CF07D46E73734C831C0CC2B6E31C14F304D88D77" + "D433699FFEA902058F8F4ED0FC7AFBC4874CD6786E6D82A9689" + "3A68")); + test_hash_extendable(&nettle_shake256, /* 180 octets */ + SHEX("5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC471ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB547682A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF909ABA31EDB903B28FBFC33B7703CD996215A11238"), + 512, + SHEX("EFA2939B59DC8F3527C78E384B1CF12C7E184687A0C3A1FD9FF" + "B9797D72F13DF8E199B2916A6BA82FD7A914703687EE707C6F8" + "7845442DECA59F08E1D5DEF48BCC43BB1A64744D4DD020C8666" + "27AE212E5FF4EF9F63C14D2D1CFBB404E03573F9D110001ABD1" + "56754EF41A4C48E664E31B5922A27BBA26D2B3AC79F57720A41" + "90AE55A5634AF6E43CDFB87450EE8CC690749A45367250A44B0" + "7E54FC1CA8EC1CACCC979751544568F0117AEBBE6F5415A3524" + "4A9255FB023E7C30B013D6C47DE992141929F25B3A43DA91CF8" + "853EC88BA42DA3B17CF27351785BB16849E6BA680745F0294A8" + "5601D5A08CC924BB962CD8B67EE0667AF1E118E2E5144169DA0" + "FBF03C974ECB202FFC473315185723B57521737CDFBCE99DDB8" + "1F88D81C71C5F02AC5DB801437D46DAF31BB9308074A21DA98F" + "6899F6280E449C1B55CEB3E04522D038307AABE964B720AB331" + "A172A53CCEF174A82F046F42820D11947D1B316EDF390C86EAB" + "E22408E0008F396A0E7F3D51B9988CD2FFBC49869FE0EC03A33" + "8A1A8E0A663246A37DEA111DE5249196114996102223D628AB7" + "0FB7F53B842B60F375DD6779D9426AEBAEE547662B6962E3610" + "09C83CDCEF6D8BC6311CC1760E784CB3CF6241257EBE14FD955" + "0EC8316D95508390909BCD23EF9F78CDCB485E4C403671E5F20" + "E7EAF4E0C06344D54E157791FC1B581AAC0C4EF947ACCB642E7" + "8CFB")); + test_hash_extendable(&nettle_shake256, /* 181 octets */ + SHEX("576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A79CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F332B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6D3389BDF5A45074C47BC7B20B0948407A66D855E2F"), + 512, + SHEX("97922E827163B8869D9A7654AE4532EA26F9895625152012F14" + "7BE1E818DF802689D96B469C8B0E9010D0423DA90AB6EED2C83" + "5A01CA4C386C630A22D885B511F12799EACEA96D157A4432A32" + "0F3EC1CBBB6B8EFEDE3E92D99B1E79389B93AF7ACB27D7DC97C" + "F88485DE6C85400A2DD88ACA540B3C921180002847B34A45446" + "5D014F4742815EC64F5FBFED6229294BA5EA89211E35327CDBA" + "C7CE85565EB8F23C4154AFEC0DEE188E9D854ED56BCA174E14F" + "EFCD0ED039B8DDAC3A3242CEB72D9116482F8B750A126505397" + "ED261D7CDFE88F8E2F4E4A80628D66A7676E28D4E68C3E97A47" + "C3844FB06692E5F4664B8A583A1836ADA9AEC095D011F12B3AD" + "6688B0039B1B74D016F1BD477C932DDC1944B5F301F4D5690E2" + "12E45D26908BA09C52D6CA22098B7A080B0056F0CB891411D0B" + "041CEA27030A2F9066AAF58CA5357344DD9AEA0B0D80932E98E" + "205EE315312D19413240B2EC4B854C21BC2DC16040718D25095" + "15BD45B6557083677C1882D48F687EA0EA86B05CC3F5E330DD4" + "BCC17E5B4F2CC4F2C64773EDF3045FA48C53081929ECF31E84A" + "905586D3AFB3120031FF75ABD8CDAD7CEE66386A7A718A90B98" + "EE970864A167FA48BB7A3F78ADCC2105E0FEB27414B1B6C59C7" + "BE5F7509E55D561C32523FC8C1C12628EE642D9A69F7D300B49" + "A5B6551B487655B21FDC690F865196A35F138BB8E69571280FE" + "F496")); + test_hash_extendable(&nettle_shake256, /* 182 octets */ + SHEX("0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205C343AC09DECA86325373C3B76D9F32028FEA8EB32515"), + 512, + SHEX("289C52C39044BCE5CE8D320E2AC43DDF8DBB4A5E6698D536E30" + "4424CDDC251F7B181F58AD4948360972835CFA265E9B658F6F7" + "D4B7BD92D68E75F0DA84F47C969C7F12CF5170117B7EEED8B77" + "E3AEF06E52ADBF8F0EE6AD01DE3EC5E726BAE631A68F6FF364B" + "AA1754D928386496010F0EE59390E041CC0A6EB8F3864087BF7" + "BA5A57A116808BD496632081400B89CCB2A8A8EC795BF07C609" + "51B46815E6BA72DB555B9CC03CAAC4BB8D60BAD5EC6C5E48D66" + "F4C5B2D1669115E0F0BC80106EF06D48BA29E2899C0EF4D5C5F" + "4E29CB29C8F578A824CD462A4018E889B67DA31A90BC58178D9" + "04C43296E4D3F4977F0CC1009FE51F37B2F8979C97DACC92C8D" + "0E0FC45A004928F96260FE2A6F27DA15307AF55EFFBAC4814C9" + "F4446253064897FA1E1747FE65E4C406A3879F8E2EBE5CFDE37" + "65F2D7A2065A6E0D38B6B6A5F9FC3EC3CB1B35D33386EA75EDC" + "E250D5917A17A6CB9D1517684472FCDF27D61BD03F4BB43C3A6" + "359286E73B67D1A618A75EFC9AE2212BB507DD1BCB12D0B11FE" + "2030BAC84DEC40D04324C8354C3F3C6ED79D7257B8A189C565A" + "41F72AE3585A9BD91C9FD43184814BD64F7303607CD02B6613B" + "E736BD13B3AA8C668F91F398A8F5AA6BF8EF4D9058637FAA3F0" + "F0710ED60C2FA0F6DCE8EF0675EFA719EB03FEA27ABDE60C5B3" + "81EF4026FCEF49AC245483DA8B9B50DADCC310CD15C61E7A0AE" + "AA6F")); + test_hash_extendable(&nettle_shake256, /* 183 octets */ + SHEX("3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B6656D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE"), + 512, + SHEX("03E492E2E4C353A74245745981AEE10CB10ECD72015FC37621D" + "2E07411AAB55DAAEAE78EC376CB20F268FE40392876A29B4163" + "C3F1732FB58FBE26379F88C4388513C9E65DFB7A4B76DBA139B" + "28673EA6691096EC526DE0084FBC516360B07ADC853A690264E" + "C8C6E7F200D71B593FAAE6723C0A08B7CAC263D7F7DC5376B51" + "A2C7C640359721FA93A950A7A1F07F366B0FCD5C79471EE237D" + "11936B763840173710FB8CFE41DA287F61D13FBB174B451F30D" + "A1A1FB0F02C2B34689A725B1F86A96247E6F48897E524E84D91" + "BCC9F08DEAF189EFA84AF2A32DA7480ADA982E579A832FC3CB1" + "FED55E8D0D4AA710EA5B0B779CF0667ECBE9F5827FD0ADF6FA6" + "D98DEFDC0A3F3E84D5AE28D676CE703E1F060E4BAE4C0D931F8" + "4A76C2777D71B02F0DFD3DD00604C6EBB32642A9EBE9D34601F" + "B78AE60145E32B6AD2A362BFF609CB2EFCDC66781B5AE2976F0" + "249FDA97DCC06A8F7CEBDB32A2849B61142A7E55CD15FF51A82" + "1D233B3C35D9F69D47ABB6D2B55169AEA211A67475FD48D39B6" + "863EF6E4ADAE89530B0A84F6D6AA9B0475289C084AE2E607878" + "5289E03C6440DBEE352B9D39D11C9300730E4D224FE008696B8" + "F27F6A9261C30C577B48401B2E90ED5830BD38C13416D19F9B6" + "EC96F235F7A0571961F18C0F3A977740E9F5CC9CE62F695F9A9" + "F797A33A2FB247A62BC635449E4FFEB2F24298BDB152E777226" + "0F9E")); + test_hash_extendable(&nettle_shake256, /* 184 octets */ + SHEX("C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B921FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0"), + 512, + SHEX("6C937D60095B762B69A69116DDE17251B6FC76117D2173E0702" + "408BFD8A215A057F25D720FAB9410BF39EC033D68CC87572C7F" + "C8B3C920C720C0A34FF468711F32753E8E6813D9D8ABC30AC3A" + "5EA3F6509A22E01A389399FA09052465316BE70501B70CEBC21" + "B5CE57FD935F7A265FB101232E95289E4234B43AC0BB45BFB8A" + "29489E7C3410F4A64028CA7BDEB97B327193A30FCC54F1A9835" + "E5BF497E0BBDE269E3F01BAD497AC3E09425B7E4D5D5A345B9C" + "DC256683C3D73722B6B33F525DFDF21106574ED3A1B38990C0A" + "18AEAA51621C6D603D58AAE2B1D89F57E802E66F8A7122BF4C4" + "C1DF38FF9B147BBD4D084E119298C9C4AF1BC6390AAC20BD1DB" + "5E68EAA7361601A40119A51EF26E2328F6CD52874E6F24B3460" + "A7D531DBC5DE94B0D62C35C6F56D4E8984B20BE06A248E59754" + "3E29C314D67DB0B112E158321E6BC9494E14C9E33705E678AF9" + "A6DC44BB567146E6D03AE590CF76C76398A4D5BFB9F0F12CB70" + "7EC79BB52B5488DBCF1A19623C9777F30F153C3E71E5F9A4841" + "E1F53E88421947903C9DBB58CDF75CAD297755B704E6919F25E" + "BF43520CEF6D71FD41AAD277AAB2BBC86B997B6A35C4C1A8B8C" + "04E6C7741E88CE198A650841997287E53CF24A2FD939F1AEF79" + "AC90DC787789AE0B344B658BF493F6DA6EF59112EF76FD39A8E" + "0CF7973E002FC7AC455CC4FD98C0030C7C76178D1EDD1AB12E3" + "493E")); + test_hash_extendable(&nettle_shake256, /* 185 octets */ + SHEX("8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E694631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B776D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992CB7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79"), + 512, + SHEX("176C854006AC910006248F1CEFFCF0BCA14015B7939B0065E59" + "A838F213B9ED46C68A377AC3110DD08AE358D4C3C926D262A49" + "06C196822D2D2031990D1F02B472B635EBD7B48AD7469671EA8" + "5683328A949C4B01E9AFDD0E780EC10F2A6EECD0524B77E6C98" + "93416EB73C53286CD52DCE11550E96B70154F0A06521195B7BF" + "6B260AD67D85FD2D3BA79D96B3C84D2EAF96350342FB33CBF5E" + "4DC12D7F7B6C5AA0F82AE2864A38026B6392DEB539637D323C5" + "A246EBB7A87EC7048DFCEC1DCA98D3239FF560598AC31D0E722" + "9EE0A36BD7500B991BADC5F7275BD650DE740DAE8421E1A7230" + "13C9E52AF448E21919EC70FCF5D4C5FD888B96676E65B6C52D2" + "353FE5D3D1423A73410234A2FF632CB09E922656FC233BE050F" + "BAB499D3B0864439F79B56DF983CC67FC460B027AD14B8E112F" + "898771545061DDF52652DD14AA034137764DEE5F896E3FCCA26" + "F70B63B37CD8D8DF7106876F4EAECF211875D4A3392E09B8E42" + "19326BA939DF7500183C3F039D1586D00BD36FBB97835FC4C73" + "845DAB9639A0231C27E3C3815B4478780CD646F1157BBDA4725" + "77FAA829F8B13E2C8DA1F7685719F8B979E895996DD05D1BC5F" + "0ED8F8F302E38E44A0F5174FCEB3253EE9CEA73315A1DD655E9" + "A6BB59A3B67F5F15F41A8E483D8C98733916638D5E8EFBEA8C5" + "BBA2000D2DDF330EAF3DB1E9A6072E5BBFDD5FD201F8A13800E" + "7719")); + test_hash_extendable(&nettle_shake256, /* 186 octets */ + SHEX("C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBCD8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04"), + 512, + SHEX("F59CA6ABC514DF7EE5AF9B918A5355CAE65ADDCA95C80866EDE" + "16594F5147DED549BB9187E4F51535D3EEFC20F59703E1EF74B" + "86ADC45F8DE3265207B5A3B4223C3B70E9A9B24F08C2B1F15F8" + "58763381C89F2AB14AEC657E7E4CCADB9EAE9348B26450E9CAB" + "F9B54A56893796B2D4C04AA2B3B741D6F85E9A8CB6FBB0DD91F" + "FB91E9B179D5692F9C689C4315ACE33C2E7934D49183A5305B8" + "F50051242D73A225C557D787BAC8894D5987C8B4C91502C295F" + "DEBB492285561286262DA7A78A87F068E07B4CBF82344E6FBA3" + "C8B70A7CAE9023BB004C18A446DF8432C895A531DCAAB8D910C" + "5623651A362C4E2034A314F00154A421DA604CBAAB56B40F9F3" + "242E8F61CC9A9AB4C91304588AF9805180C8ADBFCD727C20D38" + "F2DFDC24CC1A84FFFF83CDE8F94359AC5D1848D3385B419EAFA" + "F09EF0317F99409F732EBAF75A7FCC74A4F0B7D038626078C8A" + "775B1EE75591C6CF99EE2754EEEEA7DC9FB382F25F55D030293" + "D53ED2F9D9DDAECB41172387FB19731639B37E3A26AF58B033E" + "850880FFCA4EBACB945F7D445983042FD3EBF4F70DC2BF0E95A" + "7CA9DA3C8F094BC937568A03486EBC127ABF44D150AC6DC0B70" + "80A41884102172D6E6B6D819AB088CA55287D6912018B5D7F4C" + "0C2A6973E532B40F9D0402C1525B2E7E11A948A5C833EFD7788" + "B3CDA4501DD7884AEACD53B503313500C3D4ADAFFFFC69A2EAA" + "EEDC")); + test_hash_extendable(&nettle_shake256, /* 187 octets */ + SHEX("8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CEBD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B898858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D37E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8"), + 512, + SHEX("A8C3DD2CB2C0B8CD01C2550A1C20308B3A4280AAF80447484DC" + "DFC69B5C2C2FBA310272E606D1CFB61D078E2D860F1A056A3E0" + "86AF9D7485611D64D1CE5F850B91920E778010A23390033DC15" + "E372AF077611C9B5A945981CD27801C9B701D892143DA0F882C" + "5D8F7F06B72B7107FBD22A4D890D1B00857FDE7E9B188088CCC" + "9A67BC12B0A496F3FAC72789E7E52ED7CBF36BC7B846F0B4D3A" + "221A8297A4BE76A1658A1547B32F534FD13C466BF1803C13005" + "93F8C53CB5530632DABC03ACB369D7E87CDD61EA7DB6D5980C6" + "8F00AD5D28F50B5B499A373DAE132811C5DAFBBEDCA231E7461" + "0271BCD0E733A59D5ED6A6EE77AB4EE0D64CB00AC7EC586AD30" + "F1F3BF5066268519209A9EE408B0DBB1E6E7CAFB63BCA7742A5" + "A7C78D7933B30CDCE0F8B502E3666FBA0C2CAAB6CB0826641A7" + "4C02E5F9DF0616C001273487487C2EB693E8818A281CB58D10E" + "0F911FA8EDA5DEF3CEA2136197E79A17F58E56C4262F3BDDD87" + "D9BD40AA21762C43F7091659693D2BF5D8BC03632EAD0C680B6" + "EBE53EADFED63727143FE47684188ADA6391EFEDB6A59770DA4" + "06B00905C124680B3B23D54C0255967C3BA8722DDF064F10F32" + "53972C0A4FF5B1BA17F8B9247E2D81FA1E4F7E3BD064E71A3F4" + "F18858D040027B45CBFBAE7CC6F04C125B867CCF3513C40F008" + "C2C961020B597F864BFF2347B8ECDCBF4AE460B1915A5A5EB98" + "AD31")); + test_hash_extendable(&nettle_shake256, /* 188 octets */ + SHEX("6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48BFC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B1355889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485"), + 512, + SHEX("066F28311FEED21D06D61EEF566DEEC1F88E8D99DA9F6AE33E5" + "0321FBF7C1C458DB1E0C85C2685E806C583336F5620F44FF355" + "96A725D37B1A7F149B30EEE6EDF2C46EE8F7FF1B51D5ABBC09E" + "AD9AEF74188FBA0EFEB82DF86C304BF505FB02FF05B1797A7EB" + "3549EB9E74BF685B15FE615BC7FAB569A2E8EAC5136F97E3939" + "7E091F97D7C11D8E6B6390961C0A1A08D2A75D00CB679C87087" + "9C24A4AD0FB4EEF187E60297668634F06B7F2D98B85CDCEEC84" + "2DB321CC7B7823D8F332FF5AB7C44D9F862B61D3423ACA66392" + "9EEA2B47C9C78F890D50A4FD04079D4F77A9B303FBCA8A852D5" + "CBE0B09DF7DCD2178C8450370F60CE76AFECCFD3B4B346C7963" + "1439D879109357FAB4ADE37832D42D70B6390176FD864251FC6" + "5B695DB788F535B76077E3F69B1B2BB2BD26BBC0D1273109F71" + "199A58053A8AB6D33C9A75B8C7D4423A330D03C5BF6A2B2CE43" + "F27536AAC58D9D7CA8397BAE7C6C96D7279C19ACE6F7487412C" + "7370992FAFCE97342E145795D7CD22F2135D627F5BD528FA351" + "1B3EFCAA28ADA12B8F229BB594E802615A213D21CFDA091B736" + "DAA0B18D9E77E9AD98441F23926F6C06DECA62BB91F6430352E" + "857AA1488B82820F3624BE30E7ABD2785E8E9D6A3CBA0A926AE" + "425253E1417AD70F80C1CFE49C730E1B287EF47FE65255AAEF1" + "408C66F622CD1B6484FEC1675F1A74AFCC349EF4746B4468DAB" + "F577")); + test_hash_extendable(&nettle_shake256, /* 189 octets */ + SHEX("C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA535594463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7FD7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EFB86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F"), + 512, + SHEX("DC2A3560C3644C4ED659240CC9B275B7163F5C88B28839FA74F" + "CA4A055B265E8E8DE186EC35097511D12F125B9EDAC4665EFE2" + "E41DEFFFD4FECA65386D9A5B06DDE6B1AD1F70772ECC871C445" + "29D413C603D7D8BF2CFDDC72C11D3B9684CDF4696EBEE1A88F9" + "39A997802AEE46BBE7ABE0915C4DF68C43EB06A1412C690EDEF" + "8FD21F94D16EC47D42168C30B8A3C2A87E348352200040CEC76" + "97835DD66A8E0596DB943ACD2BA8424A7D031C5AD0322C913AA" + "9B11C4C1E09ACCF8B941FDA2CEFFAC3F38BD43FEB3E67D002E8" + "D45D9C091D287A5F6C4B70A58129867C46FF1E98D402202C27E" + "088DA5063157E0BE4A7C82638EB623947A59D15B1FBC965A734" + "49711FEEEF521B61C4F94B7AFB015185BC7C696200F10C2657E" + "233F643C0B20A72EE57E7E17EC806B0B4A128F9F0F6BAF129CC" + "D82B19FCC72F62FA10456CBE37317BDE49BA0EE9FD83559E322" + "04387CBB5D26064127448D2F2702CB37C3CA5B49989C7B90385" + "4907E1A748FD9E589A01EEDA6FB374178CE57C6027334399A78" + "96C91FBA3F8C2EC917F2FDE3942D60FD37BEFDA64909A34F5D8" + "BDEEEC6DEDAD93894E9C6A894637B8193895973C5DD8424326B" + "592723C06583F683281AA90C3FB3A754AC8AEF614DC30DC608A" + "D26EAAB42B4899137F4D42E4142F93706F88C8C98BB6B15E099" + "2834785A27FFCC9FC2037A3A3B4B3C262ADE59E3A6718C79A8C" + "0C82")); + test_hash_extendable(&nettle_shake256, /* 190 octets */ + SHEX("07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A40C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D16AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0"), + 512, + SHEX("5D5AE597772925F37C5D78176E15392BD53FB65B2925BF589DD" + "F97D92EE412F2847ACE1B5A4A22515C910A0A7479AD4CFF5948" + "C4A736EF021F062850383EA778389BF5F33C5357CE1D11D11DE" + "27BDD076720692737E5887B0FC6B8FA46F2675650072848E26D" + "94D596B921280649389A9C1621037AE9D91D460BDA8FEBDA762" + "7C181F8EBB77F43DE66F9D64EF1D7CB66622E13FACEEBC7AB34" + "6C0C71A1FAA0DF2659D980AE4ACF04317379B81DBF8E9206F66" + "7EBCD2A8D736766D2FC64EA442A4BA0E331E7D3EC0AB1618BD9" + "0A9B97A4AB6556EB09DA3C551AC3F2714BE4CB094AC454F0DEB" + "D1964ECF15118F677464C60108A87E8895046269DB21168E35E" + "C4DFF11487E93B49A8FAEE8EE6C3FF05394D1D0C9030123CBFB" + "9576C9015C30F9DA04331C995101F4589D27CE664D2D6928C80" + "3EE6ED655B661F286F12499427B0B3D4C19A870CC6065528D0D" + "482FAE121766275ACD12731B127C454D17BBD32F779BDFD59D2" + "221CC923764A023D48A109F259C2C4D9213E35411A7E4F03C18" + "78E576F9AF4B84A983F64ED1255EE7CA9A4696762701950C97F" + "374F207ACF4023C0E42651C650C330EBA2A7773AF833A9A7B1C" + "9360BEC7FD788DB63AF83B699E1BAC014A86AE976F15809E4DF" + "C8EB8225DE57C97CCCD0683ED0BEB67B752A6BD5EF128D9BC6A" + "D343B04AEAE8C76D7A24E3025D436ECD9F03432991A19D1B164" + "2AF5")); + test_hash_extendable(&nettle_shake256, /* 191 octets */ + SHEX("588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452AD4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A"), + 512, + SHEX("B34E968BDD16E68C71ED69202A38C554F8362FA382F1DECCF89" + "536B0D2FFA7CF8725CEC1D2D7AF57665496B643E8206566F8CB" + "E4CBC42DB65481750319BBF37D9DEF13D050B2DAC53E163AC36" + "5E81AAE03BDB40B67D0786EDEFC2B339FEE7176DEDC90C92B16" + "A726E61A3E4AB5B29741869A4E8FF254D335C62053EE9FCB5BA" + "D309B11B916EDE9BA5D1594B0ABBCF73A7A231B4104037D10C3" + "2433F99DC35A356088F90298BB9BD150FC8252017BECF06111D" + "AEEAC705BCCF25E8098995A8F7EFCBB10FD2C443223325FAC91" + "72BE8B5FEF5FBCCC8D9361DEB61B361FBEA3D5CF13F4731E8AD" + "4F567BBEF2655A79213193131020123E5FADC2782E8224208EB" + "98C736FA9AF25EA3D00CAFDA04EB8F0544B58B29DA5D438A969" + "14CA1D47F2A729128F60E56F5634A73133C1A0435A40FB7FF6F" + "88105BA307B4B6479D0DCBB80A5F1A71954EE049E99B944E41E" + "E89DE4B78A78786660A1516A3BF64779DF724BD82045245413C" + "D82890340D29D07879C000934FBE4B4FEDA2EB4CD795C528E83" + "BA11A92C9476E3273DD5D4553798489B8FFE76104EF154FECE0" + "5E4BE9775256F278DEB61552266745FC21DFD699DB5A34F4DAE" + "4FB3E23146DB6767561F15EA776B67240C92C695EC83EE10978" + "FCDAB7A57C692861F15E5E6AE0E3DC2C58489445DEF81F884A5" + "0DF8E78CE67C23967B27B419F36B905DC2D9EF1D27BFC94B456" + "836A")); + test_hash_extendable(&nettle_shake256, /* 192 octets */ + SHEX("08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED41B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB247ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AFE46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132"), + 512, + SHEX("2D48CAA033F0273CEE712401A35D143C7E91216139682A77CA7" + "75F08BA77620DD02EA885667355740363D95DA3CEFD3E9F8D05" + "75A41213C1E7F2A6C4B7212DD617C9B0A41D48674B6A19C63C1" + "AB3F2CE7F1A0FA694CA8401A0121077F281CD5D6A5424AC1D3A" + "11AA97F88783722E68ABDD3684907F63EE045D7F3E10545F33B" + "84C30200DE3B135B4BE5033B854084E5912F17B14F2AC16D027" + "FD02FCFF1AE096C983F0F4FCE7D6B641D2280DFB90D8A066D8C" + "F53E2A5A1620DC50008CA375743C416C379FDC5AED3DE23244D" + "E23AADC33BFD9609702DA4776881A1F588EE1FD98602FB831C8" + "D857CB73DA50C99ACB34DC79D0F32FABE25FEFB54DBD494014A" + "24EC55B4D4ECEF9D4B7A98A8BDE06E324E6B2BDBE7BEEE6A45E" + "4FE8948D331561090B737CE14D302C9CB1D7EE3E78D0B7CDA6F" + "D12CF038F8B92E35F7BD6E1664A5F4F75EE569F67C41A434330" + "DFC06F8C6C7156208A11BD6708B22F3115E5D4D99F54451D967" + "BB7935FC937AB2EE21C3DA93B1A3DF94DDD600D6AE8F43A35F8" + "5794E3BDABD82D4ECC923B0BC91EA85C3A2599F492495E8AAE9" + "70E1605FB642B6B93E3947B45D78ED6A563FA9D10CDFF934C61" + "D78B46AEB754CFFECF00AED06839365D1A4B7D9CC5852A4F755" + "F01723C8E3961C92F320A43EC23D8292C4F44336E78424A4E65" + "0D74BC47EC05EA8D692560206B9DC2310C893598370E5DF5D93" + "ACB6")); + test_hash_extendable(&nettle_shake256, /* 193 octets */ + SHEX("CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE77E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF01"), + 512, + SHEX("6F7549D58E91D97F0C1243C519EB6AD2CD72AE27E3C5DA2C6B9" + "2407823D1275210ED93B95692880015BBC14E72892A36D4D492" + "4A48DBDD2E774ED36B739F587D200D9A789FF56542061AB4DE0" + "06B08749C31BAC057DDAFA581C6F756BC3FF23BBC43C1048BD2" + "848204588C89E6C3199EC38DC9F4BB10BCEC5A5D236AB28113E" + "4E43D529DE8424F118CB14A5FB02BA721BA4650CFFA35663820" + "148E00A2A8C0B8F4C20DBBE20C146E4B5294A17C99C2DF7EA62" + "F9107ACD5FEEB01ECDC064F2911A466BC1024B1AFE10F3DD784" + "3BDEB8682339A95F7A0E615A216C89AE7E8A688926884F82BC2" + "A487CB2695C658DB670EC286E63AFB5B244950497BE33081CCA" + "0FD14A4958AE4EC94B642E3A9BFECA9481FEEDCEE34B6C13F30" + "1CFAF882105C14F20679B5E7E4263C29397F62B094490BDE56C" + "BB1CFFEC550819E0ADD12DA85935AF2A9C08537ED3034D39933" + "B80471D98B1562BA12C9B98A462093E79D247BFE4EE59CDF9F6" + "533DAE9C2ABB66437B90D845B16C5318D0D12EC5CE30AA63B8A" + "754CA93F04A3E3013A197A34DD8AF463A7AAE48D51C7EEEDC45" + "B5BD4F9E5BE06D47C7991956E7BD828DEE21A4C4A69C3BCBEB9" + "14FB93832BE8A986A077FC3A990301532CEDB59CC03A0EFBE5F" + "F88413F0DB07481D134B77200E05341C21C43A7FC0EF20F254A" + "4438F9F49C28136EB7FF5D64E8812D4137CB3410B2482D3289A" + "CC07")); + test_hash_extendable(&nettle_shake256, /* 194 octets */ + SHEX("D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E8909310AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE89EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA94D4B"), + 512, + SHEX("2D534DC9501C6B18F9662128E227E3C7D8BC7F6773945B8CA65" + "3BF93F9B07BFBAD84F195CCFEAF35FFE97E1109212DDAF5701B" + "F2F81A72B51A66FC1590534823172927BC3EA342A96DF9B0CF5" + "952690804C37814BAD3A41849D71AACE71304183A4477D31365" + "4C731CB0A9AF39CAC8A8E4B6883AF7C4F94720A5919C2371C1A" + "E472724F7062E47754066976B583CDFF98CB41796664C9B0C76" + "3C4530FB62DC22AE7B3C6B4DB593942F6144DA79AAC3F3CD53F" + "90B7B634CAB679ED27341C83A3F9DE8763A0D083C4EA4EB3B8C" + "189967E6970178CE26A3F2D43D1A62E4D26D61636257DB145A8" + "9EEEFB8C38AA9D69F0630B99B4FFAF9395A6AED9C63E78A7F8C" + "EAF4884E4663E7C9E39F737703F5D1C73B2E846FA5AF03528C7" + "F1D1378C9AC7CE02599278455FA6E1B7BEDF453ECD680A89A8C" + "77FB727A688AC573A5ECB545218F5DDAB304DFB786219451467" + "4A52F2F0EB2151BD936974FB5B677F621FF9E92A10C76E3B6A3" + "4E4279BF2E395743EC8FEEE4F4BB1D951AF744F9BB923A13C1D" + "6F159F96B90D0371B135A8F64351DC8C9DFC0AF38098D3A8583" + "DDA8978103B25495BFAB2B144E4D82774C06C4CCEBE085A5B90" + "2DC391B60035F4EA929DE8A56DB1EFECFB928BE97C23E6DACC7" + "9EF2C05D5C08F2CB3ECA5CF7626F13A95F29239AC8F457DCE85" + "815BA83F099B1DCE79A32C6E04280B8CEFE8EC213E2375553D2" + "214D")); + test_hash_extendable(&nettle_shake256, /* 195 octets */ + SHEX("8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B004318210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3A3BA86"), + 512, + SHEX("4D0E55472FAEDA7E9F092EC4A561E835E261935BA5E6D115E9D" + "4C4021725E7831C5B7F102F2D1494B019FFE9BF5525822C4978" + "83F0E5194B0B0989DBDAC834CBFCFDD31294DAE5752ADB56C23" + "D45668F370963219D3A9BE504D8E93721242DB7D4D1CCD22F84" + "687E3945E2037BA24670649913712FE6B5D99BB6C8492C3B853" + "E481CA9C32B3E601D31C60D6B5F43A240B0711FDFCFC0AAC6A6" + "E5F881B2AE1123F7568663D8415DB5ECB3000AAB268256888DD" + "47C0FBB5C95AAA9450947244EE4CBCFABD76326D2D079C9F1BC" + "4F3D43AE1D01028FC1705F74CD16132C79D3A43539D2A842DF2" + "B69243CD37491CDAB57AC7E4E00350F8C08737B6CCB8A7C48DD" + "50365A85C07A525C15AF65EC3B2AC1C73AA6B3433483D5EC77E" + "D832B73A30C672E9DBF0778DBC20BA5A3513EC93B4165A60E68" + "717AAABED5041D9EE445611EBDDC8597FDA3BA05245228D7C56" + "7BE1CE5D2BA75A256361E8259F43F3402E09B96A14014389B8C" + "E19461A6512A4DD7F866E73ED26B1C454E014F901DD313D5E72" + "14CE7A62C476DD28E4152EEEE89F309161C8F494F0BEE613B72" + "696F496BB41659A3804683729B40682DE5D0F17AFC0FA9C27B2" + "C96B55A05C536D283957783BB93C8F3E021A30D6051C9839DC4" + "8A70C127611449823B06F0DD460CA1DD990AEBCF3FCA9732D01" + "2E9650907BFC44729DF2827AE4055FCCA246ED3D75DC3B69DDB" + "3666")); + test_hash_extendable(&nettle_shake256, /* 196 octets */ + SHEX("84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C42669AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C791C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468AB784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5FB9E4AB6"), + 512, + SHEX("C7EAAAE0CA10AA1CB0225920A8F2288EEC0E5889ABEB096A983" + "10782D918AF4CB8C0A41384D8E0C408950EEA95DE8CA6EB87F5" + "E86780FB91293C5D14A798DAD9B77EA8A5B50E17C19EF37ACC5" + "166A74A1B37712290CFCF98AE6349DBD4842D8ABEC6735ECD39" + "2D59591824963D403B2804135BD46D17E26D5C498FD7111BF27" + "82F758802A20AE6A169AA65CB0D6640396E982E30126C37F68E" + "19CAE5FF9AE3743E38F902D306D8FEC8042DD914003F960625E" + "8F2104C369CEC0CB8D3847C28D050802EEB53C5AF08D70EC029" + "79019700E182B7127661DF869807C16F309EB08F376C5C30B01" + "89F1B4B32423BE060402C1EC9B1E7AF2432FAFC09E4EFF7DC6F" + "55A52108C5599BBD5A07F433B3EB4D439D43EA79407FA711132" + "CA9A5E2F528E18821F38B894F624EE42400832F8C85AAAD0FEA" + "54261E2B55647D9FF5F31AC212E7C38CC96689C72A4F543A256" + "7D8EA79913727DAC3172F69CB16694E5D4EED7C16494A297C87" + "6C73256F6B30F88B6E180E8E62DB68458F2CA416C4A0317F70A" + "3E2465BC543FB07AE518B6571664FE9C2E49E2AAD57AD933869" + "C04A1CAB60903F9AB1C14E4FB3B6502F387B30693AE4A85A172" + "FE6813C42026DE57291B3D854A191F553893B3D4A79C84B08C3" + "7E80C1ABDF03FAB58966410C2B8B950A275F68852F006B2B38A" + "49E09165AAE5BA74B934A6B7133E431F01099F930B5FAD2790F" + "126E")); + test_hash_extendable(&nettle_shake256, /* 197 octets */ + SHEX("FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C12859CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA740459297B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC0991355C6280"), + 512, + SHEX("CF55585AD2CF64217E5CA23319EBA00C4EC74B7B9A453D1D7C1" + "44E8B68FA8EAA16B853344ABC905EEC90B35B681FD8A4A52460" + "999BEE62489C467151EA5C0D7C8EF2B9959FD44D171D530AD4A" + "576A0C76B147127921817B167FB43050D7F2F552F8E77ED5161" + "AB00907599AB80FC546C859DBDC04F2CA3E38A7593DCD22EC89" + "E73C4924152C7D1B5281699154A3325196E97E73DA29251F60B" + "C68706885462002C126517E00D02DA6A23B0CA9410EB916C19F" + "EC76DE9A907447A8DC1F8304EEBB6E38D0694821EE03865A5BE" + "DE036E01AD74AB397AFBEF6C62C5DC211A47BCDCDDECB48B17B" + "F5336FF831DB7EF9CE7643B285504D495161D4E864B6FEE67D0" + "EFAD2888C04A8992F019E52A6632F72539FD65271E81537AFBE" + "9E7795C658AA0C3B2C64EB34BDD0E5F19EA217B6EC9520FCDE4" + "46C2207C9AEE94A6AAFF4F1F39A91927DAFDC37BCA8173034A5" + "4FD535BF03212995975240F3002446DA1D111C0F97C92E395D9" + "6E120B958F643CB4EC52C6D2C148E6A0A497323565500AB1174" + "21C4A0CF0A055DC8B4D287F66FCF7EDAF931B614589EF6C6F46" + "84A80A9DBFBAAAD85059B9399CE2617B55E04C2112B32A210D7" + "530A3C58678B1D48EF24E2FB6B6F90D4FC605805B903085198B" + "2C50432D9A99454B68AEF0C9D0D81931123D7D14C0DCFF84A54" + "F3D4DCDC9E232BED26E2EF3334220F7B39EFADAB2CB9E247EE4" + "E880")); + test_hash_extendable(&nettle_shake256, /* 198 octets */ + SHEX("70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB651062B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADDA64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E601EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7AF1AE717238D"), + 512, + SHEX("85225E389DF45458881A78277858D3B12EC5527BEE0D03F41EF" + "BA24671F1C245EF33BC8CECF3CFB7EA82263EF8F5F4E2C0D033" + "D1DF6AD35F1ECAEB2E40F22ED9F4CD0D1B9FB1FF5AFC3ED6054" + "9F1836E325AD6641E4444913A9AEACF36067A7E6EAFAE4F5D17" + "38F4B42F5185AF334FEEE2838FAEA6203032F3C5C3D22863C02" + "783D1562E12B0C73DF3098CEC208BC855BF84A9C231021AD5F1" + "FBBE51A21E2BB66BC555612500822F43DB5594D0D60532B726E" + "3A430C26D9E5BCCD57F83CD1CE3A5A31DDCC21DFD8A76D03A10" + "6FC77EB55EDF19A46023B5D70835C865952C463475769067FAB" + "2BA2A11FBF7F29D6400D10A34B1DB497B5B1D8D8A30A5C4DFC4" + "0EBDD1BDC992380074ACCAC904DC24F22547A99E7F5ACC53BB8" + "3BF94A522E595D9AB54C4E7EE052ABF95FC5FF52967CA2FBB92" + "7ACF7127349BA7FD26AC820C380107B0E341866A9F57852DF4C" + "E28C2989F04A40FF14033B3D36AE7D24A8E377AA40BABFB8502" + "B0B9B12DF9B42C2A9982AA29697A2ED522E344814E59D91132F" + "39AA537A521BB4B781CBCB5E1503354FE6A25072A52C54D248E" + "13F8253FCAF93E849597C23F6952D0F7F38D1A4E7D08FAFAEF3" + "ACBFC4371779C6795D1CAC6BF86C34FB227AAEF0AB51C480C45" + "10C9F1F463CE311CF931E8219D71BCD3FB55D3A8E9A6C86710D" + "18F9FEF6A00D1FB878069AD4A4E32653B0EE15866268D5772BD" + "4990")); + test_hash_extendable(&nettle_shake256, /* 199 octets */ + SHEX("74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C66585CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F3316670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030528F9AB49C79F2"), + 512, + SHEX("561A3E8D8D57E0E32D7E9EA8AB6F58AEEA509CCE8740FE54E8D" + "B9AABBB14AD782BA33C7F9A5007796CA2BA9089F525BCF80BCE" + "DF4C09E24E8D14F1766AA97A82B807FB1ADF65430BBF5F87AF0" + "A7FF26578C97AB50148B6B15711311FEE962A8B9C3D1ABAF624" + "41CEB100DF3A8E588DFE3F6A356B348E312CA017C94143B3DF1" + "7F255DFAD5A7341B163C0562D24897FE9E4B99262FE5BF6920B" + "79ABBAF856CE38AFC756A77F2BFD5C3A039C08480BAC81D641F" + "8B955B22B66B455BC0637DD49A1218C4E8CA73BDB68B8849D21" + "48C021C75BF8470D36167AC32FC88128C4E0568724BB2D631E7" + "FEDFABB91F0343D267BF3A57BBCA57C21D56E339CB13DFA5E56" + "F3A90F0241DBC0D0D73F40BA282ABD5E031364ABAF427713463" + "EC5072B7AECCA62E074097BD0CB3169DDC06243F08B62527921" + "F5FDC9332E99B2E6903D65BF809DCA706C5C0F93AF85B9BFEEA" + "40504A3DBB390C6A417203979687A7C86CFE5AD3F0737DA1B90" + "7F8F941EDF44F8367B65EA8BB92B5285A3ED8E1F7EB0FC00536" + "C15005E4F6D9F2969AD96721BFE7A6A4824A37159EF08B0FC60" + "C68518FD4CE54E4033C41ADE6CB218CD7DAEE76622B711A1609" + "168BC115AD4F6219EAFBC492E35BDC446E866433C7446506692" + "94E8D1827A2500F3E30893C14820DC24E36B3B451E9459BFDCA" + "E62168706228BCD9C3EA22C4F1D0286367C7939DF31E28E7A2B" + "28CF")); + test_hash_extendable(&nettle_shake256, /* 200 octets */ + SHEX("8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F834D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B44985AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937EBDDC89186839B77"), + 512, + SHEX("3340B37AEDD2F0C66F2483ABDC66C97B45055275231F1C7A925" + "687B946C9135BB75AAB2D11E6463073A1A8CED0EA83A42736AE" + "85D1B99D1D2EE9AAFB6FB9F4E7ABACB39BC9F6D59883A9D1B0D" + "F86C259394A05842684E8A4573F1A3CEB46ECE59DF77259A0B0" + "25B831C2CC0DAE259551C86DB7DE0C434FCBC35328810201903" + "B92802CD5DACF9A6F4ADCB05EC5E0629A3FA99BDF2A5CBDA2AF" + "81CBD1438821A319408D67E5995342BF9BB4DA85BDCF43C5A2E" + "AD9CB4FA26542EAC044DC70857FF1B1CF95026B6464B96A46F3" + "A138FCB26B525E6A09F71ED05E57ADF4A3FAB611CD8069E016F" + "ED7B9F2F14C38102612D66803EF0854B2C7678E870AE7BE6CE4" + "3EDF447E476C0AD407F0D1AEAE1265521F43AD6CCF1F2E0C82E" + "5395ABFC41E08AAB436A806083E246CAC452513BF8E9C9E47DE" + "645055AE184D988D0D3CC1E5DFF6AA98B3EED26E788EA342C6B" + "1914269113248B15D0B79A6BD71EEA6C0BF9D89698A2B943AE2" + "4F843B00B34620DEE9DE5AE1FA1E00677D8FD9716CF43EA1EBD" + "BBFC2984FB1B27D444AF3B2D01A86412A32090A45385A912F39" + "4373F0610AF7D3C06D8564FAFAAD3B88C70196A1DEDF247AB51" + "5E5FCC8490A889F974E12D8DD5FDDDF8DE55500CDAF60FF2B70" + "E7D26B481389C2232FDEE43AE99B221893FB7CDB688C0648657" + "1A09B9A9B5D2DAC509BA166D0C5F5D8EAC363324234C657678A" + "0CD7")); + test_hash_extendable(&nettle_shake256, /* 201 octets */ + SHEX("FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3ECB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711AB1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A08716DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360C66F252F6E64EDC96B"), + 512, + SHEX("FC9C58940908E1F78AA90E888879C9EF903CD450DB94E5BEE0D" + "8ACF6A4E453A32A610C6209D9F5A44ECABD634D45D04F5D946B" + "CD388E2943D00AD8A6C4682D985F45D796ABEA85F419D3990BB" + "DC5A21294970FD42B6D06363E18EF7C00250E96AA96FF730DE2" + "D92E69BD19C2EC40BA78F94B7D120CECE0B0A44890CC17529A0" + "54EDC97C25BF7AB6BC3C955466F656FE450BB25C34997DA9425" + "8A4473128DDBBF6EFBA41C1843F69AC2B86A5F13EA652EC19CA" + "A10FD0D605B4F31CE170F9FF1D6C7DC064EB4106C6F4F54C88A" + "463EA9B97206E567B370DCE4DCA5B998831362DE38D8DCBC0FE" + "04E87BA9EC6CA571E6A3BDC246D316A55FAB5CE8AB0B71E0E8E" + "DD9790B26E3482A95C732A304C1DD48A3955ED995DDB86AA7B4" + "E6406D08E189596BC8C5A5F61A2AD336E39D94F6188DA5A1E4F" + "2CC9593E92B0D89E12CB4E6FDF89C5C24ED83D66F5AC6BB0A6A" + "3C88B151C35123DE2F3D2D18D8D302FB10299F68F65C9EA2E55" + "21AED6CB9FF5E357DDC1B9D4D5BD7B13DC9B4FF63941BEC300C" + "C787FA6DD0BC617F5389EB6058D05BFCAA16F08393F4F1DC5FD" + "4226542F49F771E5E93D87E06C4E663ACFB2CC365F3F7901635" + "6656F92EE52DC6DDE14482E2CC8A9EDA71189E3C5A431EFE0A8" + "768D014F05D45685E472BF22E359B8A6C8429D8F048314BFEF4" + "9AF2637108E774D5E41D6B38FDA700FA2145B0235E1DBA03BC8" + "DBF3")); + test_hash_extendable(&nettle_shake256, /* 202 octets */ + SHEX("B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C7925761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA5363892A2495DF8C1EEF"), + 512, + SHEX("F723334037CE684CDEBEEE3F14B0D109B075EDE85C489EDF798" + "1B3BF88B946E2851C9453B0E891349080405BC3B16A99879FD6" + "3AD7314FB7D26C050061D3A2F971E2A79C4B23338FC92E21466" + "C27BEABB1FE045A0A10F33516BD77E7D87C49003F1CC173B61D" + "4ABAE5151D5A723C2E6571B0B7039FCFDA72C149744512D5FA2" + "0DB8C736A70FC009211FDBE0D7245C5C26DD878CE52DA760AA9" + "0D45A5501EFA74677B85A736B2860876B23424D1CC47660040E" + "919DDEE1F67314FD902A1D5C1DC69B70BAEA890B5691322C81B" + "210DDCAA3CAABCC770E68B1BBA5B08C3D7676771608924A853F" + "D770B2AEDD8D42B1E7CA6CC0499E22646732EDAEFB94761405B" + "76C3A58D5CDD1439ED1BB06CEDEC79DCDF38E373ED17798A51B" + "80665C026DC2BBA3EEAB43CB9024FF6F04B371C07423CE2D0B2" + "E2A800B213D9FE193403FE868180569EBD002591959B8687E09" + "F81C9B2B8DE7672D173F8EBD0794ACD309A2629ED0AA7E14B58" + "635115A58CEAD5BE08D3105E2E65429D1F7823BD8DAB99084E1" + "D63BBC637EE37AD4627E57E15DE35CA52FB8407760BD2AED167" + "B6EA65B0C72B9B53C58A16D030A227CD92F19F14BA5AD6BB00A" + "5775E4A091D7844AD2DE44CB9D866154127CA1B1A2422483A14" + "6C729AEB85E67D597EC6F700C9DC615F2BDFA6A1C9AB038B81A" + "D0307DAEEFF021EBE7ABBA47BA002C27C2A07611027FC69C9B6" + "3992")); + test_hash_extendable(&nettle_shake256, /* 203 octets */ + SHEX("C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B349393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F5C6D1BE4BC79F08A1A0A46"), + 512, + SHEX("37A534CC68DE78F87B85212464858780E143A5E0DC7D46419EB" + "17E45E1872186DF8051353A6AF703C167B9233612ED68E95352" + "44DD99A613FB43F277C833588F7A2ADF2EAD15ADA2D6ED7CCA6" + "AC786741B7453EED605C7F8EA3A8E2AA8D5688D72EDF964C085" + "42422DE589D402DA18E10E7ECBBD132A10FE382A7EA0A94C9E5" + "C7F31C7BDF018F44BB6693EC64B266E1AEF1A3A941E336E479E" + "FBE2BC897C93576F5F1BC9C6D4F6E948A14464287D1E82DFDD1" + "E0CF0A68E9FF696B5D5392F4C46845DF19AD5BBF2B158659E85" + "6BBF6732A9AC0ED722BB5EB2C25D35FF83B892DD30BB01FE20F" + "49A28C52B6F28550FE56D176790AE2D96648C66E389569BC2D4" + "7D0A5775E0F6F1B7AB8F999415B3EEE8AAE8A3B663F13E0EDE5" + "C81CD001307FFB5AEA2801CAFCD1B09D31182220F52D39855E1" + "DF732F1CF2671538AE37726B3B47760830B391EDBBAE70B52F1" + "F2116762C685FB8523742D90A427C991F80DB823E3496994566" + "10720744BD2E4FB9C40D1371DEBDC7D01B2F5BE45C0231D297D" + "E09D66616509BBDB854D84A2D7C140E8489884794D3679FF8E2" + "4F7F04CD72058EC305EC21823AB5A47AE9AF8D10EFDBE2642A9" + "7DADD44F174622597E4BD88698FA75F24314E82ACA60B42F66F" + "84602C831FB9FA73E95955151F931841F1B9DE7C3F95DD78689" + "3B45DDF66045AAE6533AAA59060B415FE392BC585EB4C39115C" + "C163")); + test_hash_extendable(&nettle_shake256, /* 204 octets */ + SHEX("4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD496EB6E4A80358ACC78647D043"), + 512, + SHEX("60C681E527396D6C9DC1E5FD71842F760F9873621A9BF2B9B98" + "C5DF450DC7194379991D7A94397A206913AE1821259D308A5DC" + "4D53E552DBF2287B8694F0B6184B737D5E32E1258CD7FF58E5A" + "A9B5F37571413395B833CCC5620E37B0A64112968D4D7ACFFA3" + "A66E044C36E23363F1A09EEE48EB6713FBACEA29ED63AF0DB94" + "ED2BB22CC01B89D05391C1BC8844BE8BF105448925AD2373D46" + "D3417F920046E8E4AFA0C11A8057B4A42FA4CAFEC592F8C2F8F" + "1E2D603612FA38DFC3D3FD768EF7317802342E76E70D30745FB" + "AFC0BD007EFF874CB32761D700C88E27DBEDB57CBFEEA688E0F" + "06801847C1046CBF47E2C12EC0A4016D5E8238916DA887DEAB8" + "25F965F936C79A7316465B48A2B8BD5889BD04580FF7DC91C50" + "DE8EB60AF74E74BB4F896FF73CD3D1C55948C19DC0ABC841D7B" + "C3384AE4D60BD855F24BD2E402FAF5E47D66DDD2F0533F9A73F" + "D483E3965E967C979382F643CDA535C4AE3AECBBDAA51CD7A89" + "C8B2D9EBC0B7F9CC1C1EA355F9FECCB62345BE39A7D1073CBA7" + "C5C46F2163DBC1E9A6190EF620D6053B88586E73B18E816206A" + "72F297EF946C8B302A6E3FC92A3E7A9AA87E26C1466251CE1BB" + "D204BBA7D08FEB28F99CF27BDB3E8479C9C57FAB8F00797938D" + "471D53A1666156B66853C067E64695978D2E9AD5250FFF6CD14" + "91F7BAC09B77ABF42249FBBD63DEB5919A1FC96A4E26DB9D789" + "320A")); + test_hash_extendable(&nettle_shake256, /* 205 octets */ + SHEX("EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89BF3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA21401E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F231590BF2C4062FD2AD58F906A2D0D"), + 512, + SHEX("D8EF59E48FE97B07649929B9194BCC57EAD8E0EF010FD65031C" + "18B4CFCC0933152054AE17841D06C36BC375CB1F98D83E2F9C3" + "DFD54B88312AE71D7A00590A759E4B8D524124CF480BCEC6816" + "FCEECABC9E13356F99ADA2319C3EB0CC9E3BB504EDDCF7D3839" + "511BA0B412A72C3A8C49F7964A4F2EED7B814722A487E3EA6E3" + "47CDC2585090130B4DC535C3FA98E085F107FA43222B167EBDF" + "2BBD65ACE691D8C23D64DE52F966983A3D4479CEAC8AAB17794" + "7079656A454B7BA4548BCD5762974264C7BEB17DCB4FDAE572B" + "D67067F304990611E7C7F4D50BBD2B29D19C02D51918D5BE6E8" + "56BFD8DCECEAB2EA9F82F5BE53E57D4B00AC371436EFF3898E9" + "30193DD1A21C5B54506C6C91EA665D0D9992BE999F1DC434BA5" + "87DA4EF05BB296087314C4408CE0C5851660D0B5D1746232E03" + "1934284F85B7AA38420FA6EB469171FAABE88F85CE64A7FEF84" + "20ADA1F9BAAA4BC93D779C5A268A3F1F8A57CD2FD3B19CDD4E6" + "48E622552C1F16455F32631A3D91EC2F7A882DFD0EB13C4B85B" + "0A23E2477B53E0FE5E174F058268F6A24BA3CFA38D090AE6088" + "339957863733E1DA245432AB0394EAC05ED82428C4418DDEA00" + "C45E57A1719C7D2D04A781F8D0187C7C33117A3FF5473BD5C12" + "11476FB4EB64AEDE5A9E2DBFEE00671E7A9CCFEF7624E1F688B" + "77CBC755B95B6EC391D8E9DD0B65CFF4E1FC22F566F0B598BF7" + "ED6E")); + test_hash_extendable(&nettle_shake256, /* 206 octets */ + SHEX("E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DEAF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE3EE46FB67422F814A68C4BE3E8C9"), + 512, + SHEX("984570A811CB6B53213280F8C06C69FF1D17E767B163F8AFD76" + "674AC018A1CAFDA4D94B69BCF58F3AE8A53B107976ABEA6C616" + "D85AEB98BC10F29177A3590BFE943F53D2512323E5E79D64F9F" + "1319D47D6BA84C7EA37392BD15224D94BB16D99E0E1E7062FBC" + "3EDD7C81418D816E875FBC9D7434249D89A6002BB777E367F79" + "219BC7FACA03E1B9488307DEA98F304258FBCC53C58A483A6FC" + "C78D9D9B28D99DB3709E32C1EE91FE305F72B041933C8CAE6F6" + "8C6229658D591CE9B1100D6974706BC21A45224778D12DFBA63" + "CBE9A1A3FE9680A34771D9BAE39B4DC9C191C0A4E092F8EE92A" + "F2A02C95242CBB24580E04774AB41B07FCB6F61ECC6ACB2E48A" + "77E544AD9F25EC0ED7F440C26B8C9D25C7CF4494AF0802C4B48" + "2DA80251F7D1572DAE337725B9A976F70BB70B5037F333D53BC" + "3C252AD9AA13EAA7C9DE1AE4B24F6C91D17A489AC9D392038B8" + "0EF7679E75CA6994821F153C62D6CD7EF58927636EDF95EF6F0" + "5520025C4BBBA23685A862F244AB3802AE1D842184A5F5F344D" + "1193E1239990C331488C1A8B98F1707C389C05AFA919F5C17EA" + "C158064350ADFB9532EB0AC9111E256251B11D082DB28206AF2" + "AC514707D956A35E26495EDE4E98C2578427B48BC99B9AEB29B" + "0FCBE44A0E51CE9BB37864DEDC30BBB5FF9A055423D8BBD453A" + "65AB54E65CDF773CA695303FFD4767193D65F26706FED1CF35E" + "740C")); + test_hash_extendable(&nettle_shake256, /* 207 octets */ + SHEX("D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984AC58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED54557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB438428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF4519844DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55A17E776C0D02856032A6CD10AD2838"), + 512, + SHEX("2C2E6AFFFDC10D54F74AFAAD553CCA0DDA3AE5A5EDE3BEB611E" + "4C1441AD4E51B67EAA2306ABBB39115457FDF15FCE9607EBCF0" + "537E4F9AA2703D222A2B5FE602F87F6B54CC7A9427807A10E56" + "BE5B29BC3DD91FED0322F291D87F563BAF5B705534AE8BAC35D" + "4AF68A23963C040F4A1AED9B3E51124303DFEBBAEDBAB35D7CC" + "BD38D482EE45E261BCEFC53D0A25DFCA5DFB60CB2672D34CD41" + "54873F92B33FAFB8068A95458BC1166B36C3977643BA159B655" + "654D1755FD5E396AB9690718266EF6AE670452FBE332BE84750" + "BF7A26778E555FDB59AE0F48D6EC3FF4A1FEABF2FF7F1CE4DBF" + "3269DCD91E3CA9962D88DB9C527874DF15F7A6DB9682B1F0D90" + "4AA875D29A8885AE63E90461C69B688046FC771321FD6A61A6F" + "1A93FC95FAC72BF86ED76EEBDFF0CD6960D72FC460753ABA032" + "4F2D7CD7372F413D4A49E761CADE4F5911D18F7C712F61CE1A5" + "C9F07ED2B042D5C86B4DB97E1B7ABA57E2F2DB98CCB4041A16E" + "E21E08ACE213412C6D61CD3C42BB5D8DABD7B5A945FE512F2E6" + "4C3B1817D9BC5840D6E16F7E5E2AC36585BF8107ADDD0C269B8" + "510DFE11222DE1BE13CCC2A5BA8536887A11A0A733EB81D9372" + "9D487481655F531BF4AAE624918401097EC0951F7FC535CBD85" + "691E0E0EEEAC4A5848A61AE8D6D6121D3FBCBA345AB755C4E84" + "41ED7853FF46CAA48090728A7AC39496C3002BAA99DC90F049E" + "FE4C")); + test_hash_extendable(&nettle_shake256, /* 208 octets */ + SHEX("F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4AC2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD542DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB15454AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DACF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E82ED1C78631FD23B4C3EB27C3FAEC8685"), + 512, + SHEX("E36806AC60D67682D34D80AD11A1415901FCCC216D7548DE3F2" + "428B1963023A9394BC0E1766E279AE3509AE85D773D11DC8F11" + "AE65C5C0D6401575CB33835081492C2B657F34514ED6B0DFCC2" + "639FB758B5FDDF638576A64BD34759D629FF133112CC5200267" + "D8C9997E1538D602CA356E821F06EF84C3125D8466673312C69" + "03CE166FB97FCB3EAC9D30D61E13A1DEABB922DA6E5675DC897" + "6CD4426EDF7A7A797DED8936E0A3E721DE5C4D956E8287C4B05" + "D1210BBD36CE0E36B7F2A31945FCA6BAC1CAAB3C46D4C8245E3" + "E589DBDDBD00A3B99D8DFE33783235026C1A990F1C383CF71C7" + "55446D8F5DF4A114B9004541065BDB81AB81B98ED47A1D05595" + "AD5E168159EC620B1DA439C6CCB6C4D57A2ADB33A0E113FD0D8" + "ACBFF5C759BFFA29B36E8416EBA1B8F45285EF3F496F6946EE1" + "DDE798CF8F5BB78900E59785597101DAC9EC5E5F5CE0F0D6B17" + "3B6418A75BE30A84140FAC4899C4EB8DDCF87A0F78F22E23780" + "6E0871CDA9976DA0E7E42C4AD73FA49D3F9C257ED1CC6C38980" + "6BB2C32B1F7744DDCA53BA515237F1588F5FA7C636360B6B8D9" + "8DAFA7175DB320A1A3FD1B3A092D9E8A4466971B87E5B051898" + "29AD8D3B407F3C5E4265026C8B801C391BE0F9C9DBAB2F56362" + "F820384D859EAE1ED9B291F5F03F14F12D0FF8ADDAC128988A5" + "9707FACBE23814873246C99DB793099E6DC79712C612D41302F" + "8B59")); + test_hash_extendable(&nettle_shake256, /* 209 octets */ + SHEX("447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A294D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F8804F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89ECD90333A77BC4E1988A82ABF7C7CAF3291"), + 512, + SHEX("939F4A4B5E37B675450782B0E8554BD6A2821EC805CE07FD4F5" + "A3BC3816A2305F2353FFAF15883E760A3DEA064DF1583CFF5ED" + "83A97A62DF9D174AA80958E7649460FB4880DFA21DD7C00F373" + "AA9F010EBD1DE7E1AA73F51F84DF36BD2DCE6B37D7A1112C6C6" + "9EFB734CCE2AB12517FAE38F0F3592A4693251CB4F41AF7E820" + "F1E6F432CB9F88B82FCF579B2A5FD0E9A5B3C28542ABDAA9C65" + "1EF1A05A385051682B3238262475AEEB53894B8274EF37B223F" + "66A32C0D3DF45F3F191414FC0E8878E3D58852B4CDBD826D236" + "A7010CA49C43095786CDE671070EDE3F5BB74F34DFFACEEE281" + "042EAF3D2B39E53C25A61F3B0B2D79E4305B9A17C47787747D3" + "CCA46E88BE79464BDFD16BB44EC7D862503077D3E4E3C55BA1A" + "1FCDA217D53F5C22A35F883FBD0E786AF38276B341733F82BEE" + "BC4118D486C32A3E7A460E24951BFBE760556E36981805B40B8" + "37B514FAC3E8213937ECB018449319AD3FE1C0EC19B502E8E03" + "99398F3F8C74601F61A9BA3021F153ED45A99BC150AA886BF09" + "0B0134DA25B2740EE5156CFE28151EDA24A2C758303F505E465" + "F9D6A409651D4705A80B3FF660B2D66AD061960A3C6B81FA8D8" + "31659830C5243AAE26334917660FFFF3B977FBDA3730313753F" + "ACF7E319CDFEFC064F2072AF7195A70EA74DB24E5FBD36D6FA7" + "8C0D0D1085D05E81A62D3449F16007D3CCA29E4403DCE5DE01D" + "579B")); + test_hash_extendable(&nettle_shake256, /* 210 octets */ + SHEX("9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BFABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7626C48322E9791D5FF72294049BDE91E73F8"), + 512, + SHEX("3C78C3BD49493560231A71A867BBB666536B22562F150224599" + "1E3FF28E6F058264B382BBD61F9A16D4DDA0B3A72F84606F97E" + "7CE53F4A57C132A920FE738F818E987095C1292D9873A772E12" + "F74BF42EE1281F408DC2ED7BCEEB2FA6FD856B7A01A95535058" + "2C111B2CFBB65E26B745939E1DD4781A0265EC5AD4BDAFDE1EA" + "40AD504EFB0E9F34E15E1526B1873F251D33C280F9CAD71BCA1" + "7C4925AF9C3DBD4C6798BD393625017C5D3B03666FBC3AEE276" + "AE669AF2E9E10AE2D608247F3DCE876A8EA3BEE6EE001C3D5F8" + "47FC92A2A9CD0FDDEAD45C1F92414B23722005AAF8A7A0159D9" + "1B77F4A0E44DEBB9A0967977B04072633B4588DF0D699C8F990" + "D60FF5A2E09690A624DBE88B998424620B5634ACDC02C75DED6" + "DBA9431AA7A0FEBC01CC5DAA3094CDC818B2A6CA4D808901134" + "08565A714558B6BDC3E1735BD1FC9FE84210D7D78E0C50E8961" + "C39725F68F083094277B7B7ED3300A1FBF42F72AC9A79FF927E" + "4F76ABF0BA233A9E82E535C32D7054078A6A4A63F1EA454C6AA" + "33C5A2299DF7BECB5F911C25BD74532EDC882FF4312D2AE0ADD" + "4D0F67958A520011851988F9D3846C0100B4C119EA818062A3C" + "69401344CF94F49AB995C286F441D8241F60A73863628AD8AE1" + "CC780EA99CEFF0DC18A3D85E16CA00756627F6A1B7546359451" + "20890313EE136438E01A41593B6EFD26926F48309122CF1DD80" + "6C8C")); + test_hash_extendable(&nettle_shake256, /* 211 octets */ + SHEX("AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB31F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021FA6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92774BE89C1114DD531C011E53A34DC248A2F0E6"), + 512, + SHEX("1A73A838FBE2AEAC592433B7CAABFD17068510B165896F00217" + "A1F9E2093591A77330E656FC53D1223BC9446C11D329673B418" + "6A85DC6091140C070843760EFFA56918F414A9C6F2D198E7D0C" + "19F44AD19D1E89E25365CEF40890987D255A616524AD68574C3" + "C284825A48C3BCB0B48D41EE284B53BE97127DECF90402E8FE1" + "317263D179814177B79DF92B9C71EFE9C3C2F3CBF8329BD9711" + "E6393457F076C8BCF16A70E854DAF7BCE58C31F55B4D0E9681B" + "39FDC19D0703A795C234016C5879857F25A64EAF0700C681E59" + "0B6D29605311F1BDBEA47762BBFB012BF103D34C2CAB53D53E1" + "962BA6850B779B8673BA280B0FB79CC387E2559105DDBA2884F" + "E493B85EE0F0747436013CED0ACE7280854E9BED8A42FC98DCF" + "1AE5F845B677F4B802D01AEF9529FFFB6ACFBA047429D4DE318" + "1FA959A3B74AEB5934E3F25498CCC850BFAED46738736DB5E5B" + "DA73AC03162923D310A1F91658D15CFC5268FD5BCD9AE6F9D56" + "52558F74C1DD85696233AB9EFEF5CEEE75F0A3489F46867B0BB" + "1344CE24E5BE88ABB706CB49A07FEE3DD5911DCC0486B58FF2B" + "024F844C3773A1C03CE35F02256157A6A2E6616569FB751ECC3" + "E4CF01EF99BB0EA61E4AEFEBCC65450EF2999505427B23C7CB9" + "278E27AB58C5FA2D5B0A432A6172CB1C23DAC420C92631495DC" + "30DBE0AF3B6944F1E101D1566F0A1F4BA06B82C36A7CD068864" + "FD3B")); + test_hash_extendable(&nettle_shake256, /* 212 octets */ + SHEX("3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F3694F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4A7059ABE99182714983B9C9D44D7F5643596D4F3"), + 512, + SHEX("674343644B198DA1CB0709F842239CA1559AB643E48F8EEDB37" + "3671473CA24A99A74E20AC6368B661BA1824AF92985B3E7F957" + "F9C935C715531703A6B8B5113A364F52C7DF7C5488997A3FF71" + "873FDACB1A6F4AC3B631A3341BC36CB742F8100B28029ED6C44" + "FCB41E93B6F171A064B0F13B2F83B1790330DEF22A387C52CEF" + "7F16D1E398123CA0231B76494D708CC694A28E281B34ED163B7" + "931312DAA56752080C4966F8638134680CB96C4F815AC678106" + "FB243ED3B9C9A5599D3851BF3D89CB7BA463C71A868F74D07F0" + "C6F9C6F940F53D88E18892EE6CFE5FE9C17B92569E5C1222FEE" + "87792987663757459C35630CB355F445630826807909BB5CBC4" + "F5C8E0BC669BE6C705C12BCB2B39552D4AF42204D237FAC5BEC" + "56EF9AE6F60BA836AD865983DF2F25A1F8C3F5DF93F87EB7647" + "2DBEBDB20FDF894C0167287EF1A6355040C4D4A6949F4886974" + "98529217E4532A445CDED47687CFAA14DB98260DE9321A16FE8" + "4E4D82D2B1B0C2EE639B2ABA48D85E4D06A369CDD9B03A0A846" + "EBF83ECD5ED257876BD5E3E7838108FB3B86B6558F8BB454F1E" + "76FABE18F3B66CA1448C1B02DAB1BCD485E709CA800D5271952" + "602E9B1BD585F61936D8DD678C900407892756A08730B891C15" + "4B33D83BCD1B2F441F1DFA79AF235316BE9A3E20ECEB4EB23AB" + "76D9E9564C367BC27424DAE397E35BA16A8CD4BA15CFB7D9EEE" + "2B82")); + test_hash_extendable(&nettle_shake256, /* 213 octets */ + SHEX("3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA16A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E763D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A44F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739"), + 512, + SHEX("791BE2551F426CD350322EB1AC0E6902996546D446C229E03D7" + "4E25CDFCAD06CD99BDD3658026EDBE8708AD18DB91305770245" + "0BAA457EE767B7F6085B0F1D35A86D8C5C62A35E5A11B81D409" + "C12C8AD5777E245ACC369ABB5EA9D8D9517AE7FB4033EFBBBCB" + "B70FD6CC1E55187AA8A27C75E5116EBA46DE2C8378997504A82" + "390E6B085A45C5FAE52FC314E876DA7A7F90226CEDD3C4E9858" + "87F162513BDDAC323E85737F3954DC58D12E986BB1840D0EB04" + "6102C01381DB2915981B23DECE4987661B41B56D30C35A13DA2" + "1C6D2AB0BB7951F04804986DC2127F7F33C4937D27427C7B706" + "2EF7EDE944EFD0015681C2FA0C115B67652A7EF1AAD03C0FC45" + "42BADE7CDA11F0AFC57D8E2C6DF0E5BB5440C2B3ED2807C2798" + "CADC6F371A2D6F2D647936B82936BA4B19A16F599689814AC4D" + "E20CC7CD05A3452D9286B345037ABD23850F22A56BBA707B1D9" + "CF299ED3EA21943882669735F69D25F240F87F3B34CD794B0C6" + "353681006AAC5AD75CF46BC6464579BF5B715AC741CD1CC06CD" + "CA6E8D579F2FF839E263C94588CCD268B1D375E5DF5BFC8B7A8" + "9FD72CFBF9BF5400EFEF53186B50497D942963EEDCD6A742678" + "4F38F8808C50F867D22C10FA4D7DEDB4F5354FE1EB1484C9F64" + "5397582838F1C78076891C5E1E44959B5C74E28D7BCC3F6ACEE" + "4E5393A5CE24E97CDBE1B22AE853C567068ACEE03CDB3157A3E" + "F657")); + test_hash_extendable(&nettle_shake256, /* 214 octets */ + SHEX("7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31BBAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56AE14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C"), + 512, + SHEX("7C0247B191C924335D843B81614C0F1A6A9AB1ADB6C28692239" + "7D8C1B26220A35C13C7151E35FF9B3653A086DA339EA1F05881" + "F414E7A16C61B1453287F924C48EA933995000A9C9B0EBD5E8B" + "EF2C92820CCF9BB6CB0F465AAC124B5E794FDBCC60584B05CC3" + "BAD06D41CF9DD5D3D3B7FE1CEF634DE558B6642E591BC2F69AB" + "EAE61EF5DA27BEDF291D2A4106B3DA946FB57328E827C8D4EE1" + "C3665AF79F96CC290F924348C30205D75B01BB05AA9DFC317CF" + "DDEEB7E3764589C003E2AA1DDF60A3C98ADDE4517E40D08CF80" + "646205EC9FC6E9A3E1B64B2EAD561957C3E2710DFF720BD7E58" + "41481D9E1A048D1C76A3E1A08BF010428C8FD2A6F2DCA4FDE7C" + "8CF59C826E6DF246CDE77D5823DD1E0C0759AF8356E89ED4C03" + "276A37EBBA73DC196E7915B57BAADE13A7A276AAA4456E23E44" + "54D44260D9EADD748D4E7E1857B6D2D9C301AF6118270859ACC" + "43603C79A2F6D698871FD5384DAF43B16FEE4ECE1146ED54E1C" + "A28EAAF2D94306383609BFB26D6634DF00198E0D19500215E17" + "8D77329F7504AF80DC6B727EA7791305FB38FDDB1CEF7F626A4" + "9AC6E34C3A6ED630F9310F890392704A2CDE00CC850FF7CE9F0" + "E1F0CB4B1D0C161CA3B812309CB3C9E9D071024D61E5265A71E" + "7ADC58A3D47A567F5B19F9E13FDCDCD34F3DEB12DA3151FE817" + "E5844F5FCE12805B064895671F0C3767AF5A3D203D095BE306D" + "4A26")); + test_hash_extendable(&nettle_shake256, /* 215 octets */ + SHEX("7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7BD9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC737B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B03166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B59293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE"), + 512, + SHEX("73F5EDF85CBE959CDFBEABBE2A96A1812134EC9D3CCB72D6039" + "D4FCDEF0B57BB72A782B76963C97AE0C2713CA657B9424851DC" + "903CC0488A169538A0DB3EC58E67C4EEA1C18ABDB2036C79381" + "E76F5C9F6CF1F830E0DAD77D2EB90F120EFBA42B20B15B8C8CE" + "8532C5B668464AD4986A281E75E4FB2CBC59ABF886A8540622C" + "2458FEFD190908A09FCD7F16B6E5BCC7E950917794FED485C82" + "CEEF7FE0FE4665E0922406AE1F8D34E5F77BFC0AF8B4C881BF9" + "F76C78A233898D120981BE96F67D135723407ED252432928C7F" + "2580FB80000CB51E3EE8DB02D4EF4FCDBABB704DB0CDB9E31FB" + "E76930D285702D91A74DB806DACCC01A15C0129A7F7D4712668" + "ED633462A6A036A9EC2C4A7E4AACD4D62DF9DA1FE959DB9ACD0" + "FB6F01A75F95CD9768F408AAB1760EDAD70E936EEC344E9506A" + "586B9D42DB99EF828E58D281128FB0EAC1185BE704CC9D16E35" + "9EE3BC1361A776DE4803132822F99F7E477764C9408B0457451" + "50AB8A7481D266995C91EACA7A9497F4CA1848828FB5ED127B7" + "A4A5FA0F23614165A8E4DE1E619A40D4E55AC28075AB2FF1BD4" + "2BEE19F2F9D63630CAC85EECA329A0A1877E848FB2A64176411" + "A7FCC2DD63D6CA19452780BBE4EAB208B0FA7B25F21F17BE1CF" + "7C5415A04FCAB687B7D4BA2F657E39D5EFC17F36A1A0E3DE461" + "0788ECC43CBE70BA2DDC33ABF4C335940DD53891FB6DCE20DD0" + "39AC")); + test_hash_extendable(&nettle_shake256, /* 216 octets */ + SHEX("D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17FD4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B76033798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDFCA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE10644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7"), + 512, + SHEX("9F303DECCEA9369400C533CE2E162818957E18F65C05A675404" + "CF8637FDB57F3251FDC2844CA194ED97CD021416E764E072598" + "106E9D97D420087087DCF5F8ACF1047A7B4518E683E5AC6DF1E" + "F1BA7EC7A418F12E386DFB7A4A5EDD9898CAE54D645AB319398" + "2F4363DA670F1FBC7AAA1194A03BB76391A78DAE7E4FFF733A6" + "F19393E9C4CC5EB3F5503D8B1CEFEEB7038B0565F29D6CD4460" + "090FC63E3C4DBC7D5D3D107F8E905B21CC9B9EF3C535AA0D8EB" + "CF787631744F80A05CACA3E50968A05F85E9CB0D775DAFCC714" + "FD6D93C8B110E58F9AD1F8077CC80427515FC5C0CF081DE5FD4" + "CFE6EA6DD2F33A2DF212918A3F86BBB8ABA45D808BBC2CAD8DD" + "09E7B9AF1C33B0E58B988268DB39118B2B2090EABADEC0B84FD" + "836DB6944E8E27B5F4F3B2876077D52B4648885EF55DFFF266C" + "7264C46EF5A3CB63588D1A86C82D19449E0C93D968619CA4D33" + "BCADCB21E6787A5E41F0D4E95E2B47E422FCFE5BD7EBC65A302" + "3479330E989B3EDC8320EDC868FB122DF078470B0373732E187" + "110D3964B6E7757E84F177106C2BFAC5BCC43A13DC40BA8AD5C" + "1E772C58DF0F32FF0F10348686CF0662F2F30D41BA48B121E1A" + "146C70E6131E13080CD8B63AB79869AF74E64B9899855C81D20" + "F753F22C67F1E4DE2450740944CDF4FDEDED59927F92A9568DB" + "95E5B8515C07BF4E9ADF952D4AD498F3DC19A2205640A8378A0" + "FD5F")); + test_hash_extendable(&nettle_shake256, /* 217 octets */ + SHEX("2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2AD52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E"), + 512, + SHEX("1CC30597732904C49C0F6EAF777F82B1C33B4CF00FA720C7DB8" + "473139266E7304D81999F322AE6803736D242E7408DBB8955D8" + "F1C0B14C6F7678CACDF2F3CC2A17208033E8C70BC5141A072F4" + "1E759AD8EEDFF745DF0162C2EA877A7D673BC63D80C0F1DB765" + "F9F5CDEB2EFF214411F95AD7C3C41F6AFEC798E001D31AE2243" + "2A54BADC751F7F713B4A3693267BE3CDD3A1DDE1A5E638143A2" + "FAE59A2A359E197CF4E5E1D933DAD9F99773F164173E3E81898" + "7F19D122AAB725AF24497CA116EC201B2482F0539EC454292DF" + "4D018E286247F8C857B53816E9623D580D69FAEF60009FE72F2" + "5B4609E8DAD73A06C006280EDB0137A25D5462368B18B8F3752" + "5C2C74FFEB4A7942683B86ACA6FB1D773E9C92311C4E197C546" + "6CE90CF01C661EC2D928EE0D35A2FCF0EF1A87FA7D298747E44" + "DBAA4C90C655348B8C2771F378FBAF0702EF9CB4B42CD5B2601" + "6D8F5FAC1B79A49F8022A180F04F8988B5895822404D346A036" + "22A5DF8AD2E3F6841AB14644F6074A72DCDA253D7C9423DF9FC" + "15D98F49E3B2A1DF2011CEAA61BB7DCEB3860B9B66DF3926A1E" + "79E73EF6C4429AA9F344ADCE7D9A7451AD97D0C9653B916B029" + "C4971E6756FBA775F191751416C3B0587C2FC5043F38D2B6205" + "804C47DA3E85A99B47F1AAF42D9C709F21BEA94B8CA7340FBB8" + "B262DE6C47B79DE5222AFEE7B1C994ED526AD4D5641136F5227" + "A5BB")); + test_hash_extendable(&nettle_shake256, /* 218 octets */ + SHEX("5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961BCB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75FD71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF"), + 512, + SHEX("6D96D224006DFBE8EEC28892FD2BF888FF543501F2F8AE5B6BE" + "B67713173C88671E4B3804D695730FDD0CB04FFD873B0E40110" + "3DFAE8F014FFB0EA382333E33985D1037403029F0C642323183" + "AC8668907DE791BDB0BF7112FD2C8BA5D3B933273B51082810C" + "7515C78173DAB93C7AFC48B0A76D5488B76CA0E5DA2226B669A" + "2EFA56F0A2041CC4A60212B2B4F4B02749B211856839868CCC0" + "A935DB1F7305EF356024FC78795690B69CBEA01EC0B5AA8B3C4" + "AC2D1815176B57062DC4742DEFA68081F21384FC875339F4098" + "5E85DEBF3AE9EF80CFCA746375492614FE5E76A96E506403FE2" + "CF5BCB43AE6E4E697E86237E825BDB16087EB32D3DBCCF2AF2B" + "624ACB4A960E0781E7C686B0B3A8A0E4BEB1F904E0D84B00038" + "788A02CE66BAA59EF185E2678598013C60208E5CEB50B701BDD" + "2694A24837F786931027AC0D64A229400B5783BF29AB39DF9AE" + "CED0CC8B9D6FEA52DE3E9220575B4F3AF6E2DF155A20D87FF3F" + "5ECDC0437CF7A8A648A0BE9C81F0EC3457BBA5D5948149C3FF2" + "411053549AC24DFFC65B54BB89B227499E35226FD9E1A85EBF5" + "DD534852921BEB63BF850EDB495F9DC1876C6A481E9B774E6D4" + "368974BD5A7BA7A16E90D078BD651F128CA7AC160EEC05CB8F3" + "AE3CEE4BF998579B84418D7A70DA95E65E4DA9933EF8E399359" + "D6D1993E5D9753CFD1B10737F6930FF0CBA3510D3BD9CF78F5F" + "79DD")); + test_hash_extendable(&nettle_shake256, /* 219 octets */ + SHEX("C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D1391A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA39F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397"), + 512, + SHEX("E0335CBFA877DA0DDD79072BD7F46EA6313144E633BA2C207CB" + "D6948237CC32A39DB06F951A1A4B9B0B91011158D38938ADC1E" + "42408A2D8A95C3EAC579C922943155624F6318E12BE7EB6A836" + "79508E0910FB6E85A84998F0FBE06B087EFC6EC91EEE277B48D" + "289DD6E12C820D0909E206750C82995DB86031E71B0D005CE89" + "8F1CF7C782F10B8CED5370CF27B74C6822910B653BBDD328AE5" + "A4921478A4072B8C7C89B446E057F6DC4692186CAC39CF08E3C" + "3F0C9457FF44DA73B88CE131A1E2B4C6A235DD464E4777B069D" + "39A9EE2A5877E07E8669B0D610513102B00F8E2A7EC210C403F" + "2E398EFF22E193A66376D0D08AB3013AEA4D508EE88EDD361FD" + "A5AA4E17BA899632CB7222EDDD5B320AF686C80F2777D94FA2A" + "3428A47AE7340054D2DEC1C42569A5EEE01759846FD10AF9D2A" + "D2AE9F6FADFF825D184EAF7E8AB9D7C7C64AE07CD5A95F2B24C" + "C3857BB239F5C0824EA7CA0C84CCCD9601580EA7A4C89370086" + "17468B9122B466624D51AF29AE1B66D14C332F2535BD7C3603D" + "E07A0B25C6A260E9E70EBD2DA622ACBCA660D425DE2E44B7E62" + "42A83077BD24025ABD5F0F2F21743F80D9A6F1552C3957B2200" + "88D861F3E25823548BDCB448D19B3CFA14FC8F11CEAC5BB2623" + "64F100655D5099D564041F113503AEC817BB03CCB9A6E021967" + "06FBB836C28421AFE0AB276772150FD0677ACE7655EA6214F61" + "D2A6")); + test_hash_extendable(&nettle_shake256, /* 220 octets */ + SHEX("7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C25F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6"), + 512, + SHEX("74B8E6A2245E18432DB073B046FA0D6F63C85A05B9FB3B3098C" + "8F2AAAD938CEC8A8232AC2CC4CD7EA85A29BBB4A2D03311CFA7" + "F1ED8107DA574E659358408C60B1CDAE6A4BA6F3091574DFF99" + "8C97CA31E410B4132013AFAE543076BACA1989E7B5DA17E654E" + "664C856A00D7DE43EB3A2C5B8E347EA3B18A94D534C0448671F" + "E2C360034550F145F911ACB7C245A99FE37CA167EB8AE0FF5E9" + "D0B65F255D24DE4239BA87C2E8B757192020B3A28D53861D29C" + "845D4E4A21604ED2D5DC8E4C107CD47501847B50CE2452A3168" + "5012C5949E0CB630088178AAA5C9B0EAA6394E00096CDAFDC78" + "1833F37C64EE2955DB09F1C3B3767A0F0928863567513D5B02A" + "3D24E66A79EA590D5DBEF5E8B5D9953ED9F72610C0D4F5EAD67" + "B3421E90710138E09BB15959DFE9AE408AFA9ACFFCA19DD083B" + "DF508D8FBA9F75A18F6229A9850DE36653A0A39987781EAE3F7" + "40E2CE387C004D47811E3F8B5F8DA9ECAFE90C5AF4ACE449FF7" + "AF57B271B0C3059AE42180A1746EB3AABA944DBA5BF3946907A" + "18B1D94DF4819872A24DEEDDA3AF7A3787AB6B3D5F128D0C3CC" + "AB6AD0C34371BB76DAA321E36F6FF935FD58B590858F894B54B" + "F9997DF8B73939919AF342D6593F31F76C3251AB3812E27F00F" + "3AAE0C0535A8CBF9C6A9D20E26E619D6899ECA8A46526D7205A" + "3F2F3971C60E432CE438F40C2CBEF0F2AD7253B18AD53C3BD8F" + "108B")); + test_hash_extendable(&nettle_shake256, /* 221 octets */ + SHEX("7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C093867948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC15B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487"), + 512, + SHEX("10B27D45E1E91C3568B990F306D4D0338380C4A24C543DB7905" + "AD8C20B9C469A79E50F7FE705C03D2D1CFF9E2C35FCE1E6E203" + "5D3F464B6D2861EED223C32E960BB223F21193CD4734F36422C" + "1DE6F0F81791D6A5E9DB7BA8C2CA1F2B7FEF2F94C5392869591" + "3471B5E1B02B75FB9B0DA1FEB46520F3E8558E03427BF371180" + "EBACC91F3989F849B4EAB233C529006EE02050D85B548344C09" + "CC7A6C6C40FCE5C55348E1BEB801482BA70D6CC5A24B3B0C9A3" + "258B0934C3A41FBF07EF50460E2BDA507711954C83FFB91CF2B" + "2827D5FCC6DAE70DF5882689C573F159A9B45694458D0FB8A50" + "00B109BEA868160FCA781F50DB7B5EE56AE55BAE1FBEABDC155" + "EC46C0EB16314851FE0446AC2BF171D99FBCFBE2ADFBAE4A638" + "7B42FE41C5EE8E2AD1819D7F80BB1B4EC2DAFCD1D06C2C9750A" + "600EE6627F62089B2EE59EA461E0DCF47188D1A8DC80B029447" + "9C7EB03953C425D6EB3CAC6FFC34E484A35127B605CABFA5971" + "2141C4FA0840FB520A1D0A8DB4B298D24DE2A7246F28E036B51" + "1DB91794E35B75DAEBCB3B8833794B764F936200E7784348AE5" + "0B95363C027F3AF85762F3B8E6F31B7C2D8BD18814A723C0DE5" + "17F7B3937AF574A3FB5F52DE8A10A2055E8EB4281D383797DF4" + "B8D5DD5266C5D438A10DE4BAD00E4C0B252110CF368707AA2FE" + "785F518CC2F3DA5221634B52118348F231AAE0712DE096D70A4" + "3929")); + test_hash_extendable(&nettle_shake256, /* 222 octets */ + SHEX("988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FBA91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF31188B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB"), + 512, + SHEX("69304677315720D586605521E24D32745DFAB082D2BC23A3165" + "C419831C19468A088D972AC672D7BAAB907005A0AE3910D4F06" + "F0BC5ADF6AAF9E1D8CD7CB85DD166D0FB9703CDC7D45DAFAC48" + "05612137D4720FB3FCE90D69864403E6C456FBD87677312ED7C" + "AD9A28F7A98753265294F4820FA50868CFEA157EBA50DC5763E" + "223238FB2032DBC6DC00C3710B6976F16034A9D851CD1BADDEC" + "6071CADF10C8F9FA123FC0EB81ECAF4C16B8D52A6C1FFE330D1" + "14D71CEADE28BB0422855AA1E7E838A93523315BD0F8384361A" + "58529A2264D66D65806659C49B7F80D95474A7965A0733D3DA4" + "FE317C5AE6180746BD8DC70589F97B15E0FEF29D34D6BE4416A" + "CB3F9EBA2F3E34F8E636A6B111DFD4ACEB2C9DE051B942EF021" + "C78E0671F771058C4B59D34991DD2EFC6943C6E0156CC0E3FEA" + "D10968F77BF4DA82B9FD3AB73B43E2890BC8AEB02D7178FAEB2" + "FE1A0A194B1581F6322D817AFF2DE7DAA96F4A725EBBD8C9FC9" + "C815D0A8E9FAC425F278F121084AD98AF9BB119235FFFDF1751" + "AB6A805FA80F43A5682C2FD5BF9241FCA866DE6B5EFD36E6923" + "13F51FA8DD64B52DC2FC33C56687417C942680676143A459068" + "401690DF9213E18604058E74011B111F1410531FBED32567AF7" + "A0319B5A4A717F580D16D9E9341E78F717E27258A84A2CDBBB9" + "CA118FD0F81568639F40176A1754C743B4B5E377DBB0175D160" + "B414")); + test_hash_extendable(&nettle_shake256, /* 223 octets */ + SHEX("5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B91A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A244524EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D"), + 512, + SHEX("B32E9585694532B1018B05B9DFDB23B8924025786F5733769B4" + "913B73B0FC35513D4C0FA1A1A5019DB5FC807ABADCD4589B4C5" + "658A854FC919105A5F08799F7CBA3B8DFE72DE84027B341CB19" + "46D6A4A907D6FFBC15B6A00805ABE25047476B99D53A6AABE9C" + "758B3BF4476DFEFEF2E366617A1407853B0D0278DF42FB7003B" + "B1610DA2AD52422A0ECCC74818EBB4DF264D0ADB9623B9EE0C5" + "371E9F0E73D7FD31A2B41F9DA8C9955310166FCAE6BE9AA75D3" + "F7C532F1502BEACFCD81A034B5D4A87647A5B9E2C49B7BF055A" + "0F4BC3F555FEF5147BB7B9BD75772878FDDCFFD58FF2B09A61D" + "6067C0F3498EFBB5FCB736813F798E213102E47A3DD61A6BF99" + "DB2834DB63BEFDA6E290EA953A8B96FA37650DF510082294891" + "C86892215850A34AF1EE0659694431DA636C9BDC854AB98FC79" + "6C28BD6272C9C5DF1D199CE9F55BB575786EBCD6851DAC97924" + "AAFB102491BF4B80351AFD26EF027C745F98607C19ACF96B66E" + "CFACD4C512BCC9A8E609DE5FFCDE0DF0E77760D8D44F1230133" + "6247F53CBED8894831765D12221C902127B65DD549E6C32124E" + "0CA555586FCA8043097B9AE3D9BCF899FA06EE5D0A17EC0A2E6" + "57E37CF5D4A55CF4C99E9F10691602412D27F9B8DB5C4C2644F" + "C822E11833B32168AC89F2D591748D12B527FD5EAB2291F2015" + "79A48AA9C370979DC2265B873AD65266E98FF668579B0F4274C" + "73F9")); + test_hash_extendable(&nettle_shake256, /* 224 octets */ + SHEX("47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EADF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C00637E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C949897EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F19F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34AEF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78"), + 512, + SHEX("E6BBDDC5B154ABAB888F4E00C2BFC18A200DB6DED8EBAD70ECE" + "03D10D123C52D4B5124CDFDE2D5A803B8BE98C646E29F64F2BD" + "D55492531B2741C6040FC51F7DF18106D9AAE62F1930BAB26FD" + "5167D516C4E4AFD3035D6AFDDD06DAA59B56BE3F188CBC11529" + "909F6CA0618C321349B1B918C1CEE491C8D7996F10B02E0A085" + "CE790648C586710D4916A528398FAC1E1FA71971EC85B203B83" + "721AA006D7026C2647CEC53296E80EE3FBB6B880BD296D6B9DF" + "FDF40C5537551EB0DDE86E85A72FD280888C08D67A9839EA618" + "49B47FB010540BAA15530495CC8BF941F82B4B3114F6AE055C8" + "52B0978ECAA67108AECEB12E78C339071CA058FA4A534558899" + "D71ED36C2164DE0C92612F07CF465F92C0A1987F7462AD303DE" + "358DC9C9929AC205F366FE564C0B32B1E4D65EF4E0B45B2AAEA" + "6A93C5626ED40C597B54A2074F255FC6C33F7DE535B5041F320" + "85274EBDE9D7ACE9B458E7E7CC47193428A8873560C561230B0" + "3A72D993100B73FDC24231A39C227B05630B328645349E0025E" + "F02002C34E6A7EF07AC5F7E299CFE0ECCCF01E1DFBDAC9BBC95" + "B09B2EA505D8E74C85B9BC8E939363F3F062260711C44C132E1" + "F3663123EC0B0A253DE7DB1DC2A08481571F64BAC3FCD9EAC73" + "7BDB42AA4D392DDF9547126191DDCB2F88A5705BEC9BE7C8D88" + "E9521EF7BF9753155F6F3A75ACD4C9C913785CBFF81761DA8DD" + "73B8")); + test_hash_extendable(&nettle_shake256, /* 225 octets */ + SHEX("8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3CE6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F343292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627E8"), + 512, + SHEX("F40B4A6A7D88482C5BA65D17038D68184E1AAD676D340300301" + "7A4348A7E3ABFE89804EF65D96EA5A467CAA938702071918452" + "8944AAD358960B66A0E78F2E4C19F244C82CB0D10BD1DF49CFB" + "89C24FBCE8AF1DC6B13DC61F40116ED3D1B51B80ACF08A7A9BA" + "DC6318DA75EB4CABBF4798923D639C2C3C24778660089384DE3" + "3F0EE7F957C78D4BF8D74EE1E3EA5E330C350584C319298166C" + "DAFFE0C7ACE6A50D1551B30FA386A0ED5C20DA31DC35FE2DDB7" + "FF030AEF1C0F2ECB0C1915554722DDD5A38DF758E321048FC46" + "43FDFAF54AE558F9B40EB38DBE516256E8D97701022B68E1F09" + "83A14D7DBEFB59DAC5073062DE8698BEB9C94DAE0A49FD51A66" + "1FA6AA84FE1088EB4E0F964953625A898B03993ECB248EFD5E6" + "6380667C2ED185FC568AE58E15B5A57ABFD84966094EE5C8528" + "4F3248C92E1300DB80CD6AE08662412D01503D598A1FCDB0EF8" + "CA773EADACE543B867BADE24EFB25518E59E27FC921D8DB6D3A" + "C286BD1ABA53D48983DF63D493F95B88610CBCF6DE2130AD63F" + "B9860A839C3F98F5532B90225D1ADAD79B478F5C9D836435A9C" + "9C0EBE229FA494B5F4253DA92C7382AB388C4F052911E9FF28C" + "C43415C8A82065433D8CDAB9152CC13191F1729EA95693B4BBE" + "BC3B03F298EF6B3739A0F34A545198FF5D2B4292AA8D6A04271" + "463DF95145C99EC769167761690C97361984A665B0D5C2169AD" + "DED2")); + test_hash_extendable(&nettle_shake256, /* 226 octets */ + SHEX("EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF785B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F197447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA356427"), + 512, + SHEX("92951EAA72195331ACDD63572FE112E0DF4B43CA1B67BA5C918" + "4DA5667A8439E3AFD8784461010EB80178B07F278C0BD52582C" + "EF5B4D869D77E764342651ACE52F1F5DBB5316A36CBE2D6FA45" + "5403A8FF0480A5DF002396B8E444B9005A9A97D301529F5FAEF" + "77C0FC04C3B01C7C4907F197927904BC56DA2F850A0767E91C5" + "B77D8A41CAFCBDD5CC768E220E844786093CE425BCB3BF6CF3F" + "E9CCCBF6A5CB84D46AED8BEB079AC0F12F68836A71D8C9D738F" + "9BE5A8311299EEC2AE86AB774D0D8345C6FA7A341223A43DBB8" + "5AD5274806B23A3BBE312723BED548F4C64353EE2875A44A8A3" + "7153DAFBE98E96EFAA402E7A68BCA09EDA8A744C3BB8FCDAEDD" + "7EC54CA4066B69B4828AFE6285B6909BC2AE96CD62F3A523898" + "7279F206C2593FD2BF4D5A643484A5155FFF290253650387C7B" + "DC0B3FD749EB1A84F7A11790AFCDD3FC72FAE3BBB1C55596584" + "B7246E77D0712562AEAFF1C5316A698DB9AA3524DC4AF4AA461" + "9C5F9CBBE41AA1FF2A0BAD12F17ECF7C90E6FBC20EBF374D633" + "5EF245BF449E3EE5870651587727D35BBED64885A8D375E43CC" + "350E398C3D5DE83CE92354C08E16A6AC69AF10EFAEC2F0268CB" + "7F998CEB45DB988B193C8D35E89A387DE6C212A2D2D5A9FFEC3" + "D4DFF92D66992563C85E4E707730BDB669783357E5ED038ACEA" + "7D8214313FC027733D51B2D21F47666DAB6C6F3E50A335E83C7" + "2ABD")); + test_hash_extendable(&nettle_shake256, /* 227 octets */ + SHEX("23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C189F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568CF24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C630012"), + 512, + SHEX("9107BC54F9AE29BD282C37CF4BE15D2EDC4B5A20FCD8C131620" + "CEE6C9326AF25896BD25550CC3B46C19BB58D825A7156A4AAC0" + "AE72E38601AA6AAEDC4DDC578D145AE8A0AF4E630914B49FCD3" + "9C41924A19ED6E52EC150D1BDFBFE2717B9B46D6BE9BD637876" + "1F167C1133EE31981F9B681D674E267B3A01B0F455F9A0C86B7" + "E6BB3EDEDC2DD86C8EF6F6BF736BA9CFC4A20E602779F0CC626" + "E0F3513807C8BC71546DD1E0E5210A6ABDBDB284F90EAEBFAE9" + "70CEE9EB8C58A5F0F197FEB3292AA8EE814DF5D86D6B1F43AD7" + "87E82AB6D1C01CF44F3B32522609CC51967FA9D2417A8B91461" + "B41A5390BDAEE3763E152A2DB2E8B7842A73F1E05A05F7A7D19" + "FC88F576B049F87E85835EA4DBED141AC1321B47AEDBFD285B6" + "488B7613206E483559A8B0725D3091A04F10736EA1920FE2346" + "58AEC2A5FD0F85F50BED9EEA3E5513EE3B45F0CAEE09A1CA3DD" + "8E96EBB408EC6A31F07ACEC024097C20038A6DB8B5A10396C6F" + "3532D8B356BD664A9C3C153D2248F9D8587D21AD3ADB20D06C0" + "20F5AEA40E96C776202A17740F59BAC12195B49E19ABB87F693" + "BA0B1B414C4C83DD7474FB212F0F8015D0019D33250BB890079" + "278E027F0191B1A92FC40004050C4E88D1CD3469B656A2F6D1A" + "B9E49118B18701FA85A5B1497F1FD0D3C999567F99D05CD8F20" + "DBC05333F547598615FEE2452861AF0CDE27ACC4D763074DE84" + "0004")); + test_hash_extendable(&nettle_shake256, /* 228 octets */ + SHEX("0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF895BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC9314C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C6001606678DFB921"), + 512, + SHEX("02D21B8FEE4BB59B4D39D88DF91B675762640994D3A300BD725" + "9A3E97DED831112D27339FC4F59C7F17DABEED310EE901D829A" + "2193421C4D828DF1248A68F6AB928EE87AFD727DDC2766DE071" + "103B144040F9EF22592599A0FA6CEDC2FCD9A774BEF862D2D51" + "C8E2538D1DECE789A6756A1F9034C0949C3FF13190A141F3DD4" + "F015A89DE643D65E5EC4AB25300739892A81911E3C48D8A5823" + "9203C7E828E8867230E46BB8BEFD018E9ACE92061E2BAA09B0F" + "B8C0CFA7FD5024CC65826AA96BDDA6E21ECB7D0D77FE651CC25" + "EC260C1C41F4D0DFA82963A2EEEF0AC0C6123D9726A02396A06" + "12E8BA6CD4988C132E7CAB1B5097174B6BCA798C7B04E5F7175" + "A3A5BFAA9D23DFCF5E531557BE9BA6F4B5D806287BCDF1CB503" + "4FF94F709544E81D856CD8A1380774C5361710460D52CDFEAE9" + "AF4AF3E9DAF7E6B679A6B881A378A1254DE7105396DB2449737" + "3430C36D24BD49425E7613FAF651747217EFC4E24A761CB4694" + "A2AB3E0B43A8A4CDA5EBC9D7299B27EB600122C7EF54703E48F" + "51DB2A5A8F3EB59A2C174DF966AD728DF0BC2E94418775E0186" + "D3A527F86547980C8998B32F0365D9E430D33A92CF081A15258" + "92FCCF3D8FB4DB1E0A728A856F2E2CC8EC4A08FEFF53DB85C66" + "20CC8B57106097A96B668F97C3BDE8CFDC9600419B46EA24839" + "D27A574BF63147A97B2B48CEE1C6FDA32F3B945E36FC03EAB48" + "5B4B")); + test_hash_extendable(&nettle_shake256, /* 229 octets */ + SHEX("3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEABE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7BB0D19F909"), + 512, + SHEX("76919B60D28A57717EC190FC9990E32020E6436828D90D8A2F4" + "A7AD21F18A4F5F1CA753ADCB0AA010D40334D1E58B8BD165B01" + "51E631925055F4800DC01D466D11E88AE945545365B7F6072B3" + "6E11CB6F15DA6BA3B53E12473BEED09C5AA275CAD795E03838A" + "EBF74A6B1A3371344C1E3104CDE3C768026963DE2ACC8935F51" + "62D1D09C966B5FE2943CC723E8007559C0537126400F1A4C3D9" + "004DF88126A23F9051630DE9FCAC524BF4A109CCCF5CD7F7972" + "B64FCB5A8E5A78A85EE82FE553AB90754CD12EC77E2E3CC09AA" + "1F172963DA44D29FC7F95F0C7C1207BDC858FE8B9785EAB55B6" + "EE33612863FCFD1668A2FB13715F7910968708F22A9A88D97F8" + "4EF4212551D8FCB05992670AAFC9EF5CC34F0843246241C9EE0" + "11470131E0E6B56C9EF6A0E38423943BA502EC9D08C39F70797" + "BD85F6D9207684022CADC282EED833B43CE450445075013F1B3" + "270492AA6E412CCE8E9D9534C0A380B45CAD9328610EF3FACEA" + "7FF5199F1E4D0342163B16961B0F98E46E8615AE2CD74D92E2D" + "F30A3DF00BBBA2AE43A67F51EC52CDB37E00D979ACE6AF3AFA3" + "4A58B8CFC07DDC3C98FBE4A5E18539D03ACFA18152F4CD32CBD" + "84AC30A99C325EBD57EF2870F36C711900CC23539BE7C19DC94" + "F75457BDFF28B9B5DF876B5576CC37FB30B291DBF44904B36C3" + "D96747DCD92A1550CF9323F358D15471FDFD35C2F4C4B104CC9" + "1FBA")); + test_hash_extendable(&nettle_shake256, /* 230 octets */ + SHEX("747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A00757F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD60981150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECEBE6BF8082E8A"), + 512, + SHEX("72A343DF2C1854005653E1EC9C8F9492AF9EF7FACF46DF729AD" + "910FA3A8B830971D22D5E017ECD515C0E972197C87968FD05D5" + "9C570634A3864DFEA159229746A967A2847F0F4E3C48DBDB21E" + "BFA400E18BF289A2B146758EAEE64AA200287F7F55E57817ECE" + "0470C35531D35BE824AD7E825E7A1FCA07CE5325DE6E27D6C6B" + "F1602EC1069117E230ED9A0873D6538881992FDBCE93A4E1201" + "3A56F4D22F5846B4E04BD15E9AE9590C703EE7AE346B860D1B4" + "B181A963C1DCD36AD485AA484CE534138789C2874AB5888B70E" + "278E30534ACDF0D9798A44E1701D9447B5D6FD212344603A269" + "A9D2E0437304F5153FBEB7BB5A1E437B63014ED6F01D4F6135E" + "F189EE290E30C25DC2F63B7D8CF19E9D7959EB2F61703842E0C" + "89EA487441B9C17FA6800A63C411F1D3FF4C35F1E89BB820D60" + "B25CB1AD71E6583390E753934759A5467680405B1C9B6E391D6" + "DDC4510FF24496559FE2604C038A5DF6638FD7F7880E0847B88" + "0C1628F47BEF49689D0C31C4867BAF6FCA08FEA898056DCB171" + "6C95341ACA367BCD9BB372A93D2FCE947B5CAB707E744F15FBB" + "85230FE7F86A9EF7C36069CA79D781D1CC76193D423229E51CE" + "0612A2D61680D35CFD5AA482739442F94D205D72080BEC7A259" + "B23B8D9B4F76F2A75235CC3BBD6738FD870905FA21BFE1315B0" + "C678D7DB5F4DF36F5D43D04C11F3BCE3FB71B3B7AE410AD51CD" + "E033")); + test_hash_extendable(&nettle_shake256, /* 231 octets */ + SHEX("57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E706F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B06CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B54BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422CE839A9D4608F03"), + 512, + SHEX("AD4DD99AA71DBDEABF22FC7C82BB839F910A22E4CEBF8317899" + "D0AF87279EBB321C442DFB9083C4676C16506C4006F18E8BF84" + "EA9024B1DEEE4ABE6F90DBE0EFFCEBF4CB7B94D8A8B107C5BC3" + "198277BEF87C9760AE2BEA86AC50C39A666AB09F276F2FA4C1E" + "B5B8C37ADC3B4C9DE4BDC28074FF4B997518B44FE49B0D4E4F8" + "3CFE9E12EF7389625766A54BEA82DB3FB57276F47C418BDD5F2" + "0C8146C792DCB8E42C7ABF09331F599318265776CBB19C65BAC" + "6DC4A683956C052AE5CEA02F1E4EA690F9E5D3BF3A06A726F0E" + "FB6DAB5350753FFA7ADC477E9AE454C5E18F9D64EDEF0157D1F" + "01FA78BF281468F14D79C39405D2B5B604C0EE116731C52C243" + "2488C45A3E56D3F999855631381B5EF3C99A0352C16B92812A4" + "889C1B8A72C84273A90ABF29C7EAD82F2E7C6DE67E7369DC02F" + "B0F1D62BB8D245030A6D26E930476171547F33B9C9DBCD542F0" + "4C97B0A278D24E2BFEEA0209FA83D634AFE65EC9E7A5550774E" + "DEDFFA36250DC5A400AE5FD6696F20E5FC6AFB15F54C7240A24" + "CF11BF16730B8E676F948304D3EABF315E95B723FFBDE6D931E" + "CF3BE6C69D8CC82F31D1F499BBAD8ADA9654630E7185BF6C1D8" + "82DD700F7F1B1ABBF384F58994D55C9E831ACA847B8F654B070" + "F424267685103BB339A4CD43DF94894E912B64ACB15AAC65FD4" + "96424FDF02BE7A96E161CB6A0034997DDC918F6FB604D6DD55B" + "4D92")); + test_hash_extendable(&nettle_shake256, /* 232 octets */ + SHEX("04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD42B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D08C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E05153592EA81C6FBF"), + 512, + SHEX("7623AEA16ED0AC8AF23A7911BE015D44F93F3329AD1C0023BB9" + "A6E486477D9CF5307B358527BF479FDAA473FE60CDCE59C33C4" + "D1DB930057438CACB4006D2E6C327B3FB033BE384FF07EB40A4" + "4AE4D39EA9794C29C9F3A91F679EF4690C41422B193929654D0" + "0D44D06FCE9B35E5FEEA5C20CC02FD104A74764F3BBFF273086" + "023AF4AFB3A29F9F9836C17C5A883BFA0FC4D8FCC9808FEBD82" + "DF88F7DFC3F715C8B07DB1F2B61403CB6F4F7B18F898FEF9741" + "E016CA0CB3A4B8F54F57DB2F2BB63289AA38A7A9FEBDE32089E" + "4B479D9CF184F7D1C418B648CFE7E6079F7DC1CC35F22E31E62" + "0704736B44FE1E3A677CAFF61FD956883E6F6CB278284A05BF2" + "B4CD9B832DE2058FAB356052C55B03D245BAAD53B8641444101" + "0767ABEA201E26F270649EA35B0479A66ADB9439C57A77E84B7" + "54A7E328E4AED0618742CD49AEF0AF116462F3A5B24343E141F" + "C51F6B9FF376A30989B17BF4CA9DC2ACEBD4F22D8EAB082E62F" + "FF99CFC55CA5E7C4B86613356F1CF05A9A3E8FD79123FB19627" + "A75810D3AF44213DFDA590245FB22B48E8EC5F58EE1D51BEEE4" + "D6BE0BDF7E8D18AEB37995D602E1EA1FC25D0D47D64D8A88B27" + "3FA8CC649C017A63F34C140A1D801F2558C8639FBEAACD1D961" + "893E111450B85ECA907CB3B66027587FE9B39D635D01C4C3695" + "89B9D8907D54A9B73FDE7FFCED9FD443B18892F29FDEFD7B3E7" + "17B5")); + test_hash_extendable(&nettle_shake256, /* 233 octets */ + SHEX("7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D71696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA07F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA5239FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA59392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172604F5035C46B8197D3"), + 512, + SHEX("A2CD7AE2955E2C2CFDCC374AD99E46F29FCE072E2C085E0F022" + "81A4A85A822A2424546410466299CCA501BA5A86C12085320D2" + "D0116196CD31E67E175BFAB909E279846C8FA2CDA475B0C9D60" + "4942D6332F3ED46E81D3DCA880527DEBABE55BCAE22C98EC428" + "22BD1874561E7F8E8CC8092DC461577F2AE548580FAAB59AFDF" + "EBF359847DEE5271C2E972C12D13424A50A9B3DC3DE5FA6F5B1" + "90F3DC060481118A595A8859ECDAC8C57FB16FD4DB9802C7BF3" + "44A68A0A91CA8629DD0A8FBB26FBA0E21C4D953626F66C0B33D" + "30C2569D73BBEF7ED708212B2F66DDB9AEAC459A11C9862CB56" + "74885619D240BABE380BBF23564F6D946D03AA544E348943A48" + "8C0FD223B36DB5B0EFBBE5C4E1253C3FF6C058AA95A80925523" + "749BD228D89BF99F5CC681237FDCC8C872F652DAE6306A20D94" + "22818A8DE2FA68C5A334EFE828A20A48CBC49EB6D7ED779B00D" + "F50751446D0C850FF1F096FC50A03A8C407B8362CE03690D2D5" + "699C70313B4F2D39E18ABE998EE73DE38308DCBACA27B8F6CBB" + "3305B35C98B620A811C94AAE44B5DFA2F8664FB678FB1D73DDD" + "F9FC27CF693DB9D5CF3B46C185B72C33E3BD0F6FFC01108C8A6" + "5772ACFC13DEFAF21596F2C9B9512F369588F6F8767FF61436A" + "C67ECA3DE25D6C5A9746AFB3B3464A49F3A583740C432ED806B" + "FD16EAB27D59A12975D7D09F7ECCD67C2527333FA95509F7209" + "DFCC")); + test_hash_extendable(&nettle_shake256, /* 234 octets */ + SHEX("E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC257026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD0560EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA66B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E507E3B953ACF99964B847"), + 512, + SHEX("A74B8704CCA1F4234742A5C8AD6B138E58D56281C98D95F76BF" + "C0A0AE309D3DC227543F9AEE711C85021B89F259D002188F4E7" + "53DDDC4340DCA27B84445AFA007A1E502A1903A857583796BB1" + "24DDFD64B5C91B69CD9B230F27DFA5D22A09B07FCA1D860DCF3" + "16C22E57DA3589FB0F07ECF671DCB150913CE8606DA9CE39A58" + "57B8382853056A5930F25E3647015B77B2DF4954314F1F8B1C7" + "74DE0BCD1842CAD3BFCAF5DAE8AB9D77290DDD2112AB060F5B0" + "17630C318A1A3DF5C15E6F8AA348EE3F3C171C4E8B98CB4A295" + "6FA240EB289561E7CA30EEAA9CF79683DB7A2B0F28B3B1BF30B" + "D5A62C96ECC8BD74D1F2D131295597C668838A8D3B20CE1A4EE" + "4D1103DE547AC21F6442DF2CA10181319C76AE5827FD60EABA7" + "C788CB369591E429B5DBBCD95049BFEE2A5829FFA0417772DB1" + "BBFAC2EAF112B9712A02C1ECE830E17B22696AA6688E08BC705" + "EA7F7010684D7006BC0A017BBAAB1D6119B1B589B326F1936C8" + "2C470245298F2167D884398ED408814323D369BD1126031DFEB" + "56A160F90359054400DB3B3D267D42FFDA5BB710643721871DD" + "4DE52446004AF00BA55706C93BEAF01F8D77664AF27AAD65C6D" + "61FAE24E65FEB4310AFE6CA5322EE4DD2A55CA5FD7E651AC8D3" + "118C0FDDAE4B2E42862AACCD8CD2134340DDD760BC7918A461B" + "16ECABB601861B58EDEE6E78AC3FF75055997ABA8C0C57878AB" + "A5A7")); + test_hash_extendable(&nettle_shake256, /* 235 octets */ + SHEX("D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C207A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77AC6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF64324DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E46C90E8C4D100ACD9EED21E"), + 512, + SHEX("4E12A03995768C80408869A5C45B174783EA2FB5E4C153A2C01" + "4A3FB8AB968D74C9B835D9C4C5FC304B5E68CF9AA72C2ADFC2D" + "E961CC9A90E1D515A3234BB79DA1D5FA330C03DEFF46D304F0F" + "0378324BE4FEC285758B2DE3788E71EDCD05754366C71B783A2" + "6D105A48BBF51C4F4E769BDD19CA477D80FA55695A04B06A097" + "0B98BE48EF1E861F17B9540E63F54B6156FC2996B2D2CA69326" + "E0CB7A4A5761B39FE089017322BF23B7B5DDBA1490541843BF7" + "03508F5512117370253248F23F30DCCF27061B8F81C1090CC8E" + "D866263FB50AD6F3A027EFBDAAD7760EAFCEC0928BA40173A50" + "C61596B75AA4D72986A8BACBA61DADDA139374D17843735136C" + "8DC0E14C2EBCBC9EB110A682CB77A72E790C68E11848431441F" + "F70CBBC513A9D389D349A63AAD6A948A42DD798F1A576DF57ED" + "0613FFF5F569CE5D24061A386B2A5B4B1FDE6E3359CE4125241" + "628B9A882CCFD34F266BD8B7806392D52DC8CCED80C52ECB632" + "1CF3B3C911D206809FAF8FDA3F918F93FF507089CA4BD647AD4" + "B5498F0FFCC7563FE5DB7BCD613B84EDF4A95A4F8D29E3ABE0C" + "39C8A76B6FB5DB51DB09A21A48D3E2C0786B6A13351715F8DCA" + "25EF288C46631B25D55A7473E5059D6A16661F948D8A7C1B4D7" + "A21B531F915FC5A18305B6FDAADBC1F201C9A09DE221ADA6DE8" + "BAEDFA4614E578156137FBF43896CB61CE38EF386FB68D55311" + "C63C")); + test_hash_extendable(&nettle_shake256, /* 236 octets */ + SHEX("3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E7431518E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3EE1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D34F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1E2DD603D9EA24DC7C5FD06BE"), + 512, + SHEX("8BB1E121FC89EA0F3D79EA823D876EAA74B6CCFAB369E7E4783" + "CBCD3701875F1BE59B0F8B48C2587E7001B6E7ED1821E264906" + "9E84201583B2562E5945AF5CF734E2F0C6090DC8281969CC95C" + "861ECAEECB1CDA78E8FE119B60B05C54484BAC951B7784ED025" + "FB878E29215916C5886B85B24BB2521FEEBEC3B8766BA14FE47" + "EE0E81DAD68B238905377AFDBD55E41364A12181D46D2E272BB" + "F1FBF41A83C29ED88361435396614A23730D84684D3F5A622A2" + "33FF1AD5583FA707DB008E3EED5A9716219EBF3571FB1CE9842" + "D4A37B519767B7392F008193DE676F0CD192CD6D0CF651EE5F8" + "331B0982F150A7DCC264C1465177AB98CC590BCA81E981AD2E9" + "8E47D2D855C0A74895970A96994700A5D55CBBAEA2472C4160D" + "A0EF3AEDE987A99065948ADC558E7CB9A952495F70CEDE70CE0" + "E3DECCB798EB58941F38C4B13C28B2E5CA4FE3A7CF3C973EB33" + "91B705B9E9E7689E264F878396F438C393EB49E70D6A2BB0A6A" + "92F80FDC2C2F70AFBB2A1DF1EC4634BC0CFDC9D1239182DFCFF" + "D30096E11FC4A32BB44CF510A44D35EC3CBFC354E088E0B5393" + "2D0DE4DF83A963D902971392B74D95C475D26184559F6F9F5F9" + "1502A07011B9070F8E9BE5F5D1E599634E3BCED756A49AC7CB2" + "73396F7ACDFFB3BE1E441E8D8ED0588D0931353736DC1D9E889" + "650B503A4FDBF5DF7B5708D4218404306B0E11AA08067B7DBE6" + "3E8C")); + test_hash_extendable(&nettle_shake256, /* 237 octets */ + SHEX("1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846FB84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB969A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA956879A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66A80012976F31FFDF305F0C9C5E"), + 512, + SHEX("1887576149594F7FCD27145B5F535219BBC4313E62E7ABB6393" + "D6015E8E45B48A211300F8303FB9BF370FE0A117D268624BB74" + "1E0BC343487015872E14F84B1EC1E2FAEB828F521ECE9E7E5EF" + "B281DFEF05D86BD8EB0B51CF4C46D94EE0AFC72DA29C3D77EAE" + "E07E24035A68792E8EAB1E0B96282E1D95B1B9D36B09D6A2E0E" + "DD37227B0D29F9E490F1D6156DFCE1554E69A49B7660D288CCB" + "6FAEF9A40F656A90A825A07C5EE0730926CEE14FF2694A3BD10" + "5D889C88A8CA1D271727DD0FCC0DDD1CA2EE955D02CF8CDA7F9" + "E3A00B4362C69AC631523345DABD396354AD862458736D1BEFC" + "4BC35EF4775F02F017BA2EB9FFF9229292432AB5603BA20342E" + "627D380824050FF61C23B5E789DF2E835FD56C65FEBD001EE69" + "60C782B627F90A7087EE24D32A85D0D780A8911945F3719C5CE" + "EB9C7024DCB112C0FCDD72237040C5E964CA57EE504849E3015" + "C200C44CA3A0EEC097BF718F6959C4D3E39455976F98DB5FD84" + "F01EACBC1B2B57B6483C9E3D58EF76E18F8FBFA341E6399A3D9" + "86834E315A2762D239DBB6D1EFBD60BA4EE974523D2EC7A9F0A" + "171484D3F09D59019FCBB6A480ABEBFC06A21DC5AF8FBF1B538" + "8278CF84311E56329A6FC3A9426517C3CC581C8C8EADA1C656E" + "568BF108F66287FB66A405EB307EDA530C18DB2CDEE78D8DE9D" + "CB8E93F195F54086F875935F7736C7C85EAAC106F00D28D6753" + "843C")); + test_hash_extendable(&nettle_shake256, /* 238 octets */ + SHEX("08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD84953AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CFDE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05BB461A40645BF176601F1E760DE5F"), + 512, + SHEX("EA520B7CEA0750C8F1AE4D7E5C80E95140D5A980D68F48807E0" + "408A0D17DD084575191EC17A8D5B3D7A458774C453124509AEE" + "866183DFCA7636D743B6B5798C4D62951D7DB5640D1F4467D87" + "03E08411270F3493241AEF38FB757F00F0EE6A66C732F138294" + "076DE25F0811E8E1BAF602E9F38CF92E96ACF630EBECCD62C28" + "37DC0F361C014698B3CCF586D372BB0591AAFE68D138E1FBF05" + "D205A6124B0AE5F483BBB429EB1BD517C799FBD2B9A154FDB7F" + "687DD320106793D95D2ACECFCB4811C627B3287490116C5F5A3" + "082B0C2BB3B703FB2BD92B65E1CC07C61E1AD67C0F5B45C33C9" + "81E56CEBD6C12D00D9D33C5DAC18A41C1025AD24798DE28518E" + "5FAA6CECA295CD13254367F04CAC72FE0A0FE87214103FBDCD9" + "AF3FDE362D6B7C0997B86CDDAB824210D1896DEB7C75A3EB92B" + "E415F450CD62CAA1FE4D7A9DA2E8B57F2C31999F81CA8A22936" + "684133DDDE9FBEC522C92B928191220E75F8FD20C29A1DA6624" + "55FE7B94A2292006052B354DB4F03375ACB65044C2FDAEB977C" + "A8E81318D2EA95C3981CE76DD9292678BC5F05351D2B4A4A410" + "DEC6790DCFA90AB7D9F8D7FE71B1A1E22BFC3EF06F21C7C99F0" + "1E11060ABD9122DD3FFA6F0C2B402D15C6D4E8F8524A5AE6F12" + "48B6878170F8B4A7D95C85B04587066E340156D80B20E708F54" + "70801F4A5F46A74DEE3332FB0ADF0472CCD592B2462EAE969AC" + "5140")); + test_hash_extendable(&nettle_shake256, /* 239 octets */ + SHEX("D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC055A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DEE820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DEF612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C9173186C226169FF257954EBDA81C0E5F99"), + 512, + SHEX("AA38A2AA24D83C0055C05A4D8E5FD6E538DDECDDBC6876D8169" + "00F4329A5E6D00A25B14CA626F3C9185590A151E438CEC7164B" + "D7135BF60AFB78AA0C4148FEBB606C50A0449360952C1BD6C46" + "54804102521315E457AFDFA185565D96B6B230A4B36E0DBF215" + "B19FB9B0BB3CFD6A8CC2E4ABD6A1A50D978EBB5D351F7A65D39" + "855E9AE57D7343E8FF7EB6FE7974791EDF14861F30A428CFA9F" + "A08E3EC4C4F1C6C5CF29A06D777459AECC379BF17E89A54B753" + "FCBF3846835CEE9FA834CB294AE3699893ADC7DE63D96F1F7CB" + "60739E7D672A9D70078F9903F6617EAD83EC5847424EBDB89B9" + "A07762887F3A4CE8B7A839F0FFDEE21822DDF92A73E85F112D2" + "A6E023C620056E97E3435CCC172E768A195BA50F0238AD3A474" + "FDDAD6ECD5B90262170DD026826F69CC2ACE1D7D9AABA9F14C7" + "3C6F114ED5E5F75679679B7A2ECC81432BCBA993C4E1CAAD6DB" + "7D9908B56E1404EE5080641A4D261D488457A1DA7D5E1F09BFE" + "9DB23E3CD4BE23B8FA84C93011958D57588A06D8DF433428AA1" + "3CEFD6EC348A52E0076564F0DC849058A601137835F90478B41" + "BD58D24ED9B5E4EE5940A0963BB4FD7A2F5817BE1903AB7D960" + "F58EF88A310675AC0452AC6D1EE0CD65E2114865C4ADF78B983" + "EB7E894F28A716ABBC766A1BAB1858641C8CBA3A18BA55584A1" + "FDC2F80A61C36A9A56CD0289257CA0402ED99BC680AADCB2928" + "7119")); + test_hash_extendable(&nettle_shake256, /* 240 octets */ + SHEX("5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A0240B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B63252DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F583305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455FD3C356C914FA06B9A7CE24C7317A172D"), + 512, + SHEX("42DB17A940111F1A93B0D583F6173991252286BC5098E136D27" + "196697AE45B878767E17AA8E826DCDE186CD76F2024E6772A0D" + "EC4C4A8DB71959D75CFEF0F20CBCCD85F15AB5960C0CCDA5F14" + "BA0F02958752A0494D4B50E2CC67C554196BFC061F651440C68" + "12CF5319639F93DF1FE51D1511DF6A3A6AA6538F46EA2D00A3A" + "0F64B25CC9EE8AD05E321649987C36387E2D31DA77EDC1AFA96" + "32D77EE2D4ED54992BD51490A34DD743DCEC567DE957D55505D" + "1D8DD43BE3309F25AE61275203BD9743F3027B9F34B34DB7504" + "C2D7FD1AA99B936E7284F9E252DF2E3359D868C0C83AB140E14" + "C01B4B650D99AC6DC54AB35DD825116EA96C5FE88822B2D7182" + "FBE9B3F3CFBEDEE129EF0814C171A207FC9793E1EB72EDCD605" + "C3E3B1534106093AA550BC8CFF8DE3C5D7152F18C87E161DA0F" + "C90594161F03B0FF9F9EDD41F360DB7347B067D8FE1E901D78A" + "77F1EC44E33ED7AADD463C7D676E50B03A92B5417628CF986D5" + "F93197333BFEB5D7B6A7C7863707B7EC032E3F5C62CA6A02938" + "313140E62479842F4CF68A54A14AE0AB35538025920F3170391" + "69636F35F02A8E05C344E15492EA02164C62392B0795D4889F7" + "AB68AC969B3B096C21CFE179833BA5FB857751C4713FC928B46" + "23DB593C9458AA36BA3B3693E07C3C5C84470F77E5CBDFD9770" + "877A0999DCF8FF1AE27F51B65AAEF9754E8A71739AC00BE0F94" + "58E0")); + test_hash_extendable(&nettle_shake256, /* 241 octets */ + SHEX("6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502DE6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF68F50D79F0C9C7314E750F7D02FAA58BFA"), + 512, + SHEX("82F8C16B8487E008284598FED9C5670C86FE35C8DEA51AC59D3" + "8722829C94094BB2766AA4CDA3139A15DD2AC0309253EC1A15B" + "2969F84899637D3E2A5D55ED1E87561A546A2A7C190008BCF3B" + "EC233EBD1DD55242D7FAC3A522C6016E62670F66EDB6290AFE8" + "01630E2BCCABB450E4D44A9BD8F63D4B04E9F280A2A0972AB22" + "9351906F5F32DE714867E8F04D276488F2AA5E62DB8B6342874" + "04A73723ABB7E152107A6DA60F0C7EFAA953DB706398A09835E" + "5EDD99393DB5A162FE3E564298395FCDAAE8FA7E7A9081B8E14" + "FA0E99E433E0D44326DC2E9E33378EA719EF780D303589F0A63" + "841B5D5D74EC6E2BB073B55287A6419BC6AF759D13F8C8875C3" + "72C12D392D7F80608412EB9A92A786048BF9A6F03D11C48F48B" + "96FBE8BBA329268242A5463C49B112AD71B8EC42A9A7F272F25" + "819509E5C7A10D9C9F1A386E034BE2A89AE28917CF014156211" + "C795D9D6EFB267D8F2BC48B5AA767CF8269A6E349701E77EF69" + "F03FBB56C8E2A0C90905F1FDA649B75D716C67894E932C63B13" + "911C80339A1DF4B7AE2035C7572BBB599E66E7CD9CF447F4F1F" + "1DEB63F64508EBE19485DB3EB98607F3C87DEA60FAA331310FB" + "4BA5730CE4024E07B4B134286472BC7B6C816C3F680618941F9" + "6539B81DF82CD15EDD426206F363A9E487C9FADBBB9DB90DA8F" + "2D73E940C515A7B4FFA07443D35CAA0C89EE9E511D66C2C8FE2" + "F0FF")); + test_hash_extendable(&nettle_shake256, /* 242 octets */ + SHEX("5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA944731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B94B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3EFFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D49BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A7DF95B60FA8712A2271FCAF3911CE7B511B1"), + 512, + SHEX("706CA15167517D46C47844D044D0FC94CAC5D23B90BDB64CE0A" + "2DF052AB37C967E57A476FA23C4D3C160C47371CBADC07A48D6" + "A7C0E0B8CE8B337CAC62E74E10B68C6FBB109B03547CE998780" + "B605429D6E3061334C702B218C1D6686E3E8C7FCC2C4DEC034B" + "9FE68572B45E58DE9661216D6A232D13A0EDDDA45892A4ABAB6" + "66CB528694DE50A50D1368BE99D257BC8C245429FE55000D3C9" + "CC861FE9228E6EBFB7DDC53148B530E2FFE153B8F40007ED321" + "B4464C0BD5DE00C9791073B199AD57F6C242F7CB772FF05A06D" + "010D156AD35DD0ED74C9593855576B1C7A4360770AA88BBF56B" + "65395B163471E4057D27B59B554EECCD9AB8F24F457E400150C" + "5F83B55D703620D68ECD7A01A9B3FEC468B75C0F8BBBB083883" + "18D50D38BECDCD30F8644A2EBD11FD8E1D103AF5F9B64D92BEC" + "64FDDEFFC73D9932871CCD1DC62515F0EFA438393109C638F5C" + "11405FD923D784B217F3417BEC855A7CA290253CDD902802EBF" + "400015CC2AF646AEF63684ABB39BB98AA598AB767AC4DF96CDF" + "631D0500BC61DC822F2C54D761F0C926E023310AC11F3748E8A" + "75564FBDB7039CDD3A42B601339BE64BBDA4B3F70899700FBDA" + "55D1337F5E33F5B00DF97E6CA218D212EB771ECFE27B265A8EE" + "8AC9D9F34BAF279C49B318EBFBA497CE77233CAC4A9146EF5DF" + "7B93672A553A3EC46DAFE8B7F93F233161FB91F5BCA89DB4D5F" + "2C42")); + test_hash_extendable(&nettle_shake256, /* 243 octets */ + SHEX("03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFAC0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F50B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC54861F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB237520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252A53C49B7B02DFE54FDB2E90074B6CF310AC661"), + 512, + SHEX("A90A149C4B7BA649888F90721E9FF91CC3589E2094B07909959" + "C9A15FF010C610824F7A49AD3CA2864089E93AD7075C1966033" + "AB55E9263871DDD56943D568FE0867221034994B74A3F855544" + "E77E313A29EFBA367F309243DB8A3027EB4DA5371439CF39C21" + "EB57823E1E6C73C0707356B68828AAC6C8FD05F222F4C58B33C" + "EA1AA6344DC33FA88D9A5BECC263B7CBF00045378910814C77C" + "2224E56D913D2CBDC48EA6700DE0E0306B499A3888F53527406" + "9E7ED493C12D46D23B7344CDC11B3433E39ED9CFAEA6787704F" + "FD63BEE0072BA60F526FB52DADDB41EC7E8216AC2A79BBE27E3" + "15A2E2824E1DD0BC2943F92393550AA6DC75F1C9755E5D8F811" + "CEDBC2139805D5599C1E1F6D4F56AAD38E91FFB529A4820F260" + "D752A93D7BE57BC2F75234FA615AC72AFEC7619E0F26071D8A3" + "C90F1FB486497D5AF0EE45FD9D0B4AA0E07201B9E5F277E73D4" + "8EDFBF75DF8C3F1A635A733591615C392CE37738851D2AE847C" + "6EB9AB5D91DCDA7E953041CC6CF02F0E6604E8AE5756DE52864" + "5FEAA0E8F1C5F6F0C53ABB72F84D0397A39A7FA3C7E8BC72B23" + "7E0D8B81C91ED18E09273CA20B763D34B779BB79D95C3749AAA" + "703DE53FD7FCFB361E2D3E13068FA076021C1373CE99DDA0DDF" + "931D2BEDD095A3F95E41A0B09C56D01253F29558348D6F84190" + "8984E3096A7A0DA6DE77A5DB124AA442EDC394126C2F67B1B4A" + "0DEE")); + test_hash_extendable(&nettle_shake256, /* 244 octets */ + SHEX("2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E705CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0ACF106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C07A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608B7F5CB9923AD97058EC067700CC746C127A61EE3"), + 512, + SHEX("FCD5FEF0DE750C6BE7615BCB850676E9E83299C522BDC14FBAC" + "162F927B0AA4EA6DD76E43B1500C72BE0D569566B57054B9340" + "216904D518ECDB25EF39A62891290A1034F262A5E2C0FB37333" + "BBD24323730CFD40FC161EDC37EEB7C69769D3AB1F1454560CA" + "78FB96CF133689EF8E75F57C2442E2CBAE4F5C648666BFC7FA5" + "DA87E7C0DD4816292DFD56B2BCB383B3FF971185B724430F959" + "6F3509C767E159873614B1D4EC45FA8586EC2321B791560785E" + "5E3CE13AD5E8E1550A3290175ACF2D78CDD17C0EA205ED7C139" + "6BF9DC0844168BA3A66B4CB01C22629C80577DE68D72EDB44B4" + "19B13A2DB6D67877D9CC0A0201C14DAD69F25C88C3418AC45EA" + "0D7ADA58A02BB7DD0C276DFAB29164E1844BAD901ACB6374AB7" + "5E21BFE2F3591B2C8F111A4606C8C52D85B4C073FDBBF25FC81" + "758214CA172FBFE1C6B14476532F35F981C312739CE435F7AD3" + "D0785DCD648E2A5391B64525A8785F3E06446C6BC1E09BFA19C" + "7CE52651BFE1A2E355CD7C1C9CED6540D33194A2212B2A8768E" + "7347042B560F68B4E22E42ED8F51C38375F9FA45C133A90D4F6" + "F17CD5BF19DC9E1035DF78F7E0077411BFD0FDA23E6759388AF" + "C45485BF271C8FDB316A32B898C3D6DCC0738B3AA043ACD1848" + "FB7C6FE86A844FC764953D392569520E78FA11BCD6B0AF3BE8E" + "7BCB0006F56881889CDDE27870FE7C9E703F57B6CBE0D6372F2" + "322B")); + test_hash_extendable(&nettle_shake256, /* 245 octets */ + SHEX("90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2CAB025103B2D02C6FD71DA3A77F417D7932685888A"), + 512, + SHEX("D4C1F39098D123B0DD88504FF6AB424E31F5D3726EFBF86500C" + "E730BAE87EC671C97F768F9593C8411B57E306B0CB394F33B86" + "6493BBFC3F089FA4E875858FBCE814DEBB905FA7249F7DBE737" + "F5F6725CF76D2A50B319D96BFCD55E03A6E923B01003E6D5976" + "A66AA5250C337C9C4C402B9733C8F626789FB23FF1043494A73" + "960297CA9110D23DEF1D72B601F6C42CF83938003B3A386CDDE" + "D4A70B24975C958597894FD6E2C412CDC6E32EA7F398242F84D" + "4F4BD469DEE9AD10B717EBAA26F2481224F47135219231279C3" + "6867751A476AF60AC4AF8F151F301CACF5D7890D62A135B4414" + "9CC7405208212B7547EC0617ABF96A7741EB2E08D18AAA17357" + "B4F2DDAB92257E893CFCB91BDD73DFF3F8E6C28FDF38DC89094" + "C719E69508AF7ABEE4D1403E0F139348632A45708AAB27D4403" + "F5D5B85A81AC72EDE9E2448F1FB87571CCA3631BDA9F9D0DC06" + "0000B03450FBC7D98AF74F0B0A8A1BBDEED01C4C8300B05E05C" + "F7AF7824B246666EB53119FCFAAD3C7AAEEFE0274A55ABC01AB" + "F0A38189E46CD3CE56F0A4DB8E9B498EEC68E03DB7FDC917723" + "0DFC72F45A41A7064F42F3C527A5E5473B2F68D1C8BA960BD3B" + "458BE2BEF2C3623B38A66266EACEA3CC93C09F4CF566327E78E" + "C39CE5541E48142FEF380AF5161ED9C63724FA16384F574B1D1" + "CBC3F1C852028CB9A8D1F411D6AC119E11E6202E566B49341D4" + "0D19")); + test_hash_extendable(&nettle_shake256, /* 246 octets */ + SHEX("2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C26B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A56F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE91AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006"), + 512, + SHEX("D6FC1E61D2BC27CA5DD5ACD290C2831070E66C38F03D2DC9118" + "4AA9EAEAF03A28E009A1AE1C775F4274B3AE6B5491C9B0C838C" + "F90D185FE94C49EF46ABABA62D6ED1F550D83466EFC6B97789C" + "A36AD1A6A3E6703A5DA9764E47F29C8096E3D317FC7AFF0B79B" + "1C278610AFE3F5E7FA7FD52FD36CC9E7000DA809346281EEBA1" + "EE9BB06AAD61F3E02CF4A5BB7B211E2437ED21437FAE78378F2" + "8B14184B7DE7E80E845837A483C0C6DF8E233687F71F0F9745D" + "585411F103356A0C474F9238403E40960F63A3418199325EA6E" + "8EADA31C94F78CFF1B83A2EFA4E49045E0CE34A5C6102539932" + "8CD7F79A1E4CC792D8AE9F1AA954235B515158BE5F4064B889C" + "14A3A83AB59CF26945DBBF70F3A5F3BDBE8674546D6DF384C40" + "D56B286D309A114871BC18E144D2334C88C32F141F6DFA70859" + "A9FF7D4996BD3FABA0299794E861DB8BE8A324822C4B1DFBFA7" + "0F8D9149C3DC01E0E556DC744C98FC2F92C8600C856BD174759" + "AF467D6618C4347366CE04D06A0EE4FEB9A27B79BED01BEB7DE" + "E41859C1306939D55B0E319DD2E0E001F6174361CB804CD3AC3" + "332B8D8A1D8204D5255F81FAA0BDC29AE71693586C987E35C81" + "E314A3848B03CF7B37EAEE2AD6ED4736E1F20A098DDAEC612AE" + "E17294313DA16453D7901CF80FC729962206AD4820B00E8EF0D" + "999857832256E5B784E8A89DFDDD38F6E15DE081A82E19A2A05" + "D417")); + test_hash_extendable(&nettle_shake256, /* 247 octets */ + SHEX("721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46AEA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FEFF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C2285D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256FC763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF09E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB"), + 512, + SHEX("F61115AE2FD5442877D08E39A57DF8D4A5F117D57C2688617A8" + "DA64F9482F5A817E0D3DFE41A9CFF331F4D5E3240DA38E43B7B" + "87925FE378512CD83172FC3CC2396A8ACDBF5010CA576603581" + "BF7DF6D7529423709B30DB81620B9F660B5AA82EA6C98656DA2" + "7B4709DA85D364EC015C2EAAF2AADEDA2C040BADFAB16F7C2AE" + "39DA6A1691057301B7C3252884CD9EE079E68857D6D3B7F4F85" + "556140DB03421F09E98B80A8422500A349B5C0D8FFB25433A41" + "21B7682F8517500930E5F2766C687846553C9F76DE38A0EE41F" + "76D3A22696B95774BD5EB747F6445D8044147EE38B127892F4B" + "0B1932470B454F8F1BB697A2F6659AB13F3E2003C97D292A787" + "8E12CE47AA9619FCFE2135D8890710B2733DF40FC75DAD57B99" + "042E4F54AEA9332ED52CAB8FFDE5195EDA05368B09E9FD55731" + "DA20012A7D255AAA33D74E22917E58BD546EE90947A16044B14" + "DFFFAB05916C382D1F038B63D2F20DC09C117C8724A4DB3970B" + "7CB143B1522D010881FE6663410DB3400DB33B62A6E70DFD48C" + "2FE773054E1494944B60FC5D3BC803027C4B12E6A230FE41CA4" + "D072F3628D20782CD7DE4E98A29DF083FEF503E46EEFA787F8B" + "0E9B1E7C884B9122977532BD71FB63120C1069156516D265FE3" + "559B18965E968B9BBD653484866847E76262D0CCBEE8FB0314A" + "8C40B8C35725337CA4A241592E47D5B8981D3212C62AE7E25F2" + "7495")); + test_hash_extendable(&nettle_shake256, /* 248 octets */ + SHEX("6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BAC2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E4130890E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A616BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F1606BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399"), + 512, + SHEX("3BBF30FAF9241C9E3E27EC2C17AB24AA3673799371528CB98A6" + "D9B91E553553680505D7CD6590377AB54E5DC7D7C72035300AF" + "651AB0EA52ABA9FE1D490EE5C95B146138F61F957C5CEC8D463" + "3175C99A00590DDB987D2E032547D99C691B32C12D7392742A5" + "AE47D03B5A08A544548BBEC45B9580DE1CECB7B9F06A88614DA" + "A116D7200DC8E81EF3C7C5A716044133D2A66FFBFA35E1668FE" + "D9C1045DA77DF92564F60087D173F71B75F040BC6CC14923465" + "9C1213BEEF18C53CDEFEF2FF466A2F16823D7659E04AD61F6B2" + "3DDCA8BF35AF892BFB8A952DF4ED254FFAC52CF71F4C872EF15" + "EF11FAE9967FC8F1C218E7CABA5382936F4CBBDF7F41AA2A239" + "BCF36FE158B7D771BECF8981DDAAAC31F744D949396623CB3BB" + "754189FB5E78DD94171C1BD6AD3953DDA6D4DACD3B57D37B1B7" + "3FAB0D2CAA0B5B3F6A2C9F324F4B93C912991E50F8872BC2764" + "51969FF379AAEFC3C710DE16128136AE0D1268D106BBCE2AA4D" + "2DB0C5EDB171DFF104DF4F7D49FE017C82083DD1E9F7DEE489B" + "B38CE091C222C3A0898F17A0DA1D4B2830C7B7C3C372FDF2A4E" + "9CD7B468107513D6E3ADCC91F662218A7364A7340966A4D692C" + "F394443203DCE8B33503AEE6C1259BBCF36351AF93EF01764BE" + "4863759ED0ABCA9E59CA6004F2E5738AF7EFC7BE8F9A1E10655" + "1B77AEFBFF9DBE99ED5ABB12207CF38F7FB9BA77D776FA0DF3B" + "FAAC")); + test_hash_extendable(&nettle_shake256, /* 249 octets */ + SHEX("6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CEE4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F0312FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B"), + 512, + SHEX("32FFBC063291BD2C957DCDC76632DD1BCE0DBFCAC549228D277" + "D81B6ABBA904D43330EF8081E164D8FCAF520E12B388C401682" + "95A63D365B57A7694D4C50812B99C86E036116A07F0164B7088" + "537688D4BAF1E0FCDC84C6DA8D92789466A606F1EE25CE7461F" + "A65DF04BDEBC24A3A4BAC3B02B469C8E85F53D9481DBE244DC6" + "7B8BCE84CC7175113D4D7B2413601E9140B7802D9FB712938E9" + "C5034CEEA753B7C77C08BC1C03D511ED0B4D5007BBAC38EE76B" + "675B73AEF8623CA9CCD579E28BAE7D695BE25FBDB673F3401A7" + "5D5A57D142034A7BEE554ED30CC7F03CBB363C10A54F818937A" + "E468F5845ADA4F9A2A1BF6887105879DA745AAE64D87F26F489" + "A622370405ADA3D3688697DB8F04557736C51725ACA02E4B76F" + "6A9E88DC6D52D5A63806BBA1BD687FAAC522D7B5B0A8D607328" + "3659056E784320822EAF70666180ADFDBA2675B4EAD6F6B2EF8" + "26E7598BBD8C1956A15C1864D249368900D82498297C3E77A19" + "EBE20A111D13FC03CA88D9332F919EA4AD15BE8E397ABA0A4E2" + "BA85F3FA5999EB553780F0D2F35D76A63B0106406FC3B455047" + "6572E1464C986870027849ADA0F164B48B839ECD3CA9AFEADEE" + "3F63AA6CA06C635990922995DB0BB99A4AC4B7F3AAC52069F31" + "30660AE0F074FBAA1D103A086B59AEE4DA3188CCA3227670FD4" + "3597ABFC1A2F6CFA67FA24EF0B20B4AADE9CE8E68CAB34111D1" + "0464")); + test_hash_extendable(&nettle_shake256, /* 250 octets */ + SHEX("B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDADE59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE840CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B987468E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B"), + 512, + SHEX("BA2B1CEC1BBB46EA19AF7A869FDC73CB3791708DEFDF530DC99" + "99E9510FCB02AEF571B3C5E7258D86DC80EDB53B71644110B9E" + "82C239FF17EF523840E6AF4D597D814D4E5EC2EA98E451C0531" + "8402D5BFF6E6E573565AB640E00BF6F8C3646B3F6656047C60E" + "D43393AF7F2D8DF8915A0F6F44D69FE193DD5617FE39BDA638E" + "4DDDA771B0E771318A53ADECBDBFF07D6CFEAA04A837034C6EA" + "0E70C8FC244304804E0E890F31F951007A2F897BF3F00221B63" + "EA3DD8D9D1DD3608596EF7817190D56D36EB99266F83B7F1A20" + "80F7A5405CDE86017948BF977C6CC78565B3EEC570B36FC0656" + "6909951F31CAD6094F296F759E858BF7AA9298B2F4F7F5C3167" + "C145EC126C40F6E5DCCD87C82489400FF8B9B79B19E47259661" + "8EED3FBC6FE5545BB3276ED710CA128A3C2FA9B831FA6FA3B12" + "6380C4BAED23D9186FAC830891F98C81D401A6513E139F6546F" + "065E8AF6E1A9595218A025D8292176F8ACC4ACAEE6308C08DB5" + "215FC0064D7279FF6165033E0946FB7C10BF5DEC2D26950B2AB" + "DF71AE2B5BAB856386A25117214D5830B7D5E250FDF200CC5EE" + "A0085648FA2AAB6EEC363DA41AFD82E14EDA957EA3AB7C65100" + "F4A8071ACA6F1891B5465B7C46CAA9612CCB0875369CEC4BCF9" + "D99BE35E03AE57C83FC80903AFE25ECF23D016CF6989EDA5B90" + "0EFCF59C529FD299CF155A1310B239CD364301F520D16C74E27" + "0D0D")); + test_hash_extendable(&nettle_shake256, /* 251 octets */ + SHEX("83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BBC55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207EBF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A065C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE58C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1"), + 512, + SHEX("481CF76E2ED1A1EB74050E9632A3BCE4913D2D516E251816A2D" + "55706314D6483B955B87B0A6EE013F248E2AB4517B800E23C8A" + "D85926C36EABAB1F2C36625D0492C7F001760E3715EBA80AA91" + "2F5E3E1A7918D1EDE2FA7FDCBBAE23FF75ADB2BD88527BCE6F0" + "2FEF73175487781F26C7C7DBFD04143B70D636217ABF7EF6936" + "4B8B7C493C64434DD1CCB523E5CBCC81211A64FEFA9F41FFDB3" + "8D9D8D5E0A9E51BE38DCCE5225652CAB5A0EF8D8EE7DD175B92" + "9ABA19480299176D7122CE1A763345A091AEB8C5DF8AB37CD4D" + "96C3230E8EA847C1D28986D3398DEA80F2C48C3B4406524BCD4" + "850DC02621B470AC7DF27372D95822795E8A2D81AACCD72F535" + "110FA01FDF0CABD7D848960603B80758406FFA78FB6C68DB4FD" + "F40C146318C2D296CD1A5BD7C1E11EA967B72792A3A7FBAC908" + "9588D3FB555F122F7AFB499AA3B3C43E07BD3D8F9FE980213C1" + "74D37DB9FBC8ECD318CC207689766A327614ED6B01BB0A5A2CF" + "04F5B54EDD97BE72E5F894328EE86A1C9D2FFB65C9FD0FEA4BA" + "865D0EA4F16DEF67CE1D6D42095C1C8488376A4326396FE3448" + "484754153B2D4A94C442BDE7CF67E8B9994E958D3CC17D5B0FD" + "7A4F203024EC29CEBF40B549F2936CC6C196AB83EC8C4585D28" + "E31D3ECF5BB59AB24B2CC6908E51A9BCD5BBCFA92C02E61B08C" + "A7E3AAAED73C450909C8B9BDB422CCAB0A86C5A5C3C10A634B1" + "7332")); + test_hash_extendable(&nettle_shake256, /* 252 octets */ + SHEX("A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9EA746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252EE12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB"), + 512, + SHEX("47929C7D0C4DB7F9EBAEF5EA93BBC7B255C8E249EDF893257C7" + "AEB996CC8EEAB1A6CA4520F4D4257144CD5A9A850A372BD00DC" + "CA339C4781479E976B7508688DC63783CA9EC7A9FB8196721C8" + "C24AFF5BF9385453E9B85A1F7FC75A029E09D45910DC24F1304" + "D1E51EC702E79DC731B6120596BF3DF30DC0F756834AC0BB94F" + "99243EAC8910015D10DC618252A77D8B900C4141CFF2461C408" + "C19B978D1B58E690815C0C07B901137A45F045ABBD85428ACF5" + "1410135EB27128EC6725062665D1E6A6B8EBAD3B81D36770B0C" + "D14303B9264D25DFEE14B27798E22B46A77ADF456FDAFEB6D59" + "7F7E3152AAD40E29AB7E7808A4E46F43E18856518CE6D716062" + "029024AFE0EF0A7F3783F755977F8B10EEC658AABC20B2EE0E8" + "D3ADE73E2A7E78E4CEC3C09ADA3089247C678238580891ADA46" + "0D60DA297A4EB7DDBA67D117E21E7461BCE7CFC7573352696B4" + "643D6D9C9EC97EB431F6159AC438479BC6547BA04552748171F" + "4AEAAA2EF0DD7ECCB4ABDB2E07AB536F0183516B1DCBF0E12FD" + "134F9AD85B854AFDCCE14C1C52D0BF1EE1E52A12FDD63632D9D" + "F1B78E7899B03527DA8597124AE3C8797E6832138508AB89069" + "BF692A9E5D102CA20807A4BD5033D7BF7C918998D3D52B240B8" + "449D12B402EE7F50B211F597F1BD39B69A4DFF9A0E6DBE347AC" + "1137B3631DD15F97217A5BFE2C6579BC3C44F8789DED23EFEC5" + "1A64")); + test_hash_extendable(&nettle_shake256, /* 253 octets */ + SHEX("A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264AA36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC30D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF31B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECAD9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6"), + 512, + SHEX("401A2897FCA682A6949D88F939ECF943140ECA42F90D86D2DC3" + "01EFEA2DBD4C03998D686DCEC124334F0C5BA7674F25CDBF36F" + "B9480E8DB2111BA4E78221D1855893A526F97535936AAC3D88D" + "8908786BF5A9334EEE1A4D9B346A95573993DB7C9C7A75CE692" + "DF5118963083B778865396501845E12E4DDDE82035B03A6C436" + "97CDB2B1C5C4EB24D0D484ACB105549290B9FCD5C8B4EE31D4E" + "B542A2C9637D8E34687B18AB2DCF92A826877F9F1766ECBC43E" + "3879E481C4B6AD994586F110818A20B6F93C8CED8C1FBC0B545" + "72714EF722E83046A93CE23D118E494969D5BD1A9E9C744C5A5" + "6D193D2BC7054A4A0BB22987AA2CA672E69C2B733C860F292C4" + "F218557B7B921C4367B611E1D7FE30CF454EEBF09990C5ACD7B" + "43A174A92E0B8D8180DFD409261274FF09F55013A7F58242D29" + "330426BD4D8EF8365E4DE86469C436FC0FDC3B858EEE3E29C2E" + "D6F650266A7B34D2A0E5ED438E60891DF92FE6B950D95BB99F9" + "0344FC5EF5B210692059E9F859A476A3AFF4BB478F5DDA80629" + "E236AFD3742E35F46046BDF1522590562C8337C39FD38B8F57C" + "EDD49198F8242D951330FC4D0BDF5413345BB7315EEB67E4B1D" + "561D185FADF23C0979B036D885391643D7514B3FABCD16382CC" + "C49E6B7C0707B90AC0F86176DCF9D7F1DCD270374D2AB8E1E9F" + "AFB7DEC0F952FBD4456C9E7FCDA80CF0A46CE98AF6E9B588A37" + "0741")); + test_hash_extendable(&nettle_shake256, /* 254 octets */ + SHEX("83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B69335989E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E566110B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E1148C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A352E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE6468004AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E"), + 512, + SHEX("8E756B09EE1679DFB957AEBC5B55CCCA4414AEAD58229106040" + "A1A58F4768D241A0869A3A7D682DD937FB13352F635EC3D5783" + "8469BA6AB93A9DC86EF3598F53E044FEA98301971A2182A1725" + "C32BF5529FCE04665C9F2C1275D484543E038E964D855E1D919" + "83EA34F7D66E19E27B6F59B23E9690C291432793167A5E8A9B4" + "4AEB9ECBAA500E2616AC32AF6B6ACFB6C2B4A485BE4FE5072BD" + "1F0E08AE343BF0C5CB241111F894BFD4BE6A26DBC7ED352D717" + "44BD9A4D51F149AC4EA5AD323B063D93E56AE12B81D88EB0830" + "24D3D164C0FD7B4BCE8A800F69CB7C66594D7AB20818DC79F01" + "853FEE81B345210CDF2964C3A25A0934ECE6B13029B5FDC3B78" + "0CD85A46E54495328F0BAA63078B3948172443B57D8571A82C7" + "17A4D93A6FD9ADA3A1EFC41F3697600D02FCB555EEF1D5162B3" + "46D892EABC60251B048979F49E3855FD5A49520A60D099ED2F5" + "A5C8764875A4EA242407856B5DC393BA1E71FD04C53181572AD" + "90E0184934D7B65E0EA56A8521A284E6A5B98BC704AD92E658A" + "8B4C64CF67157AC0673159B9E2A9EA9D94C6FB3E5BD963DFCAA" + "D484CF06BE75E3F23A11287B82BC6618B6EDA760D29D1D8400C" + "41EC3B42A24EC1E070BCE0EEC7DC6C6F19E2A6BA7FAAB72DD81" + "F31814A18CE984C7AAE6D9CAAA800318418F56871C8CFD8778F" + "AA7DAD3426849E10B041D6190EB445410F5F5E476068579FEDC" + "5869")); + test_hash_extendable(&nettle_shake256, /* 255 octets */ + SHEX("3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E085172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1"), + 512, + SHEX("8A5199B4A7E133E264A86202720655894D48CFF344A928CF834" + "7F48379CEF347DFC5BCFFAB99B27B1F89AA2735E23D30088FFA" + "03B9EDB02B9635470AB9F1038985D55F9CA774572DD006470EA" + "65145469609F9FA0831BF1FFD842DC24ACADE27BD9816E3B5BF" + "2876CB112232A0EB4475F1DFF9F5C713D9FFD4CCB89AE5607FE" + "35731DF06317949EEF646E9591CF3BE53ADD6B7DD2B6096E2B3" + "FB06E662EC8B2D77422DAAD9463CD155204ACDBD38E319613F3" + "9F99B6DFB35CA9365160066DB19835888C2241FF9A731A4ACBB" + "5663727AAC34A401247FBAA7499E7D5EE5B69D31025E63D04C3" + "5C798BCA1262D5673A9CF0930B5AD89BD485599DC184528DA47" + "90F088EBD170B635D9581632D2FF90DB79665CED430089AF13C" + "9F21F6D443A818064F17AEC9E9C5457001FA8DC6AFBADBE3138" + "F388D89D0E6F22F66671255B210754ED63D81DCE75CE8F189B5" + "34E6D6B3539AA51E837C42DF9DF59C71E6171CD4902FE1BDC73" + "FB1775B5C754A1ED4EA7F3105FC543EE0418DAD256F3F6118EA" + "77114A16C15355B42877A1DB2A7DF0E155AE1D8670ABCEC3450" + "F4E2EEC9838F895423EF63D261138BAAF5D9F104CB5A957AEA0" + "6C0B9B8C78B0D441796DC0350DDEABB78A33B6F1F9E68EDE3D1" + "805C7B7E2CFD54E0FAD62F0D8CA67A775DC4546AF9096F2EDB2" + "21DB42843D65327861282DC946A0BA01A11863AB2D1DFD16E39" + "73D4")); +} diff --git a/testsuite/testutils.c b/testsuite/testutils.c index a22745c3..f42d9fa8 100644 --- a/testsuite/testutils.c +++ b/testsuite/testutils.c @@ -470,38 +470,39 @@ test_aead(const struct nettle_aead *aead, }
void -test_hash(const struct nettle_hash *hash, - const struct tstring *msg, - const struct tstring *digest) +test_hash_extendable(const struct nettle_hash *hash, + const struct tstring *msg, + size_t digest_size, + const struct tstring *digest) { void *ctx = xalloc(hash->context_size); - uint8_t *buffer = xalloc(hash->digest_size); + uint8_t *buffer = xalloc(digest_size); uint8_t *input; unsigned offset;
- ASSERT (digest->length == hash->digest_size); + ASSERT (digest->length == digest_size);
hash->init(ctx); hash->update(ctx, msg->length, msg->data); - hash->digest(ctx, hash->digest_size, buffer); + hash->digest(ctx, digest_size, buffer);
- if (MEMEQ(hash->digest_size, digest->data, buffer) == 0) + if (MEMEQ(digest_size, digest->data, buffer) == 0) { fprintf(stdout, "\nGot:\n"); - print_hex(hash->digest_size, buffer); + print_hex(digest_size, buffer); fprintf(stdout, "\nExpected:\n"); - print_hex(hash->digest_size, digest->data); + print_hex(digest_size, digest->data); abort(); }
- memset(buffer, 0, hash->digest_size); + memset(buffer, 0, digest_size);
hash->update(ctx, msg->length, msg->data); - hash->digest(ctx, hash->digest_size - 1, buffer); + hash->digest(ctx, digest_size - 1, buffer);
- ASSERT(MEMEQ(hash->digest_size - 1, digest->data, buffer)); + ASSERT(MEMEQ(digest_size - 1, digest->data, buffer));
- ASSERT(buffer[hash->digest_size - 1] == 0); + ASSERT(buffer[digest_size - 1] == 0);
input = xalloc (msg->length + 16); for (offset = 0; offset < 16; offset++) @@ -509,13 +510,13 @@ test_hash(const struct nettle_hash *hash, memset (input, 0, msg->length + 16); memcpy (input + offset, msg->data, msg->length); hash->update (ctx, msg->length, input + offset); - hash->digest (ctx, hash->digest_size, buffer); - if (MEMEQ(hash->digest_size, digest->data, buffer) == 0) + hash->digest (ctx, digest_size, buffer); + if (MEMEQ(digest_size, digest->data, buffer) == 0) { fprintf(stdout, "hash input address: %p\nGot:\n", input + offset); - print_hex(hash->digest_size, buffer); + print_hex(digest_size, buffer); fprintf(stdout, "\nExpected:\n"); - print_hex(hash->digest_size, digest->data); + print_hex(digest_size, digest->data); abort(); } } @@ -525,6 +526,14 @@ test_hash(const struct nettle_hash *hash, }
void +test_hash(const struct nettle_hash *hash, + const struct tstring *msg, + const struct tstring *digest) +{ + test_hash_extendable (hash, msg, hash->digest_size, digest); +} + +void test_hash_large(const struct nettle_hash *hash, size_t count, size_t length, uint8_t c,
Daiki Ueno ueno@gnu.org writes:
Makefile.in | 4 +- nettle-internal.h | 2 +- nettle-meta-hashes.c | 2 + nettle-meta.h | 2 + nettle.texinfo | 68 + sha3.c | 13 + sha3.h | 56 + shake128-meta.c | 42 + shake128.c | 84 + shake256-meta.c | 42 + shake256.c | 84 + testsuite/.test-rules.make | 6 + testsuite/Makefile.in | 1 + testsuite/meta-hash-test.c | 2 + testsuite/shake.awk | 14 + testsuite/shake128-test.c | 6183 ++++++++++++++++++++++++++++++++++++++++++++ testsuite/shake256-test.c | 6183 ++++++++++++++++++++++++++++++++++++++++++++ testsuite/testutils.c | 43 +- 18 files changed, 12812 insertions(+), 19 deletions(-) create mode 100644 shake128-meta.c create mode 100644 shake128.c create mode 100644 shake256-meta.c create mode 100644 shake256.c create mode 100755 testsuite/shake.awk create mode 100644 testsuite/shake128-test.c create mode 100644 testsuite/shake256-test.c
This is a contribution that is mostly independent of the rest of the curve448 patches.
diff --git a/nettle-meta-hashes.c b/nettle-meta-hashes.c index 2220968c..1cd7f677 100644 --- a/nettle-meta-hashes.c +++ b/nettle-meta-hashes.c @@ -50,5 +50,7 @@ const struct nettle_hash * const nettle_hashes[] = { &nettle_sha3_256, &nettle_sha3_384, &nettle_sha3_512,
- &nettle_shake128,
- &nettle_shake256, NULL
};
Does it make sense to group shake (wich is a "xof") to the hash functions? I think we could skip the -meta things for now, and design an interface for xof-like functions later.
+@subsubsection @acronym{SHAKE128}
+In addition to those SHA-3 hash functions, Nettle also provides two +SHA-3 extendable-output functions (XOFs). Unlike SHA-3 hash functions, +the output of SHA-3 XOFs can be extended to any desired length.
Maybe some reference to the section on key derivation functions would be helpful, since they serve a similar purpose.
+Nettle defines SHAKE128 in @file{<nettle/sha3.h>}.
+@deftp {Context struct} {struct shake128_ctx} +@end deftp
+@defvr Constant SHAKE128_DIGEST_SIZE +The size of a SHAKE128 digest, i.e. 64. +@end defvr
Does it make sense at all to define a digest size?
+@deftypefun void shake128_digest (struct shake128_ctx *@var{ctx}, size_t @var{length}, uint8_t *@var{digest}) +Performs final processing and extracts the message digest, writing it +to @var{digest}. @var{length} may be smaller than +@code{SHAKE128_DIGEST_SIZE}, in which case only the first @var{length} +octets of the digest are written.
Isn't the point to allow arbitrary "digest size", which is perhaps better called "output size"?
In case it makes sense to use a very long digest size, e.g., using shake as a stream cipher, should we provide some method to get the output incrementally, one or more blocks at a time?
+void +_sha3_shake_pad (struct sha3_state *state,
unsigned block_size, uint8_t *block, unsigned pos)
+{
- assert (pos < block_size);
- block[pos++] = 0x1F;
- memset (block + pos, 0, block_size - pos);
- block[block_size - 1] |= 0x80;
- sha3_absorb (state, block_size, block);
+}
Difference to _sha3_pad is the magic constant 0x1f, instead of 6? Maybe add the padding value as an argument to _sha3_pad, rather than introducing a new function? The function is not part of the supported api, and from a search at https://codesearch.debian.net/search?q=_sha3_pad, it's seems it's also not used outside of nettle.
+#define SHAKE128_DIGEST_SIZE 0 /* not used */
I think it's better to not define _DIGEST_SIZE at all.
+#define SHAKE128_BLOCK_SIZE 168
How is the block size motivated? It gives roughly same security as what sha3-128 would give, i.e., "64 bit security" against collisions, and "128 bit security" against second preimage? It seems to affect both processing of input and output.
+struct shake256_ctx +{
- struct sha3_state state;
- unsigned index;
- uint8_t block[SHAKE256_BLOCK_SIZE];
+};
This is identical to sha3_256_ctx, right? Would it make sense to use the same context, but with a separate function to be used instead of sha3_256_digest? Both _init and _update are also identical, if I'm not missing something. Could be called sha3_256_shake or sha3_256_xof or something like that? Maybe one function to produce all output and reset the context, and a separate function or functions to produce output incrementally?
Regards, /Niels
Daiki Ueno ueno@gnu.org writes:
This patch series implements the Curve448 Diffie-Hellman protocol (RFC 7748) and the Ed448 signature scheme (RFC 8032). Although I tried to make it as close as possible to the Curve25519 and Ed25519 implementations, I had to add a few special cases, namely:
Thanks a lot for this work. I've started by applying the first 4 easy patches (currently on the master-updates branch).
- for Curve448, eccdata directly calculates points on the Edwards curve instead of the equivalent Montgomery curve
It would be nice to do it the same way. Are Montgomery computations the same, regardless of twist/no-twist?
- untwisted versions of ecc_add_eh* and ecc_dup_eh are added
Just a note that the twisted versions should at some point be updated to use more effficient formulas.
- the point decoding for Ed448 uses a different formula to recover u and v
Does it have to be done differently? I'll have to read up to find out. Efficient sqrt is going to be tailored for this prime to be most efficient.
Also, optimized implementation of modular reduction is currently missing, which is beyond my expertise. I would appreciate any suggestions regarding that.
If we do Euclidean reduction, we should use the property that
2^448 = 2^224 + 1 (mod)
And we'd need to use this twice to reduce a 896-bit product to 448 bits. On 64-bit machines, we'll get some shifting since 224 isn't a multiple of 64.
Redc might be slightly more efficient than the above reduction. Due to the structure, it might also work nicely to do a "half redc", reducing from both ends, and they might share the shift. I'll have to think through the details. But unlikely to be a big win over Euclidean.
Regards, /Niels
Hello,
Thank you for the suggestions and sorry for the shameless delay.
nisse@lysator.liu.se (Niels Möller) writes:
Also, optimized implementation of modular reduction is currently missing, which is beyond my expertise. I would appreciate any suggestions regarding that.
If we do Euclidean reduction, we should use the property that
2^448 = 2^224 + 1 (mod)
And we'd need to use this twice to reduce a 896-bit product to 448 bits. On 64-bit machines, we'll get some shifting since 224 isn't a multiple of 64.
Due to my ignorance, I probably don't get what you mean, but as far as I read the implementations of other curves in Nettle, some of them seem to use the property of generalized Mersenne numbers described in: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.2133 and it's also applicable to the Curve448 prime.
So a 896-bit product here:
a0 + a1 * 2^k + a2 * 2^2k + a3 * 2^3k (k = 224)
can be reduced to:
b0 + b1 * 2^k (mod p)
through modular additions of the smaller numbers:
b0 = a0 + a2 + a3 (mod p) b1 = a1 + a2 + a3 + a3 (mod p)
I tried to implement it (as attached) and got 20-30% speed-up with mini-gmp.
size modp reduce modq modinv mi_gcd mi_pow dup_jj ad_jja ad_hhh mul_g mul_a (us) 192 0.0066 0.0061 0.0770 28.90 0.000 0.00 0.698 0.811 1.014 44.2 188.5 224 0.0091 0.0091 0.1231 47.57 0.000 0.00 0.969 1.285 1.566 90.2 329.1 255 0.0081 0.0078 0.1550 18.70 0.000 0.00 0.767 1.014 1.082 88.7 278.4 256 0.1288 0.0115 0.1464 50.22 0.000 0.00 1.004 1.457 1.701 105.6 380.1 384 0.0170 0.0170 0.1260 106.51 0.000 0.00 1.791 2.240 3.113 305.9 1015.7 448 0.1892 0.1886 0.1886 171.57 0.000 0.00 3.630 4.914 4.940 842.1 1966.8 521 0.0163 0.0158 0.2821 217.44 0.000 0.00 3.555 4.507 6.107 788.8 2637.8
size modp reduce modq modinv mi_gcd mi_pow dup_jj ad_jja ad_hhh mul_g mul_a (us) 192 0.0080 0.0082 0.0748 30.61 0.000 0.00 0.663 0.810 1.007 43.9 189.9 224 0.0103 0.0108 0.1281 47.48 0.000 0.00 0.968 1.481 1.632 89.4 323.2 255 0.0095 0.0090 0.1545 18.71 0.000 0.00 0.828 1.081 1.085 90.8 284.9 256 0.1353 0.0123 0.1423 51.25 0.000 0.00 0.992 1.326 1.726 107.4 379.3 384 0.0174 0.0171 0.1253 108.82 0.000 0.00 1.760 2.233 2.991 302.9 1004.2 448 0.1382 0.1380 0.1865 147.87 0.000 0.00 3.167 4.161 4.211 738.6 1668.3 521 0.0186 0.0179 0.2750 216.30 0.000 0.00 3.438 4.249 5.756 743.5 2510.6
Do you think this is acceptable or need further optimization?
Regards,
Daiki Ueno ueno@gnu.org writes:
Thank you for the suggestions and sorry for the shameless delay.
No problem, I'm also quite slow. I think there are three main pieces left to integrate.
1. Curve operations to support Curve448 (i.e., diffie-hellman operations). I have made some progress, on my curve448 branch,
2. SHAKE 128/256. I think I had some question on the interface design.
3. EdDSA 448.
Optimization of the mod p arithmetic isn't that important yet, but I'll nevertheless try to explain how I think about it.
Due to my ignorance, I probably don't get what you mean, but as far as I read the implementations of other curves in Nettle, some of them seem to use the property of generalized Mersenne numbers described in: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.2133 and it's also applicable to the Curve448 prime.
The way I think about it, we have p = 2^448 - 2^224 - 1. This implies that
2^448 = 2^224 + 1 (mod p)
(since a = b (mod p) means that a - b is a multiple of p, and in this case, the difference between left and right hand is exactly p).
So a 896-bit product here:
a0 + a1 * 2^k + a2 * 2^2k + a3 * 2^3k (k = 224)
And in this notation, 2^2k = 2^k + 1 (mod p) and 2^3k = 2^2k + 2^k (mod p). If we use these relations to replace the high powers of two, we get precisely your formulas:
can be reduced to:
b0 + b1 * 2^k (mod p)
through modular additions of the smaller numbers:
b0 = a0 + a2 + a3 (mod p) b1 = a1 + a2 + a3 + a3 (mod p)
I'm not sure what's the best way to organize this. I suggested doing it in two steps, first reduce the high three chunks to two and leave a0 unchanged:
a1 + a2 2^k + a3 2^2k = (a1 + a3) + (a2 + a3) 2^k = b1 + b_2 2^k (mod p)
where we can do the carry propagation and carry wrap-around to get b0 and b1 as 224-bit numbers.
And then repeat the same procedure once more
a0 + b1 2^k + b2 2^2k = (a0 + b2) + (b1 + b2) 2^k = c0 + c1 2^k
This is going to work out nicely on 32-bit platforms. For 64-bit, one should get better performance the more shift operations can be avoided, and your variant might be faster then the above.
On the other hand, for assembly implementation keeping values in registers, the two step way needs fewer registers, since loading the lowest limbs can be postponed until after the higher order limbs are eliminated and no longer need any registers.
Looking at your formulas,
b0 = a0 + a2 + a3 (mod p) b1 = a1 + a2 + a3 + a3 (mod p)
I think it should be possible to implement with only a single 7-limb shift: In the b0 formula, only a3 needs shifting, a0 and a2 are already at the right position. And in the b1 formula, a1 and a2 are at the right position, but a2 needs a shift. I think I'd try the following:
1. Do the additions a0 += a2, a1 += a3, which I think can be done as a single 7-limb add, with plain carry propagation between the pieces. Carry out can be folded immediately, or saved for later.
2. Do the second a1 += a3 (needs some masking to extract the a3 bits, but no shift). Or maybe skip the masking, and handle the low 32 bits of a3 some other way.
3. Do an in-place 32-bit left shift of a2, a3.
4. Add the shifted terms, a0 += a3, a1 += a2. This gets even better if we make the a2, a3 shift above a rotate storing the shifted out high bits of a3 back at the position of the low bits of a2.
5. Do final carry handling.
There's no need to try to find the optimal reduction strategy right away, though, other missing pieces are more important.
I tried to implement it (as attached) and got 20-30% speed-up with mini-gmp.
For good test coverage of these functions, I recommend building with the real gmp (to get access to its mpz_rrandomb function), and then let
while NETTLE_TEST_SEED=0 ./ecc-mod-test ; do : ; done
run over night. And possibly also hacking ecc_mod_test.c to only test the curve of interest.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
I think there are three main pieces left to integrate.
Curve operations to support Curve448 (i.e., diffie-hellman operations). I have made some progress, on my curve448 branch,
SHAKE 128/256. I think I had some question on the interface design.
EdDSA 448.
Optimization of the mod p arithmetic isn't that important yet,
I see. I thought that the performance of curve operations should at least be comparable to P-521. However, even with the generic ecc_mod for mod p, those are already close. So let's look at the above items first. I have rebased my patch implementing (1) on the curve448 branch: https://gitlab.com/dueno/nettle/commits/wip/dueno/curve448-2
One thing I noticed is that the point addition formula for untwisted curves doesn't look correct: https://gitlab.com/dueno/nettle/commit/4e3a50f4a50d8d03536dc107d7b77c84462e3...
but I'll nevertheless try to explain how I think about it.
Thank you for the detailed explanation. I ran the benchmark for those 3 variants: (1) the original version using ecc_mod, (2) the two step reduction as you suggest, and (3) my formula optimized with single 7-limbs operations:
size modp reduce modq modinv mi_gcd mi_pow dup_jj ad_jja ad_hhh mul_g mul_a (us) 448 0.0727 0.0720 0.0739 44.01 1.451 52.92 1.088 1.456 1.406 299.6 557.6 521 0.0139 0.0151 0.1003 77.72 1.703 101.59 0.728 0.995 1.277 255.8 588.4
448 0.0496 0.0497 0.0764 34.77 1.500 49.59 0.923 1.158 1.169 273.5 500.1 521 0.0147 0.0144 0.1027 77.63 1.816 88.57 0.716 0.934 1.276 237.2 589.9
448 0.0641 0.0644 0.0809 52.76 1.570 49.42 1.007 1.340 1.343 288.1 570.5 521 0.0139 0.0141 0.0967 78.22 1.697 99.44 0.714 1.012 1.264 235.8 589.2
on Core i7-6600U CPU @ 2.60GHz.
My code could be wrong or inefficient, but actually (2) is the fastest. (3) is slower due to the final carry handling; the carry is accumulated at most 3 and wrapping around it with cnd_add_n seems to be costly.
Regards,
Hello Niels,
Daiki Ueno ueno@gnu.org writes:
nisse@lysator.liu.se (Niels Möller) writes:
I think there are three main pieces left to integrate.
Curve operations to support Curve448 (i.e., diffie-hellman operations). I have made some progress, on my curve448 branch,
SHAKE 128/256. I think I had some question on the interface design.
EdDSA 448.
Optimization of the mod p arithmetic isn't that important yet,
Is there anything I can do to get this merged in upstream? Now that OpenSSL supports the curve and EdDSA, it would be interesting to add it in GnuTLS.
I tried to integrate it into GnuTLS bundling the current code, and it can interoperate with OpenSSL: https://gitlab.com/gnutls/gnutls/merge_requests/984
For convenience I am attaching the remaining patches for nettle.
Regards,
Daiki Ueno ueno@gnu.org writes:
From 8bc6e735d4b40cbab5e187a28e01b63a04ecd92b Mon Sep 17 00:00:00 2001 From: Daiki Ueno dueno@redhat.com Date: Fri, 23 Jun 2017 17:26:18 +0200 Subject: [PATCH 2/4] Implement Curve448 primitives
This patch adds the necessary primitives for "curve448", defined in RFC 7748. Those primitives are namely: addition, doubling, scalar multiplication of the generator or an arbitrary point, inversion, and square root.
At last, I've now merged this onto the curve448 branch.
I see you've made some chenges to the needed scratch space, if I understand it correctly, you need to allow h_to_a_itch larger than mul_itch or mul_g_itch. You increase the value of ECC_ECDSA_SIGN_ITCH and add a new ECC_ECDSA_KEYGEN_ITCH. Can you comment on that?
The only reason ECDSA is affected at all by curve448, is that we have tests for ecdsa over the curve25519 and curve448, even though that's not the way these curves are intended to be used. Maybe that should just be deleted.
Performance for the scalar multiplication primitives seem to be slower than secp384 and slightly faster than secp521, and looking at point addition, it's slower than secp521. I hope that will be improved a quite a bit with an optimized mod operation for the curve448 prime.
While the interface is similar to curve25519, the implementation is slightly different. For curve25519, the Pippenger tables are generated through the coordinates on the Montgomery curve. On the other hand, the tables for curve448 are directly generated from the coordinates on the corresponding Edwards curve ("edwards448").
This is no longer the case, since the handling curve 25519 was changed early on, based on your patches back then.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
Daiki Ueno ueno@gnu.org writes:
From 8bc6e735d4b40cbab5e187a28e01b63a04ecd92b Mon Sep 17 00:00:00 2001 From: Daiki Ueno dueno@redhat.com Date: Fri, 23 Jun 2017 17:26:18 +0200 Subject: [PATCH 2/4] Implement Curve448 primitives
This patch adds the necessary primitives for "curve448", defined in RFC 7748. Those primitives are namely: addition, doubling, scalar multiplication of the generator or an arbitrary point, inversion, and square root.
At last, I've now merged this onto the curve448 branch.
That's a great news, thank you Niels!
I see you've made some chenges to the needed scratch space, if I understand it correctly, you need to allow h_to_a_itch larger than mul_itch or mul_g_itch. You increase the value of ECC_ECDSA_SIGN_ITCH and add a new ECC_ECDSA_KEYGEN_ITCH. Can you comment on that?
The only reason ECDSA is affected at all by curve448, is that we have tests for ecdsa over the curve25519 and curve448, even though that's not the way these curves are intended to be used. Maybe that should just be deleted.
Indeed, I agree to remove the tests and affected parts in the library.
Performance for the scalar multiplication primitives seem to be slower than secp384 and slightly faster than secp521, and looking at point addition, it's slower than secp521. I hope that will be improved a quite a bit with an optimized mod operation for the curve448 prime.
While the interface is similar to curve25519, the implementation is slightly different. For curve25519, the Pippenger tables are generated through the coordinates on the Montgomery curve. On the other hand, the tables for curve448 are directly generated from the coordinates on the corresponding Edwards curve ("edwards448").
This is no longer the case, since the handling curve 25519 was changed early on, based on your patches back then.
Thank you. By the way, one thing I realized in my past rebase attempts is that, this commit doing the final reduction of a value by mod q seems to be incorrect for curve448 and should probably be reverted:
commit 6cf6abd68eb3d6c8c8e5ab217be734f9c537037f Author: Daiki Ueno dueno@redhat.com Date: Sat Aug 5 09:43:47 2017 +0200
ecc-eh-to-a, eddsa-sign: Parameterize hard-coded value
This allows the same code to be reused in curve448 and Ed448.
Signed-off-by: Daiki Ueno dueno@redhat.com
- shift = 252 - GMP_NUMB_BITS * (ecc->p.size - 1); + shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); cy = mpn_submul_1 (r, ecc->q.m, ecc->p.size, r[ecc->p.size-1] >> shift);
For curve25519, q is defined as:
2^252 + 0x14def9dea2f79cd65812631a5cf5d3ed
whose bit pattern starts with 0x1000, so r - q * (r>>252) should work.
On the other hand, for curve448, q is defined as:
2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d
whose bit pattern starts with 0xFFFF. In that case the formula (r - q * (r>>445)) could be incorrect due to the accumulated errors by multiplication (i.e. q * 0x7FFF...).
Therefore, I suggest using r - q * (r>>446) instead, though it would introduce another hard-coded value.
Regards,
Daiki Ueno ueno@gnu.org writes:
Thank you. By the way, one thing I realized in my past rebase attempts is that, this commit doing the final reduction of a value by mod q seems to be incorrect for curve448 and should probably be reverted:
commit 6cf6abd68eb3d6c8c8e5ab217be734f9c537037f Author: Daiki Ueno dueno@redhat.com Date: Sat Aug 5 09:43:47 2017 +0200
ecc-eh-to-a, eddsa-sign: Parameterize hard-coded value This allows the same code to be reused in curve448 and Ed448. Signed-off-by: Daiki Ueno <dueno@redhat.com>
shift = 252 - GMP_NUMB_BITS * (ecc->p.size - 1);
shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); cy = mpn_submul_1 (r, ecc->q.m, ecc->p.size, r[ecc->p.size-1] >> shift);
For curve25519, q is defined as:
2^252 + 0x14def9dea2f79cd65812631a5cf5d3ed
whose bit pattern starts with 0x1000, so r - q * (r>>252) should work.
On the other hand, for curve448, q is defined as:
2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d
whose bit pattern starts with 0xFFFF. In that case the formula (r - q * (r>>445)) could be incorrect due to the accumulated errors by multiplication (i.e. q * 0x7FFF...).
Good catch! Right, this needs a bit more analysis. Fur curve25519, the subtraction can underflow (unlikely), which is addressed with the conditional addition a few lines down.
Therefore, I suggest using r - q * (r>>446) instead, though it would introduce another hard-coded value.
But for curve448, that subtraction will never underflow, instead it will sometimes produce a non-canonical result, r >= q. So correcting the shift isn't enough.
On the other hand, this code should perhaps be deleted altogether, I think h_to_a with flags == 2 is used only for ecdsa. It might make sense to instead add a function pointer to struct ecc_modulo to do canonical reduction; that's needed in a few different places, not only here.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
Daiki Ueno ueno@gnu.org writes:
For curve25519, q is defined as:
2^252 + 0x14def9dea2f79cd65812631a5cf5d3ed
whose bit pattern starts with 0x1000, so r - q * (r>>252) should work.
On the other hand, for curve448, q is defined as:
2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d
whose bit pattern starts with 0xFFFF. In that case the formula (r - q * (r>>445)) could be incorrect due to the accumulated errors by multiplication (i.e. q * 0x7FFF...).
Good catch! Right, this needs a bit more analysis. Fur curve25519, the subtraction can underflow (unlikely), which is addressed with the conditional addition a few lines down.
For ecc_ah_to_a, this code was deleted, but it's still an issue for eddsa_sign. Maybe need special cases for both ed25519 and ed448 for now. Or some logic looking at the high limb of q.
These corner cases are a bit hard to test.
It might make sense to instead add a function pointer to struct ecc_modulo to do canonical reduction; that's needed in a few different places, not only here.
I still think think this makes sense, but it's not clear to me what the usage really is.
Regards, /Niels
Hello Niels,
Thank you very much for all the Curve448/SHAKE256 work for merging (I'm slowly catching up).
nisse@lysator.liu.se (Niels Möller) writes:
nisse@lysator.liu.se (Niels Möller) writes:
Daiki Ueno ueno@gnu.org writes:
For curve25519, q is defined as:
2^252 + 0x14def9dea2f79cd65812631a5cf5d3ed
whose bit pattern starts with 0x1000, so r - q * (r>>252) should work.
On the other hand, for curve448, q is defined as:
2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d
whose bit pattern starts with 0xFFFF. In that case the formula (r - q * (r>>445)) could be incorrect due to the accumulated errors by multiplication (i.e. q * 0x7FFF...).
Good catch! Right, this needs a bit more analysis. Fur curve25519, the subtraction can underflow (unlikely), which is addressed with the conditional addition a few lines down.
For ecc_ah_to_a, this code was deleted, but it's still an issue for eddsa_sign. Maybe need special cases for both ed25519 and ed448 for now. Or some logic looking at the high limb of q.
These corner cases are a bit hard to test.
For what it's worth, the original issue was reliably reproducible with the GnuTLS port[1] against the OpenSSL client. Here is a test vector extracted from the interaction:
test_one ("0cf87eb094bf46d161bde3b99d1d32856fecfae0142392cd98c091db206d174bbf8ef476a9cf746d94306c565f97ac50796f021eff8d779ca5" "9addde61f668f2dbc0ac24874adb47a2aa6ad59fa888bdc5d430705ed0796a8c330782b51860785be63fd79b1c7cf58fd728b2bf3d77395100:" "9addde61f668f2dbc0ac24874adb47a2aa6ad59fa888bdc5d430705ed0796a8c330782b51860785be63fd79b1c7cf58fd728b2bf3d77395100:" "20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020544c5320312e332c207365727665722043657274696669636174655665726966790090da2c6178a3019274ed029ba5ad28f25662a78d71e8429c19f96007df39d7a77d7cb80f221c76db5e1c397714f48692:" "91554b9b85058d3d6885997adf47e1f766ae780018ca26873de854fb12d789f3bf1f85d3ce5b23265d8d8900f62906e2eb4a064887beaf00009cea26f0edeff35be1e969df77ab1368ced966beb0c7b6242aa0d8844d773e254cfed823d3a5e53b3ef557e716ce7cc2aaca127e86798f2b00" "20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020544c5320312e332c207365727665722043657274696669636174655665726966790090da2c6178a3019274ed029ba5ad28f25662a78d71e8429c19f96007df39d7a77d7cb80f221c76db5e1c397714f48692:");
It might make sense to instead add a function pointer to struct ecc_modulo to do canonical reduction; that's needed in a few different places, not only here.
I still think think this makes sense, but it's not clear to me what the usage really is.
Regards,
Footnotes: [1] https://gitlab.com/gnutls/gnutls/merge_requests/984
Daiki Ueno ueno@gnu.org writes:
Thank you very much for all the Curve448/SHAKE256 work for merging (I'm slowly catching up).
I think this is complete now (except updating hogweed-benchmark), just pushed to the ed448 branch. Thanks for the patience.
These corner cases are a bit hard to test.
For what it's worth, the original issue was reliably reproducible with the GnuTLS port[1] against the OpenSSL client. Here is a test vector extracted from the interaction:
I'm afraid this doesn't exercise the corner cases. The thing is, we have q close to 2^k (k = 2^252 for ed25519, k = 446 for ed448).
Then we want to reduce
r = hi 2^k + lo
modulo q, canonically. If we set
r' = r - hi * q
then it's highly likely that 0 <= r' < q, but not certain.
For ed25519, q > 2^k, so we are guaranteed that r' < 2^k < q, but we may get r' < 0.
For ed448, q < 2^k, so we are guaranteed that r' > 0, and we may instead get r' >= q.
For now, I've added the following logic to _eddsa_sign:
if (ecc->p.bit_size == 255) { /* FIXME: Special code duplicated in ecc_25519_modq Define a suitable method for canonical reduction? */
/* q is slightly larger than 2^252, underflow from below mpn_submul_1 is unlikely. */ unsigned shift = 252 - GMP_NUMB_BITS * (ecc->p.size - 1); q = sp[ecc->p.size-1] >> shift; } else { unsigned shift;
assert (ecc->p.bit_size == 448); /* q is slightly smaller than 2^446 */ shift = 446 - GMP_NUMB_BITS * (ecc->p.size - 1); /* Add one, then it's possible but unlikely that below mpn_submul_1 does *not* underflow. */ q = (sp[ecc->p.size-1] >> shift) + 1; }
cy = mpn_submul_1 (sp, ecc->q.m, ecc->p.size, q); assert (cy < 2); cy -= cnd_add_n (cy, sp, ecc->q.m, ecc->p.size); assert (cy == 0);
I think that's correct, but it seems tricky to find inputs to _eddsa_sign that will hit the corner cases. I've added some debug printouts to verify that mpn_submul_1 returns 0 for the ed25519 testcases, and 1 for all the ed448 testcases. If it's taken out to a separate function/method, then it gets easier to unit test.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
I think this is complete now (except updating hogweed-benchmark), just pushed to the ed448 branch. Thanks for the patience.
It seems I forgot to add the new files in the first attempt. Ooops. Fixed with a forced update on this branch.
Now ubsan fails, it doesn't like calling memcpy with null ptr and zero size. I have to fix that. Not sure what's prettiest, either a conditional, or a function pointer like it was done in the original patch.
In the mean time, I've updated hogweed benchmark (not yet committed). This is what I get on my old (x86_64) laptop:
name size sign/ms verify/ms ecdsa 192 5.2194 1.7914 ecdsa 224 3.2297 1.1658 ecdsa 256 3.1153 1.0347 ecdsa 384 1.4393 0.4607 ecdsa 521 0.7277 0.2308 eddsa 255 6.0243 1.5598 eddsa 448 1.7464 0.4595
So speedwise, ed25519 is comparable to ecdsa on secp_192r1, and ed448 is comparable to ecdsa on secp_384r1. In both cases, signing is a bit faster (15%-20%), and verify is the same or a bit slower.
Regards, /Niels
Daiki Ueno ueno@gnu.org writes:
nisse@lysator.liu.se (Niels Möller) writes:
I see you've made some chenges to the needed scratch space, if I understand it correctly, you need to allow h_to_a_itch larger than mul_itch or mul_g_itch. You increase the value of ECC_ECDSA_SIGN_ITCH and add a new ECC_ECDSA_KEYGEN_ITCH. Can you comment on that?
The only reason ECDSA is affected at all by curve448, is that we have tests for ecdsa over the curve25519 and curve448, even though that's not the way these curves are intended to be used. Maybe that should just be deleted.
Indeed, I agree to remove the tests and affected parts in the library.
I'm considering the below patch. I think there's room for further improvement, maybe splitting the h_to_a method up (it's called with op == 0, and with op == 2 from the ecdsa, but never with op == 1). Maybe adding a some ecc_mod_canonical function. But deleting this unneeded code right away seems like an improvement in itself.
Regards, /Niels
diff --git a/ecc-eh-to-a.c b/ecc-eh-to-a.c index 8173b887..89d2b6e3 100644 --- a/ecc-eh-to-a.c +++ b/ecc-eh-to-a.c @@ -56,6 +56,8 @@ ecc_eh_to_a (const struct ecc_curve *ecc,
mp_limb_t cy;
+ assert(op == 0); + /* Needs 2*size + scratch for the invert call. */ ecc->p.invert (&ecc->p, izp, zp, tp + ecc->p.size);
@@ -63,25 +65,6 @@ ecc_eh_to_a (const struct ecc_curve *ecc, cy = mpn_sub_n (r, tp, ecc->p.m, ecc->p.size); cnd_copy (cy, r, tp, ecc->p.size);
- if (op) - { - /* Skip y coordinate */ - if (op > 1) - { - /* Reduce modulo q. Hardcoded for curve25519, duplicates end - of ecc_25519_modq. FIXME: Is this needed at all? op > 0 - is only used by ecdsa code, and ecdsa on Edwards curves - makes little sense and is is only used by tests. */ - unsigned shift; - assert (ecc->p.bit_size == 255); - shift = ecc->q.bit_size - 1 - GMP_NUMB_BITS * (ecc->p.size - 1); - cy = mpn_submul_1 (r, ecc->q.m, ecc->p.size, - r[ecc->p.size-1] >> shift); - assert (cy < 2); - cnd_add_n (cy, r, ecc->q.m, ecc->p.size); - } - return; - } ecc_modp_mul (ecc, tp, yp, izp); cy = mpn_sub_n (r + ecc->p.size, tp, ecc->p.m, ecc->p.size); cnd_copy (cy, r + ecc->p.size, tp, ecc->p.size); diff --git a/testsuite/ecdsa-keygen-test.c b/testsuite/ecdsa-keygen-test.c index a96c09ef..0deb7214 100644 --- a/testsuite/ecdsa-keygen-test.c +++ b/testsuite/ecdsa-keygen-test.c @@ -78,6 +78,10 @@ test_main (void) struct ecc_point pub; struct ecc_scalar key;
+ if (ecc->p.bit_size == 255) + /* Exclude curve25519, which isn't supported with ECDSA. */ + continue; + if (verbose) fprintf (stderr, "Curve %d\n", ecc->p.bit_size);
diff --git a/testsuite/ecdsa-sign-test.c b/testsuite/ecdsa-sign-test.c index 23275357..b240a31b 100644 --- a/testsuite/ecdsa-sign-test.c +++ b/testsuite/ecdsa-sign-test.c @@ -156,18 +156,4 @@ test_main (void) "97536710 1F67D1CF 9BCCBF2F 3D239534" "FA509E70 AAC851AE 01AAC68D 62F86647" "2660"); /* s */ - - /* Non-standard ecdsa using curve25519. Not interop-tested with - anything else. */ - test_ecdsa (&_nettle_curve25519, - "1db511101b8fd16f e0212c5679ef53f3" - "323bde77f9efa442 617314d576d1dbcb", /* z */ - "aa2fa8facfdc3a99 ec466d41a2c9211c" - "e62e1706f54037ff 8486e26153b0fa79", /* k */ - SHEX("e99df2a098c3c590 ea1e1db6d9547339" - "ae760d5331496119 5d967fd881e3b0f5"), /* h */ - " 515c3a485f57432 0daf3353a0d08110" - "64157c556296de09 4132f74865961b37", /* r */ - " 78f23367291b01 3fc430fb09322d95" - "4384723649868d8e 88effc7ac8b141d7"); /* s */ } diff --git a/testsuite/ecdsa-verify-test.c b/testsuite/ecdsa-verify-test.c index 971988c3..6a593d6f 100644 --- a/testsuite/ecdsa-verify-test.c +++ b/testsuite/ecdsa-verify-test.c @@ -145,17 +145,4 @@ test_main (void) "97536710 1F67D1CF 9BCCBF2F 3D239534" "FA509E70 AAC851AE 01AAC68D 62F86647" "2660"); /* s */ - - test_ecdsa (&_nettle_curve25519, - /* Public key corresponding to the key in ecdsa-sign-test */ - "59f8f317fd5f4e82 c02f8d4dec665fe1" - "230f83b8572638e1 b2ac34a30028e24d", /* x */ - "1902a72dc1a6525a 811b9c1845978d56" - "fd97dce5e278ebdd ec695349d7e41498", /* y */ - SHEX("e99df2a098c3c590 ea1e1db6d9547339" - "ae760d5331496119 5d967fd881e3b0f5"), /* h */ - " 515c3a485f57432 0daf3353a0d08110" - "64157c556296de09 4132f74865961b37", /* r */ - " 78f23367291b01 3fc430fb09322d95" - "4384723649868d8e 88effc7ac8b141d7"); /* s */ }
nisse@lysator.liu.se (Niels Möller) writes:
I'm considering the below patch. I think there's room for further improvement, maybe splitting the h_to_a method up (it's called with op == 0, and with op == 2 from the ecdsa, but never with op == 1). Maybe adding a some ecc_mod_canonical function. But deleting this unneeded code right away seems like an improvement in itself.
Now pushed to master-updates.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
nisse@lysator.liu.se (Niels Möller) writes:
I'm considering the below patch. I think there's room for further improvement, maybe splitting the h_to_a method up (it's called with op == 0, and with op == 2 from the ecdsa, but never with op == 1). Maybe adding a some ecc_mod_canonical function. But deleting this unneeded code right away seems like an improvement in itself.
Now pushed to master-updates.
Failed the gnutls test "testcompat-openssl",
############################################### # Server mode tests (gnutls server-openssl cli# ############################################### Check TLS 1.0 with DHE-RSA ciphersuite %NO_ETM: Check TLS 1.0 with DHE-RSA ciphersuite %DISABLE_SAFE_RENEGOTIATION: Check TLS 1.0 with DHE-RSA ciphersuite %NO_TICKETS: Check TLS 1.0 with DHE-RSA ciphersuite %COMPAT: Check TLS 1.0 with DHE-RSA ciphersuite %SAFE_RENEGOTIATION: Check TLS 1.0 with DHE-RSA ciphersuite HTTP Server listening on IPv4 0.0.0.0 port 18033...done HTTP Server listening on IPv6 :: port 18033...done HTTP Server listening on IPv4 0.0.0.0 port 22536...done HTTP Server listening on IPv6 :: port 22536...done HTTP Server listening on IPv4 0.0.0.0 port 15595...done HTTP Server listening on IPv6 :: port 15595...done HTTP Server listening on IPv4 0.0.0.0 port 22743...done HTTP Server listening on IPv6 :: port 22743...done HTTP Server listening on IPv4 0.0.0.0 port 10935...done HTTP Server listening on IPv6 :: port 10935...done HTTP Server listening on IPv4 0.0.0.0 port 43747...done HTTP Server listening on IPv6 :: port 43747...done Exiting via signal 15
Maybe unrelated to this change?
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
nisse@lysator.liu.se (Niels Möller) writes:
nisse@lysator.liu.se (Niels Möller) writes:
I'm considering the below patch. I think there's room for further improvement, maybe splitting the h_to_a method up (it's called with op == 0, and with op == 2 from the ecdsa, but never with op == 1). Maybe adding a some ecc_mod_canonical function. But deleting this unneeded code right away seems like an improvement in itself.
Now pushed to master-updates.
Failed the gnutls test "testcompat-openssl",
############################################### # Server mode tests (gnutls server-openssl cli# ############################################### Check TLS 1.0 with DHE-RSA ciphersuite %NO_ETM: Check TLS 1.0 with DHE-RSA ciphersuite %DISABLE_SAFE_RENEGOTIATION: Check TLS 1.0 with DHE-RSA ciphersuite %NO_TICKETS: Check TLS 1.0 with DHE-RSA ciphersuite %COMPAT: Check TLS 1.0 with DHE-RSA ciphersuite %SAFE_RENEGOTIATION: Check TLS 1.0 with DHE-RSA ciphersuite HTTP Server listening on IPv4 0.0.0.0 port 18033...done HTTP Server listening on IPv6 :: port 18033...done HTTP Server listening on IPv4 0.0.0.0 port 22536...done HTTP Server listening on IPv6 :: port 22536...done HTTP Server listening on IPv4 0.0.0.0 port 15595...done HTTP Server listening on IPv6 :: port 15595...done HTTP Server listening on IPv4 0.0.0.0 port 22743...done HTTP Server listening on IPv6 :: port 22743...done HTTP Server listening on IPv4 0.0.0.0 port 10935...done HTTP Server listening on IPv6 :: port 10935...done HTTP Server listening on IPv4 0.0.0.0 port 43747...done HTTP Server listening on IPv6 :: port 43747...done Exiting via signal 15
Maybe unrelated to this change?
I don't understand the gnutls failure. I've logged in to gitlab and pressed the "Retry"-button. If it keeps failing, I'll need some help investigating.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
I don't understand the gnutls failure. I've logged in to gitlab and pressed the "Retry"-button. If it keeps failing, I'll need some help investigating.
The retry passed. Merged this deletion (ecdsa over curve25519) to master now.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
Performance for the scalar multiplication primitives seem to be slower than secp384 and slightly faster than secp521, and looking at point addition, it's slower than secp521. I hope that will be improved a quite a bit with an optimized mod operation for the curve448 prime.
I've tried out this mod function (for 64-bit):
static void ecc_448_modp(const struct ecc_modulo *m, mp_limb_t *rp) { /* Let B = 2^64, b = 2^32 = sqrt(B). p = B^7 - b B^3 - 1 ==> B^7 = b B^3 + 1
{x_{13}, ..., x_0} = {x_6,...,x_0} + {x_{10},...,x_7} + 2 {x_{13},x_{12}, x_{11}} B^4 + b {x_{10},...,x_7,x_{13},x_{12},x_{11} */ mp_limb_t c3, c4, c7; mp_limb_t *tp = rp + 7;
c4 = mpn_add_n (rp, rp, rp + 7, 4); c7 = mpn_addmul_1 (rp + 4, rp + 11, 3, 2); c3 = mpn_addmul_1 (rp, rp + 11, 3, (mp_limb_t) 1 << 32); c7 += mpn_addmul_1 (rp + 3, rp + 7, 4, (mp_limb_t) 1 << 32); tp[0] = c7; tp[1] = tp[2] = 0; tp[3] = c3 + (c7 << 32); tp[4] = c4 + (c7 >> 32) + (tp[3] < c3); tp[5] = tp[6] = 0; c7 = mpn_add_n (rp, rp, tp, 7); c7 = cnd_add_n (c7, rp, m->B, 7); assert(c7 == 0); }
This gives a speedup of 85% over the general ecc_mod (on my machine), and gives about 35% speedup for scalar multiplication (both mul_g and mul_a). So with this change, performance of mul_g and mul_1 is roughly midway between secp384 and secp521.
Not sure if replacing the addmul_1 calls with shifts is worthwhile for the C code (we'll get more function calls and more passes over the data, which should still be worthwhile for machines with slow multiplication), but for assembly implementation, the addmul_1(..., 2) call should be adds only, in registers, and the addmul_1(,..., 1<<32) should be shift and add, preferably in registers.
I'm going to leave randomized testing running for a few hours.
Regards, /Niels
nisse@lysator.liu.se (Niels Möller) writes:
I've tried out this mod function (for 64-bit):
static void ecc_448_modp(const struct ecc_modulo *m, mp_limb_t *rp)
...
This gives a speedup of 85% over the general ecc_mod (on my machine), and gives about 35% speedup for scalar multiplication (both mul_g and mul_a). So with this change, performance of mul_g and mul_1 is roughly midway between secp384 and secp521.
Tried the below first implementation of an x86_64 mod function. Gives a speedup of almost three times over the above C function. With this, the mul_g operation is 20% slower than for secp384, and the mul_a operation is slightly faster.
Rgards, /Niels
diff --git a/configure.ac b/configure.ac index 3547cae4..2933facf 100644 --- a/configure.ac +++ b/configure.ac @@ -476,7 +476,8 @@ asm_nettle_optional_list="gcm-hash8.asm cpuid.asm \ asm_hogweed_optional_list="" if test "x$enable_public_key" = "xyes" ; then asm_hogweed_optional_list="ecc-192-modp.asm ecc-224-modp.asm \ - ecc-25519-modp.asm ecc-256-redc.asm ecc-384-modp.asm ecc-521-modp.asm" + ecc-256-redc.asm ecc-384-modp.asm ecc-521-modp.asm \ + ecc-25519-modp.asm ecc-curve448-modp.asm" fi
OPT_NETTLE_OBJS="" @@ -580,6 +581,7 @@ AH_VERBATIM([HAVE_NATIVE], #undef HAVE_NATIVE_ecc_256_redc #undef HAVE_NATIVE_ecc_384_modp #undef HAVE_NATIVE_ecc_384_redc +#undef HAVE_NATIVE_ecc_curve448_modp #undef HAVE_NATIVE_ecc_521_modp #undef HAVE_NATIVE_ecc_521_redc #undef HAVE_NATIVE_gcm_hash8 diff --git a/ecc-448.c b/ecc-448.c index 7d68e1c8..2e840024 100644 --- a/ecc-448.c +++ b/ecc-448.c @@ -45,7 +45,11 @@
#include "ecc-448.h"
-#if GMP_NUMB_BITS == 64 +#if HAVE_NATIVE_ecc_curve448_modp +#define ecc_448_modp nettle_ecc_curve448_modp +void +ecc_448_modp (const struct ecc_modulo *m, mp_limb_t *rp); +#elif GMP_NUMB_BITS == 64 static void ecc_448_modp(const struct ecc_modulo *m, mp_limb_t *rp) { diff --git a/x86_64/ecc-curve448-modp.asm b/x86_64/ecc-curve448-modp.asm new file mode 100644 index 00000000..5ce81960 --- /dev/null +++ b/x86_64/ecc-curve448-modp.asm @@ -0,0 +1,141 @@ +C x86_64/ecc-curve448-modp.asm + +ifelse(< + Copyright (C) 2019 Niels Möller + + This file is part of GNU Nettle. + + GNU Nettle is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + or both in parallel, as here. + + GNU Nettle 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 copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see http://www.gnu.org/licenses/. +>) + + .file "ecc-curve448-modp.asm" + +define(<RP>, <%rsi>) +define(<X0>, <%rax>) +define(<X1>, <%rbx>) +define(<X2>, <%rcx>) +define(<X3>, <%rdx>) +define(<X4>, <%rbp>) +define(<X5>, <%rdi>) +define(<X6>, <%r8>) +define(<X7>, <%r9>) +define(<T0>, <%r10>) +define(<T1>, <%r11>) +define(<T2>, <%r12>) + +PROLOGUE(nettle_ecc_curve448_modp) + W64_ENTRY(2, 0) + + push %rbx + push %rbp + push %r12 + + C First load the values to be shifted by 32. + mov 88(RP), X1 + mov X1, X0 + mov 96(RP), X2 + mov X1, T0 + mov 104(RP), X3 + mov X2, T1 + mov 56(RP), X4 + mov X3, T2 + mov 64(RP), X5 + mov 72(RP), X6 + mov 80(RP), X7 + + C Multiply by 2^32 + shl $32, X0 + shrd $32, X2, X1 + shrd $32, X3, X2 + shrd $32, X4, X3 + shrd $32, X5, X4 + shrd $32, X6, X5 + shrd $32, X7, X6 + shr $32, X7 + + C Multiply by 2 + add T0, T0 + adc T1, T1 + adc T2, T2 + adc $0, X7 + + C Main additions + add 56(RP), X0 + adc 64(RP), X1 + adc 72(RP), X2 + adc 80(RP), X3 + adc T0, X4 + adc T1, X5 + adc T2, X6 + adc $0, X7 + + add (RP), X0 + adc 8(RP), X1 + adc 16(RP), X2 + adc 24(RP), X3 + adc 32(RP), X4 + adc 40(RP), X5 + adc 48(RP), X6 + adc $0, X7 + + mov X7, T0 + mov X7, T1 + shl $32, T0 + shr $32, T1 + xor T2, T2 + add X7, X0 + adc $0, X1 + adc $0, X2 + adc T0, X3 + adc T1, X4 + adc $0, X5 + adc $0, X6 + adc $0, T2 + + mov T2, T0 + shl $32, T0 + + add T2, X0 + mov X0, (RP) + adc $0, X1 + mov X1, 8(RP) + adc $0, X2 + mov X2, 16(RP) + adc T0, X3 + mov X3, 24(RP) + adc $0, X4 + mov X4, 32(RP) + adc $0, X5 + mov X5, 40(RP) + adc $0, X6 + mov X6, 48(RP) + + pop %r12 + pop %rbp + pop %rbx + + W64_EXIT(2, 0) + ret +EPILOGUE(nettle_ecc_curve448_modp)
Daiki Ueno ueno@gnu.org writes:
From 8bc6e735d4b40cbab5e187a28e01b63a04ecd92b Mon Sep 17 00:00:00 2001 From: Daiki Ueno dueno@redhat.com Date: Fri, 23 Jun 2017 17:26:18 +0200 Subject: [PATCH 2/4] Implement Curve448 primitives
This patch adds the necessary primitives for "curve448", defined in RFC 7748. Those primitives are namely: addition, doubling, scalar multiplication of the generator or an arbitrary point, inversion, and square root.
[...]
+/* Computes a^{(p-3)/4} = a^{2^446-2^222-1} mod m. Needs 9 * n scratch
- space. */
+static void +ecc_mod_pow_446m224m1 (const struct ecc_modulo *p,
mp_limb_t *rp, const mp_limb_t *ap,
mp_limb_t *scratch)
+{ +#define t0 scratch +#define t1 (scratch + 3*ECC_LIMB_SIZE) +#define t2 (scratch + 6*ECC_LIMB_SIZE)
I think 6*n scratch space should be enough (with no other changes to this function),
#define t0 scratch #define t1 (scratch + 2*ECC_LIMB_SIZE) #define t2 (scratch + 4*ECC_LIMB_SIZE)
(And it could possibly be trimmed down a bit further, by storing the reused value a^{2^222 - 1} first).
Do you agree? Then storage for a few other things can likely be trimmed down too, in particular, curve448_mul would get the same scratch need as curve25519_mul, 12*n rather than 14*n.
Regards, /Niels
Daiki Ueno ueno@gnu.org writes:
Implement SHAKE128/256 functions
I've merged a stripped-down version of this patch, introducing a single new function sha3_256_shake. If I've understood it correctly, that's what is needed for ed448 signatures.
Regards, /Niels
nettle-bugs@lists.lysator.liu.se