Mapping di identificatori di oggetti ad algoritmi di crittografia
Aggiornamento: novembre 2007
Le firme digitali assicurano l'integrità dei dati durante il trasferimento da un programma a un altro. In genere la firma digitale viene calcolata applicando una funzione matematica al valore hash dei dati da firmare. Durante la formattazione di un valore hash da firmare, alcuni algoritmi di firma digitale aggiungono l'identificatore di oggetto (OID, Object Identifier) ASN.1 in coda al valore. L'OID identifica l'algoritmo utilizzato per calcolare il valore hash. È possibile mappare algoritmi agli identificatori di oggetto per estendere il meccanismo di crittografia in modo che utilizzi algoritmi personalizzati. Nell'esempio riportato di seguito viene illustrato come mappare un identificatore di oggetto a un nuovo algoritmo hash.
<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>
L'elemento <oidEntry> contiene due attributi. L'attributo OID è il numero dell'identificatore di oggetto. L'attributo name è il valore dell'attributo name dall'elemento <nameEntry>. Prima di mappare un identificatore di oggetto a un nome semplice, è necessario che il nome di un algoritmo sia mappato a una classe.