我目前正在使用TI提供的示例程序。 使用AES-GCM-256时,我在示例项目中遇到了一个可能的问题:
AES_GCM_加密
AES_GCM_解密
使用公共测试向量时,AES-GCM-256程序将失败。 这是由以下调用中给出的参数引起的,该调用是AESGCMY0GEet()的一部分:
//
//下一步,执行GHAASH操作。
//
AESGHASH(ui32Keysize, pui32HashSubkey, pui32IV, ui32IVLength, pui32Y0);
根据我的研究,子项H的长度始终为128位,而在这里,它可能为192位或256位(在AES-GCM-256的情况下)。 因此,我认为应该将呼叫改为:
AESGHASH (AES_CFG_KEY_SIZE _128位,pui32HashSubkey,pui32IV,ui32IVLength,pui32Y0);
使用此修改,示例项目将传递所有公共测试向量。
能否验证此潜在问题?