-/*=============================================================================\r
-* \83\8c\83W\83X\83g\83\8a\8aÖ\8cW\r
+/*=============================================================================\r
+* レジストリ関係\r
*\r
*\r
===============================================================================\r
/ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
/============================================================================*/\r
\r
-// VC 8.0(2005)\88È\8fã\82Å\82Ì\82Ý rand_s \82ð\97\98\97p\89Â\94\\r
+// VC 8.0(2005)以上でのみ rand_s を利用可能\r
#if 1400 <= _MSC_VER\r
//#define _CRT_RAND_S\r
#endif\r
#include "aes.h"\r
\r
\r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
\r
static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr);\r
static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum);\r
\r
DWORD GetRandamDWRODValue(void);\r
\r
-/* 2010.01.30 genta \92Ç\89Á */\r
+/* 2010.01.30 genta 追加 */\r
static char SecretKey[FMAX_PATH+1];\r
static int SecretKeyLength;\r
static int IsMasterPasswordError = PASSWORD_OK;\r
static int IsRndSourceInit = 0;\r
static ulong RndSource[9];\r
\r
-/*===== \8aO\95\94\8eQ\8fÆ =====*/\r
+/*===== 外部参照 =====*/\r
\r
-/* \90Ý\92è\92l */\r
+/* 設定値 */\r
extern int WinPosX;\r
extern int WinPosY;\r
extern int WinWidth;\r
extern int FolderAttr;\r
extern int FolderAttrNum;\r
\r
-/*----- \83}\83X\83^\83p\83X\83\8f\81[\83h\82Ì\90Ý\92è ----------------------------------------------\r
+/*----- マスタパスワードの設定 ----------------------------------------------\r
*\r
* Parameter\r
-* const char* Password : \83}\83X\83^\81[\83p\83X\83\8f\81[\83h\r
+* const char* Password : マスターパスワード\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
void SetMasterPassword( const char* Password )\r
{\r
}\r
SecretKeyLength = strlen( SecretKey );\r
\r
- /* \96¢\8c\9f\8fØ\82È\82Ì\82Å\81C\8f\89\8aú\8fó\91Ô\82ÍOK\82É\82·\82é (\8b\90§\8dÄ\90Ý\92è\81¨\95Û\91¶\82É\82ð\89Â\94\\82É\82·\82é)*/\r
+ /* 未検証なので,初期状態はOKにする (強制再設定→保存にを可能にする)*/\r
IsMasterPasswordError = PASSWORD_OK;\r
}\r
\r
-/*----- \83}\83X\83^\83p\83X\83\8f\81[\83h\82Ì\8fó\91Ô\8eæ\93¾ ----------------------------------------------\r
+/*----- マスタパスワードの状態取得 ----------------------------------------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
* PASSWORD_OK : OK\r
-* PASSWORD_UNMATCH : \83p\83X\83\8f\81[\83h\95s\88ê\92v\r
-* BAD_PASSWORD_HASH : \83p\83X\83\8f\81[\83h\8am\94F\8e¸\94s\r
+* PASSWORD_UNMATCH : パスワード不一致\r
+* BAD_PASSWORD_HASH : パスワード確認失敗\r
*----------------------------------------------------------------------------*/\r
int GetMasterPasswordStatus(void)\r
{\r
return IsMasterPasswordError;\r
}\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a\81^INI\83t\83@\83C\83\8b\82Ì\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\8c\9f\8fØ\82ð\8ds\82¤ ------------\r
+/*----- レジストリ/INIファイルのマスターパスワードの検証を行う ------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
* \r
int i;\r
\r
SetRegType(REGTYPE_INI);\r
- if((i = OpenReg("FFFTP", &hKey3)) != SUCCESS)\r
+ if((i = OpenReg("FFFTP", &hKey3)) != FFFTP_SUCCESS)\r
{\r
if(AskForceIni() == NO)\r
{\r
i = OpenReg("FFFTP", &hKey3);\r
}\r
}\r
- if(i == SUCCESS){\r
+ if(i == FFFTP_SUCCESS){\r
char checkbuf[48];\r
int salt = 0;\r
\r
if( ReadIntValueFromReg(hKey3, "CredentialSalt", &salt)){\r
SetHashSalt( salt );\r
}\r
- if( ReadStringFromReg(hKey3, "CredentialCheck", checkbuf, sizeof( checkbuf )) == SUCCESS ){\r
+ if( ReadStringFromReg(hKey3, "CredentialCheck", checkbuf, sizeof( checkbuf )) == FFFTP_SUCCESS ){\r
switch( CheckPasswordValidity( SecretKey, SecretKeyLength, checkbuf ) ){\r
case 0: /* not match */\r
IsMasterPasswordError = PASSWORD_UNMATCH;\r
return NO;\r
}\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a\81^INI\83t\83@\83C\83\8b\82É\90Ý\92è\92l\82ð\95Û\91¶ ---------------------------------\r
+/*----- レジストリ/INIファイルに設定値を保存 ---------------------------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
void SaveRegistory(void)\r
HISTORYDATA DefaultHist;\r
\r
if( GetMasterPasswordStatus() == PASSWORD_UNMATCH ){\r
- /* 2010.01.30 genta: \83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\95s\88ê\92v\82Ì\8fê\8d\87\82Í\95s\97p\88Ó\82É\8fã\8f\91\82«\82µ\82È\82¢ */\r
+ /* 2010.01.30 genta: マスターパスワードが不一致の場合は不用意に上書きしない */\r
return;\r
}\r
\r
SetRegType(RegType);\r
- if(CreateReg("FFFTP", &hKey3) == SUCCESS)\r
+ if(CreateReg("FFFTP", &hKey3) == FFFTP_SUCCESS)\r
{\r
char buf[48];\r
int salt = GetTickCount();\r
CreatePasswordHash( SecretKey, SecretKeyLength, buf );\r
WriteStringToReg(hKey3, "CredentialCheck", buf);\r
\r
- if(CreateSubKey(hKey3, "Options", &hKey4) == SUCCESS)\r
+ if(CreateSubKey(hKey3, "Options", &hKey4) == FFFTP_SUCCESS)\r
{\r
WriteIntValueToReg(hKey4, "NoSave", SuppressSave);\r
\r
\r
WriteIntValueToReg(hKey4, "HistNum", FileHist);\r
\r
- /* Ver1.54a\88È\91O\82Ì\8c`\8e®\82Ì\83q\83X\83g\83\8a\83f\81[\83^\82Í\8dí\8f\9c */\r
+ /* Ver1.54a以前の形式のヒストリデータは削除 */\r
DeleteValue(hKey4, "Hist");\r
\r
- /* \83q\83X\83g\83\8a\82Ì\90Ý\92è\82ð\95Û\91¶ */\r
+ /* ヒストリの設定を保存 */\r
CopyDefaultHistory(&DefaultHist);\r
n = 0;\r
for(i = AskHistoryNum(); i > 0; i--)\r
{\r
- if(GetHistoryByNum(i-1, &Hist) == SUCCESS)\r
+ if(GetHistoryByNum(i-1, &Hist) == FFFTP_SUCCESS)\r
{\r
sprintf(Str, "History%d", n);\r
- if(CreateSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+ if(CreateSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
{\r
SaveStr(hKey5, "HostAdrs", Hist.HostAdrs, DefaultHist.HostAdrs);\r
SaveStr(hKey5, "UserName", Hist.UserName, DefaultHist.UserName);\r
SaveIntNum(hKey5, "UseIt", Hist.DialupAlways, DefaultHist.DialupAlways);\r
SaveIntNum(hKey5, "Notify", Hist.DialupNotify, DefaultHist.DialupNotify);\r
SaveStr(hKey5, "DialTo", Hist.DialEntry, DefaultHist.DialEntry);\r
- // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+ // 暗号化通信対応\r
SaveIntNum(hKey5, "FTPES", Hist.UseFTPES, DefaultHist.UseFTPES);\r
SaveIntNum(hKey5, "FTPIS", Hist.UseFTPIS, DefaultHist.UseFTPIS);\r
SaveIntNum(hKey5, "SFTP", Hist.UseSFTP, DefaultHist.UseSFTP);\r
+ // 同時接続対応\r
+ SaveIntNum(hKey5, "ThreadCount", Hist.MaxThreadCount, DefaultHist.MaxThreadCount);\r
+ // MLSD対応\r
+ SaveIntNum(hKey5, "MLSD", Hist.UseMLSD, DefaultHist.UseMLSD);\r
\r
CloseSubKey(hKey5);\r
n++;\r
}\r
WriteIntValueToReg(hKey4, "SavedHist", n);\r
\r
- /* \97]\95ª\82È\83q\83X\83g\83\8a\82ª\82 \82Á\82½\82ç\8dí\8f\9c */\r
+ /* 余分なヒストリがあったら削除 */\r
for(; n < 999; n++)\r
{\r
sprintf(Str, "History%d", n);\r
- if(DeleteSubKey(hKey4, Str) != SUCCESS)\r
+ if(DeleteSubKey(hKey4, Str) != FFFTP_SUCCESS)\r
break;\r
}\r
\r
- /* \83z\83X\83g\82Ì\90Ý\92è\82ð\95Û\91¶ */\r
+ /* ホストの設定を保存 */\r
CopyDefaultHost(&DefaultHost);\r
i = 0;\r
- while(CopyHostFromList(i, &Host) == SUCCESS)\r
+ while(CopyHostFromList(i, &Host) == FFFTP_SUCCESS)\r
{\r
sprintf(Str, "Host%d", i);\r
- if(CreateSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+ if(CreateSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
{\r
// SaveIntNum(hKey5, "Set", Host.Level, DefaultHost.Level);\r
WriteIntValueToReg(hKey5, "Set", Host.Level);\r
SaveIntNum(hKey5, "UseIt", Host.DialupAlways, DefaultHost.DialupAlways);\r
SaveIntNum(hKey5, "Notify", Host.DialupNotify, DefaultHost.DialupNotify);\r
SaveStr(hKey5, "DialTo", Host.DialEntry, DefaultHost.DialEntry);\r
- // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+ // 暗号化通信対応\r
SaveIntNum(hKey5, "FTPES", Host.UseFTPES, DefaultHost.UseFTPES);\r
SaveIntNum(hKey5, "FTPIS", Host.UseFTPIS, DefaultHost.UseFTPIS);\r
SaveIntNum(hKey5, "SFTP", Host.UseSFTP, DefaultHost.UseSFTP);\r
+ // 同時接続対応\r
+ SaveIntNum(hKey5, "ThreadCount", Host.MaxThreadCount, DefaultHost.MaxThreadCount);\r
+ // MLSD対応\r
+ SaveIntNum(hKey5, "MLSD", Host.UseMLSD, DefaultHost.UseMLSD);\r
}\r
CloseSubKey(hKey5);\r
}\r
}\r
WriteIntValueToReg(hKey4, "SetNum", i);\r
\r
- /* \97]\95ª\82È\83z\83X\83g\82Ì\90Ý\92è\82ª\82 \82Á\82½\82ç\8dí\8f\9c */\r
+ /* 余分なホストの設定があったら削除 */\r
for(; i < 998; i++)\r
{\r
sprintf(Str, "Host%d", i);\r
- if(DeleteSubKey(hKey4, Str) != SUCCESS)\r
+ if(DeleteSubKey(hKey4, Str) != FFFTP_SUCCESS)\r
break;\r
}\r
\r
return;\r
}\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a\81^INI\83t\83@\83C\83\8b\82©\82ç\90Ý\92è\92l\82ð\8cÄ\82Ñ\8fo\82· ---------------------------\r
+/*----- レジストリ/INIファイルから設定値を呼び出す ---------------------------\r
*\r
-* \82±\82Ì\8aÖ\90\94\82ð\95¡\90\94\89ñ\8cÄ\82Ñ\8fo\82·\82Æ\81C\83z\83X\83g\90Ý\92è\82ª\92Ç\89Á\82³\82ê\82é\81D\r
+* この関数を複数回呼び出すと,ホスト設定が追加される.\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
-* YES: \93Ç\82Ý\8fo\82µ\90¬\8c÷\r
-* NO: \93Ç\82Ý\8fo\82µ\8e¸\94s(\90Ý\92è\96³\82µ)\r
+* YES: 読み出し成功\r
+* NO: 読み出し失敗(設定無し)\r
*----------------------------------------------------------------------------*/\r
\r
int LoadRegistory(void)\r
void *hKey5;\r
int i;\r
int Sets;\r
- char Str[256]; /* ASCII_EXT_LEN\82æ\82è\91å\82«\82¢\8e\96 */\r
+ char Str[256]; /* ASCII_EXT_LENより大きい事 */\r
char *Pos;\r
char *Pos2;\r
HOSTDATA Host;\r
Sts = NO;\r
\r
SetRegType(REGTYPE_INI);\r
- if((i = OpenReg("FFFTP", &hKey3)) != SUCCESS)\r
+ if((i = OpenReg("FFFTP", &hKey3)) != FFFTP_SUCCESS)\r
{\r
if(AskForceIni() == NO)\r
{\r
}\r
}\r
\r
- if(i == SUCCESS)\r
+ if(i == FFFTP_SUCCESS)\r
{\r
- char checkbuf[48];\r
+// char checkbuf[48];\r
int salt = 0;\r
Sts = YES;\r
\r
ReadIntValueFromReg(hKey3, "Version", &Version);\r
\r
- if(OpenSubKey(hKey3, "Options", &hKey4) == SUCCESS)\r
+ if(OpenSubKey(hKey3, "Options", &hKey4) == FFFTP_SUCCESS)\r
{\r
ReadIntValueFromReg(hKey4, "WinPosX", &WinPosX);\r
ReadIntValueFromReg(hKey4, "WinPosY", &WinPosY);\r
ReadIntValueFromReg(hKey4, "WinWidth", &WinWidth);\r
ReadIntValueFromReg(hKey4, "WinHeight", &WinHeight);\r
ReadIntValueFromReg(hKey4, "LocalWidth", &LocalWidth);\r
- /* \81«\8b\8c\83o\81[\83W\83\87\83\93\82Ì\83o\83O\91Î\8dô */\r
+ /* ↓旧バージョンのバグ対策 */\r
LocalWidth = max1(0, LocalWidth);\r
ReadIntValueFromReg(hKey4, "TaskHeight", &TaskHeight);\r
- /* \81«\8b\8c\83o\81[\83W\83\87\83\93\82Ì\83o\83O\91Î\8dô */\r
+ /* ↓旧バージョンのバグ対策 */\r
TaskHeight = max1(0, TaskHeight);\r
ReadBinaryFromReg(hKey4, "LocalColm", &LocalTabWidth, sizeof(LocalTabWidth));\r
ReadBinaryFromReg(hKey4, "RemoteColm", &RemoteTabWidth, sizeof(RemoteTabWidth));\r
ReadIntValueFromReg(hKey4, "RegExp", &FindMode);\r
ReadIntValueFromReg(hKey4, "Reg", &RegType);\r
\r
- if(ReadMultiStringFromReg(hKey4, "AsciiFile", AsciiExt, ASCII_EXT_LEN+1) == FAIL)\r
+ if(ReadMultiStringFromReg(hKey4, "AsciiFile", AsciiExt, ASCII_EXT_LEN+1) == FFFTP_FAIL)\r
{\r
- /* \8b\8cASCII\83\82\81[\83h\82Ì\8ag\92£\8eq\82Ì\90Ý\92è\82ð\90V\82µ\82¢\82à\82Ì\82É\95Ï\8a· */\r
+ /* 旧ASCIIモードの拡張子の設定を新しいものに変換 */\r
ReadStringFromReg(hKey4, "Ascii", Str, ASCII_EXT_LEN+1);\r
memset(AsciiExt, NUL, ASCII_EXT_LEN+1);\r
Pos = Str;\r
ReadIntValueFromReg(hKey4, "MirUNot", &MirUpDelNotify);\r
ReadIntValueFromReg(hKey4, "MirDNot", &MirDownDelNotify);\r
\r
- if(ReadStringFromReg(hKey4, "ListFont", Str, 256) == SUCCESS)\r
+ if(ReadStringFromReg(hKey4, "ListFont", Str, 256) == FFFTP_SUCCESS)\r
{\r
- if(RestoreFontData(Str, &ListLogFont) == SUCCESS)\r
+ if(RestoreFontData(Str, &ListLogFont) == FFFTP_SUCCESS)\r
ListFont = CreateFontIndirect(&ListLogFont);\r
}\r
ReadIntValueFromReg(hKey4, "ListHide", &DispIgnoreHide);\r
ReadIntValueFromReg(hKey4, "HistNum", &FileHist);\r
// ReadMultiStringFromReg(hKey4, "Hist", Hist, (FMAX_PATH+1)*HISTORY_MAX+1);\r
\r
- /* \83q\83X\83g\83\8a\82Ì\90Ý\92è\82ð\93Ç\82Ý\8d\9e\82Þ */\r
+ /* ヒストリの設定を読み込む */\r
Sets = 0;\r
ReadIntValueFromReg(hKey4, "SavedHist", &Sets);\r
\r
for(i = 0; i < Sets; i++)\r
{\r
sprintf(Str, "History%d", i);\r
- if(OpenSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+ if(OpenSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
{\r
CopyDefaultHistory(&Hist);\r
\r
ReadIntValueFromReg(hKey5, "UseIt", &Hist.DialupAlways);\r
ReadIntValueFromReg(hKey5, "Notify", &Hist.DialupNotify);\r
ReadStringFromReg(hKey5, "DialTo", Hist.DialEntry, RAS_NAME_LEN+1);\r
- // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+ // 暗号化通信対応\r
ReadIntValueFromReg(hKey5, "FTPES", &Hist.UseFTPES);\r
ReadIntValueFromReg(hKey5, "FTPIS", &Hist.UseFTPIS);\r
ReadIntValueFromReg(hKey5, "SFTP", &Hist.UseSFTP);\r
+ // 同時接続対応\r
+ ReadIntValueFromReg(hKey5, "ThreadCount", &Hist.MaxThreadCount);\r
+ // MLSD対応\r
+ ReadIntValueFromReg(hKey5, "MLSD", &Hist.UseMLSD);\r
\r
CloseSubKey(hKey5);\r
AddHistoryToHistory(&Hist);\r
}\r
}\r
\r
- /* \83z\83X\83g\82Ì\90Ý\92è\82ð\93Ç\82Ý\8d\9e\82Þ */\r
+ /* ホストの設定を読み込む */\r
Sets = 0;\r
ReadIntValueFromReg(hKey4, "SetNum", &Sets);\r
\r
for(i = 0; i < Sets; i++)\r
{\r
sprintf(Str, "Host%d", i);\r
- if(OpenSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+ if(OpenSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
{\r
CopyDefaultHost(&Host);\r
- /* \89º\88Ê\8cÝ\8a·\90«\82Ì\82½\82ß */\r
- // SourceForge.JP\82É\82æ\82é\83t\83H\81[\83N\r
+ /* 下位互換性のため */\r
+ // SourceForge.JPによるフォーク\r
// if(Version < VER_NUM)\r
if(Version < 1921)\r
{\r
Host.Pasv = NO;\r
Host.ListCmdOnly = NO;\r
}\r
+ // 1.97b以前はデフォルトでShift_JIS\r
+ if(Version < 1980)\r
+ Host.NameKanjiCode = KANJI_SJIS;\r
ReadIntValueFromReg(hKey5, "Set", &Host.Level);\r
\r
ReadStringFromReg(hKey5, "HostName", Host.HostName, HOST_NAME_LEN+1);\r
ReadIntValueFromReg(hKey5, "UseIt", &Host.DialupAlways);\r
ReadIntValueFromReg(hKey5, "Notify", &Host.DialupNotify);\r
ReadStringFromReg(hKey5, "DialTo", Host.DialEntry, RAS_NAME_LEN+1);\r
- // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+ // 暗号化通信対応\r
ReadIntValueFromReg(hKey5, "FTPES", &Host.UseFTPES);\r
ReadIntValueFromReg(hKey5, "FTPIS", &Host.UseFTPIS);\r
ReadIntValueFromReg(hKey5, "SFTP", &Host.UseSFTP);\r
+ // 同時接続対応\r
+ ReadIntValueFromReg(hKey5, "ThreadCount", &Host.MaxThreadCount);\r
+ // MLSD対応\r
+ ReadIntValueFromReg(hKey5, "MLSD", &Host.UseMLSD);\r
\r
CloseSubKey(hKey5);\r
\r
}\r
else\r
{\r
- /*===== \8dÅ\8f\89\82Ì\8bN\93®\8e\9e\81i\90Ý\92è\82ª\96³\82¢) =====*/\r
+ /*===== 最初の起動時(設定が無い) =====*/\r
\r
#if 0\r
strcpy(UserMailAdrs, "");\r
}\r
\r
\r
-/*----- \89B\82µ\83h\83\89\83C\83u\8fî\95ñ\82ð\8eæ\93¾ ------------------------------------------------\r
+/*----- 隠しドライブ情報を取得 ------------------------------------------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
* DWORD \r
-* YES/NO=\90Ý\92è\96³\82µ\r
+* YES/NO=設定無し\r
*----------------------------------------------------------------------------*/\r
\r
DWORD LoadHideDriveListRegistory(void)\r
}\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a\82Ì\90Ý\92è\92l\82ð\83N\83\8a\83A --------------------------------------------\r
+/*----- レジストリの設定値をクリア --------------------------------------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
void ClearRegistory(void)\r
}\r
\r
\r
-/*----- \90Ý\92è\82ð\83t\83@\83C\83\8b\82É\95Û\91¶ --------------------------------------------------\r
+/*----- 設定をファイルに保存 --------------------------------------------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
void SaveSettingsToFile(void)\r
}\r
\r
\r
-/*----- \90Ý\92è\82ð\83t\83@\83C\83\8b\82©\82ç\95\9c\8c³ ------------------------------------------------\r
+/*----- 設定をファイルから復元 ------------------------------------------------\r
*\r
* Parameter\r
-* \82È\82µ\r
+* なし\r
*\r
* Return Value\r
-* int \83\8d\81[\83h\82µ\82½\82©\82Ç\82¤\82© (YES/NO)\r
+* int ロードしたかどうか (YES/NO)\r
*----------------------------------------------------------------------------*/\r
\r
int LoadSettingsFromFile(void)\r
else\r
{\r
Ret = YES;\r
- /* \83\8c\83W\83X\83g\83\8a\83G\83f\83B\83^\82ª\8fI\97¹\82·\82é\82Ì\82ð\91Ò\82Â */\r
+ /* レジストリエディタが終了するのを待つ */\r
// WaitForSingleObject(Info.hProcess, INFINITE);\r
}\r
}\r
\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82É\95¶\8e\9a\97ñ\82ð\83Z\81[\83u --------------------------------\r
+/*----- レジストリ/INIファイルに文字列をセーブ --------------------------------\r
*\r
* Parameter\r
-* HKEY hKey : \83\8c\83W\83X\83g\83\8a\83L\81[\r
-* char *Key : \83L\81[\96¼\r
-* char *Str : \83Z\81[\83u\82·\82é\95¶\8e\9a\97ñ\r
-* char *DefaultStr : \83f\83t\83H\83\8b\83g\82Ì\95¶\8e\9a\97ñ\r
+* HKEY hKey : レジストリキー\r
+* char *Key : キー名\r
+* char *Str : セーブする文字列\r
+* char *DefaultStr : デフォルトの文字列\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*\r
* Note\r
-* \95¶\8e\9a\97ñ\82ª\83f\83t\83H\83\8b\83g\82Ì\95¶\8e\9a\97ñ\82Æ\93¯\82¶\82È\82ç\83Z\81[\83u\82µ\82È\82¢\r
+* 文字列がデフォルトの文字列と同じならセーブしない\r
*----------------------------------------------------------------------------*/\r
\r
static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr)\r
}\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82É\90\94\92l(INT)\82ð\83Z\81[\83u -----------------------------\r
+/*----- レジストリ/INIファイルに数値(INT)をセーブ -----------------------------\r
*\r
* Parameter\r
-* HKEY hKey : \83\8c\83W\83X\83g\83\8a\83L\81[\r
-* char *Key : \83L\81[\96¼\r
-* int Num : \83Z\81[\83u\82·\82é\92l\r
-* int DefaultNum : \83f\83t\83H\83\8b\83g\82Ì\92l\r
+* HKEY hKey : レジストリキー\r
+* char *Key : キー名\r
+* int Num : セーブする値\r
+* int DefaultNum : デフォルトの値\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*\r
* Note\r
-* \90\94\92l\82ª\83f\83t\83H\83\8b\83g\82Ì\92l\82Æ\93¯\82¶\82È\82ç\83Z\81[\83u\82µ\82È\82¢\r
+* 数値がデフォルトの値と同じならセーブしない\r
*----------------------------------------------------------------------------*/\r
\r
static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum)\r
}\r
\r
\r
-/*----- LOGFONT\83f\81[\83^\82ð\95¶\8e\9a\97ñ\82É\95Ï\8a·\82·\82é ---------------------------------------\r
+/*----- LOGFONTデータを文字列に変換する ---------------------------------------\r
*\r
* Parameter\r
-* LOGFONT Font : \83t\83H\83\93\83g\83f\81[\83^\r
-* HFONT hFont : \83t\83H\83\93\83g\82Ì\83n\83\93\83h\83\8b\r
-* NULL = \83f\83t\83H\83\8b\83g\82Ì\83t\83H\83\93\83g\r
-* char *Buf : \83o\83b\83t\83@\r
+* LOGFONT Font : フォントデータ\r
+* HFONT hFont : フォントのハンドル\r
+* NULL = デフォルトのフォント\r
+* char *Buf : バッファ\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static void MakeFontData(LOGFONT Font, HFONT hFont, char *Buf)\r
}\r
\r
\r
-/*----- \95¶\8e\9a\97ñ\82ðLOGFONT\83f\81[\83^\82É\95Ï\8a·\82·\82é ---------------------------------------\r
+/*----- 文字列をLOGFONTデータに変換する ---------------------------------------\r
*\r
* Parameter\r
-* char *Str : \95¶\8e\9a\97ñ\r
-* LOGFONT *Font : \83t\83H\83\93\83g\83f\81[\83^\r
+* char *Str : 文字列\r
+* LOGFONT *Font : フォントデータ\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL=\95Ï\8a·\82Å\82«\82È\82¢\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL=変換できない\r
*----------------------------------------------------------------------------*/\r
\r
static int RestoreFontData(char *Str, LOGFONT *Font)\r
int i;\r
int Sts;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(sscanf(Str, "%d %d %d %d %d %d %d %d %d %d %d %d %d",\r
&(Font->lfHeight), &(Font->lfWidth), &(Font->lfEscapement), &(Font->lfOrientation),\r
&(Font->lfWeight), &(Font->lfItalic), &(Font->lfUnderline), &(Font->lfStrikeOut),\r
if(i == 0)\r
{\r
strcpy(Font->lfFaceName, Str);\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
\r
- if(Sts == FAIL)\r
+ if(Sts == FFFTP_FAIL)\r
memset(Font, NUL, sizeof(LOGFONT));\r
\r
return(Sts);\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é ------------------------------------------------\r
+/*----- パスワードを暗号化する ------------------------------------------------\r
*\r
* Parameter\r
-* char *Str : \83p\83X\83\8f\81[\83h\r
-* char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+* char *Str : パスワード\r
+* char *Buf : 暗号化したパスワードを格納するバッファ\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
static void EncodePassword(char *Str, char *Buf)\r
{\r
EncodePassword3( Str, Buf, SecretKey );\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80) ------------------\r
+/*----- パスワードを暗号化する(オリジナルアルゴリズム) ------------------\r
*\r
* Parameter\r
-* char *Str : \83p\83X\83\8f\81[\83h\r
-* char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+* char *Str : パスワード\r
+* char *Buf : 暗号化したパスワードを格納するバッファ\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static void EncodePasswordOriginal(char *Str, char *Buf)\r
return;\r
}\r
\r
- /* \8e¯\95Ê\8eq\82ð\90æ\93ª\82É\92u\82 */\r
+ /* 識別子を先頭に置く */\r
Put[0] = '0';\r
Put[1] = 'A';\r
Put += 2;\r
return;\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80\81OKey) ----------------\r
+/*----- パスワードを暗号化する(オリジナルアルゴリズム^Key) ----------------\r
*\r
* Parameter\r
-* char *Str : \83p\83X\83\8f\81[\83h\r
-* char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-* const char *Key : \88Ã\8d\86\89»\83L\81[\r
+* char *Str : パスワード\r
+* char *Buf : 暗号化したパスワードを格納するバッファ\r
+* const char *Key : 暗号化キー\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static void EncodePassword2(char *Str, char *Buf, const char* Key)\r
return;\r
}\r
\r
- /* \8e¯\95Ê\8eq\82ð\90æ\93ª\82É\92u\82 */\r
+ /* 識別子を先頭に置く */\r
Put[0] = '0';\r
Put[1] = 'B';\r
Put += 2;\r
return;\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é(AES) ------------------------------------------\r
+/*----- パスワードを暗号化する(AES) ------------------------------------------\r
*\r
* Parameter\r
-* char *Str : \83p\83X\83\8f\81[\83h\r
-* char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-* const char *Key : \88Ã\8d\86\89»\83L\81[\r
+* char *Str : パスワード\r
+* char *Buf : 暗号化したパスワードを格納するバッファ\r
+* const char *Key : 暗号化キー\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static void EncodePassword3(char *Str, char *Buf, const char *Key)\r
StrLen = strlen(Str);\r
StrPadLen = ((StrLen + AES_BLOCK_SIZE - 1) / AES_BLOCK_SIZE) * AES_BLOCK_SIZE;\r
\r
- /* \8dÅ\92á\92·\82ð32\95¶\8e\9a\82Æ\82·\82é */\r
+ /* 最低長を32文字とする */\r
// StrPadLen = min1(StrPadLen, AES_BLOCK_SIZE * 2);\r
StrPadLen = max1(StrPadLen, AES_BLOCK_SIZE * 2);\r
\r
PutState = FALSE;\r
strncpy(StrPadBuf, Str, StrPadLen);\r
\r
- /* PAD\95\94\95ª\82ð\97\90\90\94\82Å\96\84\82ß\82é StrPad[StrLen](\82ª\97L\8cø\82È\8fê\8d\87) \82Í NUL */\r
+ /* PAD部分を乱数で埋める StrPad[StrLen](が有効な場合) は NUL */\r
for(StrPadIndex = StrLen + 1; StrPadIndex < StrPadLen;)\r
{\r
RandValue = GetRandamDWRODValue();\r
}\r
}\r
\r
- // IV\82Ì\8f\89\8aú\89»\r
+ // IVの初期化\r
for(IvIndex = 0; IvIndex < AES_BLOCK_SIZE;)\r
{\r
RandValue = GetRandamDWRODValue();\r
}\r
*Put++ = ':';\r
\r
- if(CreateAesKey(AesKey, Key) == SUCCESS)\r
+ if(CreateAesKey(AesKey, Key) == FFFTP_SUCCESS)\r
{\r
aes_encrypt_key(AesKey, 32, &Ctx);\r
\r
}\r
\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82 ----------------------------------------------\r
+/*----- パスワードの暗号化を解く ----------------------------------------------\r
*\r
* Parameter\r
-* char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-* char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+* char *Str : 暗号化したパスワード\r
+* char *Buf : パスワードを格納するバッファ\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static void DecodePassword(char *Str, char *Buf)\r
}\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80) -------------------\r
+/*----- パスワードの暗号化を解く(オリジナルアルゴリズム) -------------------\r
*\r
* Parameter\r
-* char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-* char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+* char *Str : 暗号化したパスワード\r
+* char *Buf : パスワードを格納するバッファ\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
static void DecodePasswordOriginal(char *Str, char *Buf)\r
{\r
return;\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80\81OKey) -------------------\r
+/*----- パスワードの暗号化を解く(オリジナルアルゴリズム^Key) -------------------\r
*\r
* Parameter\r
-* char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-* char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-* const char *Key : \88Ã\8d\86\89»\83L\81[\r
+* char *Str : 暗号化したパスワード\r
+* char *Buf : パスワードを格納するバッファ\r
+* const char *Key : 暗号化キー\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
static void DecodePassword2(char *Str, char *Buf, const char* Key)\r
{\r
return;\r
}\r
\r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82(AES) ---------------------------------------\r
+/*----- パスワードの暗号化を解く(AES) ---------------------------------------\r
*\r
* Parameter\r
-* char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-* char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-* const char *Key : \88Ã\8d\86\89»\83L\81[\r
+* char *Str : 暗号化したパスワード\r
+* char *Buf : パスワードを格納するバッファ\r
+* const char *Key : 暗号化キー\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static void DecodePassword3(char *Str, char *Buf, const char *Key)\r
\r
if(*Get++ == ':')\r
{\r
- if(CreateAesKey(AesKey, Key) == SUCCESS)\r
+ if(CreateAesKey(AesKey, Key) == FFFTP_SUCCESS)\r
{\r
aes_decrypt_key(AesKey, 32, &Ctx);\r
\r
return;\r
}\r
\r
-/*----- AES\97p\8cÅ\92è\92·\83L\81[\82ð\8dì\90¬ ----------------------------------------------\r
+/*----- AES用固定長キーを作成 ----------------------------------------------\r
*\r
* Parameter\r
-* unsigned char *AesKey : AES\88Ã\8d\86\8c®\r
-* const char *Key : \88Ã\8d\86\89»\83L\81[\r
+* unsigned char *AesKey : AES暗号鍵\r
+* const char *Key : 暗号化キー\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X (SUCCESS/FAIL)\r
+* int ステータス (FFFTP_SUCCESS/FFFTP_FAIL)\r
* Note\r
-* SHA-1\82ð\82à\82¿\82¢\82Ä32Byte\8c®\82ð\90¶\90¬\82·\82é\r
+* SHA-1をもちいて32Byte鍵を生成する\r
*----------------------------------------------------------------------------*/\r
\r
static int CreateAesKey(unsigned char *AesKey, const char* Key)\r
\r
HashKeyLen = strlen(Key) + 16;\r
if((HashKey = malloc(HashKeyLen + 1)) == NULL){\r
- return (FAIL);\r
+ return (FFFTP_FAIL);\r
}\r
\r
strcpy(HashKey, Key);\r
}\r
free(HashKey);\r
\r
- return (SUCCESS);\r
+ return (FFFTP_SUCCESS);\r
}\r
\r
\r
-/*===== \83\8c\83W\83X\83g\83\8a\82ÆINI\83t\83@\83C\83\8b\82Ì\83A\83N\83Z\83X\8f\88\97\9d ============*/\r
+/*===== レジストリとINIファイルのアクセス処理 ============*/\r
\r
\r
-/*===== INI\83t\83@\83C\83\8b\97p\82Ì\83\8c\83W\83X\83g\83\8a\83f\81[\83^ =====*/\r
+/*===== INIファイル用のレジストリデータ =====*/\r
\r
typedef struct regdatatbl {\r
- char KeyName[80+1]; /* \83L\81[\96¼ */\r
- char ValTbl[REG_SECT_MAX]; /* \92l\82Ì\83e\81[\83u\83\8b */\r
- int ValLen; /* \92l\83f\81[\83^\82Ì\83o\83C\83g\90\94 */\r
- int Mode; /* \83L\81[\82Ì\83\82\81[\83h */\r
+ char KeyName[80+1]; /* キー名 */\r
+ char ValTbl[REG_SECT_MAX]; /* 値のテーブル */\r
+ int ValLen; /* 値データのバイト数 */\r
+ int Mode; /* キーのモード */\r
struct regdatatbl *Next;\r
} REGDATATBL;\r
\r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
\r
static BOOL WriteOutRegToFile(REGDATATBL *Pos);\r
static int ReadInReg(char *Name, REGDATATBL **Handle);\r
static char *ScanValue(void *Handle, char *Name);\r
\r
\r
-/*===== \83\8d\81[\83J\83\8b\82È\83\8f\81[\83N =====*/\r
+/*===== ローカルなワーク =====*/\r
\r
static int TmpRegType;\r
\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a\82Ì\83^\83C\83v\82ð\90Ý\92è\82·\82é ------------------------------------------\r
+/*----- レジストリのタイプを設定する ------------------------------------------\r
*\r
* Parameter\r
-* int Type : \83^\83C\83v (REGTYPE_xxx)\r
+* int Type : タイプ (REGTYPE_xxx)\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static void SetRegType(int Type)\r
}\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82ð\83I\81[\83v\83\93\82·\82é\81i\93Ç\82Ý\8d\9e\82Ý\81j-----------------------\r
+/*----- レジストリ/INIファイルをオープンする(読み込み)-----------------------\r
*\r
* Parameter\r
-* char *Name : \83\8c\83W\83X\83g\83\8a\96¼\r
-* void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+* char *Name : レジストリ名\r
+* void **Handle : ハンドルを返すワーク\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int OpenReg(char *Name, void **Handle)\r
int Sts;\r
char Tmp[FMAX_PATH+1];\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
strcpy(Tmp, "Software\\Sota\\");\r
strcat(Tmp, Name);\r
if(RegOpenKeyEx(HKEY_CURRENT_USER, Tmp, 0, KEY_READ, (HKEY *)Handle) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
- if((Sts = ReadInReg(Name, (REGDATATBL **)Handle)) == SUCCESS)\r
+ if((Sts = ReadInReg(Name, (REGDATATBL **)Handle)) == FFFTP_SUCCESS)\r
((REGDATATBL *)(*Handle))->Mode = 0;\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82ð\8dì\90¬\82·\82é\81i\8f\91\82«\8d\9e\82Ý\81j---------------------------\r
+/*----- レジストリ/INIファイルを作成する(書き込み)---------------------------\r
*\r
* Parameter\r
-* char *Name : \83\8c\83W\83X\83g\83\8a\96¼\r
-* void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+* char *Name : レジストリ名\r
+* void **Handle : ハンドルを返すワーク\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int CreateReg(char *Name, void **Handle)\r
char Tmp[FMAX_PATH+1];\r
DWORD Dispos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
strcpy(Tmp, "Software\\Sota\\");\r
strcat(Tmp, Name);\r
if(RegCreateKeyEx(HKEY_CURRENT_USER, Tmp, 0, "", REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY | KEY_SET_VALUE, NULL, (HKEY *)Handle, &Dispos) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
((REGDATATBL *)(*Handle))->ValLen = 0;\r
((REGDATATBL *)(*Handle))->Next = NULL;\r
((REGDATATBL *)(*Handle))->Mode = 1;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82ð\83N\83\8d\81[\83Y\82·\82é ----------------------------------\r
+/*----- レジストリ/INIファイルをクローズする ----------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
+* void *Handle : ハンドル\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int CloseReg(void *Handle)\r
{\r
RegCloseKey(Handle);\r
\r
- /* INI\83t\83@\83C\83\8b\82ð\8dí\8f\9c */\r
+ /* INIファイルを削除 */\r
if((Strm = fopen(AskIniFilePath(), "rt")) != NULL)\r
{\r
fclose(Strm);\r
{\r
if(WriteOutRegToFile(Handle) == TRUE)\r
{\r
-// /* \83\8c\83W\83X\83g\83\8a\82ð\83N\83\8a\83A */\r
+// /* レジストリをクリア */\r
// ClearRegistory();\r
}\r
}\r
- /* \83e\81[\83u\83\8b\82ð\8dí\8f\9c */\r
+ /* テーブルを削除 */\r
Pos = Handle;\r
while(Pos != NULL)\r
{\r
Pos = Next;\r
}\r
}\r
- return(SUCCESS);\r
+ return(FFFTP_SUCCESS);\r
}\r
\r
\r
-/*----- \83\8c\83W\83X\83g\83\8a\8fî\95ñ\82ðINI\83t\83@\83C\83\8b\82É\8f\91\82«\8d\9e\82Þ ---------------------------------\r
+/*----- レジストリ情報をINIファイルに書き込む ---------------------------------\r
*\r
* Parameter\r
-* REGDATATBL *Pos : \83\8c\83W\83X\83g\83\8a\83f\81[\83^\r
+* REGDATATBL *Pos : レジストリデータ\r
*\r
* Return Value\r
-* \82È\82µ\r
+* なし\r
*----------------------------------------------------------------------------*/\r
\r
static BOOL WriteOutRegToFile(REGDATATBL *Pos)\r
}\r
\r
\r
-/*----- INI\83t\83@\83C\83\8b\82©\82ç\83\8c\83W\83X\83g\83\8a\8fî\95ñ\82ð\93Ç\82Ý\8d\9e\82Þ -------------------------------\r
+/*----- INIファイルからレジストリ情報を読み込む -------------------------------\r
*\r
* Parameter\r
-* char *Name : \96¼\91O\r
-* void *Handle : \83n\83\93\83h\83\8b\r
+* char *Name : 名前\r
+* void *Handle : ハンドル\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int ReadInReg(char *Name, REGDATATBL **Handle)\r
REGDATATBL *Pos;\r
int Sts;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
*Handle = NULL;\r
\r
if((Strm = fopen(AskIniFilePath(), "rt")) != NULL)\r
}\r
}\r
}\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
free(Buf);\r
}\r
fclose(Strm);\r
}\r
\r
\r
-/*----- \83T\83u\83L\81[\82ð\83I\81[\83v\83\93\82·\82é ------------------------------------------------\r
+/*----- サブキーをオープンする ------------------------------------------------\r
*\r
* Parameter\r
-* void *Parent : \90e\82Ì\83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+* void *Parent : 親のハンドル\r
+* char *Name : 名前\r
+* void **Handle : ハンドルを返すワーク\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int OpenSubKey(void *Parent, char *Name, void **Handle)\r
char Key[80];\r
REGDATATBL *Pos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegOpenKeyEx(Parent, Name, 0, KEY_READ, (HKEY *)Handle) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
if(strcmp(Pos->KeyName, Key) == 0)\r
{\r
*Handle = Pos;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
break;\r
}\r
Pos = Pos->Next;\r
}\r
\r
\r
-/*----- \83T\83u\83L\81[\82ð\8dì\90¬\82·\82é ----------------------------------------------------\r
+/*----- サブキーを作成する ----------------------------------------------------\r
*\r
* Parameter\r
-* void *Parent : \90e\82Ì\83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+* void *Parent : 親のハンドル\r
+* char *Name : 名前\r
+* void **Handle : ハンドルを返すワーク\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int CreateSubKey(void *Parent, char *Name, void **Handle)\r
DWORD Dispos;\r
REGDATATBL *Pos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegCreateKeyEx(Parent, Name, 0, "", REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, (HKEY *)Handle, &Dispos) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
while(Pos->Next != NULL)\r
Pos = Pos->Next;\r
Pos->Next = *Handle;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \83T\83u\83L\81[\82ð\83N\83\8d\81[\83Y\82·\82é ------------------------------------------------\r
+/*----- サブキーをクローズする ------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
+* void *Handle : ハンドル\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int CloseSubKey(void *Handle)\r
{\r
/* Nothing */\r
}\r
- return(SUCCESS);\r
+ return(FFFTP_SUCCESS);\r
}\r
\r
\r
-/*----- \83T\83u\83L\81[\82ð\8dí\8f\9c\82·\82é ----------------------------------------------------\r
+/*----- サブキーを削除する ----------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int DeleteSubKey(void *Handle, char *Name)\r
{\r
int Sts;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegDeleteKey(Handle, Name) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \92l\82ð\8dí\8f\9c\82·\82é ----------------------------------------------------------\r
+/*----- 値を削除する ----------------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int DeleteValue(void *Handle, char *Name)\r
{\r
int Sts;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegDeleteValue(Handle, Name) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- INT\92l\82ð\93Ç\82Ý\8d\9e\82Þ -------------------------------------------------------\r
+/*----- INT値を読み込む -------------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* int *Value : INT\92l\82ð\95Ô\82·\83\8f\81[\83N\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* int *Value : INT値を返すワーク\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int ReadIntValueFromReg(void *Handle, char *Name, int *Value)\r
DWORD Size;\r
char *Pos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
Size = sizeof(int);\r
if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Value, &Size) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
if((Pos = ScanValue(Handle, Name)) != NULL)\r
{\r
*Value = atoi(Pos);\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- INT\92l\82ð\8f\91\82«\8d\9e\82Þ -------------------------------------------------------\r
+/*----- INT値を書き込む -------------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* int Value : INT\92l\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* int Value : INT値\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int WriteIntValueToReg(void *Handle, char *Name, int Value)\r
strcat(Data, Tmp);\r
Pos->ValLen += strlen(Data) + 1;\r
}\r
- return(SUCCESS);\r
+ return(FFFTP_SUCCESS);\r
}\r
\r
\r
-/*----- \95¶\8e\9a\97ñ\82ð\93Ç\82Ý\8d\9e\82Þ ------------------------------------------------------\r
+/*----- 文字列を読み込む ------------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* char *Str : \95¶\8e\9a\97ñ\82ð\95Ô\82·\83\8f\81[\83N\r
-* DWORD Size : \8dÅ\91å\83T\83C\83Y\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* char *Str : 文字列を返すワーク\r
+* DWORD Size : 最大サイズ\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int ReadStringFromReg(void *Handle, char *Name, char *Str, DWORD Size)\r
int Sts;\r
char *Pos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
{\r
if(*(Str + Size - 1) != NUL)\r
*(Str + Size) = NUL;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
else\r
Size = min1(Size-1, strlen(Pos));\r
Size = StrReadIn(Pos, Size, Str);\r
*(Str + Size) = NUL;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \95¶\8e\9a\97ñ\82ð\8f\91\82«\8d\9e\82Þ ------------------------------------------------------\r
+/*----- 文字列を書き込む ------------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* char *Str :\95¶\8e\9a\97ñ\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* char *Str :文字列\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int WriteStringToReg(void *Handle, char *Name, char *Str)\r
Data = Pos->ValTbl + Pos->ValLen;\r
Pos->ValLen += StrCatOut(Str, strlen(Str), Data) + 1;\r
}\r
- return(SUCCESS);\r
+ return(FFFTP_SUCCESS);\r
}\r
\r
\r
-/*----- \83}\83\8b\83`\95¶\8e\9a\97ñ\82ð\93Ç\82Ý\8d\9e\82Þ ------------------------------------------------\r
+/*----- マルチ文字列を読み込む ------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* char *Str : \95¶\8e\9a\97ñ\82ð\95Ô\82·\83\8f\81[\83N\r
-* DWORD Size : \8dÅ\91å\83T\83C\83Y\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* char *Str : 文字列を返すワーク\r
+* DWORD Size : 最大サイズ\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int ReadMultiStringFromReg(void *Handle, char *Name, char *Str, DWORD Size)\r
int Sts;\r
char *Pos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
{\r
if(*(Str + Size - 1) != NUL)\r
*(Str + Size) = NUL;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
else\r
Size = min1(Size-1, strlen(Pos));\r
Size = StrReadIn(Pos, Size, Str);\r
*(Str + Size) = NUL;\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \83}\83\8b\83`\95¶\8e\9a\97ñ\82ð\8f\91\82«\8d\9e\82Þ ------------------------------------------------\r
+/*----- マルチ文字列を書き込む ------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* char *Str : \95¶\8e\9a\97ñ\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* char *Str : 文字列\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int WriteMultiStringToReg(void *Handle, char *Name, char *Str)\r
Data = Pos->ValTbl + Pos->ValLen;\r
Pos->ValLen += StrCatOut(Str, StrMultiLen(Str), Data) + 1;\r
}\r
- return(SUCCESS);\r
+ return(FFFTP_SUCCESS);\r
}\r
\r
\r
-/*----- \83o\83C\83i\83\8a\82ð\93Ç\82Ý\8d\9e\82Þ-----------------------------------------------------\r
+/*----- バイナリを読み込む-----------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* void *Bin : \83o\83C\83i\83\8a\82ð\95Ô\82·\83\8f\81[\83N\r
-* DWORD Size : \8dÅ\91å\83T\83C\83Y\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* void *Bin : バイナリを返すワーク\r
+* DWORD Size : 最大サイズ\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int ReadBinaryFromReg(void *Handle, char *Name, void *Bin, DWORD Size)\r
int Sts;\r
char *Pos;\r
\r
- Sts = FAIL;\r
+ Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Bin, &Size) == ERROR_SUCCESS)\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
{\r
Size = min1(Size, strlen(Pos));\r
Size = StrReadIn(Pos, Size, Bin);\r
- Sts = SUCCESS;\r
+ Sts = FFFTP_SUCCESS;\r
}\r
}\r
return(Sts);\r
}\r
\r
\r
-/*----- \83o\83C\83i\83\8a\82ð\8f\91\82«\8d\9e\82Þ ----------------------------------------------------\r
+/*----- バイナリを書き込む ----------------------------------------------------\r
*\r
* Parameter\r
-* void *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
-* void *Bin : \83o\83C\83i\83\8a\r
-* int Len : \92·\82³\r
+* void *Handle : ハンドル\r
+* char *Name : 名前\r
+* void *Bin : バイナリ\r
+* int Len : 長さ\r
*\r
* Return Value\r
-* int \83X\83e\81[\83^\83X\r
-* SUCCESS/FAIL\r
+* int ステータス\r
+* FFFTP_SUCCESS/FFFTP_FAIL\r
*----------------------------------------------------------------------------*/\r
\r
static int WriteBinaryToReg(void *Handle, char *Name, void *Bin, int Len)\r
Data = Pos->ValTbl + Pos->ValLen;\r
Pos->ValLen += StrCatOut(Bin, Len, Data) + 1;\r
}\r
- return(SUCCESS);\r
+ return(FFFTP_SUCCESS);\r
}\r
\r
\r
-/*----- \95¶\8e\9a\97ñ\82ð\83o\83b\83t\83@\82É\92Ç\89Á\8f\91\82«\8d\9e\82Ý\82·\82é ------------------------------------\r
+/*----- 文字列をバッファに追加書き込みする ------------------------------------\r
*\r
* Parameter\r
-* char *Src : \95¶\8e\9a\97ñ\r
-* int len : \95¶\8e\9a\97ñ\82Ì\92·\82³\r
-* char *Dst : \8f\91\82«\8d\9e\82Ý\82·\82é\83o\83b\83t\83@\r
+* char *Src : 文字列\r
+* int len : 文字列の長さ\r
+* char *Dst : 書き込みするバッファ\r
*\r
* Return Value\r
-* int \92Ç\89Á\82µ\82½\83o\83C\83g\90\94\r
+* int 追加したバイト数\r
*----------------------------------------------------------------------------*/\r
\r
static int StrCatOut(char *Src, int Len, char *Dst)\r
}\r
\r
\r
-/*----- \95¶\8e\9a\97ñ\82ð\83o\83b\83t\83@\82É\93Ç\82Ý\8d\9e\82Þ --------------------------------------------\r
+/*----- 文字列をバッファに読み込む --------------------------------------------\r
*\r
* Parameter\r
-* char *Src : \95¶\8e\9a\97ñ\r
-* int Max : \8dÅ\91å\83T\83C\83Y\r
-* char *Dst : \8f\91\82«\8d\9e\82Ý\82·\82é\83o\83b\83t\83@\r
+* char *Src : 文字列\r
+* int Max : 最大サイズ\r
+* char *Dst : 書き込みするバッファ\r
*\r
* Return Value\r
-* int \93Ç\82Ý\8d\9e\82ñ\82¾\83o\83C\83g\90\94\r
+* int 読み込んだバイト数\r
*----------------------------------------------------------------------------*/\r
\r
static int StrReadIn(char *Src, int Max, char *Dst)\r
}\r
\r
\r
-/*----- \92l\82ð\8c\9f\8dõ\82·\82é ----------------------------------------------------------\r
+/*----- 値を検索する ----------------------------------------------------------\r
*\r
* Parameter\r
-* char *Handle : \83n\83\93\83h\83\8b\r
-* char *Name : \96¼\91O\r
+* char *Handle : ハンドル\r
+* char *Name : 名前\r
*\r
* Return Value\r
-* char *\92l\83f\81[\83^\82Ì\90æ\93ª\r
-* NULL=\8ew\92è\82Ì\96¼\91O\82Ì\92l\82ª\8c©\82Â\82©\82ç\82È\82¢\r
+* char *値データの先頭\r
+* NULL=指定の名前の値が見つからない\r
*----------------------------------------------------------------------------*/\r
\r
static char *ScanValue(void *Handle, char *Name)\r
}\r
\r
\r
-/*----------- \83p\83X\83\8f\81[\83h\82Ì\91Ã\93\96\90«\82ð\8am\94F\82·\82é ------------------------------------\r
+/*----------- パスワードの妥当性を確認する ------------------------------------\r
*\r
* Parameter\r
-* char *Password: \83p\83X\83\8f\81[\83h\95¶\8e\9a\97ñ\r
-* char *HashStr: SHA-1\83n\83b\83V\83\85\95¶\8e\9a\97ñ\r
+* char *Password: パスワード文字列\r
+* char *HashStr: SHA-1ハッシュ文字列\r
*\r
* Return Value\r
-* int 0 \95s\88ê\92v\r
-* 1: \88ê\92v\r
-* 2: \88Ù\8fí\r
+* int 0 不一致\r
+* 1: 一致\r
+* 2: 異常\r
*----------------------------------------------------------------------------*/\r
int CheckPasswordValidity( char* Password, int length, const char* HashStr )\r
{\r
\r
const char* p = HashStr;\r
\r
- /* \8bó\95¶\8e\9a\97ñ\82Í\88ê\92v\82µ\82½\82±\82Æ\82É\82·\82é */\r
+ /* 空文字列は一致したことにする */\r
if( HashStr[0] == NUL ) return 1;\r
\r
- /* Hash\82ð\83`\83F\83b\83N\82·\82é\82·\82é*/\r
+ /* Hashをチェックするする*/\r
if( strlen(HashStr) != 40 ) return 2;\r
\r
- /* Hash\82ð\83f\83R\81[\83h\82·\82é*/\r
+ /* Hashをデコードする*/\r
for( i = 0; i < 5; i++ ){\r
ulong decode = 0;\r
for( j = 0; j < 8; j++ ){\r
hash1[i] = decode;\r
}\r
\r
- /* Password \82ð\83n\83b\83V\83\85\82·\82é */\r
+ /* Password をハッシュする */\r
sha_memory( Password, length, hash2 );\r
\r
if( memcmp( (char*)hash1, (char*)hash2, sizeof( hash1 )) == 0 ){\r
return 0;\r
}\r
\r
-/*----------- \83p\83X\83\8f\81[\83h\82Ì\91Ã\93\96\90«\83`\83F\83b\83N\82Ì\82½\82ß\82Ì\95¶\8e\9a\97ñ\82ð\8dì\90¬\82·\82é ------------\r
+/*----------- パスワードの妥当性チェックのための文字列を作成する ------------\r
*\r
* Parameter\r
-* char *Password: \83p\83X\83\8f\81[\83h\95¶\8e\9a\97ñ\r
-* char *Str: SHA-1\83n\83b\83V\83\85\95¶\8e\9a\97ñ\8ai\94[\8fê\8f\8a (41bytes\88È\8fã)\r
+* char *Password: パスワード文字列\r
+* char *Str: SHA-1ハッシュ文字列格納場所 (41bytes以上)\r
*\r
* Return Value\r
* None\r
SecretKeyLength = strlen( SecretKey ) + 5;\r
}\r
\r
-/*----------- \97\90\90\94\90¶\90¬\82ð\82·\82é -------------------------------------------------\r
+/*----------- 乱数生成をする -------------------------------------------------\r
*\r
* Parameter\r
*\r
* Return Value\r
-* \83\89\83\93\83_\83\80\82È\92l\81F\83R\83\93\83p\83C\83\89VS2005/\93®\8dì\8aÂ\8b«WinXP\88È\8fã\82Å\82Í rand_s \82©\82ç\8eæ\93¾\82·\82é\r
+* ランダムな値:コンパイラVS2005/動作環境WinXP以上では rand_s から取得する\r
*----------------------------------------------------------------------------*/\r
DWORD GetRandamDWRODValue(void)\r
{\r
#ifdef USE_RANDAM_C_RAND\r
rndValue = rand() | (rand() << 16);\r
#else\r
- /* rand() \82Ì\82©\82í\82è\82É\81ASHA-1\82Æ\83p\83t\83H\81[\83}\83\93\83X\83J\83E\83\93\83^\82ð\97p\82¢\82é */\r
+ /* rand() のかわりに、SHA-1とパフォーマンスカウンタを用いる */\r
ulong shaValue[5];\r
LARGE_INTEGER Counter;\r
\r
if(0 == IsRndSourceInit){\r
- /* \8f\89\89ñ\8eæ\93¾\8e\9e */\r
+ /* 初回取得時 */\r
HANDLE CurProcHandle;\r
HANDLE CurThreadHandle;\r
\r
CloseHandle(CurThreadHandle);\r
}\r
\r
- /* _WIN64 \82Å\82Í64bit\82¾\82ª\81A\82»\82Ì\8fê\8d\87\82Írand_s\82ª\91å\92ï\97\98\97p\89Â\94\\82È\82Ì\82Å\82±\82±\82Å\82Í32bit\82Ì\82Ý\97p\82¢\82é */\r
+ /* _WIN64 では64bitだが、その場合はrand_sが大抵利用可能なのでここでは32bitのみ用いる */\r
RndSource[0] = (ulong)CurProcHandle;\r
RndSource[1] = (ulong)CurThreadHandle;\r
RndSource[2] = (ulong)GetTickCount();\r
RndSource[3] = (ulong)timeGetTime();\r
- RndSource[4] = 0; /* \83J\83E\83\93\83g\83A\83b\83v */\r
+ RndSource[4] = 0; /* カウントアップ */\r
RndSource[5] = RndSource[3] + 1;\r
IsRndSourceInit = 1;\r
}\r