【问题标题】:Custom extensions in System.Security.Cryptography.X509CertificatesSystem.Security.Cryptography.X509Certificates 中的自定义扩展
【发布时间】:2010-06-29 10:46:10
【问题描述】:

.NET 类 System.Security.Cryptography.X509Certificates.X509Extension 不支持我要解析的某些 X.509 扩展(主题替代名称、名称约束)。此类的 MSDN 页面声明“可以在 CryptoConfig 文件中注册自定义扩展”(链接),但 CryptoConfig 类的描述仅讨论设置自定义加密算法实现——如何注册自定义 X. 509 扩展。

有人知道怎么做吗?

【问题讨论】:

    标签: .net x509 system.security


    【解决方案1】:

    如果您没有找到内置类的解决方案,请查看我们的PKI components of SecureBlackbox。它们使您可以轻松管理自定义扩展。

    【讨论】:

    • 谢谢。我没有找到一个干净的解决方案,但事实证明 X509Certificate2.Extensions 字段将枚举无法识别的扩展作为裸 X509Extension 实例——这些在 RawData 字段中公开了 DER 编码的 ASN.1 数据(可以手动解析。)
    【解决方案2】:
    X509Certificate2 cert = new System.Security.Cryptography.X509Certificates.X509Certificate2(certByte);
    string fn = cert.Extensions[0].Oid.FriendlyName;
    string oid = cert.Extensions[0].Oid.Value;
    string val = cert.Extensions[0].Format(true);
    

    【讨论】:

    • 你能开发更多吗?
    • “更多”是什么意思?有一个声明,.net 类枚举了 DER 编码的 ASN.1 数据,并且没有“干净”的方式来解码为字符串。实际上,您可以从字节数组、文件等创建 X509Certificate2 对象,并在 Extensions 数组项上使用 Format(bool) 方法提取解码的字符串。您应该首先检查 Extensions 数组是否有任何项目等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    相关资源
    最近更新 更多