public bool Commit(IProtocolOptions options, IKeyAgentOptions agent) { StringResource sr = OptionDialogPlugin.Instance.Strings; //暗号アルゴリズム順序はoptionsを直接いじっているのでここでは何もしなくてよい try { options.HostKeyAlgorithmOrder = GetHostKeyAlgorithmOrder(); try { options.SSHWindowSize = Int32.Parse(_windowSizeBox.Text); } catch (FormatException) { GUtil.Warning(this, sr.GetString("Message.OptionDialog.InvalidWindowSize")); return(false); } options.SSHCheckMAC = _sshCheckMAC.Checked; options.CipherAlgorithmOrder = GetCipherAlgorithmOrder(); options.LogSSHEvents = _sshEventLog.Checked; return(true); } catch (Exception ex) { GUtil.Warning(this, ex.Message); return(false); } }
public bool Commit(IProtocolOptions options, IKeyAgentOptions agent) { StringResource sr = OptionDialogPlugin.Instance.Strings; //暗号アルゴリズム順序はoptionsを直接いじっているのでここでは何もしなくてよい try { options.HostKeyAlgorithmOrder = GetHostKeyAlgorithmOrder(); try { options.SSHWindowSize = Int32.Parse(_windowSizeBox.Text); } catch (FormatException) { GUtil.Warning(this, sr.GetString("Message.OptionDialog.InvalidWindowSize")); return false; } options.RetainsPassphrase = _retainsPassphrase.Checked; options.SSHCheckMAC = _sshCheckMAC.Checked; options.CipherAlgorithmOrder = GetCipherAlgorithmOrder(); options.LogSSHEvents = _sshEventLog.Checked; return true; } catch (Exception ex) { GUtil.Warning(this, ex.Message); return false; } }
public bool Commit(IProtocolOptions options) { StringResource sr = OptionDialogPlugin.Instance.Strings; string itemname = ""; try { options.UseSocks = _useSocks.Checked; if (options.UseSocks && _socksServerBox.Text.Length == 0) throw new Exception(sr.GetString("Message.OptionDialog.EmptySocksServer")); options.SocksServer = _socksServerBox.Text; itemname = sr.GetString("Caption.OptionDialog.SOCKSPortNumber"); options.SocksPort = Int32.Parse(_socksPortBox.Text); options.SocksAccount = _socksAccountBox.Text; options.SocksPassword = _socksPasswordBox.Text; itemname = sr.GetString("Caption.OptionDialog.NetworkAddress"); foreach (string c in _socksNANetworksBox.Text.Split(';')) { if (c.Length > 0 && !NetAddressUtil.IsNetworkAddress(c)) throw new FormatException(); //TODOここだけナントカすればNetUtilはinternalにできる } options.SocksNANetworks = _socksNANetworksBox.Text; options.IPVersionPriority = ((EnumListItem<IPVersionPriority>)_IPv6PriorityBox.SelectedItem).Value; return true; } catch (FormatException) { GUtil.Warning(this, String.Format(sr.GetString("Message.OptionDialog.InvalidItem"), itemname)); return false; } catch (Exception ex) { GUtil.Warning(this, ex.Message); return false; } }
public void InitUI(IProtocolOptions options, IKeyAgentOptions agent) { _cipherOrderList.Items.Clear(); _cipherOrderList.Items.AddRange(ToCipherAlgorithmListItems(options.CipherAlgorithmOrder)); _hostKeyAlgorithmOrderList.Items.Clear(); _hostKeyAlgorithmOrderList.Items.AddRange(ToPublicKeyAlgorithmListItems(options.HostKeyAlgorithmOrder)); _windowSizeBox.Text = options.SSHWindowSize.ToString(); _sshCheckMAC.Checked = options.SSHCheckMAC; _sshEventLog.Checked = options.LogSSHEvents; }
public override void InitiUI(IPreferenceFolder[] values) { if (_panel == null) { _panel = new ConnectionOptionPanel(); } IProtocolOptions opt = (IProtocolOptions)values[0].QueryAdapter(typeof(IProtocolOptions)); Debug.Assert(opt != null); _panel.InitUI(opt); }
public void InitUI(IProtocolOptions options) { _useSocks.Checked = options.UseSocks; _socksServerBox.Text = options.SocksServer; _socksPortBox.Text = options.SocksPort.ToString(); _socksAccountBox.Text = options.SocksAccount; _socksPasswordBox.Text = options.SocksPassword; _socksNANetworksBox.Text = options.SocksNANetworks; _IPv6PriorityBox.SelectedItem = options.IPVersionPriority; // select EnumListItem<T> by T }
protected virtual void MakeConnection() { //まずSOCKSを使うべきかどうかを判定する IProtocolOptions opt = ProtocolsPlugin.Instance.ProtocolOptions; if (opt.UseSocks && SocksApplicapable(opt.SocksNANetworks, IPAddressList.SilentGetAddress(_host))) { _socks = new Socks(); _socks.Account = opt.SocksAccount; _socks.Password = opt.SocksPassword; _socks.DestName = _host; _socks.DestPort = (short)_port; _socks.ServerName = opt.SocksServer; _socks.ServerPort = (short)opt.SocksPort; } string dest = _socks == null ? _host : _socks.ServerName; int port = _socks == null ? _port : _socks.ServerPort; IPAddress address = null; if (IPAddress.TryParse(dest, out address)) { _addressSet = new IPAddressList(address); //最初からIPアドレス形式のときは手で変換。そうでないとDNSの逆引きをしてタイムアウト、とかややこしいことが起こる } else //ホスト名形式 { StartOverridingErrorMessage(String.Format(PEnv.Strings.GetString("Message.AddressNotResolved"), dest)); _addressSet = new IPAddressList(dest); EndOverridingErrorMessage(); } StartOverridingErrorMessage(String.Format(PEnv.Strings.GetString("Message.FailedToConnectPort"), dest, port)); _socket = NetUtil.ConnectTCPSocket(_addressSet, port); EndOverridingErrorMessage(); _connectedAddress = ((IPEndPoint)_socket.RemoteEndPoint).Address; if (_socks != null) { _errorMessage = "An error occurred in SOCKS negotiation."; _socks.Connect(_socket); //接続成功したら_host,_portを元に戻す _host = _socks.DestName; _port = _socks.DestPort; } _tcpConnected = true; }
public void InitUI(IProtocolOptions options, IKeyAgentOptions agent) { _cipherOrderList.Items.Clear(); string[] co = options.CipherAlgorithmOrder; foreach (string c in co) { _cipherOrderList.Items.Add(c); } _hostKeyBox.SelectedIndex = ParsePublicKeyAlgorithm(options.HostKeyAlgorithmOrder[0]) == PublicKeyAlgorithm.DSA? 0 : 1; //これはDSA/RSAのどちらかしかない _windowSizeBox.Text = options.SSHWindowSize.ToString(); _retainsPassphrase.Checked = options.RetainsPassphrase; _sshCheckMAC.Checked = options.SSHCheckMAC; _sshEventLog.Checked = options.LogSSHEvents; _cipherAlgorithmOrder = options.CipherAlgorithmOrder; _enableAgentForward.Checked = agent.EnableKeyAgent; }
public bool Commit(IProtocolOptions options, IKeyAgentOptions agent) { StringResource sr = OptionDialogPlugin.Instance.Strings; //暗号アルゴリズム順序はoptionsを直接いじっているのでここでは何もしなくてよい try { PublicKeyAlgorithm[] pa = new PublicKeyAlgorithm[2]; if (_hostKeyBox.SelectedIndex == 0) { pa[0] = PublicKeyAlgorithm.DSA; pa[1] = PublicKeyAlgorithm.RSA; } else { pa[0] = PublicKeyAlgorithm.RSA; pa[1] = PublicKeyAlgorithm.DSA; } options.HostKeyAlgorithmOrder = FormatPublicKeyAlgorithmList(pa); try { options.SSHWindowSize = Int32.Parse(_windowSizeBox.Text); } catch (FormatException) { GUtil.Warning(this, sr.GetString("Message.OptionDialog.InvalidWindowSize")); return(false); } options.RetainsPassphrase = _retainsPassphrase.Checked; options.SSHCheckMAC = _sshCheckMAC.Checked; options.CipherAlgorithmOrder = _cipherAlgorithmOrder; options.LogSSHEvents = _sshEventLog.Checked; agent.EnableKeyAgent = _enableAgentForward.Checked; return(true); } catch (Exception ex) { GUtil.Warning(this, ex.Message); return(false); } }
public bool Commit(IProtocolOptions options) { StringResource sr = OptionDialogPlugin.Instance.Strings; string itemname = ""; try { options.UseSocks = _useSocks.Checked; if (options.UseSocks && _socksServerBox.Text.Length == 0) { throw new Exception(sr.GetString("Message.OptionDialog.EmptySocksServer")); } options.SocksServer = _socksServerBox.Text; itemname = sr.GetString("Caption.OptionDialog.SOCKSPortNumber"); options.SocksPort = Int32.Parse(_socksPortBox.Text); options.SocksAccount = _socksAccountBox.Text; options.SocksPassword = _socksPasswordBox.Text; itemname = sr.GetString("Caption.OptionDialog.NetworkAddress"); foreach (string c in _socksNANetworksBox.Text.Split(';')) { if (c.Length > 0 && !NetAddressUtil.IsNetworkAddress(c)) { throw new FormatException(); //TODOここだけナントカすればNetUtilはinternalにできる } } options.SocksNANetworks = _socksNANetworksBox.Text; options.IPVersionPriority = ((EnumListItem <IPVersionPriority>)_IPv6PriorityBox.SelectedItem).Value; return(true); } catch (FormatException) { GUtil.Warning(this, String.Format(sr.GetString("Message.OptionDialog.InvalidItem"), itemname)); return(false); } catch (Exception ex) { GUtil.Warning(this, ex.Message); return(false); } }
public bool Commit(IProtocolOptions options, IKeyAgentOptions agent) { StringResource sr = OptionDialogPlugin.Instance.Strings; //暗号アルゴリズム順序はoptionsを直接いじっているのでここでは何もしなくてよい try { PublicKeyAlgorithm[] pa = new PublicKeyAlgorithm[2]; if (_hostKeyBox.SelectedIndex == 0) { pa[0] = PublicKeyAlgorithm.DSA; pa[1] = PublicKeyAlgorithm.RSA; } else { pa[0] = PublicKeyAlgorithm.RSA; pa[1] = PublicKeyAlgorithm.DSA; } options.HostKeyAlgorithmOrder = FormatPublicKeyAlgorithmList(pa); try { options.SSHWindowSize = Int32.Parse(_windowSizeBox.Text); } catch (FormatException) { GUtil.Warning(this, sr.GetString("Message.OptionDialog.InvalidWindowSize")); return false; } options.RetainsPassphrase = _retainsPassphrase.Checked; options.SSHCheckMAC = _sshCheckMAC.Checked; options.CipherAlgorithmOrder = _cipherAlgorithmOrder; options.LogSSHEvents = _sshEventLog.Checked; agent.EnableKeyAgent = _enableAgentForward.Checked; return true; } catch (Exception ex) { GUtil.Warning(this, ex.Message); return false; } }
public void InitUI(IProtocolOptions options, IKeyAgentOptions agent) { _cipherOrderList.Items.Clear(); string[] co = options.CipherAlgorithmOrder; foreach (string c in co) _cipherOrderList.Items.Add(c); _hostKeyBox.SelectedIndex = ParsePublicKeyAlgorithm(options.HostKeyAlgorithmOrder[0]) == PublicKeyAlgorithm.DSA ? 0 : 1; //これはDSA/RSAのどちらかしかない _windowSizeBox.Text = options.SSHWindowSize.ToString(); _retainsPassphrase.Checked = options.RetainsPassphrase; _sshCheckMAC.Checked = options.SSHCheckMAC; _sshEventLog.Checked = options.LogSSHEvents; _cipherAlgorithmOrder = options.CipherAlgorithmOrder; _enableAgentForward.Checked = agent.EnableKeyAgent; }
public void InitUI(IProtocolOptions options, IKeyAgentOptions agent) { _cipherOrderList.Items.Clear(); _cipherOrderList.Items.AddRange(ToCipherAlgorithmListItems(options.CipherAlgorithmOrder)); _hostKeyAlgorithmOrderList.Items.Clear(); _hostKeyAlgorithmOrderList.Items.AddRange(ToPublicKeyAlgorithmListItems(options.HostKeyAlgorithmOrder)); _windowSizeBox.Text = options.SSHWindowSize.ToString(); _retainsPassphrase.Checked = options.RetainsPassphrase; _sshCheckMAC.Checked = options.SSHCheckMAC; _sshEventLog.Checked = options.LogSSHEvents; }
public void InitUI(IProtocolOptions options) { _useSocks.Checked = options.UseSocks; _socksServerBox.Text = options.SocksServer; _socksPortBox.Text = options.SocksPort.ToString(); _socksAccountBox.Text = options.SocksAccount; _socksPasswordBox.Text = options.SocksPassword; _socksNANetworksBox.Text = options.SocksNANetworks; _IPv6PriorityBox.SelectedItem = options.IPVersionPriority; // select EnumListItem<T> by T }