Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自OID的证书签名安全算法_C#_.net Core 3.0_Asp.net Core 3.0 - Fatal编程技术网

C# 来自OID的证书签名安全算法

C# 来自OID的证书签名安全算法,c#,.net-core-3.0,asp.net-core-3.0,C#,.net Core 3.0,Asp.net Core 3.0,我有这样定义的OID1.2.840.113549.1.1.1[1] 我想为OID获取相应的SecurityAlgorithms值 我曾经尝试过使用AlgorithmIdentifier类,该类接受OID,但似乎无法从中获得定义算法的正确字符串 这就是我的工作: var certificate = new X509Certificate2(data, (string)null, X509KeyStorageFlags.MachineKeySet); var oid = new Oid(certi

我有这样定义的OID
1.2.840.113549.1.1.1
[1]

我想为OID获取相应的
SecurityAlgorithms

我曾经尝试过使用
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]

您还可以使用命名空间
System.Security.Cryptography
下的
Oid

 Oid s1 = new Oid("1.2.840.113549.1.1.1");
 Console.WriteLine("Oid: {0}", s1.FriendlyName);
给出如下输出

Oid:RSA


您还可以使用命名空间
System.Security.Cryptography
下的
Oid

 Oid s1 = new Oid("1.2.840.113549.1.1.1");
 Console.WriteLine("Oid: {0}", s1.FriendlyName);
给出如下输出

Oid:RSA


有趣的是,这缺少了“256”位部分。我以为我的名字也很友好,但似乎不是:/事实上,如果你查一下规范,友好的名字被正式命名为RSA Encryption我相信你是正确的,但在我的问题中,我试图解析一个与
SecurityAlgorithms
中找到的字符串相匹配的字符串。似乎我必须创建自己的映射。有趣的是,这缺少了“256”位部分。我以为我的名字也很友好,但似乎不是:/事实上,如果你查一下规范,友好的名字被正式命名为RSA Encryption我相信你是正确的,但在我的问题中,我试图解析一个与
SecurityAlgorithms
中找到的字符串相匹配的字符串。似乎我必须创建自己的映射。