locked
Problème avec CertEnroll RRS feed

  • Question

  • Bonjour,

    Je dois développer un connecteur vers la pki de microsoft à partir d'un Windows Server 2008. J'écris le code en C# et j'utilise l'api CertEnroll

    Voici le code qui pose problème :
    string strP10 = "-----BEGIN CERTIFICATE REQUEST-----MIIBXjCByAIBADAfMQ ..... DU8CjAr-----END CERTIFICATE REQUEST-----";
    
    
    IX509CertificateRequestPkcs10 p10 = new CX509CertificateRequestPkcs10Class();
    
    
    p10.InitializeDecode(strP10, EncodingType.XCN_CRYPT_STRING_BASE64REQUESTHEADER);
    
    enroll = new CX509EnrollmentClass();
    
    enroll.InitializeFromRequest(p10);
    
    string result = enroll.CreateRequest(EncodingType.XCN_CRYPT_STRING_BASE64)

    J'obtiens cette superbe erreur:

    "CertEnroll::CX509Enrollment::p_CreateRequest: La valeur de propriété requise est vide. 0x80094004 (-2146877436)"} System.Exception {System.Runtime.InteropServices.COMException

    C'est bien gentil mais je fais comment pour savoir de quelle propriété il parle?

    En debug, je vois pourtant bien le sujet dans la requête PKCS10, ainsi que la clé publique. Par contre, je ne vois pas de clé privée de signature. J'ai donc créer un objet de type IX509CertificateRequestPkcs7 afin de lui passer une clé de signature. Mais au final, même résultat.

    Quelqu'un a une idée?

     

    Merci

    vendredi 20 août 2010 07:45

Réponses

  • J'ai trouvé, merci google :-)

    Pour créer une demande de certificat avec un pkcs10, il faut créer un objet IX509CertRequestPkcs10, puis le passer à un objet IX509CertRequestCmc. On affecte à ce dernier un certificat de signature et on le transmet à la pki via un objet ICertEnroll

     

    Voila

    • Marqué comme réponse Seb_de_Lille jeudi 2 septembre 2010 07:50
    jeudi 2 septembre 2010 07:50