[Ttssh2-commit] [4442] TTSSH Setupダイアログで、KEX・ホストキー・HMAC・圧縮アルゴリズムの並びを変更できるようにした。

svnno****@sourc***** svnno****@sourc*****
2011年 4月 16日 (土) 23:18:33 JST


Revision: 4442
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4442
Author:   yutakapon
Date:     2011-04-16 23:18:33 +0900 (Sat, 16 Apr 2011)

Log Message:
-----------
TTSSH Setupダイアログで、KEX・ホストキー・HMAC・圧縮アルゴリズムの並びを変更できるようにした。

フランス語ファイル(French.lng)は、手持ちのエディタではうまく編集できなかったので、コミットできていない。

Modified Paths:
--------------
    trunk/doc/en/html/about/history.html
    trunk/doc/ja/html/about/history.html
    trunk/installer/release/lang/English.lng
    trunk/installer/release/lang/German.lng
    trunk/installer/release/lang/Japanese.lng
    trunk/ttssh2/ttxssh/resource.h
    trunk/ttssh2/ttxssh/ttxssh.c
    trunk/ttssh2/ttxssh/ttxssh.rc


-------------- next part --------------
Modified: trunk/doc/en/html/about/history.html
===================================================================
--- trunk/doc/en/html/about/history.html	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/doc/en/html/about/history.html	2011-04-16 14:18:33 UTC (rev 4442)
@@ -1678,7 +1678,7 @@
   <li>Changes
     <ul>
       <li>When the ECDSA key is selected on the SSH key generator dialog, the input box of the key bits is disabled.</li>
-      <li>Some kind of the KEX, host key, MAC and compression algorithm order can be specified in the teraterm.ini file.
+      <li>Some kind of the KEX, host key, MAC and compression algorithm order can be specified in the teraterm.ini file. These entries can be selected on the setup dialog.
         <ul>
           <li>KexOrder=56743210</li>
           <li>HostKeyOrder=456230</li>

