OSDN Git Service

Change behavior of confirming certificate.
[ffftp/ffftp.git] / registory.c
index 578d3ac..2326c05 100644 (file)
@@ -182,6 +182,9 @@ extern int MirDownDelNotify;
 extern int FolderAttr;\r
 extern int FolderAttrNum;\r
 \r
+// 暗号化通信対応\r
+extern BYTE CertificateCacheHash[MAX_CERT_CACHE_HASH][20];\r
+\r
 /*----- マスタパスワードの設定 ----------------------------------------------\r
 *\r
 *      Parameter\r
@@ -284,7 +287,9 @@ void SaveRegistory(void)
        void *hKey3;\r
        void *hKey4;\r
        void *hKey5;\r
-       char Str[FMAX_PATH+1];\r
+       // 暗号化通信対応\r
+//     char Str[FMAX_PATH+1];\r
+       char Str[PRIVATE_KEY_LEN*4+1];\r
        int i;\r
        int n;\r
        HOSTDATA DefaultHost;\r
@@ -463,11 +468,18 @@ void SaveRegistory(void)
                                                        SaveIntNum(hKey5, "Notify", Hist.DialupNotify, DefaultHist.DialupNotify);\r
                                                        SaveStr(hKey5, "DialTo", Hist.DialEntry, DefaultHist.DialEntry);\r
                                                        // 暗号化通信対応\r
+                                                       SaveIntNum(hKey5, "NoEncryption", Hist.UseNoEncryption, DefaultHist.UseNoEncryption);\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
+                                                       EncodePassword(Hist.PrivateKey, Str);\r
+                                                       SaveStr(hKey5, "PKey", Str, DefaultHist.PrivateKey);\r
                                                        // 同時接続対応\r
                                                        SaveIntNum(hKey5, "ThreadCount", Hist.MaxThreadCount, DefaultHist.MaxThreadCount);\r
+                                                       // MLSD対応\r
+                                                       SaveIntNum(hKey5, "MLSD", Hist.UseMLSD, DefaultHist.UseMLSD);\r
+                                                       // IPv6対応\r
+                                                       SaveIntNum(hKey5, "IPv6", Hist.UseIPv6, DefaultHist.UseIPv6);\r
 \r
                                                        CloseSubKey(hKey5);\r
                                                        n++;\r
@@ -537,11 +549,18 @@ void SaveRegistory(void)
                                                        SaveIntNum(hKey5, "Notify", Host.DialupNotify, DefaultHost.DialupNotify);\r
                                                        SaveStr(hKey5, "DialTo", Host.DialEntry, DefaultHost.DialEntry);\r
                                                        // 暗号化通信対応\r
+                                                       SaveIntNum(hKey5, "NoEncryption", Host.UseNoEncryption, DefaultHost.UseNoEncryption);\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
+                                                       EncodePassword(Host.PrivateKey, Str);\r
+                                                       SaveStr(hKey5, "PKey", Str, DefaultHost.PrivateKey);\r
                                                        // 同時接続対応\r
                                                        SaveIntNum(hKey5, "ThreadCount", Host.MaxThreadCount, DefaultHost.MaxThreadCount);\r
+                                                       // MLSD対応\r
+                                                       SaveIntNum(hKey5, "MLSD", Host.UseMLSD, DefaultHost.UseMLSD);\r
+                                                       // IPv6対応\r
+                                                       SaveIntNum(hKey5, "IPv6", Host.UseIPv6, DefaultHost.UseIPv6);\r
                                                }\r
                                                CloseSubKey(hKey5);\r
                                        }\r
@@ -560,6 +579,9 @@ void SaveRegistory(void)
                                if((i = AskCurrentHost()) == HOSTNUM_NOENTRY)\r
                                        i = 0;\r
                                WriteIntValueToReg(hKey4, "CurSet", i);\r
+\r
+                               // 暗号化通信対応\r
+                               WriteBinaryToReg(hKey4, "CertCacheHash", &CertificateCacheHash, sizeof(CertificateCacheHash));\r
                        }\r
                        CloseSubKey(hKey4);\r
                }\r
@@ -587,7 +609,9 @@ int LoadRegistory(void)
        void *hKey5;\r
        int i;\r
        int Sets;\r
-       char Str[256];  /* ASCII_EXT_LENより大きい事 */\r
+       // 暗号化通信対応\r
+//     char Str[256];  /* ASCII_EXT_LENより大きい事 */\r
+       char Str[PRIVATE_KEY_LEN*4+1];\r
        char *Pos;\r
        char *Pos2;\r
        HOSTDATA Host;\r
