如何根据算法URI确定要创建的对象类

时间:2012-07-18 14:09:10

标签: xml cryptography uri canonicalization xml-dsig

由于强加给我的规范,我编写了自己的C#代码来签署XML,并验证签名的XML。就像SignedXml类一样,但这种方式我更灵活,例如是否使用XML名称空间前缀(似乎SignedXml不喜欢签名XML中的名称空间前缀,但我的XML规范说我必须拥有它们),并且在签名算法中(规范现在说sha256)。

一切似乎都有效,但困扰我的“不完美”是 - 例如 - 在验证xml时,我需要使用特定类别的对象转换或验证数据,而我所要做的就是XML中指定的算法URI。一个例子是规范化:如果XML说"http://www.w3.org/2001/10/xml-exc-c14n#"知道我可以使用XmlDsigExcC14NTransform类,但我的问题是:有没有办法从这样的URI(或任何URI)到特定的对象类?

我现在使用我已知的URI列表和它们引用的对象类(我认为)(或者将它与已知对象类列表的Algorithm属性进行比较,例如XmlDsigExcC14NTransform.Algorithm),这是不是我真正喜欢的。

1 个答案:

答案 0 :(得分:1)

这没有详细记录,但System.Security.Cryptography.CryptoConfig.CreateFromName(string)将返回与URI关联的转换。