Modified: trunk/doc/ja/html/about/history.html
===================================================================
--- trunk/doc/ja/html/about/history.html	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/doc/ja/html/about/history.html	2011-04-16 14:18:33 UTC (rev 4442)
@@ -1679,7 +1679,7 @@
   <li>•ÏX
     <ul>
       <li>SSHŒ®¶¬ƒ_ƒCƒAƒƒO‚ŁAŒ®‚ÌŽí—Þ‚ÉECDSAŒ®‚ð‘I‚ñ‚¾ê‡‚ÍŒ®‚̃rƒbƒg”‚Ì“ü—̓{ƒbƒNƒX‚𖳌ø‰»‚·‚é‚悤‚É‚µ‚½B</li>
-      <li>KEXAƒzƒXƒgƒL[AMACAˆ³kƒAƒ‹ƒSƒŠƒYƒ€ƒI[ƒ_[‚ðAteraterm.ini‚̃Gƒ“ƒgƒŠ‚ÅŽw’è‚Å‚«‚é‚悤‚É‚µ‚½B
+      <li>KEXAƒzƒXƒgƒL[AMACAˆ³kƒAƒ‹ƒSƒŠƒYƒ€ƒI[ƒ_[‚ðAteraterm.ini‚̃Gƒ“ƒgƒŠ‚ÅŽw’è‚Å‚«‚é‚悤‚É‚µ‚½BSetupƒ_ƒCƒAƒƒO‚Å‘I‘ð‚Å‚«‚é‚悤‚É‚µ‚½B
         <ul>
           <li>KexOrder=56743210</li>
           <li>HostKeyOrder=456230</li>

Modified: trunk/installer/release/lang/English.lng
===================================================================
--- trunk/installer/release/lang/English.lng	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/installer/release/lang/English.lng	2011-04-16 14:18:33 UTC (rev 4442)
@@ -616,9 +616,25 @@
 DLG_SSHSETUP_COMPRESS_NONE=None
 DLG_SSHSETUP_COMPRESS_HIGHEST=Highest
 DLG_SSHSETUP_CHIPER=&Preferred cipher order
-DLG_SSHSETUP_CHIPER_UP=Move &Up
-DLG_SSHSETUP_CHIPER_DOWN=Move &Down
+DLG_SSHSETUP_CHIPER_UP=Move Up(&0)
+DLG_SSHSETUP_CHIPER_DOWN=Move Down(&1)
 DLG_SSHSETUP_CIPHER_BORDER=<ciphers below this line are disabled>
+DLG_SSHSETUP_KEX=K&EX order
+DLG_SSHSETUP_KEX_UP=Move Up(&2)
+DLG_SSHSETUP_KEX_DOWN=Move Down(&3)
+DLG_SSHSETUP_KEX_BORDER=<KEXs below this line are disabled>
+DLG_SSHSETUP_HOST_KEY=Ho&st Key order
+DLG_SSHSETUP_HOST_KEY_UP=Move Up(&4)
+DLG_SSHSETUP_HOST_KEY_DOWN=Move Down(&5)
+DLG_SSHSETUP_HOST_KEY_BORDER=<Host Keys below this line are disabled>
+DLG_SSHSETUP_MAC=MAC or&der
+DLG_SSHSETUP_MAC_UP=Move Up(&6)
+DLG_SSHSETUP_MAC_DOWN=Move Down(&7)
+DLG_SSHSETUP_MAC_BORDER=<MACs below this line are disabled>
+DLG_SSHSETUP_COMP=Compress&ion order
+DLG_SSHSETUP_COMP_UP=Move Up(&8)
+DLG_SSHSETUP_COMP_DOWN=Move Down(&9)
+DLG_SSHSETUP_COMP_BORDER=<Compressions below this line are disabled>
 DLG_SSHSETUP_KNOWNHOST=SSH Known Hosts
 DLG_SSHSETUP_KNOWNHOST_RW=Read/&write file:
 DLG_SSHSETUP_KNOWNHOST_RO=&Read-only files:

Modified: trunk/installer/release/lang/German.lng
===================================================================
--- trunk/installer/release/lang/German.lng	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/installer/release/lang/German.lng	2011-04-16 14:18:33 UTC (rev 4442)
@@ -37,8 +37,8 @@
 MENU_EDIT=&Editieren
 MENU_EDIT_COPY=&Kopieren\tAlt+C
 MENU_EDIT_COPYTABLE=&Tabelle kopieren
-MENU_EDIT_PASTE=&Einfügen\tAlt+V
-MENU_EDIT_PASTECR=Einfügen<C&R>\tAlt+R
+MENU_EDIT_PASTE=&EinfEen\tAlt+V
+MENU_EDIT_PASTECR=EinfEen<C&R>\tAlt+R
 MENU_EDIT_CLSCREEN=&Bildschirm löschen
 MENU_EDIT_CLBUFFER=&Puffer löschen
 MENU_EDIT_CANCELSELECT=&Auswahl aufheben
@@ -59,13 +59,13 @@
 MENU_SETUP_LOADKEYMAP=&Keyboard-Layout einstellen
 
 MENU_CONTROL=&Steuerung
-MENU_CONTROL_RESET=&Terminal zurücksetzen
+MENU_CONTROL_RESET=&Terminal zurEksetzen
 MENU_CONTROL_RESETTITLE=R&eset remote title
 MENU_CONTROL_AREYOUTHERE=Are you &there\tAlt+T
 MENU_CONTROL_SENDBREAK=&Abbruch senden\tAlt+B
-MENU_CONTROL_RESETPORT=Port zurücksetzen
+MENU_CONTROL_RESETPORT=Port zurEksetzen
 MENU_CONTROL_BROADCAST=&Broadcast-Kommando
-MENU_CONTROL_OPENTEK=TEK ö&ffnen
+MENU_CONTROL_OPENTEK=TEK Effnen
 MENU_CONTROL_CLOSETEK=TEK &schließen
 MENU_CONTROL_MACRO=&Macro
 MENU_CONTROL_SHOW_MACRO=&Makrofenster anzeigen
@@ -77,7 +77,7 @@
 MENU_HELP_INDEX=&Hilfedatei
 MENU_HELP_ABOUT=&Über Tera Term...
 
-MENU_SHOW_MENUBAR=Menüleiste anzeigen
+MENU_SHOW_MENUBAR=MenEeiste anzeigen
 
 
 TEKMENU_FILE=&Datei
@@ -87,8 +87,8 @@
 TEKMENU_EDIT=&Bearbeiten
 TEKMENU_EDIT_COPY=&Kopieren\tAlt+C
 TEKMENU_EDIT_COPYSCREEN=Bildschirm kopieren
-TEKMENU_EDIT_PASTE=&Einfügen\tAlt+V
-TEKMENU_EDIT_PASTECR=Einfügen<C&R>\tAlt+R
+TEKMENU_EDIT_PASTE=&EinfEen\tAlt+V
+TEKMENU_EDIT_PASTECR=EinfEen<C&R>\tAlt+R
 TEKMENU_EDIT_CLSCREEN=Bildschirm leeren
 
 TEKMENU_SETUP=&Einrichtung
@@ -104,7 +104,7 @@
 TEKMENU_HELP_USING=&Hilfe verwenden
 TEKMENU_HELP_ABOUT=&Über Tera Term...
 
-TEKMENU_SHOW_MENUBAR=&Menüleiste anzeigen
+TEKMENU_SHOW_MENUBAR=&MenEeiste anzeigen
 
 ; ttermpro
 ; filesys.cpp
@@ -124,12 +124,12 @@
 MSG_DISCONNECT_CONF=Verbindung trennen?
 MSG_DANDD_CONF=Are you sure that you want to send the file content?
 MSG_DANDD_CONF_TITLE=File Drag and Drop
-MSG_EXEC_TT_ERROR=Tera Term kann nicht ausgeführt werden. (%d)
+MSG_EXEC_TT_ERROR=Tera Term kann nicht ausgefErt werden. (%d)
 MSG_FIND_CYGTERM_DIR_ERROR=Cygwin-Ordner kann nicht gefunden werden.
 MSG_CYGTERM_ENV_ALLOC_ERROR=Can't allocate memory for environment variable.
-MSG_EXEC_CYGTERM_ERROR=Cygterm kann nicht ausgeführt werden.
-MSG_EXEC_TTMENU_ERROR=Das TeraTerm-Menü kann nicht ausgeführt werden. (%d)
-MSG_EXEC_LOGMETT_ERROR=LogMeTT kann nicht ausgeführt werden. (%d)
+MSG_EXEC_CYGTERM_ERROR=Cygterm kann nicht ausgefErt werden.
+MSG_EXEC_TTMENU_ERROR=Das TeraTerm-MenEkann nicht ausgefErt werden. (%d)
+MSG_EXEC_LOGMETT_ERROR=LogMeTT kann nicht ausgefErt werden. (%d)
 MSG_VIEW_LOGFILE_ERROR=Log-Datei kann nicht angezeigt werden. (%d)
 FILEDLG_OPEN_LOGFILE_TITLE=Select replay log file with binary mode
 FILEDLG_OPEN_LOGFILE_FILTER=Alle Dateien(*.*)\0*.*\0\0
@@ -178,10 +178,10 @@
 DLG_TAB_SEQENCE_TITLE_REPORT_EMPTY=empty
 
 DLG_TAB_COPYPASTE_CONTINUE=Mehrere Zeilen kopieren
-DLG_TAB_COPYPASTE_MOUSEPASTE=&Einfügen mit rechter Maustaste aus
-DLG_TAB_COPYPASTE_CONFIRMPASTE=&Einfügen mit rechter Maustaste ein
-DLG_TAB_COPYPASTE_MOUSEPASTEM=Einfügen mit mittlerer Maustaste ein
-DLG_TAB_COPYPASTE_SELECTLBUTTON=&Auswahl nur über Button
+DLG_TAB_COPYPASTE_MOUSEPASTE=&EinfEen mit rechter Maustaste aus
+DLG_TAB_COPYPASTE_CONFIRMPASTE=&EinfEen mit rechter Maustaste ein
+DLG_TAB_COPYPASTE_MOUSEPASTEM=EinfEen mit mittlerer Maustaste ein
+DLG_TAB_COPYPASTE_SELECTLBUTTON=&Auswahl nur Eer Button
 DLG_TAB_COPYPASTE_CONFIRM_CHANGE_PASTE=Confirm change &paste
 DLG_TAB_CONFIRM_STRING_FILE=&String file
 DLG_TAB_COPYPASTE_DELIMITER=&Begrenzungszeichen
@@ -192,7 +192,7 @@
 DLG_TAB_VISUAL_ETERM=&Eterm-Aussehen
 DLG_TAB_VISUAL_MOUSE=&Mauszeiger
 DLG_TAB_VISUAL_RED=&Rot
-DLG_TAB_VISUAL_GREEN=&Grün
+DLG_TAB_VISUAL_GREEN=&GrE
 DLG_TAB_VISUAL_BLUE=&Blau
 DLG_TAB_VISUAL_BOLD=Enable B&old attribute color
 DLG_TAB_VISUAL_BLINK=Enable B&link attribute color
@@ -222,11 +222,11 @@
 DLG_PROT_FIELNAME=Dateiname:
 DLG_PROT_PROTO=Protocoll:
 DLG_PROT_PACKET=Paket#:
-DLG_PROT_TRANS=Bytes übertragen:
+DLG_PROT_TRANS=Bytes Eertragen:
 
 DLG_FILETRANS_FILENAME=Dateiname:
 DLG_FILETRANS_FULLPATH=Vollständiger Pfad:
-DLG_FILETRANS_TRNAS=Bytes übertragen:
+DLG_FILETRANS_TRNAS=Bytes Eertragen:
 DLG_FILETRANS_START=&Start
 DLG_FILETRANS_PAUSE=Pau&se
 DLG_FILETRANS_CLOSE=Schließen
@@ -285,7 +285,7 @@
 
 DLG_TCPIP_TITLE=Hostliste editieren
 DLG_TCPIP_HOSTLIST=Hostliste
-DLG_TCPIP_ADD=Hinzufügen
+DLG_TCPIP_ADD=HinzufEen
 DLG_TCPIP_UP=hoch
 DLG_TCPIP_REMOVE=entf
 DLG_TCPIP_DOWN=runter
@@ -306,7 +306,7 @@
 DLG_TERM_CRSEND=Absenden:
 DLG_TERM_ID=Terminal-ID:
 DLG_TERM_LOCALECHO=Lokales Echo
-DLG_TERM_ANSBACK=Rückantwort:
+DLG_TERM_ANSBACK=REkantwort:
 DLG_TERM_AUTOSWITCH=Automatisch wechseln (VT<->TEK)
 DLG_TERM_KANJI=&Kanji (receive)
 DLG_TERM_KANA=&7bit katakana
@@ -331,7 +331,7 @@
 DLG_WIN_HORZ=Horizontale Linie
 DLG_WIN_BOLDFONT=fettschreiben
 DLG_WIN_HIDETITLE=Titelleiste ausblenden
-DLG_WIN_HIDEMENU=Menüleiste ausblenden
+DLG_WIN_HIDEMENU=MenEeiste ausblenden
 DLG_WIN_COLOREMU=&Farbemulation
 DLG_WIN_PCBOLD16=&16 Colors (PC style)
 DLG_WIN_AIXTERM16=1&6 Colors (aixterm style)
@@ -410,7 +410,7 @@
 
 ; ttptek
 ; tttek.c
-MSG_TEK_PRINT_ERROR=Der Drucker unterstützt keine Grafiken
+MSG_TEK_PRINT_ERROR=Der Drucker unterstEzt keine Grafiken
 
 ; ttpmacro
 FILEDLG_OPEN_MACRO_TITLE=Makro öffnen
@@ -454,19 +454,19 @@
 DLG_ABOUT_TITLE=Über TTSSH
 DLG_ABOUT_SERVERID=Server-ID:
 DLG_ABOUT_PROTOCOL=Verwendetes Protokoll:
-DLG_ABOUT_ENCRYPTION=Verschlüsselung:
-DLG_ABOUT_SERVERKEY=Server-Schlüssel:
+DLG_ABOUT_ENCRYPTION=VerschlEselung:
+DLG_ABOUT_SERVERKEY=Server-SchlEsel:
 DLG_ABOUT_KEXKEY=Key exchange keys:
 DLG_ABOUT_AUTH=Authentifikation:
 DLG_ABOUT_COMP=Kompression:
 DLG_ABOUT_CLIENTID=Client-ID:
-DLG_ABOUT_HOSTKEY=Client-Schlüssel:
+DLG_ABOUT_HOSTKEY=Client-SchlEsel:
 DLG_ABOUT_TOSERVER=" zum Server,"
 DLG_ABOUT_FROMSERVER=" vom Server"
 DLG_ABOUT_COMPDELAY=Delayed Compression:
 DLG_ABOUT_CIPHER_INFO=%s zum Server, %s vom Server
 DLG_ABOUT_KEY_INFO=%d-bit server key, %d-bit host key
-DLG_ABOUT_KEY_INFO2=%d-Bit-Client-Schlüssel, %d-Bit-Server-Schlüssel
+DLG_ABOUT_KEY_INFO2=%d-Bit-Client-SchlEsel, %d-Bit-Server-SchlEsel
 DLG_ABOUT_KEY_NONE=Keiner
 DLG_ABOUT_COMP_INFO=level %d; ratio %.1f (%ld:%ld)
 DLG_ABOUT_COMP_INFO2=level %d
@@ -485,49 +485,49 @@
 DLG_AUTH_REMEMBER_PASSWORD=Passphrase speichern
 DLG_AUTH_FWDAGENT=F&orward agent
 DLG_AUTH_METHOD_PASSWORD=Passwortauthentifikation verwenden
-DLG_AUTH_METHOD_RSA=DSA/RSA-Schlüssel verwenden
+DLG_AUTH_METHOD_RSA=DSA/RSA-SchlEsel verwenden
 DLG_AUTH_METHOD_RHOST=rhosts verwenden (SSH1)
 DLG_AUTH_METHOD_CHALLENGE1=Benutze challenge/response (TIS)
 DLG_AUTH_METHOD_CHALLENGE2=Benutze challenge/response (keyboard-interactive)
-DLG_AUTH_PRIVATEKEY=Schlüssel:
+DLG_AUTH_PRIVATEKEY=SchlEsel:
 DLG_AUTH_LOCALUSER=Lokaler Benutzername:
-DLG_AUTH_HOST_PRIVATEKEY=rhosts-Schlüssel:
+DLG_AUTH_HOST_PRIVATEKEY=rhosts-SchlEsel:
 MSG_PAGEANT_NOTFOUND=Can't find Pageant.
 MSG_PAGEANT_NOKEY=Pageant has no valid key.
 
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: Authentifikation-Einstellungen
-DLG_AUTHSETUP_BANNER=Standard-Einstellungen für Authentifikation:
+DLG_AUTHSETUP_BANNER=Standard-Einstellungen fE Authentifikation:
 DLG_AUTHSETUP_USERNAME=Benutzername:
 DLG_AUTHSETUP_METHOD_PASSWORD=Passwortauthentifikation verwenden
-DLG_AUTHSETUP_METHOD_RSA=DSA/RSA-Schlüssel verwenden
+DLG_AUTHSETUP_METHOD_RSA=DSA/RSA-SchlEsel verwenden
 DLG_AUTHSETUP_METHOD_RHOST=rhosts verwenden (SSH1)
 DLG_AUTHSETUP_METHOD_CHALLENGE=Benutze challenge/response (SSH1:&TIS, SSH2:keyboard-interactive)
-DLG_AUTHSETUP_PRIVATEKEY=Schlüssel:
+DLG_AUTHSETUP_PRIVATEKEY=SchlEsel:
 DLG_AUTHSETUP_LOCALUSER=Lokaler Benutzername:
-DLG_AUTHSETUP_HOST_PRIVATEKEY=rhosts-Schlüssel:
-DLG_AUTHSETUP_CHECKAUTH=Prüfe die Authentifizierungsmethoden vor dem Logins (SSH2)
+DLG_AUTHSETUP_HOST_PRIVATEKEY=rhosts-SchlEsel:
+DLG_AUTHSETUP_CHECKAUTH=PrEe die Authentifizierungsmethoden vor dem Logins (SSH2)
 
-FILEDLG_OPEN_PRIVATEKEY_TITLE=DSA/RSA/ECDSA-Schlüssel auswählen
+FILEDLG_OPEN_PRIVATEKEY_TITLE=DSA/RSA/ECDSA-SchlEsel auswählen
 FILEDLG_OPEN_PRIVATEKEY_FILTER=identity files\0identity;*.*;id_rsa;id_dsa;id_ecdsa\0identity(RSA1)\0identity\0id_rsa(SSH2)\0id_rsa\0id_dsa(SSH2)\0id_dsa\0id_ecdsa(SSH2)\0id_ecdsa\0all(*.*)\0*.*\0\0
-MSG_KEYSPECIFY_ERROR=Bitte einen DSA/RSA/ECDSA-Schlüssel auswählen.
-MSG_READKEY_ERROR=Lesefehler des DSA/RSA/ECDSA-Schlüssels\n%s
+MSG_KEYSPECIFY_ERROR=Bitte einen DSA/RSA/ECDSA-SchlEsel auswählen.
+MSG_READKEY_ERROR=Lesefehler des DSA/RSA/ECDSA-SchlEsels\n%s
 MSG_RHOSTS_NOTDEFAULT_ERROR=Rhosts authentication will probably fail because it was not the default authentication method.\nTo use Rhosts authentication in TTSSH, you need to set it to be the default by restarting\nTTSSH and selecting "SSH Authentication..." from the Setup menubefore connecting.
-MSG_NOAUTHMETHOD_ERROR=Der Server unterstützt keine der von TTSSH angebotenen\nAuthentifizierungs-Optionen. Die Verbindung wird beendet.
+MSG_NOAUTHMETHOD_ERROR=Der Server unterstEzt keine der von TTSSH angebotenen\nAuthentifizierungs-Optionen. Die Verbindung wird beendet.
 
 ; dlg diff key
 DLG_DIFFERENTKEY_TITLE=SICHERHEITSWARNUNG
-DLG_DIFFERENTKEY_WARNING=Der Server ("####################################") ist in der "known hosts"-Liste bereits mit einem anderen Schlüssel eingetragen.
+DLG_DIFFERENTKEY_WARNING=Der Server ("####################################") ist in der "known hosts"-Liste bereits mit einem anderen SchlEsel eingetragen.
 DLG_DIFFERENTKEY_WARNING2=Wenn Sie auf 'Continue'  klicken, wird der Server in die Liste aufgenommen und die Fehlermeldung erscheint nicht mehr.
-DLG_DIFFERENTKEY_FINGERPRINT=Der Fingerabdruck des Schlüssels:
-DLG_DIFFERENTKEY_REPLACE=Den vorhanden Schlüssel durch den neuen ersetzen.
+DLG_DIFFERENTKEY_FINGERPRINT=Der Fingerabdruck des SchlEsels:
+DLG_DIFFERENTKEY_REPLACE=Den vorhanden SchlEsel durch den neuen ersetzen.
 
 ; dlg diff type key
 DLG_DIFFERENTTYPEKEY_TITLE=SICHERHEITSWARNUNG
 DLG_DIFFERENTTYPEKEY_WARNING=Your known hosts list has an entry for the server "####################################", but the machine you have contacted has presented a DIFFERENT TYPE KEY to the one in your known hosts list. A hostile machine may be pretending to be the server.
 DLG_DIFFERENTTYPEKEY_WARNING2=Wenn Sie auf 'Continue'  klicken, wird der Server in die Liste aufgenommen und die Fehlermeldung erscheint nicht mehr.
-DLG_DIFFERENTTYPEKEY_FINGERPRINT=Der Fingerabdruck des Schlüssels:
-DLG_DIFFERENTTYPEKEY_ADD=Den Server zur "known hosts"-Liste hinzufügen.
+DLG_DIFFERENTTYPEKEY_FINGERPRINT=Der Fingerabdruck des SchlEsels:
+DLG_DIFFERENTTYPEKEY_ADD=Den Server zur "known hosts"-Liste hinzufEen.
 
 ; dlg fwd edit
 DLG_FWD_TITLE=SSH-Port-Weiterleitung
@@ -546,12 +546,12 @@
 MSG_SAME_LOCALPORT_ERROR=Sie können nicht zwei Weiterleitungen vom selben lokalen Port definieren (%d).
 MSG_UNSPECIFYIED_FWD_ERROR1=Die folgenden Weiterleitungen waren zu Beginn dieser SSH-Sitzung nicht definiert:\n\n
 MSG_UNSPECIFYIED_FWD_ERROR2=\nDue to a limitation of the SSH protocol, these forwardings will not work in the current SSH session.\nIf you save these settings and start a new SSH session, the forwardings should work.
-MSG_INVALID_PORT_ERROR="%s" ist keine gültige Portnummer.\nWählen Sie entweder einen Portnamen aus der Liste, oder geben Sie eine Nummer zwischen 1 and 65535 an.
+MSG_INVALID_PORT_ERROR="%s" ist keine gEtige Portnummer.\nWählen Sie entweder einen Portnamen aus der Liste, oder geben Sie eine Nummer zwischen 1 and 65535 an.
 
 ; dlg fwd setup
 DLG_FWDSETUP_TITLE=SSH-Port-Weiterleitung
 DLG_FWDSETUP_LIST=SSH-Tunnel aufbauen
-DLG_FWDSETUP_ADD=Hinzufügen
+DLG_FWDSETUP_ADD=HinzufEen
 DLG_FWDSETUP_EDIT=Bearbeiten
 DLG_FWDSETUP_REMOVE=Entfernen
 DLG_FWDSETUP_CHECKIDENTITY=Lokale Ports akzeptieren Verbindungen von anderen Hosts
@@ -581,7 +581,7 @@
 
 ; dlg keygen
 DLG_KEYGEN_TITLE=SSH Key Generator
-DLG_KEYGEN_KEYTYPE=Schlüssel-Typ
+DLG_KEYGEN_KEYTYPE=SchlEsel-Typ
 DLG_KEYGEN_PASSPHRASE=Passphrase:
 DLG_KEYGEN_PASSPHRASE2=Passphrase bestätigen:
 DLG_KEYGEN_SAVEPUBLIC=Public Key
@@ -598,10 +598,10 @@
 FILEDLG_SAVE_PUBLICKEY_RSA_FILTER=SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0
 FILEDLG_SAVE_PUBLICKEY_DSA_FILTER=SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0
 FILEDLG_SAVE_PUBLICKEY_ECDSA_FILTER=SSH2 ECDSA key(id_ecdsa.pub)\0id_ecdsa.pub\0All Files(*.*)\0*.*\0\0
-MSG_SAVE_KEY_OPENFILE_ERROR=Schlüssel kann nicht geöffnet werden
-MSG_SAVE_KEY_WRITEFILE_ERROR=Schlüssel kann nicht speichert werden
-MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR=Die Passphrasen stimmen nicht überein
-MSG_SAVE_PRIVATEKEY_EMPTY_WARN=Möchten Sie den Schlüssel ohne Passphrase speichern?
+MSG_SAVE_KEY_OPENFILE_ERROR=SchlEsel kann nicht geöffnet werden
+MSG_SAVE_KEY_WRITEFILE_ERROR=SchlEsel kann nicht speichert werden
+MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR=Die Passphrasen stimmen nicht Eerein
+MSG_SAVE_PRIVATEKEY_EMPTY_WARN=Möchten Sie den SchlEsel ohne Passphrase speichern?
 FILEDLG_SAVE_PRIVATEKEY_TITLE=Private Key speichern:
 FILEDLG_SAVE_PRIVATEKEY_RSA1_FILTER=SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0
 FILEDLG_SAVE_PRIVATEKEY_RSA_FILTER=SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0
@@ -614,9 +614,25 @@
 DLG_SSHSETUP_COMPRESS_NONE=Keine
 DLG_SSHSETUP_COMPRESS_HIGHEST=Höchste
 DLG_SSHSETUP_CHIPER=&Preferred cipher order
-DLG_SSHSETUP_CHIPER_UP=Move &Up
-DLG_SSHSETUP_CHIPER_DOWN=Move &Down
+DLG_SSHSETUP_CHIPER_UP=Move Up(&0)
+DLG_SSHSETUP_CHIPER_DOWN=Move Down(&1)
 DLG_SSHSETUP_CIPHER_BORDER=<ciphers below this line are disabled>
+DLG_SSHSETUP_KEX=K&EX order
+DLG_SSHSETUP_KEX_UP=Move Up(&2)
+DLG_SSHSETUP_KEX_DOWN=Move Down(&3)
+DLG_SSHSETUP_KEX_BORDER=<KEXs below this line are disabled>
+DLG_SSHSETUP_HOST_KEY=Ho&st Key order
+DLG_SSHSETUP_HOST_KEY_UP=Move Up(&4)
+DLG_SSHSETUP_HOST_KEY_DOWN=Move Down(&5)
+DLG_SSHSETUP_HOST_KEY_BORDER=<Host Keys below this line are disabled>
+DLG_SSHSETUP_MAC=MAC or&der
+DLG_SSHSETUP_MAC_UP=Move Up(&6)
+DLG_SSHSETUP_MAC_DOWN=Move Down(&7)
+DLG_SSHSETUP_MAC_BORDER=<MACs below this line are disabled>
+DLG_SSHSETUP_COMP=Compress&ion order
+DLG_SSHSETUP_COMP_UP=Move Up(&8)
+DLG_SSHSETUP_COMP_DOWN=Move Down(&9)
+DLG_SSHSETUP_COMP_BORDER=<Compressions below this line are disabled>
 DLG_SSHSETUP_KNOWNHOST=SSH Known Hosts
 DLG_SSHSETUP_KNOWNHOST_RW=Read/&write file:
 DLG_SSHSETUP_KNOWNHOST_RO=&Read-only files:
@@ -635,10 +651,10 @@
 
 ; dlg unknown host
 DLG_UNKNONWHOST_TITLE=SICHERHEITSWARNUNG
-DLG_UNKNOWNHOST_WARNING=Es gibt für diesen Server ("#####################################") keinen Eintrag in der "known hosts"-Liste.
+DLG_UNKNOWNHOST_WARNING=Es gibt fE diesen Server ("#####################################") keinen Eintrag in der "known hosts"-Liste.
 DLG_UNKNOWNHOST_WARNING2=Wenn Sie auf 'Continue' klicken, wird der Server in die Liste aufgenommen und die Fehlermeldung erscheint nicht mehr.
-DLG_UNKNOWNHOST_FINGERPRINT=Der Fingerabdruck des Schlüssels:
-DLG_UNKNOWNHOST_ADD=Den Server zur "known hosts"-Liste hinzufügen.
+DLG_UNKNOWNHOST_FINGERPRINT=Der Fingerabdruck des SchlEsels:
+DLG_UNKNOWNHOST_ADD=Den Server zur "known hosts"-Liste hinzufEen.
 
 ; crypt.c
 MSG_ENCRYPT_ERROR1=%s encrypt error(1): bytes %d (%d)
@@ -821,8 +837,8 @@
 MSG_INVALID_CA=Invalid CA Certificate
 MSG_PATH_LENGTH_EXCEEDED=Path length constraint exceeded
 MSG_INVALID_PURPOSE=Unsupported Certificate purpose
-MSG_CERT_UNTRUSTED=Zertifikat nicht vertrauenswürdig
-MSG_CERT_REJECTED=Zertifikat zurückgewiesen
+MSG_CERT_UNTRUSTED=Zertifikat nicht vertrauenswEdig
+MSG_CERT_REJECTED=Zertifikat zurEkgewiesen
 MSG_SUBJECT_ISSUER_MISMATCH=Subject Issuer mismatch
 MSG_AKID_SKID_MISMATCH=Authority and Subject Key Identifier mismatch
 MSG_AKID_ISSUER_SERIAL_MISMATCH=Authority and Issuer Serial Number mismatch
@@ -845,7 +861,7 @@
 MENU_LEFTPOPUP=showing list by left-click
 MENU_HOTKEY=showing list hotkey(Ctl+Alt+M)
 MENU_VERSION=Version
-MENU_EXEC=Ausführen
+MENU_EXEC=AusfEren
 MENU_CLOSE=Beenden
 MENU_NOTRAY=(none)
 
@@ -865,7 +881,7 @@
 DLG_CONFIG_LAUNCH=launch only
 DLG_CONFIG_STARTUP=kick at starting
 DLG_CONFIG_SSH=SSH verwenden
-DLG_CONFIG_KEYFILE=Schlüsseldatei
+DLG_CONFIG_KEYFILE=SchlEseldatei
 DLG_CONFIG_CHALLENGE=use Challenge
 DLG_CONFIG_PAGEANT=use Pageant
 DLG_CONFIG_DETAIL=Details

Modified: trunk/installer/release/lang/Japanese.lng
===================================================================
--- trunk/installer/release/lang/Japanese.lng	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/installer/release/lang/Japanese.lng	2011-04-16 14:18:33 UTC (rev 4442)
@@ -616,9 +616,25 @@
 DLG_SSHSETUP_COMPRESS_NONE=‚È‚µ
 DLG_SSHSETUP_COMPRESS_HIGHEST=Å‚
 DLG_SSHSETUP_CHIPER=—Dæ‚·‚éƒAƒ‹ƒSƒŠƒYƒ€‚̏‡(&P)
-DLG_SSHSETUP_CHIPER_UP=ã‚Ö(&U)
-DLG_SSHSETUP_CHIPER_DOWN=‰º‚Ö(&D)
+DLG_SSHSETUP_CHIPER_UP=ã‚Ö(&0)
+DLG_SSHSETUP_CHIPER_DOWN=‰º‚Ö(&1)
 DLG_SSHSETUP_CIPHER_BORDER=<ˆÈ‰º‚̈͆ƒAƒ‹ƒSƒŠƒYƒ€‚ÍŽg—p‚³‚ê‚Ü‚¹‚ñ>
+DLG_SSHSETUP_KEX=—Dæ‚·‚éƒAƒ‹ƒSƒŠƒYƒ€‚̏‡(&E)
+DLG_SSHSETUP_KEX_UP=ã‚Ö(&2)
+DLG_SSHSETUP_KEX_DOWN=‰º‚Ö(&3)
+DLG_SSHSETUP_KEX_BORDER=<ˆÈ‰º‚ÌŒ®ŒðŠ·ƒAƒ‹ƒSƒŠƒYƒ€‚ÍŽg—p‚³‚ê‚Ü‚¹‚ñ>
+DLG_SSHSETUP_HOST_KEY=—Dæ‚·‚éƒAƒ‹ƒSƒŠƒYƒ€‚̏‡(&s)
+DLG_SSHSETUP_HOST_KEY_UP=ã‚Ö(&4)
+DLG_SSHSETUP_HOST_KEY_DOWN=‰º‚Ö(&5)
+DLG_SSHSETUP_HOST_KEY_BORDER=<ˆÈ‰º‚̃zƒXƒgƒL[ƒAƒ‹ƒSƒŠƒYƒ€‚ÍŽg—p‚³‚ê‚Ü‚¹‚ñ>
+DLG_SSHSETUP_MAC=—Dæ‚·‚éƒAƒ‹ƒSƒŠƒYƒ€‚̏‡(&d)
+DLG_SSHSETUP_MAC_UP=ã‚Ö(&6)
+DLG_SSHSETUP_MAC_DOWN=‰º‚Ö(&7)
+DLG_SSHSETUP_MAC_BORDER=<ˆÈ‰º‚ÌHMACƒAƒ‹ƒSƒŠƒYƒ€‚ÍŽg—p‚³‚ê‚Ü‚¹‚ñ>
+DLG_SSHSETUP_COMP=—Dæ‚·‚éƒAƒ‹ƒSƒŠƒYƒ€‚̏‡(&i)
+DLG_SSHSETUP_COMP_UP=ã‚Ö(&8)
+DLG_SSHSETUP_COMP_DOWN=‰º‚Ö(&9)
+DLG_SSHSETUP_COMP_BORDER=<ˆÈ‰º‚̈³kƒAƒ‹ƒSƒŠƒYƒ€‚ÍŽg—p‚³‚ê‚Ü‚¹‚ñ>
 DLG_SSHSETUP_KNOWNHOST=SSH Known Hosts
 DLG_SSHSETUP_KNOWNHOST_RW=“ǂݏ‘‚«(&W):
 DLG_SSHSETUP_KNOWNHOST_RO=“Ç‚ÝŽæ‚èê—p(&R):

Modified: trunk/ttssh2/ttxssh/resource.h
===================================================================
--- trunk/ttssh2/ttxssh/resource.h	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/ttssh2/ttxssh/resource.h	2011-04-16 14:18:33 UTC (rev 4442)
@@ -49,17 +49,30 @@
 #define IDC_CONTINUE                    1027
 #define IDC_READONLYFILENAME            1027
 #define IDC_HOSTWARNING                 1028
+#define IDC_SSHKEX_LIST                 1029
 #define IDC_CHOOSEREADWRITEFILE         1030
 #define IDC_CHOOSEREADONLYFILE          1031
 #define IDC_CHOOSERSAFILE               1031
 #define IDC_RSAFILENAME                 1032
+#define IDC_SSHKEX_MOVEUP               1032
+#define IDC_SSHKEX_MOVEDOWN             1033
+#define IDC_SSHHOST_KEY_LIST            1034
+#define IDC_SSHHOST_KEY_MOVEUP          1035
 #define IDC_SSHFWDLIST                  1036
+#define IDC_SSHHOST_KEY_MOVEDOWN        1036
 #define IDC_SSHFWDX11                   1037
+#define IDC_SSHMAC_LIST                 1037
 #define IDC_SSHLTRFROMPORT              1038
+#define IDC_SSHMAC_MOVEUP               1038
 #define IDC_SSHLTRTOHOST                1039
+#define IDC_SSHMAC_MOVEDOWN             1039
 #define IDC_SSHLTRTOPORT                1040
+#define IDC_SSHCOMP_LIST                1040
 #define IDC_SSHRTLFROMPORT              1041
+#define IDC_SSHCOMP_MOVEUP              1041
 #define IDC_SSHRTLTOHOST                1042
+#define IDC_COMP_MOVEDOWN               1042
+#define IDC_SSHCOMP_MOVEDOWN            1042
 #define IDC_SSHRTLTOPORT                1043
 #define IDC_SSHFWDLOCALTOREMOTE         1044
 #define IDC_SSHPASSWORDCAPTION          1045
@@ -118,9 +131,13 @@
 #define IDC_STATIC6                     1075
 #define IDC_NOTICEBANNER                1075
 #define IDC_HOSTWARNING2                1076
+#define IDC_KEX_ORDER                   1076
 #define IDC_HOSTFINGERPRINT             1077
+#define IDC_HOST_KEY_ORDER              1077
 #define IDC_PORTFORWARD                 1078
+#define IDC_MAC_ORDER                   1078
 #define IDC_XFORWARD                    1079
+#define IDC_COMP_ORDER                  1079
 #define IDC_SSHFWDLOCALTOREMOTE_HOST    1080
 #define IDC_SSHFWDLOCALTOREMOTE_PORT    1081
 #define IDC_SSHFWDREMOTETOLOCAL_HOST    1082

Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/ttssh2/ttxssh/ttxssh.c	2011-04-16 14:18:33 UTC (rev 4442)
@@ -2537,15 +2537,15 @@
 	}
 }
 
-static void set_move_button_status(HWND dlg)
+static void set_move_button_status(HWND dlg, int type, int up, int down)
 {
-	HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS);
+	HWND cipherControl = GetDlgItem(dlg, type);
 	int curPos = (int) SendMessage(cipherControl, LB_GETCURSEL, 0, 0);
 	int maxPos = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0) - 1;
 
-	EnableWindow(GetDlgItem(dlg, IDC_SSHMOVECIPHERUP),
+	EnableWindow(GetDlgItem(dlg, up),
 	             curPos > 0 && curPos <= maxPos);
-	EnableWindow(GetDlgItem(dlg, IDC_SSHMOVECIPHERDOWN),
+	EnableWindow(GetDlgItem(dlg, down),
 	             curPos >= 0 && curPos < maxPos);
 }
 
@@ -2553,6 +2553,10 @@
 {
 	HWND compressionControl = GetDlgItem(dlg, IDC_SSHCOMPRESSIONLEVEL);
 	HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS);
+	HWND kexControl = GetDlgItem(dlg, IDC_SSHKEX_LIST);
+	HWND hostkeyControl = GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST);
+	HWND macControl = GetDlgItem(dlg, IDC_SSHMAC_LIST);
+	HWND compControl = GetDlgItem(dlg, IDC_SSHCOMP_LIST);
 	int i;
 	int ch;
 	char uimsg[MAX_UIMSG];
@@ -2569,6 +2573,7 @@
 	GetDlgItemText(dlg, IDC_COMPRESSHIGH, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_HIGHEST", pvar, uimsg);
 	SetDlgItemText(dlg, IDC_COMPRESSHIGH, pvar->ts->UIMsg);
+
 	GetDlgItemText(dlg, IDC_CIPHERORDER, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER", pvar, uimsg);
 	SetDlgItemText(dlg, IDC_CIPHERORDER, pvar->ts->UIMsg);
@@ -2578,6 +2583,47 @@
 	GetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_DOWN", pvar, uimsg);
 	SetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, pvar->ts->UIMsg);
+
+	GetDlgItemText(dlg, IDC_KEX_ORDER, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_KEX", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_KEX_ORDER, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHKEX_MOVEUP, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_KEX_UP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHKEX_MOVEUP, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHKEX_MOVEDOWN, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_KEX_DOWN", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHKEX_MOVEDOWN, pvar->ts->UIMsg);
+
+	GetDlgItemText(dlg, IDC_HOST_KEY_ORDER, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_HOST_KEY", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_HOST_KEY_ORDER, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHHOST_KEY_MOVEUP, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_HOST_KEY_UP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHHOST_KEY_MOVEUP, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHHOST_KEY_MOVEDOWN, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_HOST_KEY_DOWN", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHHOST_KEY_MOVEDOWN, pvar->ts->UIMsg);
+
+	GetDlgItemText(dlg, IDC_MAC_ORDER, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_MAC", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_MAC_ORDER, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHMAC_MOVEUP, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_MAC_UP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHMAC_MOVEUP, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHMAC_MOVEDOWN, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_MAC_DOWN", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHMAC_MOVEDOWN, pvar->ts->UIMsg);
+
+	GetDlgItemText(dlg, IDC_COMP_ORDER, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_COMP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_COMP_ORDER, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHCOMP_MOVEUP, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_COMP_UP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHCOMP_MOVEUP, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHCOMP_MOVEDOWN, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_COMP_DOWN", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHCOMP_MOVEDOWN, pvar->ts->UIMsg);
+
 	GetDlgItemText(dlg, IDC_KNOWNHOSTS, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST", pvar, uimsg);
 	SetDlgItemText(dlg, IDC_KNOWNHOSTS, pvar->ts->UIMsg);
@@ -2616,6 +2662,7 @@
 	SendMessage(compressionControl, TBM_SETPOS, TRUE,
 	            pvar->settings.CompressionLevel);
 
+	// Cipher order
 	normalize_cipher_order(pvar->settings.CipherOrder);
 
 	for (i = 0; pvar->settings.CipherOrder[i] != 0; i++) {
@@ -2628,8 +2675,92 @@
 	}
 
 	SendMessage(cipherControl, LB_SETCURSEL, 0, 0);
-	set_move_button_status(dlg);
+	set_move_button_status(dlg, IDC_SSHCIPHERPREFS, IDC_SSHMOVECIPHERUP, IDC_SSHMOVECIPHERDOWN);
 
+	// KEX order
+	normalize_kex_order(pvar->settings.KexOrder);
+	for (i = 0; pvar->settings.KexOrder[i] != 0; i++) {
+		int index = pvar->settings.KexOrder[i] - '0';
+		char FAR *name = NULL;
+
+		if (index == 0)	{
+			UTIL_get_lang_msg("DLG_SSHSETUP_KEX_BORDER", pvar,
+							  "<KEXs below this line are disabled>");
+			name = pvar->ts->UIMsg;
+		} else {
+			name = get_kex_algorithm_name(index);
+		}
+
+		if (name != NULL) {
+			SendMessage(kexControl, LB_ADDSTRING, 0, (LPARAM) name);
+		}
+	}
+	SendMessage(kexControl, LB_SETCURSEL, 0, 0);
+	set_move_button_status(dlg, IDC_SSHKEX_LIST, IDC_SSHKEX_MOVEUP, IDC_SSHKEX_MOVEDOWN);
+
+	// Host Key order
+	normalize_host_key_order(pvar->settings.HostKeyOrder);
+	for (i = 0; pvar->settings.HostKeyOrder[i] != 0; i++) {
+		int index = pvar->settings.HostKeyOrder[i] - '0';
+		char FAR *name = NULL;
+
+		if (index == 0)	{
+			UTIL_get_lang_msg("DLG_SSHSETUP_HOST_KEY_BORDER", pvar,
+							  "<Host Keys below this line are disabled>");
+			name = pvar->ts->UIMsg;
+		} else {
+			name = get_ssh_keytype_name(index);
+		}
+
+		if (name != NULL) {
+			SendMessage(hostkeyControl, LB_ADDSTRING, 0, (LPARAM) name);
+		}
+	}
+	SendMessage(hostkeyControl, LB_SETCURSEL, 0, 0);
+	set_move_button_status(dlg, IDC_SSHHOST_KEY_LIST, IDC_SSHHOST_KEY_MOVEUP, IDC_SSHHOST_KEY_MOVEDOWN);
+
+	// MAC order
+	normalize_mac_order(pvar->settings.MacOrder);
+	for (i = 0; pvar->settings.MacOrder[i] != 0; i++) {
+		int index = pvar->settings.MacOrder[i] - '0';
+		char FAR *name = NULL;
+
+		if (index == 0)	{
+			UTIL_get_lang_msg("DLG_SSHSETUP_MAC_BORDER", pvar,
+							  "<MACs below this line are disabled>");
+			name = pvar->ts->UIMsg;
+		} else {
+			name = get_ssh2_mac_name(index);
+		}
+
+		if (name != NULL) {
+			SendMessage(macControl, LB_ADDSTRING, 0, (LPARAM) name);
+		}
+	}
+	SendMessage(macControl, LB_SETCURSEL, 0, 0);
+	set_move_button_status(dlg, IDC_SSHMAC_LIST, IDC_SSHMAC_MOVEUP, IDC_SSHMAC_MOVEDOWN);
+
+	// Compression order
+	normalize_comp_order(pvar->settings.CompOrder);
+	for (i = 0; pvar->settings.CompOrder[i] != 0; i++) {
+		int index = pvar->settings.CompOrder[i] - '0';
+		char FAR *name = NULL;
+
+		if (index == 0)	{
+			UTIL_get_lang_msg("DLG_SSHSETUP_COMP_BORDER", pvar,
+							  "<Compressions below this line are disabled>");
+			name = pvar->ts->UIMsg;
+		} else {
+			name = get_ssh2_comp_name(index);
+		}
+
+		if (name != NULL) {
+			SendMessage(compControl, LB_ADDSTRING, 0, (LPARAM) name);
+		}
+	}
+	SendMessage(compControl, LB_SETCURSEL, 0, 0);
+	set_move_button_status(dlg, IDC_SSHCOMP_LIST, IDC_SSHCOMP_MOVEUP, IDC_SSHCOMP_MOVEDOWN);
+
 	for (i = 0; (ch = pvar->settings.KnownHostsFiles[i]) != 0 && ch != ';';
 		 i++) {
 	}
@@ -2737,13 +2868,16 @@
 	char buf[4096];
 	char buf2[1024];
 	HWND compressionControl = GetDlgItem(dlg, IDC_SSHCOMPRESSIONLEVEL);
-	HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS);
+	HWND cipherControl;
 	int i, j, buf2index, bufindex;
-	int count = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0);
+	int count;
 
 	pvar->settings.CompressionLevel =
 		(int) SendMessage(compressionControl, TBM_GETPOS, 0, 0);
 
+	// Cipher order
+	cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS);
+	count = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0);
 	buf2index = 0;
 	for (i = 0; i < count; i++) {
 		int len = SendMessage(cipherControl, LB_GETTEXTLEN, i, 0);
@@ -2765,6 +2899,114 @@
 	normalize_cipher_order(buf2);
 	strncpy_s(pvar->settings.CipherOrder, sizeof(pvar->settings.CipherOrder), buf2, _TRUNCATE);
 
+	// KEX order
+	cipherControl = GetDlgItem(dlg, IDC_SSHKEX_LIST);
+	count = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0);
+	buf2index = 0;
+	for (i = 0; i < count; i++) {
+		int len = SendMessage(cipherControl, LB_GETTEXTLEN, i, 0);
+
+		if (len > 0 && len < sizeof(buf)) {	/* should always be true */
+			buf[0] = 0;
+			SendMessage(cipherControl, LB_GETTEXT, i, (LPARAM) buf);
+			for (j = 0;
+				 j <= KEX_DH_MAX
+				 && strcmp(buf, get_kex_algorithm_name(j)) != 0; j++) {
+			}
+			if (j <= KEX_DH_MAX) {
+				buf2[buf2index] = '0' + j;
+				buf2index++;
+			} else {
+				buf2[buf2index] = '0';  // disabled line
+				buf2index++;
+			}
+		}
+	}
+	buf2[buf2index] = 0;
+	normalize_kex_order(buf2);
+	strncpy_s(pvar->settings.KexOrder, sizeof(pvar->settings.KexOrder), buf2, _TRUNCATE);
+
+	// Host Key order
+	cipherControl = GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST);
+	count = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0);
+	buf2index = 0;
+	for (i = 0; i < count; i++) {
+		int len = SendMessage(cipherControl, LB_GETTEXTLEN, i, 0);
+
+		if (len > 0 && len < sizeof(buf)) {	/* should always be true */
+			buf[0] = 0;
+			SendMessage(cipherControl, LB_GETTEXT, i, (LPARAM) buf);
+			for (j = 0;
+				j <= KEY_MAX
+				 && strcmp(buf, get_ssh_keytype_name(j)) != 0; j++) {
+			}
+			if (j <= KEY_MAX) {
+				buf2[buf2index] = '0' + j;
+				buf2index++;
+			} else {
+				buf2[buf2index] = '0';  // disabled line
+				buf2index++;
+			}
+		}
+	}
+	buf2[buf2index] = 0;
+	normalize_host_key_order(buf2);
+	strncpy_s(pvar->settings.HostKeyOrder, sizeof(pvar->settings.HostKeyOrder), buf2, _TRUNCATE);
+
+	// MAC order
+	cipherControl = GetDlgItem(dlg, IDC_SSHMAC_LIST);
+	count = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0);
+	buf2index = 0;
+	for (i = 0; i < count; i++) {
+		int len = SendMessage(cipherControl, LB_GETTEXTLEN, i, 0);
+
+		if (len > 0 && len < sizeof(buf)) {	/* should always be true */
+			buf[0] = 0;
+			SendMessage(cipherControl, LB_GETTEXT, i, (LPARAM) buf);
+			for (j = 0;
+				j <= HMAC_MAX
+				&& strcmp(buf, get_ssh2_mac_name(j)) != 0; j++) {
+			}
+			if (j <= HMAC_MAX) {
+				buf2[buf2index] = '0' + j;
+				buf2index++;
+			} else {
+				buf2[buf2index] = '0';  // disabled line
+				buf2index++;
+			}
+		}
+	}
+	buf2[buf2index] = 0;
+	normalize_mac_order(buf2);
+	strncpy_s(pvar->settings.MacOrder, sizeof(pvar->settings.MacOrder), buf2, _TRUNCATE);
+
+	// Compression order
+	cipherControl = GetDlgItem(dlg, IDC_SSHCOMP_LIST);
+	count = (int) SendMessage(cipherControl, LB_GETCOUNT, 0, 0);
+	buf2index = 0;
+	for (i = 0; i < count; i++) {
+		int len = SendMessage(cipherControl, LB_GETTEXTLEN, i, 0);
+
+		if (len > 0 && len < sizeof(buf)) {	/* should always be true */
+			buf[0] = 0;
+			SendMessage(cipherControl, LB_GETTEXT, i, (LPARAM) buf);
+			for (j = 0;
+				j <= COMP_MAX
+				&& strcmp(buf, get_ssh2_comp_name(j)) != 0; j++) {
+			}
+			if (j <= COMP_MAX) {
+				buf2[buf2index] = '0' + j;
+				buf2index++;
+			} else {
+				buf2[buf2index] = '0';  // disabled line
+				buf2index++;
+			}
+		}
+	}
+	buf2[buf2index] = 0;
+	normalize_comp_order(buf2);
+	strncpy_s(pvar->settings.CompOrder, sizeof(pvar->settings.CompOrder), buf2, _TRUNCATE);
+
 	buf[0] = 0;
 	GetDlgItemText(dlg, IDC_READWRITEFILENAME, buf, sizeof(buf));
 	j = copy_teraterm_dir_relative_path(pvar->settings.KnownHostsFiles,
@@ -2959,19 +3201,76 @@
 				DeleteObject(DlgSetupFont);
 			}
 			return TRUE;
+		// Cipher order
 		case IDC_SSHMOVECIPHERUP:
 			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCIPHERPREFS), -1);