@@ -609,7 +633,7 @@ int LoadRegistory(void)
 \r
        if(i == FFFTP_SUCCESS)\r
        {\r
-               char checkbuf[48];\r
+//             char checkbuf[48];\r
                int salt = 0;\r
                Sts = YES;\r
 \r
@@ -793,11 +817,19 @@ int LoadRegistory(void)
                                        ReadIntValueFromReg(hKey5, "Notify", &Hist.DialupNotify);\r
                                        ReadStringFromReg(hKey5, "DialTo", Hist.DialEntry, RAS_NAME_LEN+1);\r
                                        // 暗号化通信対応\r
+                                       ReadIntValueFromReg(hKey5, "NoEncryption", &Hist.UseNoEncryption);\r
                                        ReadIntValueFromReg(hKey5, "FTPES", &Hist.UseFTPES);\r
                                        ReadIntValueFromReg(hKey5, "FTPIS", &Hist.UseFTPIS);\r
                                        ReadIntValueFromReg(hKey5, "SFTP", &Hist.UseSFTP);\r
+                                       strcpy(Str, "");\r
+                                       ReadStringFromReg(hKey5, "PKey", Str, PRIVATE_KEY_LEN*4+1);\r
+                                       DecodePassword(Str, Hist.PrivateKey);\r
                                        // 同時接続対応\r
                                        ReadIntValueFromReg(hKey5, "ThreadCount", &Hist.MaxThreadCount);\r
+                                       // MLSD対応\r
+                                       ReadIntValueFromReg(hKey5, "MLSD", &Hist.UseMLSD);\r
+                                       // IPv6対応\r
+                                       ReadIntValueFromReg(hKey5, "IPv6", &Hist.UseIPv6);\r
 \r
                                        CloseSubKey(hKey5);\r
                                        AddHistoryToHistory(&Hist);\r
@@ -822,6 +854,9 @@ int LoadRegistory(void)
                                                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
@@ -866,11 +901,19 @@ int LoadRegistory(void)
                                        ReadIntValueFromReg(hKey5, "Notify", &Host.DialupNotify);\r
                                        ReadStringFromReg(hKey5, "DialTo", Host.DialEntry, RAS_NAME_LEN+1);\r
                                        // 暗号化通信対応\r
+                                       ReadIntValueFromReg(hKey5, "NoEncryption", &Host.UseNoEncryption);\r
                                        ReadIntValueFromReg(hKey5, "FTPES", &Host.UseFTPES);\r
                                        ReadIntValueFromReg(hKey5, "FTPIS", &Host.UseFTPIS);\r
                                        ReadIntValueFromReg(hKey5, "SFTP", &Host.UseSFTP);\r
+                                       strcpy(Str, "");\r
+                                       ReadStringFromReg(hKey5, "PKey", Str, PRIVATE_KEY_LEN*4+1);\r
+                                       DecodePassword(Str, Host.PrivateKey);\r
                                        // 同時接続対応\r
                                        ReadIntValueFromReg(hKey5, "ThreadCount", &Host.MaxThreadCount);\r
+                                       // MLSD対応\r
+                                       ReadIntValueFromReg(hKey5, "MLSD", &Host.UseMLSD);\r
+                                       // IPv6対応\r
+                                       ReadIntValueFromReg(hKey5, "IPv6", &Host.UseIPv6);\r
 \r
                                        CloseSubKey(hKey5);\r
 \r
@@ -881,6 +924,9 @@ int LoadRegistory(void)
                        ReadIntValueFromReg(hKey4, "CurSet", &Sets);\r
                        SetCurrentHost(Sets);\r
 \r
+                       // 暗号化通信対応\r
+                       ReadBinaryFromReg(hKey4, "CertCacheHash", &CertificateCacheHash, sizeof(CertificateCacheHash));\r
+\r
                        CloseSubKey(hKey4);\r
                }\r
                CloseReg(hKey3);\r