static BOOL test_crypto_hash_sha1(void) { BYTE hash[WINPR_SHA1_DIGEST_LENGTH]; WINPR_SHA1_CTX ctx; if (!winpr_SHA1_Init(&ctx)) return FALSE; if (!winpr_SHA1_Update(&ctx, (BYTE*) TEST_SHA1_DATA, strlen(TEST_SHA1_DATA))) return FALSE; if (!winpr_SHA1_Final(&ctx, hash, sizeof(hash))) return FALSE; if (memcmp(hash, TEST_SHA1_HASH, WINPR_MD5_DIGEST_LENGTH) != 0) { char* actual; char* expected; actual = winpr_BinToHexString(hash, WINPR_SHA1_DIGEST_LENGTH, FALSE); expected = winpr_BinToHexString(TEST_SHA1_HASH, WINPR_SHA1_DIGEST_LENGTH, FALSE); fprintf(stderr, "unexpected SHA1 hash: Actual: %s Expected: %s\n", actual, expected); free(actual); free(expected); return FALSE; } return TRUE; }
void winpr_SHA1(const BYTE* input, size_t ilen, BYTE* output) { WINPR_SHA1_CTX ctx; winpr_SHA1_Init(&ctx); winpr_SHA1_Update(&ctx, input, ilen); winpr_SHA1_Final(&ctx, output); }