Added the explicit hash_id == 0 guard in the codec. This rejects reserved 0x0000 in both encode and decode paths

This commit is contained in:
Carl Niklas Rydberg 2025-12-21 23:48:45 +01:00
parent ab36856833
commit 88cde5c243

View file

@ -192,6 +192,9 @@ bool amduat_enc_asl1_core_encode_reference_v1(
if (reference.digest.len != 0 && reference.digest.data == NULL) {
return false;
}
if (reference.hash_id == 0u) {
return false;
}
digest_len = reference.digest.len;
hash_desc = amduat_hash_asl1_desc_lookup(reference.hash_id);
@ -238,6 +241,9 @@ bool amduat_enc_asl1_core_decode_reference_v1(
}
hash_id = (amduat_hash_id_t)amduat_enc_asl1_core_load_u16_be(bytes.data);
if (hash_id == 0u) {
return false;
}
digest_len = bytes.len - AMDUAT_ENC_ASL1_CORE_REF_HASH_LEN;
hash_desc = amduat_hash_asl1_desc_lookup(hash_id);
if (hash_desc != NULL && hash_desc->digest_len != 0 &&