Erweitern von CryptoAPI
CryptoAPI wurde so konzipiert, dass es leicht erweiterbar ist. Neue Typen und Parameter können von jedem CSP-Autor (Cryptographic Service Provider) definiert werden, damit CryptoAPI den Anforderungen einer Vielzahl von Situationen gerecht wird.
| Erweiterbare Elemente | Kommentar |
|---|---|
| Anbietertypen |
Ein Anbietertyp stellt eine bestimmte Familie oder einen Bestimmten Typ kryptografischer Dienste dar. Es können neue Anbietertypen definiert werden, die jeweils einen bestimmten Spezifischen bedienen. |
| Anbieterparameter |
Anbieterparameter werden mit CPSetProvParam bzw. CPGetProvParamgesendet und empfangen. Neue Anbieterparameter können es ermöglichen, einen CSP auf eine Weise zu konfigurieren, die nicht von den CryptoAPI-Designern beeinflusst wird. |
| Algorithmusbezeichner |
Die Enumerationsfunktionen von CPGetProvParam ermöglichen Anwendungen das dynamische Auflisten von Algorithmusbezeichnern. Neue symmetrische, öffentliche Schlüssel-und Hashalgorithmen können jederzeit definiert werden. |
| Öffentliche/private Schlüsselpaartypen |
Neue Schlüsselpaartypen können zwar nach Bedarf definiert werden, derzeit werden jedoch nur Signatur- und Schlüsselaustauschschlüsselpaare verwendet. |
| Schlüsselblobtypen |
Neue Schlüssel-BLOB-Typen können den flexiblen Austausch von Sitzungsschlüsseln, öffentlichen Schlüsseln und Paaren aus öffentlichen und privaten Schlüsseln mithilfe der Funktionen CPExportKey und CPImportKey ermöglichen. |
| Schlüsselparameter |
Schlüsselparameter werden mit CPSetKeyParam und CPGetKeyParamgesendet und abgerufen. Neue Schlüsselparameter können die Unterstützung für viele verschiedene Arten von Schlüsseln ermöglichen. |
| Hashobjektparameter |
Hashobjektparameter werden mit CPSetHashParam und CPGetHashParamgesendet und abgerufen. Neue Hashobjektparameter können die Unterstützung für viele verschiedene Hashtypenermöglichen. |
| Flagwerte |
Die meisten CryptoAPI-/CryptoSPI-Funktionen verfügen über einen dwFlags-Parameter. Neue dwFlags-Werte können das Verhalten von Funktionen nach Bedarf ändern. |
Erweiterungen für CryptoAPI müssen auf verantwortungsvolle Weise vorgenommen werden. Bevor neue Parameter und Algorithmustypen definiert werden, sollte ein CSP-Entwickler Microsoft Corporation konsultieren, damit Folgendes zu beachten ist:
- Allgemeine CryptoAPI-Erweiterungen können identifiziert und in der Wincrypt.h-Standarddatei platziert werden.
- Namespacekonflikte können vermieden werden.
- Es kann bestimmt werden, ob die Erweiterung erforderlich ist oder ob ein bestimmter Vorgang mithilfe der aktuellen API erreicht werden kann.
Hinweis
Damit ein CSP mit Anwendungen kompatibel ist, die für den Microsoft Base Cryptographic Provider entwickelt wurden, muss er alle vorangehenden Elemente unterstützen, wie unter Base Cryptography Functions und Cryptography Service Provider Functionsbeschrieben.