AES128 GCM模式下,当输入数据长度小于0x80(数据类型int16)时,计算的MAC值跟openssl、各个开源网页上计算结果一致。一旦数据长度超过比如长度0x90,MAC值就对不上。这是为什么?查看各个值没发现溢出的情况。AES的长度寄存器无法查看,但通过中间变量查看没有异常,对比输入数据没有溢出、突变的情况。
当数据长度超过0x80时,长度编码错误或数据分块处理异常可能导致MAC不一致。
当数据长度超过单次处理能力时,需分块调用AES模块,应该需要查看AES长度寄存器的是否配置正确。