将对象标识符映射到加密算法

注释

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

数字签名可确保数据从一个程序发送到另一个程序时不会被篡改。 通常,数字签名是通过向要签名的数据哈希应用数学函数来计算的。 设置要签名的哈希值的格式时,某些数字签名算法会将 ASN.1 对象标识符(OID)作为格式设置作的一部分追加。 OID 标识用于计算哈希的算法。 可以将算法映射到对象标识符,以扩展加密机制以使用自定义算法。 以下示例演示如何将对象标识符映射到新的哈希算法。

<configuration>
   <mscorlib>
      <cryptographySettings>
         <cryptoNameMapping>
            <cryptoClasses>
               <cryptoClass MyNewHash="MyNewHashClass, MyAssembly
                  Culture='en', PublicKeyToken=a5d015c7d5a0b012,
                  Version=1.0.0.0"/>
            </cryptoClasses>
            <nameEntry name="NewHash" class="MyNewHash"/>
         </cryptoNameMapping>
         <oidMap>
            <oidEntry OID="1.3.14.33.42.46"  name="NewHash"/>
         </oidMap>
      </cryptographySettings>
   </mscorlib>
</configuration>

<oidEntry> 元素包含两个属性。 OID 属性是对象标识符号。 name 属性是 < 属性的值。 必须先将算法名称映射到类,然后才能将对象标识符映射到简单名称。

另请参阅