c# - 如何找到具有公钥的配对 ECDSA 私钥 PKCS11
问题描述
我有一个应用程序可以与上面有 RSA 证书的智能卡一起使用由于某种原因,制造商没有在它们上填写 CKA_LABEL,所以我为 RSA 设置了私钥对象,如下所示:
RsaKeyParameters rsaPubKeyParams = (RsaKeyParameters)pubKeyParams;
privKeySearchTemplate.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_KEY_TYPE, CKK.CKK_RSA));
privKeySearchTemplate.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_MODULUS, rsaPubKeyParams.Modulus.ToByteArrayUnsigned()));
privKeySearchTemplate.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_PUBLIC_EXPONENT, rsaPubKeyParams.Exponent.ToByteArrayUnsigned()));
现在我必须支持具有 ECDSA 证书的智能卡,也没有 CKA_LABEL 所以问题是我如何找到像 RSA 这样的私钥?
注意:所有智能卡都有 2 个随机顺序的证书(身份验证、签名),所以我不能只取第一个或最后一个找到的对象:
ECPublicKeyParameters ecdsaPubKeyParams = (ECPublicKeyParameters)pubKeyParams;
privKeySearchTemplate.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_KEY_TYPE, CKK.CKK_ECDSA));
-----需要更多参数来识别所需的私钥
解决方案
如果是同一条曲线,则不能。一种解决方法是测试签名/验证,然后如果匹配,则分配 CLA_LABEL 以进行下次优化。
推荐阅读
- python - 通过python生成具有幂律度分布的无标度网络
- python - Jupyter 笔记本中是否有设置可以使 Tkinter GUI 工作?
- python - 连接两个列表而不重复元素
- java - Junit测试和调试
- r - 在R中的数据框中查找所有唯一字符
- python - 使用 scipy 进行卡方计算
- html - Hugo 列表页面无法正确呈现主题
- reactjs - React Router v5.1.2 Public & Protected Authenticated & Role Based routes
- javascript - scrollTo 不是 Internet Explorer 11 中定义的方法(用于将元素滚动到视图中间)
- r - 如何在 R 中重新组合、计算平均值并生成新的数据框?