2014-09-13 9 views
5

Я пытаюсь использовать SHA2-512 на Windows 7 с CryptoAPI, однако, вызов CryptCreateHash терпит неудачу с GetLastError() = 2148073480 = 0x80090008, то есть «Invalid Алгоритм Задано». Согласно https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549%28v=vs.85%29.aspx SHA2 должен быть доступен с Windows XP SP3.Использование SHA2-512 (CALG_SHA_512) на Windows 7 возвращает "Invalid Algorithm указано"

Вот код, я использую:

HCRYPTPROV hCryptProv; 
CryptAcquireContext(&hCryptProv, nullptr, nullptr, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); 

HCRYPTHASH hHash; 
if (!CryptCreateHash(hCryptProv, CALG_SHA_512, 0, 0, &hHash)) { 
    DWORD err = GetLastError(); // -> 2148073480=0x80090008 
} 

Использование CALG_SHA1 вместо CALG_SHA512 работ.

Должен ли я провести дополнительную инициализацию, например. явно активируя SHA2?

ответ