#ifndef BS_CryptoH #define BS_CryptoH #include "BSDefine.h" #define VER_BSCRYPTO "BSCrypto 1.0" #ifdef __cplusplus extern "C" { #endif // BSCryptoÀÇ ¹öÀüÀ» Ç¥½ÃÇÕ´Ï´Ù. (BSCrypto 1.0) DLL_EXPORT char* BSCrypto_GetVersion(); // ºí·Ï ¾Ïȣȭ »ç¿ë ½Ã ¸ðµâÀ» ÁغñÇÕ´Ï´Ù. // ÀÚ°¡½ÃÇè ÈÄ ¸ðµâÀ» ÃʱâÈ­ ÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ : BS_ERROR_INIT DLL_EXPORT int BSCrypto_Initialize(); // ÀÚ°¡½ÃÇèÀ» ½ÃµµÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ : BS_ERROR_CRYPTO_SELFTEST_FAILED DLL_EXPORT int BSCrypto_SelfTest(); // ¾Ï/º¹È£È­ Á¤º¸¸¦ ÃʱâÈ­ ÇÕ´Ï´Ù. // ¾Ïȣȭ ¶Ç´Â º¹È£È­ ÁßÀÏ °æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ : BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_Clear(); // ÇöÀç »óŰªÀ» ¹ÝȯÇÕ´Ï´Ù. // BS_STATE_NONE : Áغñ°¡ ¾ÈµÈ »óÅÂÀÔ´Ï´Ù. BSCrypto_Initialize() È£Ãâ ÀÌÀü¿¡ ºí·Ï ¾Ïȣȭ¸¦ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù. // BS_STATE_INIT : BSCrypto_Initialize() È£Ãâ ÈÄ Á¤»ó µ¿ÀÛÀÌ °¡´ÉÇÑ »óÅÂÀÔ´Ï´Ù. ¾Ïȣȭ, º¹È£È­ ´ë±âÁßÀÔ´Ï´Ù. // BS_STATE_ENC : ¾Ïȣȭ ÁßÀÔ´Ï´Ù. // BS_STATE_DEC : º¹È£È­ ÁßÀÔ´Ï´Ù. DLL_EXPORT int BSCrypto_GetState(); // ù¹øÂ° ÀÎÀÚÀÇ ÆÄÀÏÀÇ ÇØ½Ã¸¦ ±¸ÇÕ´Ï´Ù. (SHA-256) // ¼º°ø : BS_SUCCESS, ½ÇÆÐ : BS_ERROR_OPEN_FILE DLL_EXPORT int BSCrypto_FileToSha256(LPCWCH sPath, BYTE* pOutHash); // ÁöÁ¤µÈ Å©±â¸¸Å­ ÀÓÀÇÀÇ ¹®ÀÚ¸¦ ¹ß»ý½ÃÅ´´Ï´Ù. DLL_EXPORT void BSCrypto_SetRandomStr(char* sRnd, int nLen); // ºí·Ï ¾Ïȣȭ¸¦ ÁغñÇÕ´Ï´Ù. // ÀÎÀÚ·Î ¹ÞÀº ۸¦ 32byte binaryŰ·Î À籸¼º ÇÏ°í ´ë»ó µ¥ÀÌÅÍ ÇØ½Ã°è»ê(SHA-256)À» ÁغñÇÕ´Ï´Ù. // »óŰ¡ BS_STATE_INIT°¡ ¾Æ´Ñ°æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // // Áغñ°¡ ¿Ï·áµÇ¸é »óŸ¦ BS_STATE_ENC·Î º¯°æÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ : BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_EncInit(const char* sKey); // µ¥ÀÌÅ͸¦ ¾Ïȣȭ ÇÕ´Ï´Ù. ¿øº»µ¥ÀÌÅÍ´Â ¹«°á¼º °Ë»ç¸¦ À§ÇØ ÇØ½Ã¸¦ ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. // »óŰ¡ BS_STATE_ENC°¡ ¾Æ´Ñ °æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ: BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_EncUpdate(const BYTE* pIn, BYTE* pOut, int nIn); // ¾Ïȣȭ¸¦ Á¾·á ÇÕ´Ï´Ù. pOutHash ÁÖ¼Ò°ªÀÌ NULL ¾Æ´Ñ °æ¿ì ¿øº» µ¥ÀÌÅÍÀÇ ÇØÅ°°ªÀ» ¹ÝȯÇÕ´Ï´Ù. (32byte °íÁ¤) // »óŰ¡ BS_STATE_ENC°¡ ¾Æ´Ñ °æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // ¾Ïȣȭ Á¤º¸¸¦ ÃʱâÈ­ ÈÄ »óÅ Á¤º¸¸¦ BS_STATE_INIT·Î µÇµ¹¸³´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ: BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_EncFinal(BYTE** pOutHash); // ºí·Ï º¹È£È­¸¦ ÁغñÇÕ´Ï´Ù. // ÀÎÀÚ·Î ¹ÞÀº ۸¦ 32byte binaryŰ·Î À籸¼º ÇÏ°í º¹È£È­µÈ µ¥ÀÌÅÍ ÇØ½Ã°è»ê(SHA-256)À» ÁغñÇÕ´Ï´Ù. // »óŰ¡ BS_STATE_INIT°¡ ¾Æ´Ñ°æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // Áغñ°¡ ¿Ï·áµÇ¸é »óŸ¦ BS_STATE_DEC·Î º¯°æÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ : BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_DecInit(const char* sKey); // µ¥ÀÌÅ͸¦ º¹È£È­ ÇÕ´Ï´Ù. º¹È£È­µÈ µ¥ÀÌÅÍ´Â ¹«°á¼º °Ë»ç¸¦ À§ÇØ ÇØ½Ã¸¦ ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. // »óŰ¡ BS_STATE_DEC°¡ ¾Æ´Ñ °æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ: BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_DecUpdate(const BYTE* pIn, BYTE* pOut, int nIn); // º¹È£È­¸¦ Á¾·á ÇÕ´Ï´Ù. pOutHash ÁÖ¼Ò°ªÀÌ NULL ¾Æ´Ñ °æ¿ì º¹È£È­µÈ µ¥ÀÌÅÍÀÇ ÇØÅ°°ªÀ» ¹ÝȯÇÕ´Ï´Ù. (32byte °íÁ¤) // »óŰ¡ BS_STATE_DEC°¡ ¾Æ´Ñ °æ¿ì ½ÇÆÐÇÕ´Ï´Ù. // ¾Ïȣȭ Á¤º¸¸¦ ÃʱâÈ­ ÈÄ »óÅ Á¤º¸¸¦ BS_STATE_INIT·Î µÇµ¹¸³´Ï´Ù. // ¼º°ø : BS_SUCCESS, ½ÇÆÐ: BS_ERROR_STATE_IN_ERROR DLL_EXPORT int BSCrypto_DecFinal(BYTE** pOutHash); // ÆÄÀÏÀ» ¾Ïȣȭ ÇÕ´Ï´Ù. // ÀÎÀÚ°ª : ¾Ïȣȭ Ű, ´ë»ó ÆÄÀÏ °æ·Î, ¾ÏȣȭµÈ ÆÄÀÏ ÀúÀå °æ·Î // // °á°ú°ª // BS_SUCCESS : ¼º°ø // BS_ERROR_OPEN_FILE : ¿øº» ÆÄÀÏ ¿­±â ½ÇÆÐ DLL_EXPORT int BSCrypto_EncFile(const char* sKey, LPCWCH sSrcPath, LPCWCH sDestPath); // ÆÄÀÏÀ» º¹È£È­ ÇÕ´Ï´Ù. // ÀÎÀÚ°ª : º¹È£È­ Ű, ¾ÏȣȭµÈ ÆÄÀÏ °æ·Î, º¹È£È­µÈ ÆÄÀÏ ÀúÀå °æ·Î // // °á°ú°ª // BS_SUCCESS : ¼º°ø // BS_ERROR_OPEN_FILE : ¾ÏȣȭµÈ ÆÄÀÏ ¿­±â ½ÇÆÐ // BS_ERROR_INVALID_ENC_FILE : À߸øµÈ ¾Ïȣȭ ÆÄÀÏ // BS_ERROR_CREATE_FILE : º¹È£È­ ÆÄÀÏ »ý¼º ½ÇÆÐ // BS_ERROR_DECRYPT_FILE : º¹È£È­ ÈÄ ¹«°á¼º °Ë»ç ½ÇÆÐ, º¹È£È­ ۰¡ À߸ø µÇ¾ú°Å³ª ÆÄÀÏÀÌ ¼Õ»óµÈ °æ¿ì ¹ß»ý DLL_EXPORT int BSCrypto_DecFile(const char* sKey, LPCWCH sSrcPath, LPCWCH sDestPath); // ¾ÏȣȭµÈ ÆÄÀÏÀÇ Çì´õ Á¤º¸¿¡¼­ ¿øº» ÆÄÀÏÀÇ ÇØ½Ã°ª(SHA-256)À» ¹ÝȯÇÕ´Ï´Ù. // // °á°ú°ª // BS_SUCCESS : ¼º°ø // BS_ERROR_OPEN_FILE : ¾ÏȣȭµÈ ÆÄÀÏ ¿­±â ½ÇÆÐ // BS_ERROR_INVALID_ENC_FILE : À߸øµÈ ¾Ïȣȭ ÆÄÀÏ DLL_EXPORT int BSCrypto_GetOrgFileHash(LPCWCH sEncPath, BYTE* pOutHash); // ¾ÏȣȭµÈ ÆÄÀÏÀÎÁö È®ÀÎÇÕ´Ï´Ù. // // °á°ú°ª // BS_SUCCESS : ¼º°ø // BS_ERROR_OPEN_FILE : ´ë»ó ÆÄÀÏ ¿­±â ½ÇÆÐ // BS_ERROR_INVALID_ENC_FILE : ¾Ïȣȭ ÆÄÀÏ ¾Æ´Ô DLL_EXPORT int BSCrypto_IsEncFile(LPCWCH sEncPath); #ifdef __cplusplus } #endif #endif