我正在尝试使用私钥创建X509Certificate2。要获取私钥,我要提供以下代码:
using System;
using System.Security.Cryptography;
namespace whats_new
{
public static class RSATest
{
public static void Run(string keyFile)
{
using var rsa = RSA.Create();
byte[] keyBytes = System.IO.File.ReadAllBytes(keyFile);
rsa.ImportRSAPrivateKey(keyBytes, out int bytesRead);
Console.WriteLine($"Read {bytesRead} bytes, {keyBytes.Length - bytesRead} extra byte(s) in file.");
RSAParameters rsaParameters = rsa.ExportParameters(true);
Console.WriteLine(BitConverter.ToString(rsaParameters.D));
}
}
}
我从Microsoft文档获得此代码:https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#cryptographic-key-importexport
但是在这一行中出现错误“ ASN1损坏的数据”:
rsa.ImportRSAPrivateKey(keyBytes, out int bytesRead);
我真正想做的是使用crt和key创建一个X509Certificate2证书,因为在我的gRPC服务中,我需要该证书同时具有。这是因为我已经使用OpenSsl创建了证书,所以我为证书生成了一个文件,为密钥生成了另一个文件。
谢谢。