-			set_move_button_status(dlg);
+			set_move_button_status(dlg, IDC_SSHCIPHERPREFS, IDC_SSHMOVECIPHERUP, IDC_SSHMOVECIPHERDOWN);
 			SetFocus(GetDlgItem(dlg, IDC_SSHCIPHERPREFS));
 			return TRUE;
 		case IDC_SSHMOVECIPHERDOWN:
 			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCIPHERPREFS), 1);
-			set_move_button_status(dlg);
+			set_move_button_status(dlg, IDC_SSHCIPHERPREFS, IDC_SSHMOVECIPHERUP, IDC_SSHMOVECIPHERDOWN);
 			SetFocus(GetDlgItem(dlg, IDC_SSHCIPHERPREFS));
 			return TRUE;
 		case IDC_SSHCIPHERPREFS:
-			set_move_button_status(dlg);
+			set_move_button_status(dlg, IDC_SSHCIPHERPREFS, IDC_SSHMOVECIPHERUP, IDC_SSHMOVECIPHERDOWN);
 			return TRUE;
+		// KEX order
+		case IDC_SSHKEX_MOVEUP:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHKEX_LIST), -1);
+			set_move_button_status(dlg, IDC_SSHKEX_LIST, IDC_SSHKEX_MOVEUP, IDC_SSHKEX_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHKEX_LIST));
+			return TRUE;
+		case IDC_SSHKEX_MOVEDOWN:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHKEX_LIST), 1);
+			set_move_button_status(dlg, IDC_SSHKEX_LIST, IDC_SSHKEX_MOVEUP, IDC_SSHKEX_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHKEX_LIST));
+			return TRUE;
+		case IDC_SSHKEX_LIST:
+			set_move_button_status(dlg, IDC_SSHKEX_LIST, IDC_SSHKEX_MOVEUP, IDC_SSHKEX_MOVEDOWN);
+			return TRUE;
+		// Host Key order
+		case IDC_SSHHOST_KEY_MOVEUP:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST), -1);
+			set_move_button_status(dlg, IDC_SSHHOST_KEY_LIST, IDC_SSHHOST_KEY_MOVEUP, IDC_SSHHOST_KEY_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST));
+			return TRUE;
+		case IDC_SSHHOST_KEY_MOVEDOWN:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST), 1);
+			set_move_button_status(dlg, IDC_SSHHOST_KEY_LIST, IDC_SSHHOST_KEY_MOVEUP, IDC_SSHHOST_KEY_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST));
+			return TRUE;
+		case IDC_SSHHOST_KEY_LIST:
+			set_move_button_status(dlg, IDC_SSHHOST_KEY_LIST, IDC_SSHHOST_KEY_MOVEUP, IDC_SSHHOST_KEY_MOVEDOWN);
+			return TRUE;
+		// Mac order
+		case IDC_SSHMAC_MOVEUP:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHMAC_LIST), -1);
+			set_move_button_status(dlg, IDC_SSHMAC_LIST, IDC_SSHMAC_MOVEUP, IDC_SSHMAC_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHMAC_LIST));
+			return TRUE;
+		case IDC_SSHMAC_MOVEDOWN:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHMAC_LIST), 1);
+			set_move_button_status(dlg, IDC_SSHMAC_LIST, IDC_SSHMAC_MOVEUP, IDC_SSHMAC_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHMAC_LIST));
+			return TRUE;
+		case IDC_SSHMAC_LIST:
+			set_move_button_status(dlg, IDC_SSHMAC_LIST, IDC_SSHMAC_MOVEUP, IDC_SSHMAC_MOVEDOWN);
+			return TRUE;
+		// Compression order
+		case IDC_SSHCOMP_MOVEUP:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCOMP_LIST), -1);
+			set_move_button_status(dlg, IDC_SSHCOMP_LIST, IDC_SSHCOMP_MOVEUP, IDC_SSHCOMP_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHCOMP_LIST));
+			return TRUE;
+		case IDC_SSHCOMP_MOVEDOWN:
+			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCOMP_LIST), 1);
+			set_move_button_status(dlg, IDC_SSHCOMP_LIST, IDC_SSHCOMP_MOVEUP, IDC_SSHCOMP_MOVEDOWN);
+			SetFocus(GetDlgItem(dlg, IDC_SSHCOMP_LIST));
+			return TRUE;
+		case IDC_SSHCOMP_LIST:
+			set_move_button_status(dlg, IDC_SSHCOMP_LIST, IDC_SSHCOMP_MOVEUP, IDC_SSHCOMP_MOVEDOWN);
+			return TRUE;
 		case IDC_CHOOSEREADWRITEFILE:
 			choose_read_write_file(dlg);
 			return TRUE;

