PKCS#11 - 创建 ECDSA 密钥



考虑我有具有以下参数的示例示例ECDSA公钥:

Point Value
03 42
00 04  C9 A3 63 92 24 9C 7C 3B
CD 6B 3D 89 F6 16 13 21  B9 AC 99 42 60 C7 4A E2
7D 4A 03 80 BE 80 47 C1  3D FA 08 70 F9 8F 9F 65
BB 81 A5 5B 7C 6B 21 ED  7F 18 82 D2 07 7A 89 5E
56 10 F6 EC AC 39 14 B5

secp256k1
30 81 A2 02 01 01 30 2C  06 07 2A 86 48 CE 3D 01
01 02 21 00 FF FF FF FF  FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FE
FF FF FC 2F 30 06 04 01  00 04 01 07 04 41 04 79
BE 66 7E F9 DC BB AC 55  A0 62 95 CE 87 0B 07 02
9B FC DB 2D CE 28 D9 59  F2 81 5B 16 F8 17 98 48
3A DA 77 26 A3 C4 65 5D  A4 FB FC 0E 11 08 A8 FD
17 B4 48 A6 85 54 19 9C  47 D0 8F FB 10 D4 B8 02
21 00 FF FF FF FF FF FF  FF FF FF FF FF FF FF FF
FF FE BA AE DC E6 AF 48  A0 3B BF D2 5E 8C D0 36
41 41 02 01 01 

这些值是使用 openssl 直接提取私钥的,我相信是 ASN.1 编码的。

在 HSM 上创建 ECDSA 公钥时,我应该在CKA_EC_POINTCKA_EC_PARAMS中输入哪些值?如果我将这些值直接放在属性上是不起作用的(我无法验证签名(。

你应该先解码ASN.1。然后你就会知道

03 42 00 04 : 标题

C9 A3 ~ 47 C1 : 32 字节 => X 坐标

3D FA ~ 14 B5 : 32 字节 => Y 坐标

公钥(X, Y(

79 BE ~ 17 98 : 32 字节 => r

48 3A ~ D4 B8 : 32 字节 => s

签名 (r, s(

最新更新