Utilisation de CertEnroll pour PKI sous Vista

Fermé
Irresistibledemon Messages postés 97 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 3 décembre 2011 - 9 oct. 2011 à 08:00
Irresistibledemon Messages postés 97 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 3 décembre 2011 - 10 oct. 2011 à 16:26
Bonjour,

Est-ce que quelqu'un a déjà utilisé activeX pour charger et utiliser la librairie CertEnroll.dll de Vista ou sup. ?
J'ai un probleme qui doit surement venir de la configuration du navigateur client et je n'arrive pas à m'en sortir.
(Le systeme utilise le classic client de Gemalto)

Merci

A voir également:

2 réponses

Irresistibledemon Messages postés 97 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 3 décembre 2011 9
9 oct. 2011 à 08:42
J'obtiens tout le temps le code erreur 80090020 qui correspond à "Erreur interne" (Merci Microsoft pour cette erreur explicite)
0
Irresistibledemon Messages postés 97 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 3 décembre 2011 9
10 oct. 2011 à 16:26
J'utilise la librairie CertEnroll dans le cadre d'une PKI, en liaison avec Gemalto.

Lorsque je crée la requete pkcs10, l'erreur 80090020 apparait.

J'ai cherché sur le net et j'ai vu que cette erreur correspond à "Erreur interne" (mais de quoi ???.. du csp, du navigateur, du token usb ....)

La fonction est développé en JavaScript. La voici :
//szName = DN

//<object id="objCertEnrollClassFactory" classid="clsid:884e2049-217d-11da-b2a4-000e7bbb2b09"></object>

function createRequest(szName, providerName, providerType) {
        var objPrivateKey = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509PrivateKey");
 
        var objRequest = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10");
        var objObjectIds = objCertEnrollClassFactory.CreateObject("X509Enrollment.CObjectIds");
        var objObjectId = objCertEnrollClassFactory.CreateObject("X509Enrollment.CObjectId");


        var objX509ExtensionEnhancedKeyUsage = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509ExtensionEnhancedKeyUsage");

        var objExtensionTemplate = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509ExtensionTemplateName");

        var objDn = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX500DistinguishedName");
        var objEnroll = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509Enrollment");

       
        // Provide CSP information tp the private key object
        //utilisation du CSP Gemalto
        objPrivateKey.ProviderType = providerType ;
        objPrivateKey.ProviderName  = providerName;
 

        //  Provide key container name, key length and key spec to the private key object
        objPrivateKey.Length = 1024;
        objPrivateKey.KeySpec = 1; // AT_KEYEXCHANGE = 1

        // Initialize P10 based on private key
        objRequest.InitializeFromPrivateKey(1, objPrivateKey, ""); // context user = 1

       

        // 1.3.6.1.5.5.7.3.2 Oid - Extension
        //ASN : {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) keyPurpose(3) clientAuth(2)}
        objObjectId.InitializeFromValue("1.3.6.1.5.5.7.3.2");
        objObjectIds.Add(objObjectId);
        objX509ExtensionEnhancedKeyUsage.InitializeEncode(objObjectIds);
        objRequest.X509Extensions.Add(objX509ExtensionEnhancedKeyUsage);

        // DN related stuff
        objDn.Encode(szName, 0); // XCN_CERT_NAME_STR_NONE = 0
        objRequest.Subject = objDn;

        // Enroll
        objEnroll.InitializeFromRequest(objRequest);
        var sPkcs10 = objEnroll.CreateRequest(1); // XCN_CRYPT_STRING_BASE64 = 1

        return sPkcs10 ;

}


Si vous avez une idée sur le pourquoi de cette erreur ..?

Merci
0