/* * Copyright (C) AhnLab, Inc. 2002-2008. All rights reserved. * * Any part of this source code can not be copied with * any method without prior written permission from * the author or authorized person. * */ #ifndef _HSCRYPTLIB_H #define _HSCRYPTLIB_H #if defined(__cplusplus) extern "C" { #endif #define HSCRYPTLIB_INITKEY_SIZE 16 #define HSCRYPTLIB_KEY_SIZE 550 #pragma pack(push) #pragma pack(8) // ۱¸Á¶Ã¼. typedef struct _HSCRYPT_KEYINFO { BYTE byInitKey[HSCRYPTLIB_INITKEY_SIZE]; BYTE AesEncKey[HSCRYPTLIB_KEY_SIZE]; BYTE AesDecKey[HSCRYPTLIB_KEY_SIZE]; } HSCRYPT_KEYINFO, *PHSCRYPT_KEYINFO; #pragma pack(pop) // ERROR CODE DEFINE #define ERROR_HSCRYPTLIB_BASECODE 0x0001B000 #define ERROR_HSCRYPTLIB_UNKNOWN ERROR_HSCRYPTLIB_BASECODE + 0x0 #define ERROR_HSCRYPTLIB_EXCEPTION ERROR_HSCRYPTLIB_BASECODE + 0x1 #define ERROR_HSCRYPTLIB_INITCRYPT_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x2 #define ERROR_HSCRYPTLIB_GETENCMSG_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x3 #define ERROR_HSCRYPTLIB_GETDECMSG_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x4 #define ERROR_HSCRYPTLIB_FREAD_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x5 #define ERROR_HSCRYPTLIB_FREAD_DECRYPT_RANGE ERROR_HSCRYPTLIB_BASECODE + 0x6 #define ERROR_HSCRYPTLIB_FREAD_DECRYPT_FREAD ERROR_HSCRYPTLIB_BASECODE + 0x7 #define ERROR_HSCRYPTLIB_FREAD_DECRYPT_GETDECMSG ERROR_HSCRYPTLIB_BASECODE + 0x8 #define ERROR_HSCRYPTLIB_FREAD_GETFILELEN ERROR_HSCRYPTLIB_BASECODE + 0x9 #define ERROR_HSCRYPTLIB_FREAD_GETPOSITION ERROR_HSCRYPTLIB_BASECODE + 0xA #define ERROR_HSCRYPTLIB_FREAD_SIZEZERO ERROR_HSCRYPTLIB_BASECODE + 0xB #define ERROR_HSCRYPTLIB_FREAD_FSEEK ERROR_HSCRYPTLIB_BASECODE + 0xC #define ERROR_HSCRYPTLIB_FILEFENC_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x10 #define ERROR_HSCRYPTLIB_FILEFENC_FOPEN ERROR_HSCRYPTLIB_BASECODE + 0x11 #define ERROR_HSCRYPTLIB_FILEFENC_GETFILELEN ERROR_HSCRYPTLIB_BASECODE + 0x12 #define ERROR_HSCRYPTLIB_FILEFENC_SIZEZERO ERROR_HSCRYPTLIB_BASECODE + 0x13 #define ERROR_HSCRYPTLIB_FILEFENC_INITCRYPT ERROR_HSCRYPTLIB_BASECODE + 0x14 #define ERROR_HSCRYPTLIB_FILEFENC_COPYFILE ERROR_HSCRYPTLIB_BASECODE + 0x15 #define ERROR_HSCRYPTLIB_FILEFENC_ENCFILE ERROR_HSCRYPTLIB_BASECODE + 0x16 #define ERROR_HSCRYPTLIB_FILEFENC_FWRITE ERROR_HSCRYPTLIB_BASECODE + 0x17 #define ERROR_HSCRYPTLIB_FILEFENC_ENCMSG ERROR_HSCRYPTLIB_BASECODE + 0x18 #define ERROR_HSCRYPTLIB_ENCFFILE_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x20 #define ERROR_HSCRYPTLIB_ENCFFILE_FREAD ERROR_HSCRYPTLIB_BASECODE + 0x21 #define ERROR_HSCRYPTLIB_ENCFFILE_GETENCMSG ERROR_HSCRYPTLIB_BASECODE + 0x22 #define ERROR_HSCRYPTLIB_FILEFDECBLK_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x30 #define ERROR_HSCRYPTLIB_FILEFDECBLK_FOPEN ERROR_HSCRYPTLIB_BASECODE + 0x31 #define ERROR_HSCRYPTLIB_FILEFDECBLK_GETFILELEN ERROR_HSCRYPTLIB_BASECODE + 0x32 #define ERROR_HSCRYPTLIB_FILEFDECBLK_FILESEEK ERROR_HSCRYPTLIB_BASECODE + 0x33 #define ERROR_HSCRYPTLIB_FILEFDECBLK_INITCRYPT ERROR_HSCRYPTLIB_BASECODE + 0x34 #define ERROR_HSCRYPTLIB_FILEFDECBLK_FREAD ERROR_HSCRYPTLIB_BASECODE + 0x35 #define ERROR_HSCRYPTLIB_FILEFDECBLK_FWRITE ERROR_HSCRYPTLIB_BASECODE + 0x36 #define ERROR_HSCRYPTLIB_ISFILEENC_INVALIDPARAM ERROR_HSCRYPTLIB_BASECODE + 0x40 #define ERROR_HSCRYPTLIB_ISFILEENC_FSEEK ERROR_HSCRYPTLIB_BASECODE + 0x41 #define ERROR_HSCRYPTLIB_ISFILEENC_FREAD ERROR_HSCRYPTLIB_BASECODE + 0x42 #define ERROR_HSCRYPTLIB_ISFILEENC_GETDECMSG ERROR_HSCRYPTLIB_BASECODE + 0x43 // FUNCTION DEFINE /************************************************************************************* ÇÔ¼ö¸í : _HsCrypt_InitCrypt ¸ñ Àû : ¾Ï/º¹È£È­¸¦ À§ÇÑ ÃʱâÈ­ ±â´É ¼öÇà ÀÎÀÚ°ª : PHSCRYPT_KEYINFO pHsKeyInfo ¹Ýȯ°ª : ERROR_SUCCESS, ERROR_HSCRYPTLIB_INITCRYPT_INVALIDPARAM *************************************************************************************/ DWORD __stdcall _HsCrypt_InitCrypt ( IN OUT PHSCRYPT_KEYINFO pHsKeyInfo ); /************************************************************************************* ÇÔ¼ö¸í : _AntiCpCnt_GetEncMsg ¸ñ Àû : ÀÔ·ÂµÈ ¹öÆÛ¸¦ ¾ÏȣȭÇÏ¿© ¹öÆÛ·Î Ãâ·ÂÇÑ´Ù. ÀÎÀÚ°ª : pbyInput, nInLength, pbyOutput, pAesEncKey, pbyOutput, nOutLength ¹Ýȯ°ª : ERROR_HSCRYPTLIB_GETENCMSG_INVALIDPARAM, ERROR_SUCCESS *************************************************************************************/ DWORD __stdcall _HsCrypt_GetEncMsg ( IN PBYTE pbyInput, // [in] ¾ÏȣȭÇÒ ¹öÆÛ IN UINT nInLength, // [in] ¾ÏȣȭÇÒ »çÀÌÁî IN PBYTE pAesEncKey, // [in] ¾ÏȣȭŰ OUT PBYTE pbyOutput ); // [out] ¾ÏȣȭµÈ ¹öÆÛ /************************************************************************************* ÇÔ¼ö¸í : _HsCrypt_GetDecMsg ¸ñ Àû : ÀÔ·ÂµÈ ¹öÆÛ¸¦ º¹È£È­ÇÏ¿© ¹öÆÛ·Î Ãâ·ÂÇÑ´Ù. ÀÎÀÚ°ª : pbyInput, nInLength, pAesDecKey, pbyOutput, nOutLength ¹Ýȯ°ª : ERROR_SUCCESS, ERROR_HSCRYPTLIB_GETDECMSG_INVALIDPARAM *************************************************************************************/ DWORD __stdcall _HsCrypt_GetDecMsg ( IN PBYTE pbyInput, // [in] º¹È£È­ÇÒ ¹öÆÛ IN UINT nInLength, // [in] º¹È£È­ÇÒ »çÀÌÁî IN PBYTE pAesDecKey, // [in] º¹È£È­ Ű OUT PBYTE pbyOutput ); // [out] º¹È£È­µÈ ¹öÆÛ /************************************************************************************* ÇÔ¼ö¸í : _HsCrypt_FRead ¸ñ Àû : ÆÄÀϱ¸Á¶Ã¼ Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÏ¿© ¿øÇÏ´Â ºí·°¸¸ º¹È£È­ÈÄ ¹öÆÛ·Î Ãâ·Â ÀÎÀÚ°ª : lpOutBuffer, dwDecryptSize, pInputStream, pAesDecKey ¹Ýȯ°ª : ERROR_SUCCESS, ERROR_HSCRYPTLIB_FREAD_INVALIDPARAM, ERROR_HSCRYPTLIB_FREAD_DECRYPT_RANGE, ERROR_HSCRYPTLIB_FREAD_DECRYPT_FREAD, ERROR_HSCRYPTLIB_FREAD_DECRYPT_GETDECMSG, ERROR_HSCRYPTLIB_EXCEPTION *************************************************************************************/ DWORD __stdcall _HsCrypt_FRead ( OUT LPVOID lpOutBuffer, // [out] º¹È£È­µÈ ¹öÆÛ IN DWORD dwDecryptSize, // [in] º¹È£È­(ÀÐÀ») »çÀÌÁî IN FILE *pInputStream, // [in] ÀÐÀ» ÆÄÀÏÆ÷ÀÎÅÍ. IN PBYTE pAesDecKey, // [in] º¹È£È­ Ű OUT PDWORD pdwReadLen); // [in] º¹È£È­µÈ »çÀÌÁî /************************************************************************************* ÇÔ¼ö¸í : _HsCrypt_FileFEnc ¸ñ Àû : ÆÄÀÏ ¾Ïȣȭ ÀÎÀÚ°ª : lpszInputFile, lpszOutputFile ¹Ýȯ°ª : ERROR_SUCCESS, ERROR_HSCRYPTLIB_FILEFENC_INVALIDPARAM, ERROR_HSCRYPTLIB_FILEFENC_FOPEN, ERROR_HSCRYPTLIB_FILEFENC_GETFILELEN, ERROR_HSCRYPTLIB_FILEFENC_SIZEZERO, ERROR_HSCRYPTLIB_FILEFENC_INITCRYPT, ERROR_HSCRYPTLIB_FILEFENC_COPYFILE, ERROR_HSCRYPTLIB_FILEFENC_ENCFILE, ERROR_HSCRYPTLIB_FILEFENC_FWRITE, ERROR_HSCRYPTLIB_FILEFENC_ENCMSG, *************************************************************************************/ DWORD __stdcall _HsCrypt_FileFEnc ( IN LPCTSTR lpszInputFile, // [in] ¾ÏȣȭÇÒ ÆÄÀϰæ·Î IN PBYTE pbyInitKey, // [in] ¾Ïº¹È£È­ Ű OUT LPTSTR lpszOutputFile ); // [out] ¿øº»À» ¹é¾÷ÇÑ ÆÄÀϰæ·Î #if defined(__cplusplus) } #endif //(__cplusplus) #endif //_HSCRYPTLIB_H