Skip to content

Commit 84f5ed2

Browse files
committed
test: within bc-core, fix typo in zeroize and extend scope in eq
1 parent c97dc90 commit 84f5ed2

1 file changed

Lines changed: 41 additions & 14 deletions

File tree

crypto/core/tests/key_material_tests.rs

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ mod test_key_material {
184184

185185
key.zeroize();
186186
let key_len = key.key_len();
187-
assert_eq!(key_len4, 0);
187+
assert_eq!(key_len, 0);
188188
assert_eq!(key.key_type(), KeyType::Zeroized);
189189

190190
// zeroize() must wipe the entire backing buffer.
@@ -702,22 +702,49 @@ mod test_key_material {
702702

703703
#[test]
704704
fn eq() {
705-
// On instances of the same exact type (size).
706-
let key1 = KeyMaterial256::from_bytes(
707-
b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
708-
)
709-
.unwrap();
710-
let key2 = KeyMaterial256::from_bytes(
711-
b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
712-
)
713-
.unwrap();
705+
// For context:
706+
// DUMMY_KEY: &[u8; 64] = b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\
707+
// \x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\
708+
// \x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2A\x2B\x2C\x2D\x2E\x2F\
709+
// \x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3A\x3B\x3C\x3D\x3E\x3F";
710+
711+
// Same bytes, full capacity. Should be equal.
712+
let key1 = KeyMaterial256::from_bytes(&DUMMY_KEY[..32]).unwrap();
713+
let key2 = KeyMaterial256::from_bytes(&DUMMY_KEY[..32]).unwrap();
714714
assert_eq!(key1, key2);
715715

716-
let key3 = KeyMaterial256::from_bytes(
717-
b"\x0F\x0E\x0D\x0C\x0B\x0A\x10\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00",
718-
)
719-
.unwrap();
716+
// Same length, different content. Should NOT be equal.
717+
let key3 = KeyMaterial256::from_bytes(&[0xFFu8; 32]).unwrap();
720718
assert_ne!(key1, key3);
719+
720+
// Different length, overlapping prefix. Should NOT be equal.
721+
let key_short = KeyMaterial256::from_bytes(&DUMMY_KEY[..16]).unwrap();
722+
assert_ne!(key1, key_short);
723+
724+
// PartialEq ignores key_type: same bytes, different KeyType. Should be equal.
725+
let key_low = KeyMaterial256::from_bytes_as_type(&DUMMY_KEY[..32], KeyType::BytesLowEntropy).unwrap();
726+
let key_mac = KeyMaterial256::from_bytes_as_type(&DUMMY_KEY[..32], KeyType::MACKey).unwrap();
727+
assert_eq!(key_low, key_mac);
728+
729+
// PartialEq ignores security_strength: same bytes, different strength. Should be equal.
730+
let key_strong = KeyMaterial256::from_bytes_as_type(&DUMMY_KEY[..32], KeyType::BytesFullEntropy).unwrap();
731+
let mut key_weak = KeyMaterial256::from_bytes_as_type(&DUMMY_KEY[..32], KeyType::BytesFullEntropy).unwrap();
732+
key_weak.set_security_strength(SecurityStrength::_128bit).unwrap();
733+
assert_ne!(key_strong.security_strength(), key_weak.security_strength()); // strengths differ
734+
assert_eq!(key_strong, key_weak); // but keys are still equal
735+
736+
// Partially-filled buffers with identical content. Should be equal.
737+
let key_half1 = KeyMaterial256::from_bytes(&DUMMY_KEY[..16]).unwrap();
738+
let key_half2 = KeyMaterial256::from_bytes(&DUMMY_KEY[..16]).unwrap();
739+
assert_eq!(key_half1, key_half2);
740+
741+
// Verify with a second size (KeyMaterial512) to cover the generic impl.
742+
let key512_a = KeyMaterial512::from_bytes(&DUMMY_KEY[..64]).unwrap();
743+
let key512_b = KeyMaterial512::from_bytes(&DUMMY_KEY[..64]).unwrap();
744+
assert_eq!(key512_a, key512_b);
745+
746+
let key512_c = KeyMaterial512::from_bytes(&[0xFFu8; 64]).unwrap();
747+
assert_ne!(key512_a, key512_c);
721748
}
722749

723750
#[test]

0 commit comments

Comments
 (0)