| ||||
| ||||
Следующим кодом пытаюсь получить контекст сертификата, все работает нормально если имя владельца на английском языке, а если оно на русском то сертификат не находится. В чем может быть дело? Заранее благодарен HCRYPTPROV hCertProv; if (!CryptAcquireContext( &hCertProv, NULL, NULL, 75, CRYPT_VERIFYCONTEXT)) { printf("Error CryptAcquireContext...."); getch(); return; } HCERTSTORE hStoreHandle; if ( !( hStoreHandle = CertOpenStore( CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_CURRENT_USER, //CERT_SYSTEM_STORE_LOCAL_MACHINE, L"MY"))) { printf("Can't open store MY."); return; } PCCERT_CONTEXT pSignerCert; AnsiString Recerient = "Сидоро"; wchar_t buf[50]; swprintf(buf,L"%S",Recepient); const void *signer = buf; pSignerCert = CertFindCertificateInStore( hStoreHandle, MY_ENCODING_TYPE, 0, CERT_FIND_SUBJECT_STR, signer, NULL); if(!pSignerCert) { printf( "Certificate isn't found"); return; } | ||||
Ответы: | ||||
| ||||
Посмотрите, чему buf равно перед вызовом CertFindCertificateInStore. | ||||