如何获取与 X509Certificate2 关联的 OID 的 FirendlyName?

How to get FirendlyName of OIDs associated with X509Certificate2?

有没有办法获得有效 OID 的友好名称

比如我有OID1.2.840.113549.1.1,代表SHA1 with RSA signature。如何获得 X509Certificate2.SignatureAlgorithm.FriendlyName return?

的友好名称

我尝试创建 var oid = new Oid("1.2.840.113549.1.1"),并查看 oid.FriendlyName 属性,它是 null

并非所有 OID 都映射了 FriendlyName 值。

1.2.840.113549.1.1 是 PKCS#1 arc,但它从来没有被直接使用,只是作为一个命名空间;所以 Windows 显然不觉得为它提供一个 FriendlyName 值是有用的。

sha1WithRsaEncryption 是 1.2.840.113549.1.1.5(或“{ pkcs-1 5 }”,如果您愿意),new Oid("1.2.840.113549.1.1.5").FriendlyName 将 return "sha1RSA" 在 .NET Framework 上和 .NET 核心。

对于“大多数”OID,友好的名称解析是通过调用系统加密库来完成的,但是 .NET Core hard codes that one,确保它在所有操作系统上映射相同。