Modified: trunk/ttssh2/ttxssh/ttxssh.rc
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.rc	2011-04-15 14:38:56 UTC (rev 4441)
+++ trunk/ttssh2/ttxssh/ttxssh.rc	2011-04-16 14:18:33 UTC (rev 4442)
@@ -135,35 +135,51 @@
     CONTROL         "S&erial",IDC_HOSTSERIAL,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,8,89,37,8
 END
 
-IDD_SSHSETUP DIALOGEX 0, 0, 223, 282
+IDD_SSHSETUP DIALOGEX 0, 0, 626, 258
 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "TTSSH: Setup"
 FONT 8, "Tahoma", 0, 0, 0x0
 BEGIN
-    LTEXT           "None",IDC_COMPRESSNONE,85,4,18,8
-    LTEXT           "Highest",IDC_COMPRESSHIGH,175,4,25,8
-    RTEXT           "&Compression level:",IDC_COMPRESSLABEL,11,12,68,13
-    CONTROL         "Slider1",IDC_SSHCOMPRESSIONLEVEL,"msctls_trackbar32",TBS_AUTOTICKS | WS_GROUP | WS_TABSTOP,85,12,107,20
-    GROUPBOX        "&Preferred cipher order",IDC_CIPHERORDER,17,33,187,98
-    LISTBOX         IDC_SSHCIPHERPREFS,31,45,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
-    PUSHBUTTON      "Move &Up",IDC_SSHMOVECIPHERUP,43,110,58,13,WS_GROUP
-    PUSHBUTTON      "Move &Down",IDC_SSHMOVECIPHERDOWN,117,110,58,13
-    GROUPBOX        "SSH Known Hosts",IDC_KNOWNHOSTS,7,134,209,52
-    PUSHBUTTON      "Read/&write file:",IDC_CHOOSEREADWRITEFILE,14,145,63,14
-    EDITTEXT        IDC_READWRITEFILENAME,83,146,126,13,ES_AUTOHSCROLL | WS_GROUP
-    PUSHBUTTON      "&Read-only files:",IDC_CHOOSEREADONLYFILE,14,163,63,14
-    EDITTEXT        IDC_READONLYFILENAME,83,164,126,13,ES_AUTOHSCROLL | WS_GROUP
-    LTEXT           "HeartBeat(&keep-alive)",IDC_HEARTBEATLABEL,17,193,83,8
-    EDITTEXT        IDC_HEARTBEAT_EDIT,102,191,26,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
-    LTEXT           "sec.(0 to turn off)",IDC_HEARTBEATLABEL2,134,193,77,8
+    GROUPBOX        "&Preferred cipher order",IDC_CIPHERORDER,17,7,187,98
+    LISTBOX         IDC_SSHCIPHERPREFS,31,19,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+    PUSHBUTTON      "Move Up(&0)",IDC_SSHMOVECIPHERUP,43,84,58,13,WS_GROUP
+    PUSHBUTTON      "Move Down(&1)",IDC_SSHMOVECIPHERDOWN,117,84,58,13
+    GROUPBOX        "K&EX order",IDC_KEX_ORDER,224,8,187,98
+    LISTBOX         IDC_SSHKEX_LIST,238,20,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+    PUSHBUTTON      "Move Up(&2)",IDC_SSHKEX_MOVEUP,250,85,58,13,WS_GROUP
+    PUSHBUTTON      "Move Down(&3)",IDC_SSHKEX_MOVEDOWN,324,85,58,13
+    GROUPBOX        "Ho&st Key order",IDC_HOST_KEY_ORDER,423,8,187,98
+    LISTBOX         IDC_SSHHOST_KEY_LIST,437,23,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+    PUSHBUTTON      "Move Up(&4)",IDC_SSHHOST_KEY_MOVEUP,449,85,58,13,WS_GROUP
+    PUSHBUTTON      "Move Down(&5)",IDC_SSHHOST_KEY_MOVEDOWN,523,85,58,13
+    GROUPBOX        "MAC or&der",IDC_MAC_ORDER,224,114,187,98
+    LISTBOX         IDC_SSHMAC_LIST,238,127,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+    PUSHBUTTON      "Move Up(&6)",IDC_SSHMAC_MOVEUP,250,191,58,13,WS_GROUP
+    PUSHBUTTON      "Move Down(&7)",IDC_SSHMAC_MOVEDOWN,324,191,58,13
+    GROUPBOX        "Compress&ion order",IDC_COMP_ORDER,423,114,187,139
+    LISTBOX         IDC_SSHCOMP_LIST,437,127,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+    PUSHBUTTON      "Move Up(&8)",IDC_SSHCOMP_MOVEUP,449,191,58,13,WS_GROUP
+    PUSHBUTTON      "Move Down(&9)",IDC_SSHCOMP_MOVEDOWN,523,191,58,13
+    LTEXT           "None",IDC_COMPRESSNONE,494,216,18,8
+    LTEXT           "Highest",IDC_COMPRESSHIGH,584,216,25,8
+    RTEXT           "&Compression level:",IDC_COMPRESSLABEL,420,224,68,13
+    CONTROL         "Slider1",IDC_SSHCOMPRESSIONLEVEL,"msctls_trackbar32",TBS_AUTOTICKS | WS_GROUP | WS_TABSTOP,494,224,107,20
+    GROUPBOX        "SSH Known Hosts",IDC_KNOWNHOSTS,7,108,209,52
+    PUSHBUTTON      "Read/&write file:",IDC_CHOOSEREADWRITEFILE,14,119,63,14
+    EDITTEXT        IDC_READWRITEFILENAME,83,120,126,13,ES_AUTOHSCROLL | WS_GROUP
+    PUSHBUTTON      "&Read-only files:",IDC_CHOOSEREADONLYFILE,14,137,63,14
+    EDITTEXT        IDC_READONLYFILENAME,83,138,126,13,ES_AUTOHSCROLL | WS_GROUP
+    LTEXT           "HeartBeat(&keep-alive)",IDC_HEARTBEATLABEL,17,167,83,8
+    EDITTEXT        IDC_HEARTBEAT_EDIT,102,165,26,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
+    LTEXT           "sec.(0 to turn off)",IDC_HEARTBEATLABEL2,134,167,77,8
     CONTROL         "Remember password in &memory",IDC_REMEMBERPASSWORD,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,207,187,10
