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’ensemble 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’extension doivent prendre en charge la fonction CryptXmlDllGetInterface , qui retourne un pointeur vers une structure d' _ _ _ interface de chiffrement XML énigmatique . Cette structure fournit des pointeurs de fonction vers 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 de la nécessité de coder 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 méthode de 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 nécessaires pour inscrire une DLL d’extension de chiffrement.
Toutes les extensions de chiffrement CryptXML sont inscrites par la valeur d’URI définie dans le champ SignatureMethod ou attribut d’algorithme de l’élément DigestMethod .
Les chemins d’accès au registre des dll d’extension sont les suivants :
-
32 bits
-
HKEY _ Logiciel de l' _ ordinateur local \ \ Microsoft \ Cryptography \ CryptXML \ URI \ {URI}
-
64 bits
-
HKEY _ Logiciel de l' _ ordinateur local \ \ Microsoft \ Cryptography \ CryptXML \ URI \ {URI}
HKEY _ Logiciel de l' _ ordinateur local \ \ WOW6432NODE \ Microsoft \ Cryptography \ CryptXML \ URI \ {URI}
Chaque clé contient les paramètres suivants.
| Name | Type | Données |
|---|---|---|
| DLL |
Chaîne extensible |
Obligatoire. Chemin d’accès absolu à la DLL du fournisseur de services de chiffrement XML.
|
| Nom |
Chaîne | facultatif. Nom complet 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 <strong> CRYPT_XML_GROUP_ID_SIGN = 2 |
| CNGAlgid |
Chaîne | Obligatoire. Nom de l’algorithme CNG à transmettre aux fonctions BCrypt ou NCrypt. |
| CNGExtraAlgid |
Chaîne | facultatif. Chaîne d’algorithme supplémentaire, autre que la chaîne du 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 de l’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 "". |