Le développement d’applications ayant pour but de faire des demandes et de manipuler des certificats change radicalement entre Windows XP/2003 et Windows Vista/2008. Voici une synthèse pour vous permettre d’y voir plus clair.
XEnroll.dll utilisé pour Windows 2000, XP, 2003
Sur Windows 2000, XP, 2003 Server nous pouvons utiliser le composant XEnroll.dll. Ce composant implémente les interfaces ICEnroll, ICEnroll2, ICEnroll3, et ICEnroll4 ainsi que IEnroll, IEnroll2, et IEnroll4.
Lien d’informations :
CertEnroll.dll utilisé pour Windows Vista, 2008
Sur Windows Vista et 2008 Server, le composant XEnroll.dll a été retiré et n’est plus utilisable.
CertEnroll.dll est le nouveau composant disponible. Il implémente plusieurs interfaces COM pour gérer les demandes et installations des certificats.
Le point d’entrée de la documentation est :
Explications sur ce changement
Voici les principales raisons qui ont conduit à ce changement :
XEnroll
CertEnroll
Pour information, voici des pointeurs vers les sources de ces explications :
AD CS: Web Enrollment - http://technet2.microsoft.com/windowsserver2008/en/library/c47e0d48-abeb-493e-a9f1-19bba1537ba51033.mspx?mfr=true
Certificate-Related Changes for Vista - http://technet2.microsoft.com/WindowsVista/en/library/73bdca07-a9f0-40d7-a26e-6f4f11759e4c1033.mspx?mfr=true
Recommandations l’utilisation des API de "Certificate Enrollment"
Le remplacement de XEnroll.dll sur Windows Vista et 2008 Server par CertEnroll.dll constitue un arrêt dans la compatibilité des développements qui utilisent XEnroll.dll.
Dans un parc hétérogène de clients Windows XP et Windows Vista par exemple, la recommandation est donc :
Développer et maintenir deux codes/applications différents dont l’appel/l’installation se fera en fonction de la version du client détecté/adressé
Voici la documentation sur la correspondance des API XEnroll.dll avec les nouvelles API CertEnroll.dll :