触发输入:CRYPT_EAL_KdfIsValidAlgId(CRYPT_KDF_HKDF) 预期(源码依据):HKDF 是有效算法,应返回 true(对照 CRYPT_EAL_CipherIsValidAlgId 的实现:eal_cipher.c:378-382 传 &method 非 NULL) 实际:返回 false。原因:eal_kdf.c:54 return EAL_KdfFindMethod(id, NULL) == CRYPT_SUCCESS; 传 NULL 给 EAL_KdfFindMethod,而 eal_kdf_method.c:79-80 if (method == NULL) return CRYPT_NULL_INPUT; 导致恒返回非 SUCCESS 影响:功能缺陷。CRYPT_EAL_KdfIsValidAlgId 对任何算法 ID 都返回 false,无法正确判断 KDF 算法有效性。调用方若依赖此接口做前置校验,会错误拒绝所有 KDF 算法。 测试用例: ` void SDV_CRYPTO_EAL_KDF_API_ERR_TC001(void) { TestMemInit(); uint8_t key[16] = {0};
return EAL_KdfFindMethod(id, NULL) == CRYPT_SUCCESS;
if (method == NULL) return CRYPT_NULL_INPUT;
// [BUG] CRYPT_EAL_KdfIsValidAlgId passes NULL to EAL_KdfFindMethod, always returns false. ASSERT_TRUE(CRYPT_EAL_KdfIsValidAlgId(CRYPT_KDF_HKDF) == false); ASSERT_TRUE(CRYPT_EAL_KdfIsValidAlgId(CRYPT_KDF_MAX) == false);
EXIT: return; } `
software
main分支
建议:参考 eal_cipher.c:378-382 的写法,改为 `EAL_KdfMethod method = {0}; return EAL_KdfFindMethod(id, &method) == CRYPT_SUCCESS;
Checklist
Bug Description
触发输入:CRYPT_EAL_KdfIsValidAlgId(CRYPT_KDF_HKDF)
预期(源码依据):HKDF 是有效算法,应返回 true(对照 CRYPT_EAL_CipherIsValidAlgId 的实现:eal_cipher.c:378-382 传 &method 非 NULL)
实际:返回 false。原因:eal_kdf.c:54
return EAL_KdfFindMethod(id, NULL) == CRYPT_SUCCESS;传 NULL 给 EAL_KdfFindMethod,而 eal_kdf_method.c:79-80if (method == NULL) return CRYPT_NULL_INPUT;导致恒返回非 SUCCESS影响:功能缺陷。CRYPT_EAL_KdfIsValidAlgId 对任何算法 ID 都返回 false,无法正确判断 KDF 算法有效性。调用方若依赖此接口做前置校验,会错误拒绝所有 KDF 算法。
测试用例:
`
void SDV_CRYPTO_EAL_KDF_API_ERR_TC001(void)
{
TestMemInit();
uint8_t key[16] = {0};
EXIT:
return;
}
`
Environment Information
software
Version Information
main分支
Additional Information
建议:参考 eal_cipher.c:378-382 的写法,改为 `EAL_KdfMethod method = {0}; return EAL_KdfFindMethod(id, &method) == CRYPT_SUCCESS;