#ifndef _ENVIRONMENTAL_KEYING_H
#define _ENVIRONMENTAL_KEYING_H

__declspec(dllexport) BOOL EnvironmentalKeyingDecrypt(IN LPVOID lpBufferToDecrypt, IN size_t length, OUT LPVOID lpDecryptedBuffer);
__declspec(dllexport) BOOL EnvironmentalKeyingEncrypt(IN LPVOID lpBufferToEncrypt, IN size_t length, OUT LPVOID lpEncrypt);
__declspec(dllexport) BOOL EnvironmentalKeyingSetup(IN LPCSTR szFolderPath, IN unsigned char *expectedValue);
__declspec(dllexport) unsigned char* EnvironmentalKeyingGetExpectedValue(IN LPCSTR szFolderPath);


typedef struct _ENVIRONMENTAL_KEYING_ITEM
{
	unsigned char * key;
	unsigned char * encryptedItemPath;
	unsigned char expectedValue[32];

} ENVIRONMENTAL_KEYING_ITEM, *PENVIRONMENTAL_KEYING_ITEM;

#endif