FFFTPのソースコードです。
Révision | e08abbd46155921a7587cfdc1b173875891e410d (tree) |
---|---|
l'heure | 2014-06-22 22:10:13 |
Auteur | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Enhance all settings encryption.
Enhance the algorithm for validating master password against Brute-force attack.
@@ -1480,6 +1480,18 @@ BEGIN | ||
1480 | 1480 | LTEXT "(0〜999日; 0=毎回起動時に確認)",-1,45,49,168,8 |
1481 | 1481 | END |
1482 | 1482 | |
1483 | +corruptsettings_dlg DIALOGEX 0, 0, 232, 64 | |
1484 | +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | |
1485 | +CAPTION "設定が破損しています" | |
1486 | +FONT 9, "MS Shell Dlg", 0, 0, 0x0 | |
1487 | +BEGIN | |
1488 | + LTEXT "暗号化された設定の破損または改竄が検出されました。\r\n読み込むと異常停止や設定の消失などの不具合が発生する可能性があります。",-1,7,7,217,36 | |
1489 | + DEFPUSHBUTTON "終了",IDCANCEL,8,42,50,14 | |
1490 | + PUSHBUTTON "全て消去",IDABORT,63,42,50,14 | |
1491 | + PUSHBUTTON "読み取り専用",IDRETRY,118,42,50,14 | |
1492 | + PUSHBUTTON "無視",IDIGNORE,173,42,50,14 | |
1493 | +END | |
1494 | + | |
1483 | 1495 | |
1484 | 1496 | ///////////////////////////////////////////////////////////////////////////// |
1485 | 1497 | // |
@@ -2167,6 +2179,14 @@ BEGIN | ||
2167 | 2179 | TOPMARGIN, 7 |
2168 | 2180 | BOTTOMMARGIN, 148 |
2169 | 2181 | END |
2182 | + | |
2183 | + corruptsettings_dlg, DIALOG | |
2184 | + BEGIN | |
2185 | + LEFTMARGIN, 7 | |
2186 | + RIGHTMARGIN, 225 | |
2187 | + TOPMARGIN, 7 | |
2188 | + BOTTOMMARGIN, 57 | |
2189 | + END | |
2170 | 2190 | END |
2171 | 2191 | #endif // APSTUDIO_INVOKED |
2172 | 2192 |
@@ -118,6 +118,7 @@ | ||
118 | 118 | #define opt_trmode4_dlg 195 |
119 | 119 | #define opt_disp2_dlg 196 |
120 | 120 | #define opt_updates_dlg 197 |
121 | +#define corruptsettings_dlg 198 | |
121 | 122 | #define TRANS_TIME_BAR 1002 |
122 | 123 | #define TRANS_TEXT 1003 |
123 | 124 | #define TRANS_REMOTE 1003 |
@@ -657,7 +658,7 @@ | ||
657 | 658 | // |
658 | 659 | #ifdef APSTUDIO_INVOKED |
659 | 660 | #ifndef APSTUDIO_READONLY_SYMBOLS |
660 | -#define _APS_NEXT_RESOURCE_VALUE 197 | |
661 | +#define _APS_NEXT_RESOURCE_VALUE 199 | |
661 | 662 | #define _APS_NEXT_COMMAND_VALUE 40182 |
662 | 663 | #define _APS_NEXT_CONTROL_VALUE 1227 |
663 | 664 | #define _APS_NEXT_SYMED_VALUE 101 |
@@ -1518,6 +1518,18 @@ BEGIN | ||
1518 | 1518 | LTEXT "(0〜999days; 0=Every time at startup)",-1,45,49,168,8 |
1519 | 1519 | END |
1520 | 1520 | |
1521 | +corruptsettings_dlg DIALOGEX 0, 0, 232, 64 | |
1522 | +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | |
1523 | +CAPTION "Settings are corrupted" | |
1524 | +FONT 9, "MS Shell Dlg", 0, 0, 0x0 | |
1525 | +BEGIN | |
1526 | + LTEXT "A corruption or tampering of the encrypted settings is detected.\r\nProblems such as settings loss or abnormal stop may occur if they are loaded.",-1,7,7,217,36 | |
1527 | + DEFPUSHBUTTON "Quit",IDCANCEL,8,42,50,14 | |
1528 | + PUSHBUTTON "Clear All",IDABORT,63,42,50,14 | |
1529 | + PUSHBUTTON "Read only",IDRETRY,118,42,50,14 | |
1530 | + PUSHBUTTON "Ignore",IDIGNORE,173,42,50,14 | |
1531 | +END | |
1532 | + | |
1521 | 1533 | |
1522 | 1534 | ///////////////////////////////////////////////////////////////////////////// |
1523 | 1535 | // |
@@ -2202,6 +2214,14 @@ BEGIN | ||
2202 | 2214 | TOPMARGIN, 7 |
2203 | 2215 | BOTTOMMARGIN, 148 |
2204 | 2216 | END |
2217 | + | |
2218 | + corruptsettings_dlg, DIALOG | |
2219 | + BEGIN | |
2220 | + LEFTMARGIN, 7 | |
2221 | + RIGHTMARGIN, 225 | |
2222 | + TOPMARGIN, 7 | |
2223 | + BOTTOMMARGIN, 57 | |
2224 | + END | |
2205 | 2225 | END |
2206 | 2226 | #endif // APSTUDIO_INVOKED |
2207 | 2227 |
@@ -118,6 +118,7 @@ | ||
118 | 118 | #define opt_trmode4_dlg 195 |
119 | 119 | #define opt_disp2_dlg 196 |
120 | 120 | #define opt_updates_dlg 197 |
121 | +#define corruptsettings_dlg 198 | |
121 | 122 | #define TRANS_TIME_BAR 1002 |
122 | 123 | #define TRANS_TEXT 1003 |
123 | 124 | #define TRANS_REMOTE 1003 |
@@ -657,7 +658,7 @@ | ||
657 | 658 | // |
658 | 659 | #ifdef APSTUDIO_INVOKED |
659 | 660 | #ifndef APSTUDIO_READONLY_SYMBOLS |
660 | -#define _APS_NEXT_RESOURCE_VALUE 197 | |
661 | +#define _APS_NEXT_RESOURCE_VALUE 199 | |
661 | 662 | #define _APS_NEXT_COMMAND_VALUE 40182 |
662 | 663 | #define _APS_NEXT_CONTROL_VALUE 1227 |
663 | 664 | #define _APS_NEXT_SYMED_VALUE 101 |
@@ -1383,7 +1383,7 @@ void CheckPortableVersion(); | ||
1383 | 1383 | int AskPortableVersion(void); |
1384 | 1384 | // 全設定暗号化対応 |
1385 | 1385 | int Restart(); |
1386 | -void RestartAndTerminate(); | |
1386 | +void Terminate(); | |
1387 | 1387 | // タスクバー進捗表示 |
1388 | 1388 | int LoadTaskbarList3(); |
1389 | 1389 | void FreeTaskbarList3(); |
@@ -1856,6 +1856,8 @@ INT_PTR CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM | ||
1856 | 1856 | // 64ビット対応 |
1857 | 1857 | //BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); |
1858 | 1858 | INT_PTR CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); |
1859 | +// 全設定暗号化対応 | |
1860 | +INT_PTR CALLBACK AnyButtonDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); | |
1859 | 1861 | void SetYenTail(char *Str); |
1860 | 1862 | void RemoveYenTail(char *Str); |
1861 | 1863 | void SetSlashTail(char *Str); |
@@ -238,22 +238,22 @@ void ConnectProc(int Type, int Num) | ||
238 | 238 | switch(CurHost.CurNameKanjiCode) |
239 | 239 | { |
240 | 240 | case KANJI_SJIS: |
241 | - SetTaskMsg(MSGJPN344, MSGJPN346); | |
241 | + SetTaskMsg(MSGJPN343, MSGJPN345); | |
242 | 242 | break; |
243 | 243 | case KANJI_JIS: |
244 | - SetTaskMsg(MSGJPN344, MSGJPN347); | |
244 | + SetTaskMsg(MSGJPN343, MSGJPN346); | |
245 | 245 | break; |
246 | 246 | case KANJI_EUC: |
247 | - SetTaskMsg(MSGJPN344, MSGJPN348); | |
247 | + SetTaskMsg(MSGJPN343, MSGJPN347); | |
248 | 248 | break; |
249 | 249 | case KANJI_UTF8N: |
250 | - SetTaskMsg(MSGJPN344, MSGJPN349); | |
250 | + SetTaskMsg(MSGJPN343, MSGJPN348); | |
251 | 251 | break; |
252 | 252 | case KANJI_UTF8HFSX: |
253 | - SetTaskMsg(MSGJPN344, MSGJPN350); | |
253 | + SetTaskMsg(MSGJPN343, MSGJPN349); | |
254 | 254 | break; |
255 | 255 | default: |
256 | - SetTaskMsg(MSGJPN345); | |
256 | + SetTaskMsg(MSGJPN344); | |
257 | 257 | break; |
258 | 258 | } |
259 | 259 | } |
@@ -352,22 +352,22 @@ void QuickConnectProc(void) | ||
352 | 352 | switch(CurHost.CurNameKanjiCode) |
353 | 353 | { |
354 | 354 | case KANJI_SJIS: |
355 | - SetTaskMsg(MSGJPN344, MSGJPN346); | |
355 | + SetTaskMsg(MSGJPN343, MSGJPN345); | |
356 | 356 | break; |
357 | 357 | case KANJI_JIS: |
358 | - SetTaskMsg(MSGJPN344, MSGJPN347); | |
358 | + SetTaskMsg(MSGJPN343, MSGJPN346); | |
359 | 359 | break; |
360 | 360 | case KANJI_EUC: |
361 | - SetTaskMsg(MSGJPN344, MSGJPN348); | |
361 | + SetTaskMsg(MSGJPN343, MSGJPN347); | |
362 | 362 | break; |
363 | 363 | case KANJI_UTF8N: |
364 | - SetTaskMsg(MSGJPN344, MSGJPN349); | |
364 | + SetTaskMsg(MSGJPN343, MSGJPN348); | |
365 | 365 | break; |
366 | 366 | case KANJI_UTF8HFSX: |
367 | - SetTaskMsg(MSGJPN344, MSGJPN350); | |
367 | + SetTaskMsg(MSGJPN343, MSGJPN349); | |
368 | 368 | break; |
369 | 369 | default: |
370 | - SetTaskMsg(MSGJPN345); | |
370 | + SetTaskMsg(MSGJPN344); | |
371 | 371 | break; |
372 | 372 | } |
373 | 373 | } |
@@ -561,22 +561,22 @@ void DirectConnectProc(char *unc, int Kanji, int Kana, int Fkanji, int TrMode) | ||
561 | 561 | switch(CurHost.CurNameKanjiCode) |
562 | 562 | { |
563 | 563 | case KANJI_SJIS: |
564 | - SetTaskMsg(MSGJPN344, MSGJPN346); | |
564 | + SetTaskMsg(MSGJPN343, MSGJPN345); | |
565 | 565 | break; |
566 | 566 | case KANJI_JIS: |
567 | - SetTaskMsg(MSGJPN344, MSGJPN347); | |
567 | + SetTaskMsg(MSGJPN343, MSGJPN346); | |
568 | 568 | break; |
569 | 569 | case KANJI_EUC: |
570 | - SetTaskMsg(MSGJPN344, MSGJPN348); | |
570 | + SetTaskMsg(MSGJPN343, MSGJPN347); | |
571 | 571 | break; |
572 | 572 | case KANJI_UTF8N: |
573 | - SetTaskMsg(MSGJPN344, MSGJPN349); | |
573 | + SetTaskMsg(MSGJPN343, MSGJPN348); | |
574 | 574 | break; |
575 | 575 | case KANJI_UTF8HFSX: |
576 | - SetTaskMsg(MSGJPN344, MSGJPN350); | |
576 | + SetTaskMsg(MSGJPN343, MSGJPN349); | |
577 | 577 | break; |
578 | 578 | default: |
579 | - SetTaskMsg(MSGJPN345); | |
579 | + SetTaskMsg(MSGJPN344); | |
580 | 580 | break; |
581 | 581 | } |
582 | 582 | } |
@@ -672,22 +672,22 @@ void HistoryConnectProc(int MenuCmd) | ||
672 | 672 | switch(CurHost.CurNameKanjiCode) |
673 | 673 | { |
674 | 674 | case KANJI_SJIS: |
675 | - SetTaskMsg(MSGJPN344, MSGJPN346); | |
675 | + SetTaskMsg(MSGJPN343, MSGJPN345); | |
676 | 676 | break; |
677 | 677 | case KANJI_JIS: |
678 | - SetTaskMsg(MSGJPN344, MSGJPN347); | |
678 | + SetTaskMsg(MSGJPN343, MSGJPN346); | |
679 | 679 | break; |
680 | 680 | case KANJI_EUC: |
681 | - SetTaskMsg(MSGJPN344, MSGJPN348); | |
681 | + SetTaskMsg(MSGJPN343, MSGJPN347); | |
682 | 682 | break; |
683 | 683 | case KANJI_UTF8N: |
684 | - SetTaskMsg(MSGJPN344, MSGJPN349); | |
684 | + SetTaskMsg(MSGJPN343, MSGJPN348); | |
685 | 685 | break; |
686 | 686 | case KANJI_UTF8HFSX: |
687 | - SetTaskMsg(MSGJPN344, MSGJPN350); | |
687 | + SetTaskMsg(MSGJPN343, MSGJPN349); | |
688 | 688 | break; |
689 | 689 | default: |
690 | - SetTaskMsg(MSGJPN345); | |
690 | + SetTaskMsg(MSGJPN344); | |
691 | 691 | break; |
692 | 692 | } |
693 | 693 | } |
@@ -453,9 +453,9 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi | ||
453 | 453 | { |
454 | 454 | Sleep(1000); |
455 | 455 | if(ApplyUpdates(UpdateDir, "updatebackup")) |
456 | - MessageBox(NULL, MSGJPN359, "FFFTP", MB_OK); | |
456 | + MessageBox(NULL, MSGJPN358, "FFFTP", MB_OK); | |
457 | 457 | else |
458 | - MessageBox(NULL, MSGJPN360, "FFFTP", MB_OK | MB_ICONERROR); | |
458 | + MessageBox(NULL, MSGJPN359, "FFFTP", MB_OK | MB_ICONERROR); | |
459 | 459 | } |
460 | 460 | } |
461 | 461 | ImmediateExit = YES; |
@@ -533,7 +533,7 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi | ||
533 | 533 | } |
534 | 534 | } |
535 | 535 | if(!Sts) |
536 | - MessageBox(NULL, MSGJPN360, "FFFTP", MB_OK | MB_ICONERROR); | |
536 | + MessageBox(NULL, MSGJPN359, "FFFTP", MB_OK | MB_ICONERROR); | |
537 | 537 | } |
538 | 538 | return(Ret); |
539 | 539 | } |
@@ -631,7 +631,7 @@ static int InitApp(LPSTR lpszCmdLine, int cmdShow) | ||
631 | 631 | { |
632 | 632 | if(IsRegAvailable() == YES && IsIniAvailable() == NO) |
633 | 633 | { |
634 | - switch(MessageBox(GetMainHwnd(), MSGJPN351, "FFFTP", MB_YESNOCANCEL | MB_DEFBUTTON2)) | |
634 | + switch(MessageBox(GetMainHwnd(), MSGJPN350, "FFFTP", MB_YESNOCANCEL | MB_DEFBUTTON2)) | |
635 | 635 | { |
636 | 636 | case IDCANCEL: |
637 | 637 | ReadOnlySettings = YES; |
@@ -957,16 +957,16 @@ void DispWindowTitle(void) | ||
957 | 957 | switch(AskCryptMode()) |
958 | 958 | { |
959 | 959 | case CRYPT_NONE: |
960 | - sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN352); | |
960 | + sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN351); | |
961 | 961 | break; |
962 | 962 | case CRYPT_FTPES: |
963 | - sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN353); | |
963 | + sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN352); | |
964 | 964 | break; |
965 | 965 | case CRYPT_FTPIS: |
966 | - sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN354); | |
966 | + sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN353); | |
967 | 967 | break; |
968 | 968 | case CRYPT_SFTP: |
969 | - sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN355); | |
969 | + sprintf(Tmp, "%s (%s) %s - FFFTP", TitleHostName, FilterStr, MSGJPN354); | |
970 | 970 | break; |
971 | 971 | } |
972 | 972 | } |
@@ -3631,9 +3631,8 @@ int Restart() | ||
3631 | 3631 | return Sts; |
3632 | 3632 | } |
3633 | 3633 | |
3634 | -void RestartAndTerminate() | |
3634 | +void Terminate() | |
3635 | 3635 | { |
3636 | - Restart(); | |
3637 | 3636 | exit(1); |
3638 | 3637 | } |
3639 | 3638 |
@@ -3728,7 +3727,7 @@ void UpdateSoftware(int Async, int NoError, int NoConfirm) | ||
3728 | 3727 | { |
3729 | 3728 | if(Version > RELEASE_VERSION_NUM) |
3730 | 3729 | { |
3731 | - sprintf(Tmp, MSGJPN362, VER_STR, VersionString, Description); | |
3730 | + sprintf(Tmp, MSGJPN361, VER_STR, VersionString, Description); | |
3732 | 3731 | if(NoConfirm == YES || MessageBox(GetMainHwnd(), Tmp, "FFFTP", MB_YESNO) == IDYES) |
3733 | 3732 | { |
3734 | 3733 | strcpy(Tmp, TmpPath); |
@@ -3737,18 +3736,18 @@ void UpdateSoftware(int Async, int NoError, int NoConfirm) | ||
3737 | 3736 | _mkdir(Tmp); |
3738 | 3737 | if(CheckForUpdates(TRUE, Tmp, &Version, VersionString, Description)) |
3739 | 3738 | { |
3740 | - MessageBox(GetMainHwnd(), MSGJPN365, "FFFTP", MB_OK); | |
3739 | + MessageBox(GetMainHwnd(), MSGJPN364, "FFFTP", MB_OK); | |
3741 | 3740 | ApplyUpdatesOnExit = YES; |
3742 | 3741 | } |
3743 | 3742 | else if(NoError == NO) |
3744 | - MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK | MB_ICONERROR); | |
3743 | + MessageBox(GetMainHwnd(), MSGJPN362, "FFFTP", MB_OK | MB_ICONERROR); | |
3745 | 3744 | } |
3746 | 3745 | } |
3747 | 3746 | else if(NoError == NO) |
3748 | - MessageBox(GetMainHwnd(), MSGJPN364, "FFFTP", MB_OK); | |
3747 | + MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK); | |
3749 | 3748 | } |
3750 | 3749 | else if(NoError == NO) |
3751 | - MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK | MB_ICONERROR); | |
3750 | + MessageBox(GetMainHwnd(), MSGJPN362, "FFFTP", MB_OK | MB_ICONERROR); | |
3752 | 3751 | } |
3753 | 3752 | } |
3754 | 3753 | } |
@@ -341,29 +341,28 @@ | ||
341 | 341 | #define MSGJPN340 _Tu8("View2", "View2") |
342 | 342 | #define MSGJPN341 _Tu8("Enable or disable stateful FTP filtering of Windows Firewall.\nIt works only on Windows Vista or later.\nEnabling or disabling may improve communication conditions.\nChoose 'Yes' to enable or 'No' to disable it.", "Enable or disable stateful FTP filtering of Windows Firewall.\nIt works only on Windows Vista or later.\nEnabling or disabling may improve communication conditions.\nChoose 'Yes' to enable or 'No' to disable it.") |
343 | 343 | #define MSGJPN342 _Tu8("Failed to turn on/off stateful FTP filtering.", "Failed to turn on/off stateful FTP filtering.") |
344 | -#define MSGJPN343 _Tu8("A corruption or tampering of the settings is detected.\nProblems such as settings loss or abnormal stop may occur if this is ignored to load.\nChoose 'Abort' to discard all settings.\nChoose 'Retry' to load settings as read only.\nChoose 'Ignore' to ignore this and load settings", "A corruption or tampering of the settings is detected.\nProblems such as settings loss or abnormal stop may occur if this is ignored to load.\nChoose 'Abort' to discard all settings.\nChoose 'Retry' to load settings as read only.\nChoose 'Ignore' to ignore this and load settings") | |
345 | -#define MSGJPN344 _Tu8("Determination result of the filename Kanji code is %s.", "Determination result of the filename Kanji code is %s.") | |
346 | -#define MSGJPN345 _Tu8("Failed to determine the filename Kanji code.", "Failed to determine the filename Kanji code.") | |
347 | -#define MSGJPN346 _Tu8("Shift_JIS", "Shift_JIS") | |
348 | -#define MSGJPN347 _Tu8("JIS", "JIS") | |
349 | -#define MSGJPN348 _Tu8("EUC", "EUC") | |
350 | -#define MSGJPN349 _Tu8("UTF-8", "UTF-8") | |
351 | -#define MSGJPN350 _Tu8("UTF-8 HFS+", "UTF-8 HFS+") | |
352 | -#define MSGJPN351 _Tu8("The settings of a newer version are detected.\nThe settings may not be read correctly, or they will be changed when they are overwritten for this version.\nChoose 'Yes' to overwrite settings for this version.\nChoose 'No' to save settings to the INI file.\nChoose 'Cancel' to load settings as read only.", "The settings of a newer version are detected.\nThe settings may not be read correctly, or they will be changed when they are overwritten for this version.\nChoose 'Yes' to overwrite settings for this version.\nChoose 'No' to save settings to the INI file.\nChoose 'Cancel' to load settings as read only.") | |
353 | -#define MSGJPN352 _Tu8("Warning: No encryption", "Warning: No encryption") | |
354 | -#define MSGJPN353 _Tu8("Encrypted: FTPES", "Encrypted: FTPES") | |
355 | -#define MSGJPN354 _Tu8("Encrypted: FTPIS", "Encrypted: FTPIS") | |
356 | -#define MSGJPN355 _Tu8("Encrypted: SFTP", "Encrypted: SFTP") | |
357 | -#define MSGJPN356 _Tu8("Move to &parent folder...", "Move to &parent folder...") | |
358 | -#define MSGJPN357 _Tu8("XML file\0*.xml\0All file\0*\0", "XML file\0*.xml\0All file\0*\0") | |
359 | -#define MSGJPN358 _Tu8("Failed to export the settings.\nPlease change saving path or format.", "Failed to export the settings.\nPlease change saving path or format.") | |
360 | -#define MSGJPN359 _Tu8("Software update has been completed.", "Software update has been completed.") | |
361 | -#define MSGJPN360 _Tu8("Failed to update the software.\nPlease get the latest version from our web site and update it manually.", "Failed to update the software.\nPlease get the latest version from our web site and update it manually.") | |
362 | -#define MSGJPN361 _Tu8("Updates", "Updates") | |
363 | -#define MSGJPN362 _Tu8("There is a new version.\n\nCurrent version: %s\nNew version: %s\n%s\n\nIt takes a few minutes to download the updates.\nDo you want to update now?\n", "There is a new version.\n\nCurrent version: %s\nNew version: %s\n%s\n\nIt takes a few minutes to download the updates.\nDo you want to update now?\n") | |
364 | -#define MSGJPN363 _Tu8("Failed to update the software.\nCannot connect to the server or the data is corrupted.", "Failed to update the software.\nCannot connect to the server or the data is corrupted.") | |
365 | -#define MSGJPN364 _Tu8("Your version is already up-to-date.", "Your version is already up-to-date.") | |
366 | -#define MSGJPN365 _Tu8("Preparing for the software update has been completed.\nIt will be applied on exit.", "Preparing for the software update has been completed.\nIt will be applied on exit.") | |
344 | +#define MSGJPN343 _Tu8("Determination result of the filename Kanji code is %s.", "Determination result of the filename Kanji code is %s.") | |
345 | +#define MSGJPN344 _Tu8("Failed to determine the filename Kanji code.", "Failed to determine the filename Kanji code.") | |
346 | +#define MSGJPN345 _Tu8("Shift_JIS", "Shift_JIS") | |
347 | +#define MSGJPN346 _Tu8("JIS", "JIS") | |
348 | +#define MSGJPN347 _Tu8("EUC", "EUC") | |
349 | +#define MSGJPN348 _Tu8("UTF-8", "UTF-8") | |
350 | +#define MSGJPN349 _Tu8("UTF-8 HFS+", "UTF-8 HFS+") | |
351 | +#define MSGJPN350 _Tu8("The settings of a newer version are detected.\nThe settings may not be read correctly, or they will be changed when they are overwritten for this version.\nChoose 'Yes' to overwrite settings for this version.\nChoose 'No' to save settings to the INI file.\nChoose 'Cancel' to load settings as read only.", "The settings of a newer version are detected.\nThe settings may not be read correctly, or they will be changed when they are overwritten for this version.\nChoose 'Yes' to overwrite settings for this version.\nChoose 'No' to save settings to the INI file.\nChoose 'Cancel' to load settings as read only.") | |
352 | +#define MSGJPN351 _Tu8("Warning: No encryption", "Warning: No encryption") | |
353 | +#define MSGJPN352 _Tu8("Encrypted: FTPES", "Encrypted: FTPES") | |
354 | +#define MSGJPN353 _Tu8("Encrypted: FTPIS", "Encrypted: FTPIS") | |
355 | +#define MSGJPN354 _Tu8("Encrypted: SFTP", "Encrypted: SFTP") | |
356 | +#define MSGJPN355 _Tu8("Move to &parent folder...", "Move to &parent folder...") | |
357 | +#define MSGJPN356 _Tu8("XML file\0*.xml\0All file\0*\0", "XML file\0*.xml\0All file\0*\0") | |
358 | +#define MSGJPN357 _Tu8("Failed to export the settings.\nPlease change saving path or format.", "Failed to export the settings.\nPlease change saving path or format.") | |
359 | +#define MSGJPN358 _Tu8("Software update has been completed.", "Software update has been completed.") | |
360 | +#define MSGJPN359 _Tu8("Failed to update the software.\nPlease get the latest version from our web site and update it manually.", "Failed to update the software.\nPlease get the latest version from our web site and update it manually.") | |
361 | +#define MSGJPN360 _Tu8("Updates", "Updates") | |
362 | +#define MSGJPN361 _Tu8("There is a new version.\n\nCurrent version: %s\nNew version: %s\n%s\n\nIt takes a few minutes to download the updates.\nDo you want to update now?\n", "There is a new version.\n\nCurrent version: %s\nNew version: %s\n%s\n\nIt takes a few minutes to download the updates.\nDo you want to update now?\n") | |
363 | +#define MSGJPN362 _Tu8("Failed to update the software.\nCannot connect to the server or the data is corrupted.", "Failed to update the software.\nCannot connect to the server or the data is corrupted.") | |
364 | +#define MSGJPN363 _Tu8("Your version is already up-to-date.", "Your version is already up-to-date.") | |
365 | +#define MSGJPN364 _Tu8("Preparing for the software update has been completed.\nIt will be applied on exit.", "Preparing for the software update has been completed.\nIt will be applied on exit.") | |
367 | 366 | #if defined(HAVE_TANDEM) |
368 | 367 | #define MSGJPN2000 _Tu8("NonStop Server", "NonStop Server") |
369 | 368 | #define MSGJPN2001 _Tu8("OSS<->GUARDIAN Switch(&O)", "OSS<->GUARDIAN Switch(&O)") |
@@ -341,29 +341,28 @@ | ||
341 | 341 | #define MSGJPN340 _Tu8("表示2", "\xE8\xA1\xA8\xE7\xA4\xBA\x32") |
342 | 342 | #define MSGJPN341 _Tu8("WindowsファイアウォールのステートフルFTPフィルタの有効無効を設定します.\nこれはWindows Vista以降でのみ動作します.\n有効化または無効化することで通信状態が改善されることがあります.\n有効化するには「はい」,無効化するには「いいえ」を選択してください.", "Windows\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x82\xA2\xE3\x82\xA6\xE3\x82\xA9\xE3\x83\xBC\xE3\x83\xAB\xE3\x81\xAE\xE3\x82\xB9\xE3\x83\x86\xE3\x83\xBC\xE3\x83\x88\xE3\x83\x95\xE3\x83\xAB\x46TP\xE3\x83\x95\xE3\x82\xA3\xE3\x83\xAB\xE3\x82\xBF\xE3\x81\xAE\xE6\x9C\x89\xE5\x8A\xB9\xE7\x84\xA1\xE5\x8A\xB9\xE3\x82\x92\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.\n\xE3\x81\x93\xE3\x82\x8C\xE3\x81\xAFWindows Vista\xE4\xBB\xA5\xE9\x99\x8D\xE3\x81\xA7\xE3\x81\xAE\xE3\x81\xBF\xE5\x8B\x95\xE4\xBD\x9C\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.\n\xE6\x9C\x89\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\xBE\xE3\x81\x9F\xE3\x81\xAF\xE7\x84\xA1\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x93\xE3\x81\xA8\xE3\x81\xA7\xE9\x80\x9A\xE4\xBF\xA1\xE7\x8A\xB6\xE6\x85\x8B\xE3\x81\x8C\xE6\x94\xB9\xE5\x96\x84\xE3\x81\x95\xE3\x82\x8C\xE3\x82\x8B\xE3\x81\x93\xE3\x81\xA8\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE6\x9C\x89\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\xAF\xE3\x81\x84\xE3\x80\x8D,\xE7\x84\xA1\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") |
343 | 343 | #define MSGJPN342 _Tu8("ステートフルFTPフィルタを設定できませんでした.", "\xE3\x82\xB9\xE3\x83\x86\xE3\x83\xBC\xE3\x83\x88\xE3\x83\x95\xE3\x83\xAB\x46TP\xE3\x83\x95\xE3\x82\xA3\xE3\x83\xAB\xE3\x82\xBF\xE3\x82\x92\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F.") |
344 | -#define MSGJPN343 _Tu8("設定の破損または改竄が検出されました.\n無視して読み込むと異常停止や設定の消失などの不具合が発生する可能性があります.\n全ての設定を破棄するには「中止」を選択してください.\n読み取り専用で設定を読み込むには「再試行」を選択してください.\n無視して設定を読み込むには「無視」を選択してください.", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xAE\xE7\xA0\xB4\xE6\x90\x8D\xE3\x81\xBE\xE3\x81\x9F\xE3\x81\xAF\xE6\x94\xB9\xE7\xAB\x84\xE3\x81\x8C\xE6\xA4\x9C\xE5\x87\xBA\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE7\x84\xA1\xE8\xA6\x96\xE3\x81\x97\xE3\x81\xA6\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x82\x80\xE3\x81\xA8\xE7\x95\xB0\xE5\xB8\xB8\xE5\x81\x9C\xE6\xAD\xA2\xE3\x82\x84\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xAE\xE6\xB6\x88\xE5\xA4\xB1\xE3\x81\xAA\xE3\x81\xA9\xE3\x81\xAE\xE4\xB8\x8D\xE5\x85\xB7\xE5\x90\x88\xE3\x81\x8C\xE7\x99\xBA\xE7\x94\x9F\xE3\x81\x99\xE3\x82\x8B\xE5\x8F\xAF\xE8\x83\xBD\xE6\x80\xA7\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE7\xA0\xB4\xE6\xA3\x84\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE3\x81\xA7\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x82\x80\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE5\x86\x8D\xE8\xA9\xA6\xE8\xA1\x8C\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n\xE7\x84\xA1\xE8\xA6\x96\xE3\x81\x97\xE3\x81\xA6\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x82\x80\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE7\x84\xA1\xE8\xA6\x96\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
345 | -#define MSGJPN344 _Tu8("ファイル名の漢字コードの判別結果は%sです.", "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE5\x88\xA4\xE5\x88\xA5\xE7\xB5\x90\xE6\x9E\x9C\xE3\x81\xAF%s\xE3\x81\xA7\xE3\x81\x99.") | |
346 | -#define MSGJPN345 _Tu8("ファイル名の漢字コードを判別できませんでした.", "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE5\x88\xA4\xE5\x88\xA5\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F.") | |
347 | -#define MSGJPN346 _Tu8("Shift_JIS", "Shift_JIS") | |
348 | -#define MSGJPN347 _Tu8("JIS", "JIS") | |
349 | -#define MSGJPN348 _Tu8("EUC", "EUC") | |
350 | -#define MSGJPN349 _Tu8("UTF-8", "UTF-8") | |
351 | -#define MSGJPN350 _Tu8("UTF-8 HFS+", "UTF-8 HFS+") | |
352 | -#define MSGJPN351 _Tu8("新しいバージョンの設定が検出されました.\nこのバージョンでは一部の設定が正しく読み込まれない,またはこのバージョンで設定を上書きすると設定が変化する可能性があります.\nこのバージョン用に設定を上書きして保存するには「はい」を選択してください.\n設定をレジストリではなくINIファイルに保存するには「いいえ」を選択してください.\n読み取り専用で設定を読み込むには「キャンセル」を選択してください.", "\xE6\x96\xB0\xE3\x81\x97\xE3\x81\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xAE\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE6\xA4\x9C\xE5\x87\xBA\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xA7\xE3\x81\xAF\xE4\xB8\x80\xE9\x83\xA8\xE3\x81\xAE\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE6\xAD\xA3\xE3\x81\x97\xE3\x81\x8F\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x81\xBE\xE3\x82\x8C\xE3\x81\xAA\xE3\x81\x84,\xE3\x81\xBE\xE3\x81\x9F\xE3\x81\xAF\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xA7\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE4\xB8\x8A\xE6\x9B\xB8\xE3\x81\x8D\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xA8\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE5\xA4\x89\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE5\x8F\xAF\xE8\x83\xBD\xE6\x80\xA7\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE7\x94\xA8\xE3\x81\xAB\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE4\xB8\x8A\xE6\x9B\xB8\xE3\x81\x8D\xE3\x81\x97\xE3\x81\xA6\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\xAF\xE3\x81\x84\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\xAC\xE3\x82\xB8\xE3\x82\xB9\xE3\x83\x88\xE3\x83\xAA\xE3\x81\xA7\xE3\x81\xAF\xE3\x81\xAA\xE3\x81\x8FINI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAB\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE3\x81\xA7\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x82\x80\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x82\xAD\xE3\x83\xA3\xE3\x83\xB3\xE3\x82\xBB\xE3\x83\xAB\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
353 | -#define MSGJPN352 _Tu8("警告: 暗号化されていません", "\xE8\xAD\xA6\xE5\x91\x8A: \xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93") | |
354 | -#define MSGJPN353 _Tu8("暗号化されています: FTPES", "\xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99: FTPES") | |
355 | -#define MSGJPN354 _Tu8("暗号化されています: FTPIS", "\xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99: FTPIS") | |
356 | -#define MSGJPN355 _Tu8("暗号化されています: SFTP", "\xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99: SFTP") | |
357 | -#define MSGJPN356 _Tu8("一つ上のフォルダへ移動(&P)...", "\xE4\xB8\x80\xE3\x81\xA4\xE4\xB8\x8A\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x81\xB8\xE7\xA7\xBB\xE5\x8B\x95(&P)...") | |
358 | -#define MSGJPN357 _Tu8("XMLファイル\0*.xml\0全てのファイル\0*\0", "XML\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.xml\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0") | |
359 | -#define MSGJPN358 _Tu8("設定のエクスポートに失敗しました.\n保存する場所や形式を変更してください.", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xAE\xE3\x82\xA8\xE3\x82\xAF\xE3\x82\xB9\xE3\x83\x9D\xE3\x83\xBC\xE3\x83\x88\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\x99\xE3\x82\x8B\xE5\xA0\xB4\xE6\x89\x80\xE3\x82\x84\xE5\xBD\xA2\xE5\xBC\x8F\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
360 | -#define MSGJPN359 _Tu8("ソフトウェアの更新が完了しました.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x8C\xE5\xAE\x8C\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.") | |
361 | -#define MSGJPN360 _Tu8("ソフトウェアの更新に失敗しました.\nWebサイトから最新版を入手して手動で更新してください.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\nWeb\xE3\x82\xB5\xE3\x82\xA4\xE3\x83\x88\xE3\x81\x8B\xE3\x82\x89\xE6\x9C\x80\xE6\x96\xB0\xE7\x89\x88\xE3\x82\x92\xE5\x85\xA5\xE6\x89\x8B\xE3\x81\x97\xE3\x81\xA6\xE6\x89\x8B\xE5\x8B\x95\xE3\x81\xA7\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
362 | -#define MSGJPN361 _Tu8("更新", "\xE6\x9B\xB4\xE6\x96\xB0") | |
363 | -#define MSGJPN362 _Tu8("新しいバージョンがあります.\n\n現在のバージョン: %s\n新しいバージョン: %s\n%s\n\n更新のダウンロードには数分間かかります.\n今すぐ更新しますか.", "\xE6\x96\xB0\xE3\x81\x97\xE3\x81\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\n\xE7\x8F\xBE\xE5\x9C\xA8\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3: %s\n\xE6\x96\xB0\xE3\x81\x97\xE3\x81\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3: %s\n%s\n\n\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAE\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAB\xE3\x81\xAF\xE6\x95\xB0\xE5\x88\x86\xE9\x96\x93\xE3\x81\x8B\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE4\xBB\x8A\xE3\x81\x99\xE3\x81\x90\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B.") | |
364 | -#define MSGJPN363 _Tu8("ソフトウェアの更新に失敗しました.\nサーバーに接続できないかデータが破損しています.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xAA\xE3\x81\x84\xE3\x81\x8B\xE3\x83\x87\xE3\x83\xBC\xE3\x82\xBF\xE3\x81\x8C\xE7\xA0\xB4\xE6\x90\x8D\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99.") | |
365 | -#define MSGJPN364 _Tu8("お使いのバージョンはすでに最新です.", "\xE3\x81\x8A\xE4\xBD\xBF\xE3\x81\x84\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xAF\xE3\x81\x99\xE3\x81\xA7\xE3\x81\xAB\xE6\x9C\x80\xE6\x96\xB0\xE3\x81\xA7\xE3\x81\x99.") | |
366 | -#define MSGJPN365 _Tu8("ソフトウェアの更新の準備が完了しました.\nFFFTPの終了時に更新が適用されます.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAE\xE6\xBA\x96\xE5\x82\x99\xE3\x81\x8C\xE5\xAE\x8C\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\nFFFTP\xE3\x81\xAE\xE7\xB5\x82\xE4\xBA\x86\xE6\x99\x82\xE3\x81\xAB\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x8C\xE9\x81\xA9\xE7\x94\xA8\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x99.") | |
344 | +#define MSGJPN343 _Tu8("ファイル名の漢字コードの判別結果は%sです.", "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE5\x88\xA4\xE5\x88\xA5\xE7\xB5\x90\xE6\x9E\x9C\xE3\x81\xAF%s\xE3\x81\xA7\xE3\x81\x99.") | |
345 | +#define MSGJPN344 _Tu8("ファイル名の漢字コードを判別できませんでした.", "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE5\x88\xA4\xE5\x88\xA5\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F.") | |
346 | +#define MSGJPN345 _Tu8("Shift_JIS", "Shift_JIS") | |
347 | +#define MSGJPN346 _Tu8("JIS", "JIS") | |
348 | +#define MSGJPN347 _Tu8("EUC", "EUC") | |
349 | +#define MSGJPN348 _Tu8("UTF-8", "UTF-8") | |
350 | +#define MSGJPN349 _Tu8("UTF-8 HFS+", "UTF-8 HFS+") | |
351 | +#define MSGJPN350 _Tu8("新しいバージョンの設定が検出されました.\nこのバージョンでは一部の設定が正しく読み込まれない,またはこのバージョンで設定を上書きすると設定が変化する可能性があります.\nこのバージョン用に設定を上書きして保存するには「はい」を選択してください.\n設定をレジストリではなくINIファイルに保存するには「いいえ」を選択してください.\n読み取り専用で設定を読み込むには「キャンセル」を選択してください.", "\xE6\x96\xB0\xE3\x81\x97\xE3\x81\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xAE\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE6\xA4\x9C\xE5\x87\xBA\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xA7\xE3\x81\xAF\xE4\xB8\x80\xE9\x83\xA8\xE3\x81\xAE\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE6\xAD\xA3\xE3\x81\x97\xE3\x81\x8F\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x81\xBE\xE3\x82\x8C\xE3\x81\xAA\xE3\x81\x84,\xE3\x81\xBE\xE3\x81\x9F\xE3\x81\xAF\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xA7\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE4\xB8\x8A\xE6\x9B\xB8\xE3\x81\x8D\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xA8\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE5\xA4\x89\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE5\x8F\xAF\xE8\x83\xBD\xE6\x80\xA7\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE7\x94\xA8\xE3\x81\xAB\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE4\xB8\x8A\xE6\x9B\xB8\xE3\x81\x8D\xE3\x81\x97\xE3\x81\xA6\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\xAF\xE3\x81\x84\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\xAC\xE3\x82\xB8\xE3\x82\xB9\xE3\x83\x88\xE3\x83\xAA\xE3\x81\xA7\xE3\x81\xAF\xE3\x81\xAA\xE3\x81\x8FINI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAB\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE3\x81\xA7\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE8\xAA\xAD\xE3\x81\xBF\xE8\xBE\xBC\xE3\x82\x80\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x82\xAD\xE3\x83\xA3\xE3\x83\xB3\xE3\x82\xBB\xE3\x83\xAB\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
352 | +#define MSGJPN351 _Tu8("警告: 暗号化されていません", "\xE8\xAD\xA6\xE5\x91\x8A: \xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93") | |
353 | +#define MSGJPN352 _Tu8("暗号化されています: FTPES", "\xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99: FTPES") | |
354 | +#define MSGJPN353 _Tu8("暗号化されています: FTPIS", "\xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99: FTPIS") | |
355 | +#define MSGJPN354 _Tu8("暗号化されています: SFTP", "\xE6\x9A\x97\xE5\x8F\xB7\xE5\x8C\x96\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99: SFTP") | |
356 | +#define MSGJPN355 _Tu8("一つ上のフォルダへ移動(&P)...", "\xE4\xB8\x80\xE3\x81\xA4\xE4\xB8\x8A\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x81\xB8\xE7\xA7\xBB\xE5\x8B\x95(&P)...") | |
357 | +#define MSGJPN356 _Tu8("XMLファイル\0*.xml\0全てのファイル\0*\0", "XML\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.xml\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0") | |
358 | +#define MSGJPN357 _Tu8("設定のエクスポートに失敗しました.\n保存する場所や形式を変更してください.", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xAE\xE3\x82\xA8\xE3\x82\xAF\xE3\x82\xB9\xE3\x83\x9D\xE3\x83\xBC\xE3\x83\x88\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\x99\xE3\x82\x8B\xE5\xA0\xB4\xE6\x89\x80\xE3\x82\x84\xE5\xBD\xA2\xE5\xBC\x8F\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
359 | +#define MSGJPN358 _Tu8("ソフトウェアの更新が完了しました.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x8C\xE5\xAE\x8C\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.") | |
360 | +#define MSGJPN359 _Tu8("ソフトウェアの更新に失敗しました.\nWebサイトから最新版を入手して手動で更新してください.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\nWeb\xE3\x82\xB5\xE3\x82\xA4\xE3\x83\x88\xE3\x81\x8B\xE3\x82\x89\xE6\x9C\x80\xE6\x96\xB0\xE7\x89\x88\xE3\x82\x92\xE5\x85\xA5\xE6\x89\x8B\xE3\x81\x97\xE3\x81\xA6\xE6\x89\x8B\xE5\x8B\x95\xE3\x81\xA7\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.") | |
361 | +#define MSGJPN360 _Tu8("更新", "\xE6\x9B\xB4\xE6\x96\xB0") | |
362 | +#define MSGJPN361 _Tu8("新しいバージョンがあります.\n\n現在のバージョン: %s\n新しいバージョン: %s\n%s\n\n更新のダウンロードには数分間かかります.\n今すぐ更新しますか.", "\xE6\x96\xB0\xE3\x81\x97\xE3\x81\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\n\xE7\x8F\xBE\xE5\x9C\xA8\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3: %s\n\xE6\x96\xB0\xE3\x81\x97\xE3\x81\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3: %s\n%s\n\n\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAE\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAB\xE3\x81\xAF\xE6\x95\xB0\xE5\x88\x86\xE9\x96\x93\xE3\x81\x8B\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE4\xBB\x8A\xE3\x81\x99\xE3\x81\x90\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B.") | |
363 | +#define MSGJPN362 _Tu8("ソフトウェアの更新に失敗しました.\nサーバーに接続できないかデータが破損しています.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\n\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xAA\xE3\x81\x84\xE3\x81\x8B\xE3\x83\x87\xE3\x83\xBC\xE3\x82\xBF\xE3\x81\x8C\xE7\xA0\xB4\xE6\x90\x8D\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99.") | |
364 | +#define MSGJPN363 _Tu8("お使いのバージョンはすでに最新です.", "\xE3\x81\x8A\xE4\xBD\xBF\xE3\x81\x84\xE3\x81\xAE\xE3\x83\x90\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\xA7\xE3\x83\xB3\xE3\x81\xAF\xE3\x81\x99\xE3\x81\xA7\xE3\x81\xAB\xE6\x9C\x80\xE6\x96\xB0\xE3\x81\xA7\xE3\x81\x99.") | |
365 | +#define MSGJPN364 _Tu8("ソフトウェアの更新の準備が完了しました.\nFFFTPの終了時に更新が適用されます.", "\xE3\x82\xBD\xE3\x83\x95\xE3\x83\x88\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\xAE\xE6\xBA\x96\xE5\x82\x99\xE3\x81\x8C\xE5\xAE\x8C\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.\nFFFTP\xE3\x81\xAE\xE7\xB5\x82\xE4\xBA\x86\xE6\x99\x82\xE3\x81\xAB\xE6\x9B\xB4\xE6\x96\xB0\xE3\x81\x8C\xE9\x81\xA9\xE7\x94\xA8\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x99.") | |
367 | 366 | #if defined(HAVE_TANDEM) |
368 | 367 | #define MSGJPN2000 _Tu8("NonStop Server", "NonStop Server") |
369 | 368 | #define MSGJPN2001 _Tu8("OSS<->GUARDIAN 切り替え(&O)", "OSS<->GUARDIAN \xE5\x88\x87\xE3\x82\x8A\xE6\x9B\xBF\xE3\x81\x88(&O)") |
@@ -262,6 +262,27 @@ INT_PTR CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LP | ||
262 | 262 | } |
263 | 263 | |
264 | 264 | |
265 | +// 全設定暗号化対応 | |
266 | +// 何らかのボタンが押されたときに終了 | |
267 | +INT_PTR CALLBACK AnyButtonDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | |
268 | +{ | |
269 | + switch (message) | |
270 | + { | |
271 | + case WM_INITDIALOG : | |
272 | + return(TRUE); | |
273 | + | |
274 | + case WM_COMMAND : | |
275 | + switch(GET_WM_COMMAND_CMD(wParam, lParam)) | |
276 | + { | |
277 | + case BN_CLICKED : | |
278 | + EndDialog(hDlg, GET_WM_COMMAND_ID(wParam, lParam)); | |
279 | + break; | |
280 | + } | |
281 | + return(TRUE); | |
282 | + } | |
283 | + return(FALSE); | |
284 | +} | |
285 | + | |
265 | 286 | /*----- 文字列の最後に "\" を付ける ------------------------------------------- |
266 | 287 | * |
267 | 288 | * Parameter |
@@ -431,7 +431,7 @@ void SetOption(int Start) | ||
431 | 431 | psp[13].pszTemplate = MAKEINTRESOURCE(opt_updates_dlg); |
432 | 432 | psp[13].pszIcon = NULL; |
433 | 433 | psp[13].pfnDlgProc = UpdatesSettingProc; |
434 | - psp[13].pszTitle = MSGJPN361; | |
434 | + psp[13].pszTitle = MSGJPN360; | |
435 | 435 | psp[13].lParam = 0; |
436 | 436 | psp[13].pfnCallback = NULL; |
437 | 437 |
@@ -93,13 +93,17 @@ static int WriteBinaryToReg(void *Handle, char *Name, void *Bin, int Len); | ||
93 | 93 | static int StrCatOut(char *Src, int Len, char *Dst); |
94 | 94 | static int StrReadIn(char *Src, int Max, char *Dst); |
95 | 95 | |
96 | -int CheckPasswordValidity( char* Password, int length, const char* HashStr ); | |
97 | -void CreatePasswordHash( char* Password, int length, char* HashStr ); | |
96 | +// 全設定暗号化対応 | |
97 | +//int CheckPasswordValidity( char* Password, int length, const char* HashStr ); | |
98 | +//void CreatePasswordHash( char* Password, int length, char* HashStr ); | |
99 | +int CheckPasswordValidity( char* Password, int length, const char* HashStr, int StretchCount ); | |
100 | +void CreatePasswordHash( char* Password, int length, char* HashStr, int StretchCount ); | |
98 | 101 | void SetHashSalt( DWORD salt ); |
99 | 102 | |
100 | 103 | DWORD GetRandamDWRODValue(void); |
101 | 104 | |
102 | 105 | // 全設定暗号化対応 |
106 | +void GetMaskWithHMACSHA1(DWORD IV, const char* Salt, int SaltLength, void* pHash); | |
103 | 107 | void MaskSettingsData(const char* Salt, int SaltLength, void* Data, DWORD Size, int EscapeZero); |
104 | 108 | void UnmaskSettingsData(const char* Salt, int SaltLength, void* Data, DWORD Size, int EscapeZero); |
105 | 109 | void CalculateSettingsDataChecksum(void* Data, DWORD Size); |
@@ -302,12 +306,17 @@ int ValidateMasterPassword(void) | ||
302 | 306 | if(i == FFFTP_SUCCESS){ |
303 | 307 | char checkbuf[48]; |
304 | 308 | int salt = 0; |
309 | + // 全設定暗号化対応 | |
310 | + int stretch = 0; | |
305 | 311 | |
306 | 312 | if( ReadIntValueFromReg(hKey3, "CredentialSalt", &salt)){ |
307 | 313 | SetHashSalt( salt ); |
308 | 314 | } |
309 | 315 | if( ReadStringFromReg(hKey3, "CredentialCheck", checkbuf, sizeof( checkbuf )) == FFFTP_SUCCESS ){ |
310 | - switch( CheckPasswordValidity( SecretKey, SecretKeyLength, checkbuf ) ){ | |
316 | + // 全設定暗号化対応 | |
317 | +// switch( CheckPasswordValidity( SecretKey, SecretKeyLength, checkbuf ) ){ | |
318 | + ReadIntValueFromReg(hKey3, "CredentialStretch", &stretch); | |
319 | + switch( CheckPasswordValidity( SecretKey, SecretKeyLength, checkbuf, stretch ) ){ | |
311 | 320 | case 0: /* not match */ |
312 | 321 | IsMasterPasswordError = PASSWORD_UNMATCH; |
313 | 322 | break; |
@@ -375,7 +384,18 @@ void SaveRegistry(void) | ||
375 | 384 | |
376 | 385 | SetHashSalt( salt ); |
377 | 386 | /* save password hash */ |
378 | - CreatePasswordHash( SecretKey, SecretKeyLength, buf ); | |
387 | + // 全設定暗号化対応 | |
388 | +// CreatePasswordHash( SecretKey, SecretKeyLength, buf ); | |
389 | + if(EncryptAllSettings == YES) | |
390 | + { | |
391 | + WriteIntValueToReg(hKey3, "CredentialStretch", 65535); | |
392 | + CreatePasswordHash( SecretKey, SecretKeyLength, buf, 65535 ); | |
393 | + } | |
394 | + else | |
395 | + { | |
396 | + WriteIntValueToReg(hKey3, "CredentialStretch", 0); | |
397 | + CreatePasswordHash( SecretKey, SecretKeyLength, buf, 0 ); | |
398 | + } | |
379 | 399 | WriteStringToReg(hKey3, "CredentialCheck", buf); |
380 | 400 | |
381 | 401 | // 全設定暗号化対応 |
@@ -804,13 +824,17 @@ int LoadRegistry(void) | ||
804 | 824 | memset(&EncryptSettingsChecksum, 0, 20); |
805 | 825 | if(strcmp(Buf, Buf2) != 0) |
806 | 826 | { |
807 | - switch(MessageBox(GetMainHwnd(), MSGJPN343, "FFFTP", MB_ABORTRETRYIGNORE | MB_DEFBUTTON2)) | |
827 | + switch(DialogBox(GetFtpInst(), MAKEINTRESOURCE(corruptsettings_dlg), GetMainHwnd(), AnyButtonDialogProc)) | |
808 | 828 | { |
829 | + case IDCANCEL: | |
830 | + Terminate(); | |
831 | + break; | |
809 | 832 | case IDABORT: |
810 | 833 | CloseReg(hKey3); |
811 | 834 | ClearRegistry(); |
812 | 835 | ClearIni(); |
813 | - RestartAndTerminate(); | |
836 | + Restart(); | |
837 | + Terminate(); | |
814 | 838 | break; |
815 | 839 | case IDRETRY: |
816 | 840 | EncryptSettingsError = YES; |
@@ -1204,13 +1228,17 @@ int LoadRegistry(void) | ||
1204 | 1228 | ReadBinaryFromReg(hKey3, "EncryptAllChecksum", &Checksum, 20); |
1205 | 1229 | if(memcmp(&Checksum, &EncryptSettingsChecksum, 20) != 0) |
1206 | 1230 | { |
1207 | - switch(MessageBox(GetMainHwnd(), MSGJPN343, "FFFTP", MB_ABORTRETRYIGNORE | MB_DEFBUTTON2)) | |
1231 | + switch(DialogBox(GetFtpInst(), MAKEINTRESOURCE(corruptsettings_dlg), GetMainHwnd(), AnyButtonDialogProc)) | |
1208 | 1232 | { |
1233 | + case IDCANCEL: | |
1234 | + Terminate(); | |
1235 | + break; | |
1209 | 1236 | case IDABORT: |
1210 | 1237 | CloseReg(hKey3); |
1211 | 1238 | ClearRegistry(); |
1212 | 1239 | ClearIni(); |
1213 | - RestartAndTerminate(); | |
1240 | + Restart(); | |
1241 | + Terminate(); | |
1214 | 1242 | break; |
1215 | 1243 | case IDRETRY: |
1216 | 1244 | EncryptSettingsError = YES; |
@@ -3280,8 +3308,11 @@ static char *ScanValue(void *Handle, char *Name) | ||
3280 | 3308 | * 1: 一致 |
3281 | 3309 | * 2: 異常 |
3282 | 3310 | *----------------------------------------------------------------------------*/ |
3283 | -int CheckPasswordValidity( char* Password, int length, const char* HashStr ) | |
3311 | +// 全設定暗号化対応 | |
3312 | +//int CheckPasswordValidity( char* Password, int length, const char* HashStr ) | |
3313 | +int CheckPasswordValidity( char* Password, int length, const char* HashStr, int StretchCount ) | |
3284 | 3314 | { |
3315 | + char Buf[MAX_PASSWORD_LEN + 32]; | |
3285 | 3316 | ulong hash1[5]; |
3286 | 3317 | ulong hash2[5]; |
3287 | 3318 |
@@ -3310,6 +3341,12 @@ int CheckPasswordValidity( char* Password, int length, const char* HashStr ) | ||
3310 | 3341 | |
3311 | 3342 | /* Password をハッシュする */ |
3312 | 3343 | sha_memory( Password, length, hash2 ); |
3344 | + for(i = 0; i < StretchCount; i++) | |
3345 | + { | |
3346 | + memcpy(&Buf[0], &hash2, 20); | |
3347 | + memcpy(&Buf[20], Password, length); | |
3348 | + sha_memory(Buf, 20 + length, hash2); | |
3349 | + } | |
3313 | 3350 | |
3314 | 3351 | if( memcmp( (char*)hash1, (char*)hash2, sizeof( hash1 )) == 0 ){ |
3315 | 3352 | return 1; |
@@ -3326,13 +3363,22 @@ int CheckPasswordValidity( char* Password, int length, const char* HashStr ) | ||
3326 | 3363 | * Return Value |
3327 | 3364 | * None |
3328 | 3365 | *----------------------------------------------------------------------------*/ |
3329 | -void CreatePasswordHash( char* Password, int length, char* HashStr ) | |
3366 | +// 全設定暗号化対応 | |
3367 | +//void CreatePasswordHash( char* Password, int length, char* HashStr ) | |
3368 | +void CreatePasswordHash( char* Password, int length, char* HashStr, int StretchCount ) | |
3330 | 3369 | { |
3370 | + char Buf[MAX_PASSWORD_LEN + 32]; | |
3331 | 3371 | ulong hash[5]; |
3332 | 3372 | int i, j; |
3333 | 3373 | unsigned char *p = (unsigned char *)HashStr; |
3334 | 3374 | |
3335 | 3375 | sha_memory( Password, length, hash ); |
3376 | + for(i = 0; i < StretchCount; i++) | |
3377 | + { | |
3378 | + memcpy(&Buf[0], &hash, 20); | |
3379 | + memcpy(&Buf[20], Password, length); | |
3380 | + sha_memory(Buf, 20 + length, hash); | |
3381 | + } | |
3336 | 3382 | |
3337 | 3383 | for( i = 0; i < 5; i++ ){ |
3338 | 3384 | ulong rest = hash[i]; |
@@ -3426,31 +3472,54 @@ DWORD GetRandamDWRODValue(void) | ||
3426 | 3472 | } |
3427 | 3473 | |
3428 | 3474 | // 全設定暗号化対応 |
3429 | -// 内部状態推定対策としてハッシュの160ビットのうち80ビットのみを鍵として使用 | |
3475 | +void GetMaskWithHMACSHA1(DWORD Nonce, const char* Salt, int SaltLength, void* pHash) | |
3476 | +{ | |
3477 | + BYTE Key[FMAX_PATH*2+1]; | |
3478 | + ulong Hash[5]; | |
3479 | + DWORD i; | |
3480 | + for(i = 0; i < 16; i++) | |
3481 | + { | |
3482 | + Nonce = ~Nonce; | |
3483 | + Nonce *= 1566083941; | |
3484 | + Nonce = _byteswap_ulong(Nonce); | |
3485 | + memcpy(&Key[i * 4], &Nonce, 4); | |
3486 | + } | |
3487 | + memcpy(&Key[64], Salt, SaltLength); | |
3488 | + memcpy(&Key[64 + SaltLength], SecretKey, SecretKeyLength); | |
3489 | + sha_memory((char*)&Key, 64 + SaltLength + SecretKeyLength, Hash); | |
3490 | + // sha.cはビッグエンディアンのため | |
3491 | + for(i = 0; i < 5; i++) | |
3492 | + Hash[i] = _byteswap_ulong(Hash[i]); | |
3493 | + memcpy(&Key[0], &Hash, 20); | |
3494 | + memset(&Key[20], 0, 44); | |
3495 | + for(i = 0; i < 64; i++) | |
3496 | + Key[i] ^= 0x36; | |
3497 | + sha_memory((char*)&Key, 64, Hash); | |
3498 | + // sha.cはビッグエンディアンのため | |
3499 | + for(i = 0; i < 5; i++) | |
3500 | + Hash[i] = _byteswap_ulong(Hash[i]); | |
3501 | + memcpy(&Key[64], &Hash, 20); | |
3502 | + for(i = 0; i < 64; i++) | |
3503 | + Key[i] ^= 0x6a; | |
3504 | + sha_memory((char*)&Key, 84, Hash); | |
3505 | + // sha.cはビッグエンディアンのため | |
3506 | + for(i = 0; i < 5; i++) | |
3507 | + Hash[i] = _byteswap_ulong(Hash[i]); | |
3508 | + memcpy(pHash, &Hash, 20); | |
3509 | +} | |
3510 | + | |
3430 | 3511 | void MaskSettingsData(const char* Salt, int SaltLength, void* Data, DWORD Size, int EscapeZero) |
3431 | 3512 | { |
3432 | - char Key[FMAX_PATH*2+1]; | |
3433 | 3513 | BYTE* p; |
3434 | 3514 | DWORD i; |
3435 | - DWORD j; | |
3436 | - ulong Hash[5]; | |
3437 | - BYTE Mask[10]; | |
3438 | - memcpy(&Key[0], SecretKey, SecretKeyLength); | |
3439 | - memcpy(&Key[SecretKeyLength], Salt, SaltLength); | |
3515 | + BYTE Mask[20]; | |
3440 | 3516 | p = (BYTE*)Data; |
3441 | 3517 | for(i = 0; i < Size; i++) |
3442 | 3518 | { |
3443 | - if(i % 10 == 0) | |
3444 | - { | |
3445 | - memcpy(&Key[SecretKeyLength + SaltLength], &i, 4); | |
3446 | - sha_memory(Key, SecretKeyLength + SaltLength + 4, Hash); | |
3447 | - // sha.cはビッグエンディアンのため | |
3448 | - for(j = 0; j < 5; j++) | |
3449 | - Hash[j] = _byteswap_ulong(Hash[j]); | |
3450 | - memcpy(&Mask, &Hash, 10); | |
3451 | - } | |
3452 | - if(EscapeZero == NO || (p[i] != 0 && p[i] != Mask[i % 10])) | |
3453 | - p[i] ^= Mask[i % 10]; | |
3519 | + if(i % 20 == 0) | |
3520 | + GetMaskWithHMACSHA1(i, Salt, SaltLength, &Mask); | |
3521 | + if(EscapeZero == NO || (p[i] != 0 && p[i] != Mask[i % 20])) | |
3522 | + p[i] ^= Mask[i % 20]; | |
3454 | 3523 | } |
3455 | 3524 | } |
3456 | 3525 |
@@ -3540,7 +3609,7 @@ void SaveSettingsToFileZillaXml() | ||
3540 | 3609 | char* p1; |
3541 | 3610 | char* p2; |
3542 | 3611 | strcpy(Fname, "FileZilla.xml"); |
3543 | - if(SelectFile(GetMainHwnd(), Fname, MSGJPN286, MSGJPN357, "xml", OFN_EXTENSIONDIFFERENT | OFN_OVERWRITEPROMPT, 1) == TRUE) | |
3612 | + if(SelectFile(GetMainHwnd(), Fname, MSGJPN286, MSGJPN356, "xml", OFN_EXTENSIONDIFFERENT | OFN_OVERWRITEPROMPT, 1) == TRUE) | |
3544 | 3613 | { |
3545 | 3614 | if((f = fopen(Fname, "wt")) != NULL) |
3546 | 3615 | { |
@@ -3703,7 +3772,7 @@ void SaveSettingsToFileZillaXml() | ||
3703 | 3772 | fclose(f); |
3704 | 3773 | } |
3705 | 3774 | else |
3706 | - MessageBox(GetMainHwnd(), MSGJPN358, "FFFTP", MB_OK | MB_ICONERROR); | |
3775 | + MessageBox(GetMainHwnd(), MSGJPN357, "FFFTP", MB_OK | MB_ICONERROR); | |
3707 | 3776 | } |
3708 | 3777 | } |
3709 | 3778 |
@@ -1976,7 +1976,7 @@ void RemoteRbuttonMenu(int Pos) | ||
1976 | 1976 | AppendMenu(hMenu, MF_STRING | Flg1, MENU_SWITCH_OSS, MSGJPN2001); |
1977 | 1977 | #endif |
1978 | 1978 | // 上位のディレクトリへ移動対応 |
1979 | - AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_REMOTE_MOVE_UPDIR, MSGJPN356); | |
1979 | + AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_REMOTE_MOVE_UPDIR, MSGJPN355); | |
1980 | 1980 | AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); |
1981 | 1981 | AppendMenu(hMenu, MF_STRING | Flg1, MENU_FILESIZE, MSGJPN272); |
1982 | 1982 | AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); |