有没有办法获取有效 OID 的友好名称?
例如,我有 OID1.2.840.113549.1.1
,它代表SHA1 with RSA signature
。如何获得X509Certificate2.SignatureAlgorithm.FriendlyName
返回的友好名称?
我试图创建var oid = new Oid("1.2.840.113549.1.1")
,并查看oid.FriendlyName
属性,它是null
。
并非所有 OID 都映射了友好名称值。
1.2.840.113549.1.1 是 PKCS#1 弧,但它从不直接使用,只是作为命名空间使用;因此 Windows 显然认为为其提供 FriendlyName 值没有用。
sha1WithRsaEncryption 是 1.2.840.113549.1.1.5(或"{ pkcs-1 5 }",如果你愿意),new Oid("1.2.840.113549.1.1.5").FriendlyName
将在 .NET Framework 和 .NET Core 上返回"sha1RSA"
。
对于"大多数"OID,友好名称解析是通过调用系统加密库来完成的,但 .NET Core 对该加密库进行硬编码,确保它在所有操作系统上的映射相同。