// Необходимые действия по инициализации
криптопровайдера,
// получению исходных данных
…
/*
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);