我的X509Certificate2应用程序中有一个证书(),我可以枚举所有证书的扩展名。这些扩展之一是证书策略,其OID为2.5.29.32。该扩展名应该只是OID的序列,我需要在其中搜索特定的OID。问题在于此扩展名编码为DER八位位组字符串。如何获得我感兴趣的OID?我是否必须手动解析DER八位位组字符串?我怎样才能做到这一点?
编辑:我将看看Bouncy Castle必须提供什么,但是我想知道.NET框架中是否有现成的解决方案。框架会解析证书和其他DER结构,因此可能内置了DER解码器。
赏金:我为我找到了解决方案,但我正在寻求改进。如果赏金满足以下一项或多项(按相关性排序),则转到其他解决方案:
爆炸:赏金今天到期。如果没有其他人提供答案,它将转到GalacticJello。
我可以使用extension.Format()以下方式获取字符串表示形式:
foreach (X509Extension extension in certificate.Extensions)
{
if(extension.Oid.FriendlyName.Equals("Certificate Policies"))
{
Console.WriteLine(extension.Format(true));
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出看起来像这样:
[1]Certificate Policy:
Policy Identifier=2.16.356.100.2.3
Run Code Online (Sandbox Code Playgroud)
这正是使用该certmgr.msc工具查看证书时出现的内容。这告诉我CCC印度定义的证书类别。例如,这是3类证书。
| 归档时间: |
|
| 查看次数: |
3481 次 |
| 最近记录: |