示例#1
0
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;
}
示例#2
0
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);
}