数据排查

it2025-01-17  3

之前遇到一个问题,esam调试遇到的。app给esam下发指令,esam返回加密数据给app,app把数据发给加密机解密。

或者app请求加密机返回密文,app把密文发给esam芯片解密,芯片返回明文数据。流程本身没问题,偏偏遇到一个奇怪问题。加密机返回来的数据esam芯片可以解密,但是芯片加密的密文发给加密机却解不开,一定是数据出问题了。

首先排查esam芯片和加密机,将之前测试好的esam芯片拿过来测试问题依旧。将该芯片放在其他正常设备上又好了。这说明芯片和加密机一定是没问题的。

那么结论是芯片返回的数据一定是错的。

然后这个时候方向却错了,先入为主的以为是芯片返回的错误是由于芯片在返回给app的时候发生了改变导致数据错误。因为芯片返回的数据先给了驱动然后才由so发给app。但是芯片发出来的数据都是带校验位的,数据校验没问题。那么也就是说芯片发出来的数据就是app拿到的数据。app拿到的数据和发给加密机的数据也完全一致。

实际上,这个时候,已经可以判断出问题是发生在下发给芯片的指令数据是错误的了,但是固执导致了失败。面对一份之前多次看过的文档,竟然没有怀疑。。。

先确定芯片返回数据错误,又因为芯片返回数据校验正常,必然能推出下发给芯片指令数据错误这一结论。进而立刻怀疑文档错误,这本来是很正常的逻辑。就因为这份文档被很多人看过就没怀疑,实在不应该。应该对一切东西保持怀疑太多,一切按照逻辑排查。

最新回复(0)