Hi Maarten,
+ if (pbHash && *pcbHash < 20)
+ {
+ SetLastError(ERROR_INSUFFICIENT_BUFFER);
+ return FALSE;
+ }
That's not correct, *pcbHash must be set to 20 if it's too small.
+ while (ReadFile(hFile, tempbuffer, TEMP_BLOCK_SIZE,
&readbytes, NULL) && readbytes)
+ CryptHashData(hash, tempbuffer, readbytes, 0);
You return TRUE if ReadFile fails, which is unlikely to be correct.
Thanks,
--Juan