Übersicht über OID
Die Erweiterbarkeit wird durch die Bereitstellung von neuen Objektbezeichnern (OIDs), neuen Codierungstypen und neuen DLLs erreicht.
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 ist. Diese Konstanten werden häufig durch die Verwendung einer #define-Anweisung in einer Headerdatei einem Namen zugeordnet.
Erweiterbare Funktionen akzeptieren OID- und Codierungstypargumente. Diese Funktionen durchsuchen die Systemregistrierung, um eine DLL zu finden, die den argumentierenden OID- und Codierungstyps zugeordnet ist, die an die Funktion übergeben werden. Wenn eine DLL für die OID gefunden wird, wird eine Codierungstypkombination gefunden, die DLL geladen und ihre Funktion aufgerufen. Die folgende Abbildung zeigt diesen Flow für die CryptEncodeObject-Funktion :
Dadurch kann die Funktionalität der CryptoAPI bei Bedarf erweitert werden. Die Verwendung dieser Methodik belastet den Entwickler der neuen Funktionalität, um den gesamten 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.