Partager via


Extensions de chiffrement de signature numérique XML

CryptXML permet aux développeurs d’étendre les algorithmes de chiffrement pris en charge en mode natif en inscrivant une DLL d’extension de chiffrement à l’échelle du système. Les DLL d’extension étendent les algorithmes pris en charge par les éléments XML SignatureMethod et DigestMethod . Les DLL d’extension peuvent prendre en charge des algorithmes qui encodent des paramètres supplémentaires dans la signature numérique XML.

Toutes les DLL d’extensions doivent prendre en charge la fonction CryptXmlDllGetInterface , qui retourne un pointeur vers une structure CRYPT_XML_CRYPTOGRAPHIC_INTERFACE . Cette structure fournit des pointeurs de fonction pour les fonctions d’extension de chiffrement implémentées. Les fonctions prises en charge dépendent du type d’algorithme de chiffrement pris en charge et si l’algorithme doit encoder les paramètres dans la signature numérique XML.

Les fonctions d’extensions de chiffrement incluent les pointeurs de fonction suivants :

Fonctions requises

Fonctions de méthode Digest

Fonctions de la méthode signature

Pour les algorithmes avec des paramètres encodés par défaut

Les DLL d’extension de chiffrement sont inscrites à l’échelle du système. Des privilèges d’administrateur sont requis pour inscrire une DLL d’extension de chiffrement.

Toutes les extensions de chiffrement CryptXML sont inscrites par la valeur URI définie dans le champ SignatureMethod ou dans le champ d’attribut d’algorithme de l’élément DigestMethod .

Les chemins d’accès au Registre pour les DLL d’extension sont les suivants :

32 bits

HKEY_LOCAL_MACHINE\LOGICIEL\Microsoft\Cryptographie\CryptXML\URI\{uri}

64 bits

HKEY_LOCAL_MACHINE\LOGICIEL\Microsoft\Cryptographie\CryptXML\URI\{uri}

HKEY_LOCAL_MACHINE\LOGICIEL\\ WOW6432NODEMicrosoft\Cryptographie\CryptXML\URI\{uri}

Chaque clé contient les paramètres suivants.

Nom Type Données
DLL
Chaîne extensible
Obligatoire.
Chemin d’accès absolu à la DLL du fournisseur de chiffrement XML.
**Remarque : **Nous recommandons que les DLL d’extension de chiffrement se trouvent dans des répertoires qui ne peuvent être écrits que par des applications disposant de privilèges d’administration.
LoadLibrary est utilisé pour charger la DLL d’extension de chiffrement.
Nom
Chaîne facultatif.
Nom d’affichage associé à cet URI.
GroupId
DWORD Obligatoire.
Identificateur de groupe associé à cet algorithme de chiffrement. Les valeurs possibles sont les suivantes : CRYPT_XML_GROUP_ID_HASH<strong> = 1
< CRYPT_XML_GROUP_ID_SIGNstrong> = 2
CNGAlgid
Chaîne Obligatoire.
Nom de l’algorithme CNG à passer aux fonctions BCrypt ou NCrypt.
CNGExtraAlgid
Chaîne facultatif.
Chaîne d’algorithme supplémentaire, autre que la chaîne dans le membre CNGAlgid, qui peut être passée aux fonctions CNG.
Pour les algorithmes de signature (CRYPT_XML_GROUP_ID_SIGN), ce membre est la chaîne d’algorithme de clé publique à passer aux fonctions CNG.
Pour les autres valeurs de GroupId, définissez le membre pwszCNGExtraAlgid sur la chaîne vide, L" ».

 

Algorithmes de chiffrement de signature numérique XML