+ case IDC3_AGENTFWD:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED)
+ cfg.agentfwd = IsDlgButtonChecked (hwnd, IDC3_AGENTFWD);
+ break;
+ case IDC3_CIPHER3DES:
+ case IDC3_CIPHERBLOWF:
+ case IDC3_CIPHERDES:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED) {
+ if (IsDlgButtonChecked (hwnd, IDC3_CIPHER3DES))
+ cfg.cipher = CIPHER_3DES;
+ else if (IsDlgButtonChecked (hwnd, IDC3_CIPHERBLOWF))
+ cfg.cipher = CIPHER_BLOWFISH;
+ else if (IsDlgButtonChecked (hwnd, IDC3_CIPHERDES))
+ cfg.cipher = CIPHER_DES;
+ }
+ break;
+ case IDC3_SSHPROT1:
+ case IDC3_SSHPROT2:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED) {
+ if (IsDlgButtonChecked (hwnd, IDC3_SSHPROT1))
+ cfg.sshprot = 1;
+ else if (IsDlgButtonChecked (hwnd, IDC3_SSHPROT2))
+ cfg.sshprot = 2;
+ }
+ break;
+ case IDC3_AUTHTIS:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED)
+ cfg.try_tis_auth = IsDlgButtonChecked (hwnd, IDC3_AUTHTIS);
+ break;
+ case IDC3_PKEDIT:
+ if (HIWORD(wParam) == EN_CHANGE)
+ GetDlgItemText (hwnd, IDC3_PKEDIT, cfg.keyfile,
+ sizeof(cfg.keyfile)-1);
+ break;
+ case IDC3_PKBUTTON:
+ /*
+ * FIXME: this crashes. Find out why.
+ */
+ memset(&of, 0, sizeof(of));
+#ifdef OPENFILENAME_SIZE_VERSION_400
+ of.lStructSize = OPENFILENAME_SIZE_VERSION_400;
+#else
+ of.lStructSize = sizeof(of);
+#endif
+ of.hwndOwner = hwnd;
+ of.lpstrFilter = "All Files\0*\0\0\0";
+ of.lpstrCustomFilter = NULL;
+ of.nFilterIndex = 1;
+ of.lpstrFile = filename; strcpy(filename, cfg.keyfile);
+ of.nMaxFile = sizeof(filename);
+ of.lpstrFileTitle = NULL;
+ of.lpstrInitialDir = NULL;
+ of.lpstrTitle = "Select Public Key File";
+ of.Flags = 0;
+ if (GetOpenFileName(&of)) {
+ strcpy(cfg.keyfile, filename);
+ SetDlgItemText (hwnd, IDC3_PKEDIT, cfg.keyfile);
+ }
+ break;