Поиск сертификата Уц

Тема в разделе "WASM.CRYPTO", создана пользователем Keva, 21 июн 2007.

  1. Keva

    Keva New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    130
    Пытаюсь найти сертификат УЦ следующим образом:

    Код (Text):
    1. char caString[128];
    2. CertGetNameString(
    3.         pSignerCert,
    4.         CERT_NAME_SIMPLE_DISPLAY_TYPE,
    5.         CERT_NAME_ISSUER_FLAG,
    6.         NULL,
    7.         caString,
    8.         128))
    9.  
    10. HCERTSTORE hStoreHandleCheck;
    11.         hStoreHandleCheck=CertOpenStore(
    12.                 CERT_STORE_PROV_SYSTEM,
    13.                 0,
    14.                 NULL,
    15.                 CERT_SYSTEM_STORE_CURRENT_USER,
    16.                 L"CA");
    17.  
    18.         DWORD dwFlagsCheck=CERT_STORE_SIGNATURE_FLAG |        CERT_STORE_TIME_VALIDITY_FLAG;
    19.         PCCRL_CONTEXT pCRLContext=0;
    20.  
    21.         AnsiString CaName=AnsiString(caString);
    22.         CaName.WideChar(buf,CaName.Length());
    23.         const void *CaIssuer = buf;
    24.  
    25.         PCCERT_CONTEXT  pCaCert=0;
    26.  
    27.         pCaCert = CertFindCertificateInStore(
    28.                 hStoreHandleCheck,
    29.                 MY_ENCODING_TYPE,
    30.                 0,
    31.                 CERT_FIND_SUBJECT_STR,
    32.                 CaIssuer,
    33.                 NULL);
    Сертификат не находится, но если в полследней функции заменить CaIssuer на непосредственное имя УЦ, то он находится. В чем может быть проблема?