当前位置: 首页 > 知识库问答 >
问题:

使用带有ECC公钥的X509Certificate2加载证书

益炜
2023-03-14

这是个新手问题。我正在尝试使用以下方法加载.der证书:

X509Certificate2 cert = new X509Certificate2(@"c:\temp\mycert.der");
RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PublicKey.Key

有效吗?我如何在代码中得到它?

共有1个答案

束雅达
2023-03-14

不支持.NET 4.6.1之前的ECDSA键。由于遗留/兼容性的原因(例如您正在转换为RSACryptoServiceProvider的示例),PublicKey.Key属性和X509Certificate2.PrivateKey属性仍然无法ECDSA。取而代之的是一个新的、类型更安全的路径:

using (ECDsa ecdsa = cert.GetECDsaPublicKey())
{
    if (ecdsa != null)
    {
        // I had to do something with it in this example...
        bool verified = ecdsa.VerifyData(data, signature, HashAlgorithmName.SHA256);
    }
}
 类似资料:
  • 我使用secp192r1曲线生成了ECC公钥和私钥。公共密钥数组长度为75,私有密钥数组长度125。为什么私钥比公钥长?为什么私钥的长度不是公钥的两倍?为什么由于secp192r1私钥不是192位=24字节?

  • 我正在使用: Windows 10(版本1709,OS版本17025.1000) .NET framework 4.7 VS 2017(版本:15.3.5) 以下是我所做的: 所以我不确定如何进一步使用ECC X509证书的公钥来加密数据。

  • 我正在处理一些ECC加密问题。 目标是用C或bash编写程序,它将以由128个十六进制字符组成的散列作为输入(例如:8A9A35145C4EA5260DF9972C804FE2D3F9F3D7A2AC01A6BEB21C82BB30957B3952273AC9166B90C120737A925780F84A1D2359E7AA05201C674D29746FCA07),并将从

  • 我有一个。p12我的应用程序需要的证书文件。Sys admin不希望将此文件存储在系统中。他们希望将文件的价值放入Azure机密中。作为一个。pem文件。 使用以下代码,我可以加载P12文件。var certHasPrivate ateKey为真,我的代码运行良好。 但是,如果我加载此导出的基于文本的版本,则var certHasPrivate ateKey为false,它不会加载私钥。 如何加载

  • 通常情况下,访问远程服务器上的 Git 仓库要受到限制。你可能不希望任何人都能读取文件,或者至少不能改动文件吧。在这种情况下,进行有效的认证就是非常必要地。 你可能已经通过你所使用的浏览器了解了 “HTTPS” 协议,尽管它使用起来很简单,但是很多系统管理员还是会出于各种原因去选择使用更为普遍的 “SSH” 协议。在这种协议之下,当涉及到身份验证时,你就很可能需要 “SSH公钥”。 对于这种类型的