Übersicht über die OID

Erweiterbarkeit wird erreicht, indem neue Objektbezeichner (OIDs), neue Codierungstypen und neue DLLs verwendet werden.

CryptoAPI-OIDs können eine der folgenden Formen annehmen:

  • Eine numerische Zeichenfolge wie "1.2.3.500.88"
  • Eine alphanumerische Zeichenfolge wie MyFunction
  • Eine Konstante mit einem Wert, der kleiner oder gleich 0xFFFF. Diese Konstanten werden häufig mit einem Namen verknüpft, wenn eine # define-Anweisung in einer Headerdatei verwendet wird.

Erweiterbare Funktionen akzeptieren OID- und Codierungstypargumente. Diese Funktionen durchsuchen die Systemregistrierung, um eine DLL zu finden, die der OID und den Codierungstypargumenten zugeordnet ist, die an die Funktion übergeben werden. Wenn eine DLL für die OID, eine Kombination aus Codierungstyp und gefunden wird, wird die DLL geladen und ihre Funktion aufgerufen. Die folgende Abbildung zeigt diesen Ablauf für die CryptEncodeObject-Funktion:

oid flow

Dadurch kann die Funktionalität der CryptoAPI bei Bedarf erweitert werden. Die Verwendung dieser Methodik stellt eine Belastung für den Entwickler der neuen Funktionalität dar, den erforderlichen Code für diese Funktionalität zu schreiben. Um beispielsweise eine neue Datenstruktur zu codieren, muss die Funktion in der DLL den gesamten Codierungsprozess ausführen.