diff options
| author | Jack O'Connor <[email protected]> | 2019-12-27 16:20:38 -0600 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2019-12-28 17:56:29 -0600 |
| commit | 2fac7447e02aa0f532ebcacbfffc71565b691aea (patch) | |
| tree | b8819de7a86b79a41b9104e616418c8cee35d8e2 /src/test.rs | |
| parent | ba2806496360aa61cc2aa64204a39d923cb13895 (diff) | |
make derive_key take a key of any length
The previous version of this API called for a key of exactly 256 bits.
That's good for optimal performance, but it would mean losing the
use-with-other-algorithms property for applications whose input keys are
a different size. There's no way for an abstraction over the previous
version to provide reliable domain separation for the "extract" step.
Diffstat (limited to 'src/test.rs')
| -rw-r--r-- | src/test.rs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/test.rs b/src/test.rs index af0bd1c..0ac6cb6 100644 --- a/src/test.rs +++ b/src/test.rs @@ -115,7 +115,7 @@ pub fn test_hash_many_fn( &TEST_KEY_WORDS, counter, IncrementCounter::Yes, - crate::DERIVE_KEY, + crate::KEYED_HASH, crate::CHUNK_START, crate::CHUNK_END, &mut portable_chunks_out, @@ -128,7 +128,7 @@ pub fn test_hash_many_fn( &TEST_KEY_WORDS, counter, IncrementCounter::Yes, - crate::DERIVE_KEY, + crate::KEYED_HASH, crate::CHUNK_START, crate::CHUNK_END, &mut test_chunks_out, @@ -154,7 +154,7 @@ pub fn test_hash_many_fn( &TEST_KEY_WORDS, 0, IncrementCounter::No, - crate::DERIVE_KEY | crate::PARENT, + crate::KEYED_HASH | crate::PARENT, 0, 0, &mut portable_parents_out, @@ -167,7 +167,7 @@ pub fn test_hash_many_fn( &TEST_KEY_WORDS, 0, IncrementCounter::No, - crate::DERIVE_KEY | crate::PARENT, + crate::KEYED_HASH | crate::PARENT, 0, 0, &mut test_parents_out, @@ -298,17 +298,19 @@ fn test_compare_reference_impl() { // derive_key { - let mut reference_hasher = reference_impl::Hasher::new_derive_key(&TEST_KEY); + let context = "BLAKE3 2019-12-27 16:13:59 example context"; + let mut reference_hasher = reference_impl::Hasher::new_derive_key(context); reference_hasher.update(input); let mut expected_out = [0; OUT]; reference_hasher.finalize(&mut expected_out); - let test_out = crate::derive_key(&TEST_KEY, input); - assert_eq!(&test_out, array_ref!(expected_out, 0, 32)); - let mut hasher = crate::Hasher::new_derive_key(&TEST_KEY); + let mut test_out = [0; OUT]; + crate::derive_key(context, input, &mut test_out); + assert_eq!(&test_out[..], &expected_out[..]); + let mut hasher = crate::Hasher::new_derive_key(context); hasher.update(input); assert_eq!(&hasher.finalize(), array_ref!(expected_out, 0, 32)); - assert_eq!(&hasher.finalize(), &test_out); + assert_eq!(&hasher.finalize(), array_ref!(test_out, 0, 32)); let mut extended = [0; OUT]; hasher.finalize_xof().fill(&mut extended); assert_eq!(&extended[..], &expected_out[..]); |
