Modify UI for encryption.
STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
FONT 9, "\82l\82r \82o\83S\83V\83b\83N"\r
BEGIN\r
- CONTROL "FTPS (Explicit)\82Å\90Ú\91±",HSET_FTPES,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,7,7,148,10\r
- CONTROL "FTPS (Implicit)\82Å\90Ú\91±",HSET_FTPIS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,21,148,10\r
- CONTROL "SFTP\82Å\90Ú\91±",HSET_SFTP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,35,148,10\r
+ CONTROL "\88Ã\8d\86\89»\82È\82µ\82Å\90Ú\91±\82ð\8b\96\89Â",HSET_NO_ENCRYPTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,148,10\r
+ CONTROL "FTPS (Explicit)\82Å\90Ú\91±",HSET_FTPES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,21,148,10\r
+ CONTROL "FTPS (Implicit)\82Å\90Ú\91±",HSET_FTPIS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,35,148,10\r
+ CONTROL "SFTP\82Å\90Ú\91±",HSET_SFTP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,49,148,10\r
+ LTEXT "\94é\96§\8c®\82Ì\83e\83L\83X\83g",-1,7,63,64,8\r
+ PUSHBUTTON "...",PKEY_FILE_BR,72,63,13,12\r
+ EDITTEXT HSET_PRIVATE_KEY,7,79,193,44,ES_MULTILINE | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL\r
END\r
\r
hset_adv3_dlg DIALOG 0, 0, 207, 139\r
#define HSET_SJIS_CNV 1195\r
#define HSET_UTF8N_CNV 1196\r
#define HSET_FN_SJIS_CNV 1197\r
-#define HSET_FTPES 1198\r
-#define HSET_FTPIS 1199\r
-#define HSET_SFTP 1200\r
-#define HSET_THREAD_COUNT 1201\r
-#define HSET_THREAD_COUNT_SPN 1202\r
+#define HSET_NO_ENCRYPTION 1198\r
+#define HSET_FTPES 1199\r
+#define HSET_FTPIS 1200\r
+#define HSET_SFTP 1201\r
+#define PKEY_FILE_BR 1202\r
+#define HSET_PRIVATE_KEY 1203\r
+#define HSET_THREAD_COUNT 1204\r
+#define HSET_THREAD_COUNT_SPN 1205\r
#define MENU_END 40001\r
#define MENU_EXIT 40001\r
#define MENU_CONNECT 40003\r
#ifndef APSTUDIO_READONLY_SYMBOLS\r
#define _APS_NEXT_RESOURCE_VALUE 191\r
#define _APS_NEXT_COMMAND_VALUE 40175\r
-#define _APS_NEXT_CONTROL_VALUE 1203\r
+#define _APS_NEXT_CONTROL_VALUE 1206\r
#define _APS_NEXT_SYMED_VALUE 101\r
#endif\r
#endif\r
STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
FONT 9, "MS Sans Serif"\r
BEGIN\r
- CONTROL "Connect with FTPS (Explicit)",HSET_FTPES,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,7,7,148,10\r
- CONTROL "Connect with FTPS (Implicit)",HSET_FTPIS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,21,148,10\r
- CONTROL "Connect with SFTP",HSET_SFTP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,35,148,10\r
+ CONTROL "Allow to connect without encryption",HSET_NO_ENCRYPTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,148,10\r
+ CONTROL "Connect with FTPS (Explicit)",HSET_FTPES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,21,148,10\r
+ CONTROL "Connect with FTPS (Implicit)",HSET_FTPIS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,35,148,10\r
+ CONTROL "Connect with SFTP",HSET_SFTP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,49,148,10\r
+ LTEXT "Private key text",-1,7,63,64,8\r
+ PUSHBUTTON "...",PKEY_FILE_BR,72,63,13,12\r
+ EDITTEXT HSET_PRIVATE_KEY,7,79,193,44,ES_MULTILINE | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL\r
END\r
\r
hset_adv3_dlg DIALOG 0, 0, 207, 139\r
#define HSET_SJIS_CNV 1195\r
#define HSET_UTF8N_CNV 1196\r
#define HSET_FN_SJIS_CNV 1197\r
-#define HSET_FTPES 1198\r
-#define HSET_FTPIS 1199\r
-#define HSET_SFTP 1200\r
-#define HSET_THREAD_COUNT 1201\r
-#define HSET_THREAD_COUNT_SPN 1202\r
+#define HSET_NO_ENCRYPTION 1198\r
+#define HSET_FTPES 1199\r
+#define HSET_FTPIS 1200\r
+#define HSET_SFTP 1201\r
+#define PKEY_FILE_BR 1202\r
+#define HSET_PRIVATE_KEY 1203\r
+#define HSET_THREAD_COUNT 1204\r
+#define HSET_THREAD_COUNT_SPN 1205\r
#define MENU_END 40001\r
#define MENU_EXIT 40001\r
#define MENU_CONNECT 40003\r
#ifndef APSTUDIO_READONLY_SYMBOLS\r
#define _APS_NEXT_RESOURCE_VALUE 191\r
#define _APS_NEXT_COMMAND_VALUE 40175\r
-#define _APS_NEXT_CONTROL_VALUE 1203\r
+#define _APS_NEXT_CONTROL_VALUE 1206\r
#define _APS_NEXT_SYMED_VALUE 101\r
#endif\r
#endif\r
//#define VER_NUM 1921 /* 設定バージョン */\r
//#define PROGRAM_VERSION_NUM 1972 /* バージョン */\r
#define VER_STR "1.99"\r
-#define VER_NUM 1980 /* 設定バージョン */\r
+#define VER_NUM 1990 /* 設定バージョン */\r
#define PROGRAM_VERSION_NUM 1990 /* バージョン */\r
\r
\r
\r
#define ONELINE_BUF_SIZE (10*1024)\r
\r
+// 暗号化通信対応\r
+#define PRIVATE_KEY_LEN 4096\r
+\r
/*===== 初期値 =====*/\r
\r
#define SAMBA_HEX_TAG ':' /* Samba-HEX の区切り文字 */\r
int UseFTPES; /* FTPESで接続する (YES/NO) */\r
int UseFTPIS; /* FTPISで接続する (YES/NO) */\r
int UseSFTP; /* SFTPで接続する (YES/NO) */\r
+ char PrivateKey[PRIVATE_KEY_LEN+1]; /* テキスト形式の秘密鍵 */\r
// 同時接続対応\r
int MaxThreadCount; /* 同時接続数 */\r
// FEAT対応\r
int DialupNotify; /* 再接続の際に確認する (YES/NO) */\r
char DialEntry[RAS_NAME_LEN+1]; /* ダイアルアップエントリ */\r
// 暗号化通信対応\r
+ int UseNoEncryption; /* 暗号化なしで接続する (YES/NO) */\r
int UseFTPES; /* FTPESで接続する (YES/NO) */\r
int UseFTPIS; /* FTPISで接続する (YES/NO) */\r
int UseSFTP; /* SFTPで接続する (YES/NO) */\r
+ char PrivateKey[PRIVATE_KEY_LEN+1]; /* テキスト形式の秘密鍵 */\r
// 同時接続対応\r
int MaxThreadCount; /* 同時接続数 */\r
// MLSD対応\r
int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data);\r
// 暗号化通信対応\r
int AskCryptMode(void);\r
+int AskUseNoEncryption(void);\r
int AskUseFTPES(void);\r
int AskUseFTPIS(void);\r
int AskUseSFTP(void);\r
+char *AskPrivateKey(void);\r
// 同時接続対応\r
int AskMaxThreadCount(void);\r
// FEAT対応\r
Fwall = FWALL_NONE;\r
\r
TryConnect = YES;\r
- CancelFlg = NO;\r
+ // 暗号化通信対応\r
+// CancelFlg = NO;\r
#if 0\r
// WSASetBlockingHook(BlkHookFnc);\r
#endif\r
{\r
SOCKET ContSock;\r
ContSock = INVALID_SOCKET;\r
- if(ContSock == INVALID_SOCKET && HostData->UseSFTP == YES)\r
+ CancelFlg = NO;\r
+ if(CancelFlg == NO && ContSock == INVALID_SOCKET && HostData->UseSFTP == YES)\r
{\r
SetTaskMsg(MSGJPN317);\r
if((ContSock = DoConnectCrypt(CRYPT_SFTP, HostData, Host, User, Pass, Acct, Port, Fwall, SavePass, Security)) != INVALID_SOCKET)\r
HostData->CryptMode = CRYPT_SFTP;\r
}\r
-// if(ContSock == INVALID_SOCKET && HostData->UseFTPIS == YES)\r
+// if(CancelFlg == NO && ContSock == INVALID_SOCKET && HostData->UseFTPIS == YES)\r
// {\r
// SetTaskMsg(MSGJPN316);\r
// if((ContSock = DoConnectCrypt(CRYPT_FTPIS, HostData, Host, User, Pass, Acct, Port, Fwall, SavePass, Security)) != INVALID_SOCKET)\r
// HostData->CryptMode = CRYPT_FTPIS;\r
// }\r
- if(ContSock == INVALID_SOCKET && HostData->UseFTPES == YES)\r
+ if(CancelFlg == NO && ContSock == INVALID_SOCKET && HostData->UseFTPES == YES)\r
{\r
SetTaskMsg(MSGJPN315);\r
if((ContSock = DoConnectCrypt(CRYPT_FTPES, HostData, Host, User, Pass, Acct, Port, Fwall, SavePass, Security)) != INVALID_SOCKET)\r
HostData->CryptMode = CRYPT_FTPES;\r
}\r
- if(ContSock == INVALID_SOCKET && HostData->UseNoEncryption == YES)\r
+ if(CancelFlg == NO && ContSock == INVALID_SOCKET && HostData->UseNoEncryption == YES)\r
{\r
SetTaskMsg(MSGJPN314);\r
if((ContSock = DoConnectCrypt(CRYPT_NONE, HostData, Host, User, Pass, Acct, Port, Fwall, SavePass, Security)) != INVALID_SOCKET)\r
return(CurHost.UseSFTP);\r
}\r
\r
+char *AskPrivateKey(void)\r
+{\r
+ return(CurHost.PrivateKey);\r
+}\r
+\r
// 同時接続対応\r
int AskMaxThreadCount(void)\r
{\r
New->DialupNotify = Host->DialupNotify;\r
strcpy(New->DialEntry, Host->DialEntry);\r
// 暗号化通信対応\r
+ New->UseNoEncryption = Host->UseNoEncryption;\r
New->UseFTPES = Host->UseFTPES;\r
New->UseFTPIS = Host->UseFTPIS;\r
New->UseSFTP = Host->UseSFTP;\r
+ strcpy(New->PrivateKey, Host->PrivateKey);\r
// 同時接続対応\r
New->MaxThreadCount = Host->MaxThreadCount;\r
// MLSD対応\r
Host->DialupNotify = Hist->DialupNotify;\r
strcpy(Host->DialEntry, Hist->DialEntry);\r
// 暗号化通信対応\r
+ Host->UseNoEncryption = Hist->UseNoEncryption;\r
Host->UseFTPES = Hist->UseFTPES;\r
Host->UseFTPIS = Hist->UseFTPIS;\r
Host->UseSFTP = Hist->UseSFTP;\r
+ strcpy(Host->PrivateKey, Hist->PrivateKey);\r
// 同時接続対応\r
Host->MaxThreadCount = Hist->MaxThreadCount;\r
// MLSD対応\r
Set->LastDir = Pos->Set.LastDir;\r
Set->TimeZone = Pos->Set.TimeZone;\r
// 暗号化通信対応\r
+ Set->UseNoEncryption = Pos->Set.UseNoEncryption;\r
Set->UseFTPES = Pos->Set.UseFTPES;\r
Set->UseFTPIS = Pos->Set.UseFTPIS;\r
Set->UseSFTP = Pos->Set.UseSFTP;\r
Set->UseFTPES = YES;\r
Set->UseFTPIS = YES;\r
Set->UseSFTP = YES;\r
+ strcpy(Set->PrivateKey, "");\r
// 同時接続対応\r
Set->MaxThreadCount = 1;\r
// MLSD対応\r
switch (iMessage)\r
{\r
case WM_INITDIALOG :\r
+ SendDlgItemMessage(hDlg, HSET_NO_ENCRYPTION, BM_SETCHECK, TmpHost.UseNoEncryption, 0);\r
if(IsOpenSSLLoaded())\r
{\r
SendDlgItemMessage(hDlg, HSET_FTPES, BM_SETCHECK, TmpHost.UseFTPES, 0);\r
SendDlgItemMessage(hDlg, HSET_FTPIS, BM_SETCHECK, TmpHost.UseFTPIS, 0);\r
- SendDlgItemMessage(hDlg, HSET_SFTP, BM_SETCHECK, TmpHost.UseSFTP, 0);\r
}\r
else\r
{\r
EnableWindow(GetDlgItem(hDlg, HSET_FTPES), FALSE);\r
SendDlgItemMessage(hDlg, HSET_FTPIS, BM_SETCHECK, BST_UNCHECKED, 0);\r
EnableWindow(GetDlgItem(hDlg, HSET_FTPIS), FALSE);\r
- SendDlgItemMessage(hDlg, HSET_SFTP, BM_SETCHECK, BST_UNCHECKED, 0);\r
- EnableWindow(GetDlgItem(hDlg, HSET_SFTP), FALSE);\r
}\r
+ SendDlgItemMessage(hDlg, HSET_SFTP, BM_SETCHECK, TmpHost.UseSFTP, 0);\r
+ SendDlgItemMessage(hDlg, HSET_PRIVATE_KEY, WM_SETTEXT, 0, (LPARAM)TmpHost.PrivateKey);\r
// TODO: FTPIS対応\r
SendDlgItemMessage(hDlg, HSET_FTPIS, BM_SETCHECK, BST_UNCHECKED, 0);\r
EnableWindow(GetDlgItem(hDlg, HSET_FTPIS), FALSE);\r
switch(pnmhdr->code)\r
{\r
case PSN_APPLY :\r
+ TmpHost.UseNoEncryption = SendDlgItemMessage(hDlg, HSET_NO_ENCRYPTION, BM_GETCHECK, 0, 0);\r
if(IsOpenSSLLoaded())\r
{\r
TmpHost.UseFTPES = SendDlgItemMessage(hDlg, HSET_FTPES, BM_GETCHECK, 0, 0);\r
// TODO: FTPIS対応\r
// TmpHost.UseFTPIS = SendDlgItemMessage(hDlg, HSET_FTPIS, BM_GETCHECK, 0, 0);\r
- // TODO: SFTP対応\r
-// TmpHost.UseSFTP = SendDlgItemMessage(hDlg, HSET_SFTP, BM_GETCHECK, 0, 0);\r
}\r
+ // TODO: SFTP対応\r
+// TmpHost.UseSFTP = SendDlgItemMessage(hDlg, HSET_SFTP, BM_GETCHECK, 0, 0);\r
+ SendDlgItemMessage(hDlg, HSET_PRIVATE_KEY, WM_GETTEXT, PRIVATE_KEY_LEN+1, (LPARAM)TmpHost.PrivateKey);\r
Apply = YES;\r
break;\r
\r
FreeDuplicatedString(pm0);\r
}\r
}\r
+ if(!bResult)\r
+ CancelFlg = YES;\r
return bResult;\r
}\r
\r
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
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, "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
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
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, "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