-    CONTROL         "Enable &agent forwarding",IDC_FORWARDAGENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,221,187,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,181,187,10
+    CONTROL         "Enable &agent forwarding",IDC_FORWARDAGENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,195,187,10
     CONTROL         "C&onfirm agent forwarding",IDC_FORWARDAGENTCONFIRM,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,235,187,10
-    LTEXT           "All options take effect the next time a session is started.",IDC_NOTICEBANNER,17,249,187,12
-    DEFPUSHBUTTON   "OK",IDOK,49,263,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,119,263,50,14
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,209,187,10
+    LTEXT           "All options take effect the next time a session is started.",IDC_NOTICEBANNER,17,223,187,12
+    DEFPUSHBUTTON   "OK",IDOK,49,237,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,119,237,50,14
 END
 
 IDD_SSHUNKNOWNHOST DIALOGEX 0, 0, 215, 242
@@ -416,9 +432,9 @@
     IDD_SSHSETUP, DIALOG
     BEGIN
         LEFTMARGIN, 7
-        RIGHTMARGIN, 216
+        RIGHTMARGIN, 619
         TOPMARGIN, 4
-        BOTTOMMARGIN, 277
+        BOTTOMMARGIN, 253
     END
 
     IDD_SSHUNKNOWNHOST, DIALOG



Ttssh2-commit メーリングリストの案内