gpt4 book ai didi

c# - 如何解析 X509 ssl 证书自定义扩展 "certificate policy"?

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:04 28 4
gpt4 key购买 nike

我正在尝试解析 X509 证书自定义扩展。 (我已经创建了一个自签名证书,其中包含“证书策略”类型的自定义扩展)。我需要解析这个“证书策略”及其值。以编程方式,我可以获得自定义扩展的名称,即“证书策略”,但我无法获取其值。我使用的代码如下:

    public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
var cert = (X509Certificate2)certificate;
foreach (X509Extension ext in cert.Extensions)
{
// AsnEncodedData x = new AsnEncodedData(ext.Oid, ext.RawData);
MessageBox.Show("Name: " + ext.Oid.FriendlyName + "\nValue: " + ext.Oid.Value);

}

return true;
}

此代码仅显示“证书策略”,但我需要如下所示的策略的解析元素:

证书策略元素下的值:

[1]Certificate Policy:
Policy Identifier=1.2.3.4
[2]Certificate Policy:
Policy Identifier=1.5.6.7.8
[3]Certificate Policy:
Policy Identifier=1.3.5.8
[3,1]Policy Qualifier Info:
Policy Qualifier Id=CPS
Qualifier:
Tarzano
[3,2]Policy Qualifier Info:
Policy Qualifier Id=User Notice
Qualifier:
Notice Reference:
Organization=Tarzano Ltd
Notice Number=1, 2, 3, 4
Notice Text=Buraya mesaj yazilabilir

感谢您的帮助!

最佳答案

首先,您需要一个 ASN.1 解析器并使用 X.509 ASN.1 模块将扩展值解码为一组策略。我编写了一个托管类,它从我的 PowerShell PKI 模块中的 .NEt 库扩展了现有的 X.509 扩展。您可以从 PSPKI 项目站点获取托管 .dll 或项目源:http://pspki.codeplex.com/了解如何解码此扩展(我正在使用我自己的 ASN.1 解析器,因此此处的代码片段没有多大意义)如果您想拥有自己的东西(并且不依赖第 3 方程序集)。

有一个 PKI.Core.dll(也附有源代码)。 X.509 扩展类在 System.Security.Cryptography.X509Certificates 命名空间中定义。以及图书馆中此类的文档:http://pkix2.sysadmins.lv/library/html/T_System_Security_Cryptography_X509Certificates_X509CertificatePoliciesExtension.htm扩展的创建方式与 .NET native 类似(它们继承自 X509Extension 类),但我的扩展是完全 native 的(不使用 CryptoAPI c++ 函数,就像在 .NET 中一样)。

关于c# - 如何解析 X509 ssl 证书自定义扩展 "certificate policy"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26455623/

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