如何使用IAIK PKCS#11 Wrapper执行ECDH密钥协商
IAIK PKCS#11 Wrapper ECDH密钥协商密钥使用说明
所需密钥类型
IAIK PKCS#11 Wrapper 没有单独定义ECDH专属密钥类,执行ECDH密钥协商直接使用通用椭圆曲线密钥类即可:
- 本方参与协商的私钥为
iaik.pkcs.pkcs11.objects.ECPrivateKey类型 - 对方提供的协商公钥为
iaik.pkcs.pkcs11.objects.ECPublicKey类型
ECDSA密钥复用规则
可以直接使用ECDSA密钥对象执行ECDH协商,仅需满足密钥用途属性要求:
- 私钥生成/导入时,
keyDerive属性需设置为true,允许该私钥参与密钥派生操作 - 对应公钥的属性配置需允许参与密钥协商操作
如果密钥生成时仅配置了签名用途(仅sign属性为true),则无法直接用于ECDH,需要重新生成符合用途要求的密钥。
DH密钥对象不可用
不能使用普通DH密钥对象参与ECDH协商,普通DH基于大整数有限域实现,和ECDH的椭圆曲线参数结构完全不兼容,混用会直接抛出参数不匹配异常。
配套配置要求
使用EcDH1KeyDerivationParameters参数类时,需要正确传入对方的EC公钥实例,同时根据业务要求指定密钥派生函数、共享信息等派生参数,即可完成完整的ECDH密钥协商流程。
内容的提问来源于stack exchange,提问作者Fan Zhang
相关产品推荐
相关产品推荐

