From 2fdb26c063450a4ec306cd49bb77c92b995b8b4f Mon Sep 17 00:00:00 2001 From: Jackson Ming Hu Date: Fri, 4 Sep 2015 11:59:23 +1000 Subject: [PATCH 1/6] Fix a tiny bug Sometimes the users may hit enter key by mistake, and the form will close without saving entries. --- shadowsocks-csharp/View/ConfigForm.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/shadowsocks-csharp/View/ConfigForm.cs b/shadowsocks-csharp/View/ConfigForm.cs index d7d5c1f3..dc290249 100755 --- a/shadowsocks-csharp/View/ConfigForm.cs +++ b/shadowsocks-csharp/View/ConfigForm.cs @@ -146,6 +146,28 @@ namespace Shadowsocks.View } + private void ConfigForm_KeyDown(object sender, KeyEventArgs e) + { + // Sometimes the users may hit enter key by mistake, and the form will close without saving entries. + + if (e.KeyCode == Keys.Enter) + { + Server server = controller.GetCurrentServer(); + if (!SaveOldSelectedServer()) + { + return; + } + if (_modifiedConfiguration.configs.Count == 0) + { + MessageBox.Show(I18N.GetString("Please add at least one server")); + return; + } + controller.SaveServers(_modifiedConfiguration.configs, _modifiedConfiguration.localPort); + controller.SelectServerIndex(_modifiedConfiguration.configs.IndexOf(server)); + } + + } + private void ServersListBox_SelectedIndexChanged(object sender, EventArgs e) { if (!ServersListBox.CanSelect) From 72ea01d56600051378f5b6dc6736481b77091aae Mon Sep 17 00:00:00 2001 From: Gang Zhuo Date: Tue, 15 Sep 2015 06:48:23 -0400 Subject: [PATCH 2/6] no repeat random number generator The stock code use class Random to generate IV, the Random is pseudo random number generator. The IV maybe repeat, this will cause shadowsocks-libev closed the sockets with the error message 'invalid password or cipher'. Reference https://github.com/shadowsocks/shadowsocks-libev/issues/389 Solution is use class RNGCryptoServiceProvider to generate IV, of course it's lower performance, but a little bit. --- shadowsocks-csharp/Encryption/IVEncryptor.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shadowsocks-csharp/Encryption/IVEncryptor.cs b/shadowsocks-csharp/Encryption/IVEncryptor.cs index 32948d6b..b82d3adf 100755 --- a/shadowsocks-csharp/Encryption/IVEncryptor.cs +++ b/shadowsocks-csharp/Encryption/IVEncryptor.cs @@ -88,7 +88,8 @@ namespace Shadowsocks.Encryption protected static void randBytes(byte[] buf, int length) { byte[] temp = new byte[length]; - new Random().NextBytes(temp); + RNGCryptoServiceProvider rngServiceProvider = new RNGCryptoServiceProvider(); + rngServiceProvider.GetBytes(temp); temp.CopyTo(buf, 0); } From 8e1c2193e40e0d995058759eb27de87e62e60b62 Mon Sep 17 00:00:00 2001 From: icylogic Date: Sat, 19 Sep 2015 16:15:45 +0800 Subject: [PATCH 3/6] replace Appveyor badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 83bff1ef..b4952dd8 100644 --- a/README.md +++ b/README.md @@ -75,8 +75,8 @@ Visual Studio 2015 is required. GPLv3 -[Appveyor]: https://ci.appveyor.com/project/clowwindy/shadowsocks-csharp -[Build Status]: https://ci.appveyor.com/api/projects/status/gknc8l1lxy423ehv/branch/master +[Appveyor]: https://ci.appveyor.com/project/icylogic/shadowsocks-windows-l9mwe +[Build Status]: https://ci.appveyor.com/api/projects/status/ytllr9yjkbpc2tu2/branch/master [latest release]: https://github.com/shadowsocks/shadowsocks-csharp/releases [GFWList]: https://github.com/gfwlist/gfwlist [Servers]: https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#linux--server-side From 8d2574b0037e44ad016af5a5211f37d209b49111 Mon Sep 17 00:00:00 2001 From: icylogic Date: Sat, 19 Sep 2015 16:16:05 +0800 Subject: [PATCH 4/6] bump 2.5.7 --- CHANGES | 3 +++ shadowsocks-csharp/Controller/Service/UpdateChecker.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 5c5aba5f..67e0faae 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2.5.7 2015-09-19 +- Fix repeated IV. + 2.5.6 2015-08-19 - Add portable mode. Create shadowsocks_portable_mode.txt to use it - Support server reorder diff --git a/shadowsocks-csharp/Controller/Service/UpdateChecker.cs b/shadowsocks-csharp/Controller/Service/UpdateChecker.cs index b2ef20dc..35bcf4c7 100644 --- a/shadowsocks-csharp/Controller/Service/UpdateChecker.cs +++ b/shadowsocks-csharp/Controller/Service/UpdateChecker.cs @@ -18,7 +18,7 @@ namespace Shadowsocks.Controller public string LatestVersionURL; public event EventHandler NewVersionFound; - public const string Version = "2.5.6"; + public const string Version = "2.5.7"; public void CheckUpdate(Configuration config) { From 29afe434144d5e50251b6dbbf92342f9a0c0ba12 Mon Sep 17 00:00:00 2001 From: Wensheng Tang Date: Sun, 20 Sep 2015 10:58:38 +0800 Subject: [PATCH 5/6] Update GFWList URL --- shadowsocks-csharp/Controller/Service/GfwListUpdater.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-csharp/Controller/Service/GfwListUpdater.cs b/shadowsocks-csharp/Controller/Service/GfwListUpdater.cs index 70720fb9..493defa4 100644 --- a/shadowsocks-csharp/Controller/Service/GfwListUpdater.cs +++ b/shadowsocks-csharp/Controller/Service/GfwListUpdater.cs @@ -12,7 +12,7 @@ namespace Shadowsocks.Controller { public class GFWListUpdater { - private const string GFWLIST_URL = "https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt"; + private const string GFWLIST_URL = "https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"; private static string PAC_FILE = PACServer.PAC_FILE; @@ -97,4 +97,4 @@ namespace Shadowsocks.Controller return valid_lines; } } -} \ No newline at end of file +} From c68283430a1cb7493d9f565ff3b02b9794617654 Mon Sep 17 00:00:00 2001 From: icylogic Date: Sun, 20 Sep 2015 11:36:38 +0800 Subject: [PATCH 6/6] bump 2.5.8 --- CHANGES | 5 ++++- shadowsocks-csharp/Controller/Service/UpdateChecker.cs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 67e0faae..ac759625 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ +2.5.8 2015-09-20 +- Update GFWList url + 2.5.7 2015-09-19 -- Fix repeated IV. +- Fix repeated IV 2.5.6 2015-08-19 - Add portable mode. Create shadowsocks_portable_mode.txt to use it diff --git a/shadowsocks-csharp/Controller/Service/UpdateChecker.cs b/shadowsocks-csharp/Controller/Service/UpdateChecker.cs index 35bcf4c7..d48c0aae 100644 --- a/shadowsocks-csharp/Controller/Service/UpdateChecker.cs +++ b/shadowsocks-csharp/Controller/Service/UpdateChecker.cs @@ -18,7 +18,7 @@ namespace Shadowsocks.Controller public string LatestVersionURL; public event EventHandler NewVersionFound; - public const string Version = "2.5.7"; + public const string Version = "2.5.8"; public void CheckUpdate(Configuration config) {