2

我正在使用 SafeNet HSM 并尝试执行命令 EE9001 以生成 RSA 密钥对:

Request to HSM:
    \01\01\22\00\00\13\EE\90\01\12\17\18\46\44\24\58\73\00\00\02\08\00\01\00\01

在哪里,

\01\01\22\00 是 Header
\00\13 是 Message Length
\EE\90\01 是 Function Code
\12\17\18\46\44\24\58\73 是 Command Identifier
\00 是Function Modifier
\00\02 是 KeyType
\08\00是模数大小
\01\00\01是公共指数

Response from HSM:
     01 01 22 00 00 0C EE 90 01 12 17 18 46 44 24 58 73 03

最后 2 个字符代表错误代码,即 03,这意味着:Incorrect message length。似乎错误代码缺少前导,因为请求命令中的十六进制长度是正确的。

提示:在文档中它写道:
1. 确保模数与指定的公共指数兼容。(我不知道他们在谈论什么兼容性!)

  1. 'Public Exponent' 和 'User Data' 的 Var 长度可能很难将两者分开(以找出它们的实际长度)。

以下是手册中的命令('h' 代表十六进制值):

在此处输入图像描述

我已经执行了另一个命令'9B'来生成 CVV,并且成功执行。但是在该命令中没有可变长度请求内容。

非常感谢您的帮助!

4

1 回答 1

1

终于我明白了!我的一位朋友帮助我解决了这个问题。

要求:

\01\01\22\00\00\15\EE\90\01\12\17\18\46\44\24\58\73\00\00\02\01\00\03\01\00\01\00

在哪里,

\01\01\22\00是 Header
\00\15是 Message length
\EE\90\01是 Function Code
\12\17\18\46\44\24\58\73是 Command Identifier
\00 是Function Modifier
\00\02是 KeyType
\01\00是 Modulus size
03\01\00\01是 Public Exponent (这里 03 代表 Var 字段的长度)
00\是 User Data

响应成功!

于 2016-01-07T13:00:15.660 回答