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.

Remarque : Nous vous recommandons de placer les dll d’extension de chiffrement dans les répertoires qui peuvent uniquement être écrits par les applications avec des privilèges d’administrateur.

LoadLibrary est utilisé pour charger la dll d’extension de chiffrement.


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 "".

Algorithmes de chiffrement de signature numérique XML