Mapowanie identyfikatorów obiektów na algorytmy kryptografii
Uwaga
Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.
Podpisy cyfrowe zapewniają, że dane nie są modyfikowane podczas ich wysyłania z jednego programu do innego. Zazwyczaj podpis cyfrowy jest obliczany przez zastosowanie funkcji matematycznej do skrótu danych do podpisania. Podczas formatowania wartości skrótu do podpisania niektóre algorytmy podpisu cyfrowego dołączają identyfikator obiektu ASN.1 (OID) w ramach operacji formatowania. Identyfikator OID identyfikuje algorytm, który został użyty do obliczenia skrótu. Algorytmy można mapować na identyfikatory obiektów, aby rozszerzyć mechanizm kryptografii w celu używania niestandardowych algorytmów. W poniższym przykładzie pokazano, jak zamapować identyfikator obiektu na nowy algorytm skrótu.
<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>
Element < oidEntry> zawiera dwa atrybuty. Atrybut OID jest numerem identyfikatora obiektu. Atrybut name jest wartością atrybutu name z <elementu nameEntry>. Aby można było zamapować identyfikator obiektu na prostą nazwę, musi istnieć mapowanie z nazwy algorytmu na klasę.