为什么X509Certificate2.Import(Filename)无法加载Symlink证书

时间:2018-12-28 07:04:13

标签: c# symlink x509certificate2

我正在尝试导入证书(使用实际证书的符号链接)。

但是我最终遇到了以下异常。

Unspecified error
   at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
   at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)
   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
   at System.Security.Cryptography.X509Certificates.X509Certificate2.Import(String fileName)

我正在做的工作是加载文件的内容,并使用byte []调用Import。

publicCertificate = new X509Certificate2();

// If the File is a Symbolic Link, then read the byte[]
if (new FileInfo(publicFilePath).Attributes.HasFlag(FileAttributes.ReparsePoint))
{
    publicCertificate.Import(File.ReadAllBytes(publicFilePath));
}
else
{
    publicCertificate.Import(publicFilePath); // This Throws Error without the above Condition
}

我查看了此API的文档,似乎没有提及它不适用于Symlink文件。

是否可以提供一些配置给X509Certificates并直接导入证书,而不是手动读取其内容?

0 个答案:

没有答案