-/*=============================================================================\r
-* \83\8c\83W\83X\83g\83\8a\8aÖ\8cW\r
+/*=============================================================================\r
+* レジストリ関係\r
*\r
*\r
===============================================================================\r
#include "sha.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
void SetHashSalt( DWORD salt );\r
\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
-/*===== \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
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
\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
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
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
}\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
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
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
\r
if(ReadMultiStringFromReg(hKey4, "AsciiFile", AsciiExt, ASCII_EXT_LEN+1) == 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, "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
}\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
if(OpenSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
{\r
CopyDefaultHost(&Host);\r
- /* \89º\88Ê\8cÝ\8a·\90«\82Ì\82½\82ß */\r
+ /* 下位互換性のため */\r
if(Version < VER_NUM)\r
{\r
Host.Pasv = NO;\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
+* SUCCESS/FAIL=変換できない\r
*----------------------------------------------------------------------------*/\r
\r
static int RestoreFontData(char *Str, LOGFONT *Font)\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
EncodePassword2( 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
}\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
}\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
}\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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
+* int ステータス\r
* SUCCESS/FAIL\r
*----------------------------------------------------------------------------*/\r
\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