我是HSM新手,我使用TCP连接与&#net; safenet ProtectHost EFT' HSM。首先,我试着打电话给HSM_STATUS'通过发送以下消息的方法。
完整邮件(带标题):
0000 0001 0000 0001 0001 1001 1011 1111 0000 0000 0000 0001 0000 0001
此消息可按以下方式分解(按相反顺序):
消息:
0000 0001
是1字节长的命令:' 01' (功能代码) HSM_STATUS方法是' 01')
safenet标头:
0000 0000 0000 0001
是2字节长的邮件:' 1' (功能调用的长度&00; 0000 0001'是' 1')
0001 1001 1011 1111
是2字节长的序列号(任意的 与响应一起返回的请求消息中的值 消息,并且不受ProtectHost EFT解释。
0000 0001
是1字节长的版本号(二进制1,如 手册)
0000 0001
是1字节长的ASCII起始标题字符(Hex 01)
但是HSM没有为此消息提供任何输出。
有谁能告诉我这可能是什么原因?我在形成这条消息时做错了吗?
答案 0 :(得分:0)
即使我遇到了同样的问题并解决了它。它的根本原因是HSM希望用户提供准确的输入长度。
那就是SOH值需要准确地为1个字节长度,其中输入的长度为4个字节。因此,HSM的以下输入将为您提供正确的输出:
String command = "01"// SOH + "01"// version + "00"// arbitary value
+ "00"// arbitary value + "00"// length + "01"// length + "01" ; // function call
希望这会有所帮助:)