Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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
        }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        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;
            }
        }
Ejemplo n.º 12
0
 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;
 }
Ejemplo n.º 13
0
 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;
 }
Ejemplo n.º 14
0
        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
        }