| ||||
| ||||
Есть следующий код: SCHANNEL_CRED SchannelCred; TimeStamp tsExpiry; SECURITY_STATUS Status; PCCERT_CONTEXT pCertContext = NULL; LPSTR pszCertName="AuthServer"; HCERTSTORE hMyCertStore=NULL; ULONG lStore =CERT_SYSTEM_STORE_CURRENT_USER; //Возьмем сертификат сервера hMyCertStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0, lStore, L"MY"); if(!hMyCertStore) { AfxMessageBox("Ошибка открытия хранилища сертификатов"); return ; } //Получим контекст сертификата pCertContext = CertFindCertificateInStore(hMyCertStore, X509_ASN_ENCODING, 0, CERT_FIND_SUBJECT_STR_A, pszCertName, NULL); if(pCertContext == NULL) { AfxMessageBox("**** Error 0x%x returned by CertFindCertificateInStore\n"); return ; } ZeroMemory(&SchannelCred, sizeof(SchannelCred)); SchannelCred.dwVersion = SCHANNEL_CRED_VERSION; SchannelCred.cCreds = 1; SchannelCred.paCred = &pCertContext; SchannelCred.dwFlags=SCH_CRED_USE_DEFAULT_CREDS; DWORD dwProtocol = 0; SchannelCred.grbitEnabledProtocols = dwProtocol; CredHandle hCreds; Status = AcquireCredentialsHandle( NULL, // Name of principal UNISP_NAME_A, // Name of package SECPKG_CRED_INBOUND, // Flags indicating use NULL, // Pointer to logon ID &SchannelCred, // Package specific data NULL, // Pointer to GetKey() func NULL, // Value to pass to GetKey() &hCreds, // (out) Cred Handle &tsExpiry); // (out) Lifetime (optional) if(Status != SEC_E_OK) { char err[128]; sprintf(err,"Ошибка AcquireCredentialsHandle", Status); AfxMessageBox(err); return; } if(pCertContext) { CertFreeCertificateContext(pCertContext); } Есть сертификат, сгенерированный на вашем тестовом УЦ. Его предназначение - удостоверение подлинности сервера. ОС - Windows 2000. Функция AcquireCredentialsHandle все время заканчивается с ошибкой 0х80090304 (SEC_E_INTERNAL_ERROR). Доступ к CRL - есть. Я уже замучился. Заранее благодарен. | ||||
Ответы: | ||||
| ||||
У меня такая же фигня тоже вначале была. Потом я сертификат перенес в хранилище LOCAL_MACHINE, стала другая ошибка : SEC_E_UNKNOWN_CREDENTIALS. Что-то тоже никак не могу победить. | ||||