Kryptografische Erweiterungen für die digitale XML-Signatur
Mit CryptXML können Entwickler nativ unterstützte kryptografische Algorithmen erweitern, indem sie eine systemweite kryptografische Erweiterungs-DLL registrieren. Erweiterungs-DLLs erweitern die algorithmen, die von den XML-Elementen SignatureMethod und DigestMethod unterstützt werden. Erweiterungs-DLLs können Algorithmen unterstützen, die zusätzliche Parameter in die digitale XML-Signatur codieren.
Alle Erweiterungen-DLLs müssen die CryptXmlDllGetInterface-Funktion unterstützen, die einen Zeiger auf eine CRYPT_XML_CRYPTOGRAPHIC_INTERFACE-Struktur zurückgibt. Diese Struktur stellt Funktionszeiger für implementierte kryptografische Erweiterungsfunktionen bereit. Die unterstützten Funktionen hängen vom Typ des unterstützten kryptografischen Algorithmus ab und davon, ob der Algorithmus Parameter in die digitale XML-Signatur codieren muss.
Kryptografische Erweiterungsfunktionen umfassen die folgenden Funktionszeiger:
-
Erforderliche Funktionen
-
Digest-Methodenfunktionen
-
Signaturmethodenfunktionen
-
Für Algorithmen mit standardcodierten Parametern
Kryptografische Erweiterungs-DLLs werden systemweit registriert. Administratorrechte sind erforderlich, um eine kryptografische Erweiterungs-DLL zu registrieren.
Alle kryptografischen Erweiterungen von CryptXML werden vom URI-Wert registriert, der im Feld SignatureMethod oder im Algorithmusattribute des DigestMethod-Elements festgelegt ist.
Die Registrierungspfade für die Erweiterungs-DLLs sind wie folgt:
-
32-Bit
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Kryptografie\CryptXML\URI\{uri}
-
64-Bit
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Kryptografie\CryptXML\URI\{uri}
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\Microsoft\Kryptografie\CryptXML\URI\{uri}
Jeder Schlüssel enthält die folgenden Einstellungen.
Name | Typ | Daten |
---|---|---|
DLL |
Erweiterbare Zeichenfolge |
Erforderlich. Der absolute Pfad zur DLL des XML-Kryptografieanbieters. **Hinweis: **Es wird empfohlen, dass sich kryptografische Erweiterungs-DLLs in Verzeichnisse befinden, die nur von Anwendungen mit Administratorrechten geschrieben werden können. LoadLibrary wird verwendet, um die kryptografische Erweiterungs-DLL zu laden. |
Name |
String | Optional. Der diesem URI zugeordnete Anzeigename. |
GroupId |
DWORD | Erforderlich. Der Gruppenbezeichner, der diesem kryptografischen Algorithmus zugeordnet ist. Mögliche Werte sind: CRYPT_XML_GROUP_ID_HASH<strong> = 1 < CRYPT_XML_GROUP_ID_SIGNstrong> = 2 |
CNGAlgid |
String | Erforderlich. Der CNG-Algorithmusname, der an BCrypt- oder NCrypt-Funktionen übergeben werden soll. |
CNGExtraAlgid |
String | Optional. Eine zusätzliche Algorithmuszeichenfolge mit Ausnahme der Zeichenfolge im CNGAlgid-Member, die an die CNG-Funktionen übergeben werden kann. Für die Signaturalgorithmen (CRYPT_XML_GROUP_ID_SIGN) ist dieses Element die Algorithmuszeichenfolge des öffentlichen Schlüssels, die an die CNG-Funktionen übergeben werden soll. Legen Sie für die anderen Werte von GroupId das element pwszCNGExtraAlgid auf die leere Zeichenfolge L"" fest. |
Zugehörige Themen