【发布时间】:2020-04-05 02:59:13
【问题描述】:
HSM Payshield 9000 3.4C 固件中的 M6 命令有一个奇怪的问题。对于某些消息,我收到错误代码 15 - 即使消息长度是 8 个字节的乘积。
在通话期间,我发送:
1. 模式标志:0
2.输入格式标志:0
3. MAC 大小:1
4. MAC 算法:3
5. 填充方法:0(我也用 0、1、3 进行了测试,但为了简化,让我们专注于填充模式 0。为了测试,我准备了字节数组,其大小是 8 的乘积,因此不需要填充) .
6.密钥类型:008
我创建了一个简单的测试,在循环中我正在构建大小从 8 到 1000 的“1”字节数组和 mac 这样的数组。每个数组的长度是 8 的乘积 (8,16,24, ...)
对于某些数组长度,我收到错误代码 15 输入数据无效(格式无效、字符无效或提供的数据不足)。您可以在下面找到我收到此类错误的数组大小范围。 ( 表示我收到了长度从 160(包括)到 248(包括)的数组的错误,它们是 8 的倍数(160、168、176、....248)
对于该范围内的其他所有其他尺寸(例如,从 256-408 为 8 的倍数,我收到正确的响应并计算出 MAC
对于长度为 160 的字节数组(返回错误),我在此测试中发送的示例命令是(十六进制格式):
00d33f3f3f3f4d3630303133303030385544324241464236353835433642303735334334363645393434424338423837353030613031313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131
返回正确响应的示例命令(对于 152 大小的数组):
00cb3f3f3f3f4d363030313330303038554432424146423635383543364230373533433436364539343442433842383735303039383131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131
这种行为的原因是什么?
【问题讨论】:
标签: hsm