none
CertOpenStore c флагом CERT_SYSTEM_STORE_CURRENT_SERVICE RRS feed

  • Вопрос

  • Здравствуйте

    Мне нужно загрузить сертификат из хранилища сервиса. 
    Программа запускается в режиме сервиса. Открывается хранилище сертификатов с помощью функции
    CertOpenStore:
    HCERTSTORE certStore = CertOpenStore(CERT_STORE_PROV_SYSTEM_W, 0, NULL, CERT_STORE_READONLY_FLAG|CERT_SYSTEM_STORE_CURRENT_SERVICE, L"My");
    PCCERT_CONTEXT pCertContext(NULL);   
    pCertContext = CertEnumCertificatesInStore(certStore, pCertContext);
    В итоге pCertContext оказывается нулем, хотя в хранилище Сервиса в разделе "Личное" сертификаты есть.
    Если же открывать хранилище сервиса с помощью флага CERT_SYSTEM_STORE_SERVICES
    HCERTSTORE certStore = CertOpenStore(CERT_STORE_PROV_SYSTEM_W, 0, NULL, CERT_STORE_READONLY_FLAG|CERT_SYSTEM_STORE_SERVICES, L"TestService\\My");
    PCCERT_CONTEXT pCertContext(NULL);   
    pCertContext = CertEnumCertificatesInStore(certStore, pCertContext);
    то все сертификаты находятся.
    В чем может быть проблема ?
    3 августа 2012 г. 7:18

Ответы

Все ответы