2017-04-21 37 views
0

有沒有辦法獲得友好名稱有效的OID?如何獲取與X509Certificate2相關的OID的FirendlyName?

例如,我有OID 1.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

回答

1

並非所有的OID都映射了FriendlyName值。

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核心返回"sha1RSA"

對於「大多數」OID,友好名稱解析是通過調用系統加密庫來完成的,但.NET Core hard codes that one確保它在所有操作系統上映射相同。