aboutsummaryrefslogtreecommitdiff
path: root/src/test.rs
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2019-12-27 16:20:38 -0600
committerJack O'Connor <[email protected]>2019-12-28 17:56:29 -0600
commit2fac7447e02aa0f532ebcacbfffc71565b691aea (patch)
treeb8819de7a86b79a41b9104e616418c8cee35d8e2 /src/test.rs
parentba2806496360aa61cc2aa64204a39d923cb13895 (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.rs20
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[..]);