Skip to content

Commit 4d3debf

Browse files
committed
test: remove internal testing of now-private structs
1 parent ea7af4d commit 4d3debf

File tree

1 file changed

+2
-100
lines changed

1 file changed

+2
-100
lines changed

blake2/tests/blake2x.rs

Lines changed: 2 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#![cfg(feature = "blake2x")]
1111

1212
use blake2::{Blake2xb, Blake2xs};
13-
use digest::block_api::VariableOutputCore;
1413
use digest::{ExtendableOutput, Update, XofReader};
1514
use serde::Deserialize;
1615
use std::fs;
@@ -459,105 +458,8 @@ fn blake2b_xof_parameter_differs_by_length() {
459458
}
460459

461460
// ==== Internal Parameter Block/State Tests ====
462-
463-
#[test]
464-
fn blake2s_xof_parameter_placement() {
465-
use blake2::Blake2xsCore;
466-
use blake2::simd::u32x4;
467-
let xof_len = 12345u16;
468-
let xof_core = Blake2xsCore::new(xof_len);
469-
470-
// Manually construct the CORRECT parameter block for a Blake2s XOF root hash
471-
let mut p = [0u32; 8];
472-
let digest_length = 32u32;
473-
let key_length = 0u32;
474-
let fanout = 1u32;
475-
let depth = 1u32;
476-
477-
// p[0]: fanout, depth, key_length, digest_length
478-
p[0] = digest_length | (key_length << 8) | (fanout << 16) | (depth << 24);
479-
// p[1]: leaf_length (0 for root)
480-
p[1] = 0;
481-
// p[2]: node_offset low (0 for root)
482-
p[2] = 0;
483-
// p[3]: xof_digest_length
484-
p[3] = xof_len as u32;
485-
// p[4..7] are 0 for no salt/persona
486-
487-
// Calculate the expected initial state h = IV ^ p
488-
let h = [
489-
u32x4::new(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A)
490-
^ u32x4::new(p[0], p[1], p[2], p[3]),
491-
u32x4::new(0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19)
492-
^ u32x4::new(p[4], p[5], p[6], p[7]),
493-
];
494-
495-
assert_eq!(
496-
xof_core.root_hasher.h[0], h[0],
497-
"Blake2Xs XOF root hasher state (h[0]) does not match manual IV^p block."
498-
);
499-
assert_eq!(
500-
xof_core.root_hasher.h[1], h[1],
501-
"Blake2Xs XOF root hasher state (h[1]) does not match manual IV^p block."
502-
);
503-
}
504-
505-
#[test]
506-
fn blake2b_xof_parameter_placement() {
507-
use blake2::Blake2xbCore;
508-
use blake2::simd::u64x4;
509-
let xof_len = 54321u32;
510-
let xof_core = Blake2xbCore::new(xof_len);
511-
512-
// Manually construct parameter block as in the XOF root
513-
let mut p = [0u64; 8];
514-
let digest_length = 64u64;
515-
let key_length = 0u64;
516-
let fanout = 1u64;
517-
let depth = 1u64;
518-
p[0] = digest_length | (key_length << 8) | (fanout << 16) | (depth << 24);
519-
p[1] = (xof_len as u64) << 32;
520-
// All other fields zeroed
521-
let h = [
522-
u64x4::new(p[0], p[1], p[2], p[3]),
523-
u64x4::new(p[4], p[5], p[6], p[7]),
524-
];
525-
526-
// IV for Blake2b
527-
let iv = [
528-
u64x4::new(
529-
0x6A09E667F3BCC908,
530-
0xBB67AE8584CAA73B,
531-
0x3C6EF372FE94F82B,
532-
0xA54FF53A5F1D36F1,
533-
),
534-
u64x4::new(
535-
0x510E527FADE682D1,
536-
0x9B05688C2B3E6C1F,
537-
0x1F83D9ABFB41BD6B,
538-
0x5BE0CD19137E2179,
539-
),
540-
];
541-
let expected = [iv[0] ^ h[0], iv[1] ^ h[1]];
542-
543-
assert_eq!(
544-
xof_core.root_hasher.h, expected,
545-
"Blake2Xb XOF root hasher state does not match manual IV^p block."
546-
);
547-
}
548-
549-
#[test]
550-
fn xof_state_differs_from_standard() {
551-
use blake2::{Blake2sVarCore, Blake2xsCore};
552-
let xof_len = 100u16;
553-
let xof_core = Blake2xsCore::new(xof_len);
554-
let standard_core = Blake2sVarCore::new(32).unwrap();
555-
556-
assert_ne!(
557-
xof_core.root_hasher.h, standard_core.h,
558-
"Blake2Xs XOF root state should differ from standard Blake2s state."
559-
);
560-
}
461+
// Note: Tests for internal state verification have been removed as they access private fields.
462+
// The functionality is tested through public API tests that verify correct behavior.
561463

562464
// ==== Keyed Hashing Tests ====
563465

0 commit comments

Comments
 (0)