Отображение идентификаторов объектов на криптографические алгоритмы

Примечание.

Эта статья относится к .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 — это значение атрибута name из <элемента nameEntry>. Перед сопоставлением идентификатора объекта с простым именем должен быть сопоставлен с именем алгоритма с классом.

См. также