相关疑难解决方法(0)

将基于ECC的证书从Windows证书存储区导入CngKey

我怎样才能从基于ECC公钥/私钥X509Certificate2的到CngKey的与使用ECDsaCngECDiffieHellmanCng

我目前正在使用RSA 2048位密钥对来签名/加密内容.我这样做是通过从X509Store安全存储的地方提取证书,并使用标记为不可导出的私钥.我想将当前实现转换为使用ECDSA和ECDH,以便我可以使用较小的密钥大小来获得相同的安全性.

我已经使用openssl成功生成了ECC证书:

  1. openssl ecparam -out private.pem -name prime256v1 -genkey
  2. openssl req -new -key private.pem -x509 -nodes -days 365 -out public.cer
  3. openssl pkcs12 -export -in public.cer -inkey private.pem -out export.pfx

我已成功将上面生成的证书安装到证书库中.我可以通过thumbprint检索它们,但私钥和公钥的加密提供程序抛出"Algorithm not supported"异常.相反,我理解我应该使用ECDsaCngECDiffieHellmanCng签名/加密.但是这些都是在处理CngKey.

Bouncy Castle不是一个选项,因为它需要私钥可以导出.

CLR Security将返回一CngKey对via,GetCngPrivateKey但它不能与ECDsa一起使用,因为CLRSecurity返回的密钥是ECDH密钥.此外,CLR安全性并没有给我一种方法来从X509Certificate2签名验证中获取公钥(我甚至没有或者需要签名者的私钥).

有任何想法吗?我在我无计可施......任何帮助会很大赞赏.

.net security x509certificate2 cng ecdsa

15
推荐指数
1
解决办法
2308
查看次数

如何使用 id-ecc 创建自签名证书以用于 ECDSA 签名和验证?

我正在尝试更新本文的代码,以允许我创建(和使用)基于 ECC 的自签名证书,并使用它进行基本的签名和验证( ECDSA)。

  • 有没有办法通过跨平台 .NET Core API 来完成此任务,或者是否需要 Win32 P/Invoke?

根据这篇文章,我需要使用the more standard id-ecc类型

cryptography public-key .net-core .net-4.6 self-signed-certificate

2
推荐指数
1
解决办法
1030
查看次数