Алгоритм безопасности подписи сертификата из OID - PullRequest
1 голос
/ 24 октября 2019

У меня есть OID, определенный следующим образом 1.2.840.113549.1.1.1 [1]

Я хотел бы получить соответствующее значение SecurityAlgorithms для OID.

Я пытался использовать AlgorithmIdentifier класс, который принимает OID, но кажется, что я не могу получить правильную строку, которая определяет алгоритм из него.

Это то, из чего я работаю:

var certificate = new X509Certificate2(data, (string)null, X509KeyStorageFlags.MachineKeySet);

var oid = new Oid(certificate.GetKeyAlgorithm());
var identifier = new AlgorithmIdentifier(oid);

// TODO How to get to the SecurityAlgorithms.RsaSha256 ("RS256") value? 
var todo = ???


Assert.Equal(SecurityAlgorithms.RsaSha256, todo);

[1] https://www.alvestrand.no/objectid/1.2.840.113549.1.1.1.html

1 Ответ

0 голосов
/ 24 октября 2019

Вы также можете использовать класс Oid в пространстве имен System.Security.Cryptography

 Oid s1 = new Oid("1.2.840.113549.1.1.1");
 Console.WriteLine("Oid: {0}", s1.FriendlyName);

Дает выходы как этот

Oid: RSA

...