Freigeben über


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.

 

Kryptografische Algorithmen für die digitale XML-Signatur