gpt4 book ai didi

.net-3.5 - .NET 3.5 - 导出 X509Certificate2 PublicKey - 找不到请求的对象

转载 作者:行者123 更新时间:2023-12-03 20:22:45 25 4
gpt4 key购买 nike

我正在尝试导出 X509Certificate2 的公钥证书使用以下代码:

X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certificateStore.Open(OpenFlags.ReadOnly);
var exportCertificates = certificateStore.Certificates.Find(X509FindType.FindByThumbprint, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", false);
certificateStore.Close();

// Get Base64 string of the public key
byte[] arr = exportCertificates[0].PublicKey.EncodedKeyValue.RawData;
string b64ExportCertificate = Convert.ToBase64String(arr);

// Import the certificate
X509Certificate2 importCertificate = new X509Certificate2(Convert.FromBase64String(b64ExportCertificate));

当我在最后一行执行时抛出以下异常:
System.Security.Cryptography.CryptographicException
Cannot find the requested object

有谁知道如何解决这个问题?

注意:上面的代码示例是“功能性的”,但它是伪代码。实际上,我在一个应用程序中导出证书,然后出于数字签名的目的将证书传输到另一个应用程序(因此只发送公钥)

最佳答案

回答我自己的问题:

问题在于以下行(来自上面的示例):

byte[] arr = exportCertificates[0].PublicKey.EncodedKeyValue.RawData;

这应该是:
byte[] arr = exportCertificates[0].RawData;

这可能看起来违反直觉,因为它“似乎”包括整个证书而不仅仅是公钥。然而,情况并非如此,此更新可根据需要进行。

关于.net-3.5 - .NET 3.5 - 导出 X509Certificate2 PublicKey - 找不到请求的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com