// Необходимые действия по инициализации 
криптопровайдера, 
 	 //  получению исходных данных
	…
/*
	BYTE * pbData - указатель на заданные исходные данные
    DWORD dwDataLen - длина исходных данных
    ALG_ID alg_id - алгоритм получения хеш-данных
*/
HCRYPTHASH hHash = 0;
	CryptCreateHash(hProv, alg_id, 0 , 0, &hHash);
	CryptHashData ( hHash, pbData, dwDataLen, 0);
	// Подписать хэш
	CryptSignHash ( hHash, AT_SIGNATURE,  0, 0, pbData, &dwDataLen);
	CryptDestroyHash(hHash);

Поделитесь материалом с коллегами и друзьями