#pragma once //------------------------------------------------------------------------------------------------- // // Copyright (c) 2004, Outercurve Foundation. // This software is released under Microsoft Reciprocal License (MS-RL). // The license and further copyright text can be found in the file // LICENSE.TXT at the root directory of the distribution. // // // // Cryptography helper functions. // //------------------------------------------------------------------------------------------------- #define ReleaseCryptMsg(p) if (p) { ::CryptMsgClose(p); p = NULL; } #ifdef __cplusplus extern "C" { #endif #define SHA1_HASH_LEN 20 // function declarations HRESULT DAPI CrypDecodeObject( __in_z LPCSTR szStructType, __in_ecount(cbData) const BYTE* pbData, __in DWORD cbData, __in DWORD dwFlags, __out LPVOID* ppvObject, __out_opt DWORD* pcbObject ); HRESULT DAPI CrypMsgGetParam( __in HCRYPTMSG hCryptMsg, __in DWORD dwType, __in DWORD dwIndex, __out LPVOID* ppvData, __out_opt DWORD* pcbData ); HRESULT DAPI CrypHashFile( __in_z LPCWSTR wzFilePath, __in DWORD dwProvType, __in ALG_ID algid, __out_bcount(cbHash) BYTE* pbHash, __in DWORD cbHash, __out_opt DWORD64* pqwBytesHashed ); HRESULT DAPI CrypHashFileHandle( __in HANDLE hFile, __in DWORD dwProvType, __in ALG_ID algid, __out_bcount(cbHash) BYTE* pbHash, __in DWORD cbHash, __out_opt DWORD64* pqwBytesHashed ); HRESULT DAPI CrypHashBuffer( __in_bcount(cbBuffer) const BYTE* pbBuffer, __in SIZE_T cbBuffer, __in DWORD dwProvType, __in ALG_ID algid, __out_bcount(cbHash) BYTE* pbHash, __in DWORD cbHash ); #ifdef __cplusplus } #endif