C# 来自OID的证书签名安全算法
我有这样定义的OIDC# 来自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
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
中找到的字符串相匹配的字符串。似乎我必须创建自己的映射。