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" ». |
Rubriques connexes