From 19085a3cd170ef7ce18e4e9321934c772c0e4710 Mon Sep 17 00:00:00 2001 From: Gang Zhuo Date: Sun, 20 Sep 2015 23:25:37 -0400 Subject: [PATCH] Update the hash function follow with https://github.com/shadowsocks/shadowsocks-libev/commit/5ae4df94e440c4f6826a679a62687ad27303d89b --- .../Controller/Service/TCPRelay.cs | 2 +- shadowsocks-csharp/Data/libsscrypto.dll.gz | Bin 53459 -> 51484 bytes shadowsocks-csharp/Encryption/IVEncryptor.cs | 75 ++++++++++++++---- shadowsocks-csharp/Encryption/Sodium.cs | 13 +-- 4 files changed, 67 insertions(+), 23 deletions(-) diff --git a/shadowsocks-csharp/Controller/Service/TCPRelay.cs b/shadowsocks-csharp/Controller/Service/TCPRelay.cs index 86907f9a..ca53a97a 100644 --- a/shadowsocks-csharp/Controller/Service/TCPRelay.cs +++ b/shadowsocks-csharp/Controller/Service/TCPRelay.cs @@ -93,7 +93,7 @@ namespace Shadowsocks.Controller private int _firstPacketLength; // Size of receive buffer. public const int RecvSize = 8192; - public const int RecvReserveSize = (RecvSize / IVEncryptor.CRC_BUF_LEN + 1) * IVEncryptor.CRC_BYTES + 16; // reserve for one-time auth + public const int RecvReserveSize = (RecvSize / IVEncryptor.HASH_BUF_LEN + 1) * IVEncryptor.HASH_BYTES + IVEncryptor.ONETIMEAUTH_BYTES; // reserve for one-time auth public const int BufferSize = RecvSize + RecvReserveSize + 32; private int totalRead = 0; diff --git a/shadowsocks-csharp/Data/libsscrypto.dll.gz b/shadowsocks-csharp/Data/libsscrypto.dll.gz index 75fe39ba15997f6b322b66bf724071ea52afc02e..5efa66613ad1f21294f50ba365349e1b4e121ab9 100755 GIT binary patch literal 51484 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 literal 53459 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

838?aT>Gz*c z{;}(b>Fd<6vIhnXR=9n;w6ox)j6DfY>|6QH(7#7K`$JdnFRy=lp#E^;&sonDzOy_| zoa5^fFgD_N<8Lj`wS9Oq(YWxHe(wf;`p4sEAKAC^<)SBtY5OUo20nD>-1%b%Z@*z# z@mdzE`h3`X|0sTT)up5(v&KviM$ePP`+e}+^LMU%_0@%k-uL{X&@}z^zpvR_^7WjK z8G~YjC#8%m?f<6r%c~cD=s7w3VAO}%Z!Ukn`h|BZkA7s?COI{+X2!K87b|4jm_v%6 z>&H^*ginr#Ux1a@jcW#+cK=p_9F5E}NfG_Uk9d-ro6= zv8v>c$9|shwbzj!Lu&oEdRK}Hbkp+u(_E*Xd*{}^SDxMf_qo5U=^9ZV{q30tu7|zg zwtH}9!P2EZ2_YFtEsGob-+Z{O;gvSy`cL0`cWPFCqTBNEg=XK2;-@3F2dq9e>zvv$ z^7c)(`L)mAd-ZeuBWaI^7Y$x{tzXlyk01J5)TBGo--<6JfA!BV*!Q{D8%+`*LN-^lmQt_9G4d(1dUO_+9l^ zKYjK7n|?pD59miN*naGzxQ{9}Tzhs$#}DR5T|-yR_Ur%a;kqSnc3r>xRfE@(3)eQh z7jh`uqw&>v-GUQq*H#V*8~yUIz|tWjVpdKXxqigguT_84a9R4>$XkaS&2!(}@~+{r zt&=}^{W6^h$Qt#n1D*e?2{O!lI{a;qziFGM}SQei>N)L3`EeWtF2sC%CI}#NSTb zEZgqk{X@sCqv5T)8&b=EC@m@PYW(n-*`3QT4Ebz^e(#XNy7#ZHdMZ(LvGV!L59)_* z=Qd;pi3TmI`SQm}ac{od7PDqR`HMpy`e5Sv%#p%fTi)2WWS8c{=Ta06ehJ%WT^jK7 z?V6#(`pvxB`KG_-hsRzU@_u0aQ>emvaQxA(x0j|byYa>vf4AjBZnb_p z<(m_uf>U3}UHZb8!Z}*`&Rr!rRS(|WdVXqr(V%zAjI7z~AHgkO$JM5QDc*a|oTkeDF0sXvxLXBJjbFA_ z{m77K+KKzF{}oRe7s^}j(+HhAeg5 zzuX^oj9;7NI>G#%sa!Lxcdqcu2iM-{)IY?1YZwsG9-rYB^pQ8a;`ie(ZvB0>Rk7#S z(YcFv2*zp_7~lKq>OI4Z_rE(_zwgfE4Cl(TkT?RuBJK+7e;0nU{vDzJ;twCC zlx?H?bokw4=ZaG>?+b?6T??{x9d&EcG8Gu{nf{{cK-cx3ySmyE$QgX7i$33nFZX3E z%$YJXjTz(gs^1vKC1D}GJI@H5(oTZBmoL=alhXeFpHotoKqh%%ZrPIZB?Y=k5LsKc zWa+{@5LN~;f??&_$4(lbp7wF;d9G2k^fSTC)Tya!Cs)0D@aLVAUl=ncYUU2MhKdX4*{PObLvK6JeC9`Jc7w6}cJNZp2&703-e2_Qzhv!eG zO-V~aRnlB&w@EsXosf1Q%)B2apl<)gR8guGFk&ct(!x9t>HNuet$_CAZGlM&MQ#Di z6cU>oD(0Uxg*aOPO+2)@CvK;TRGa(kUEw?bB7FT0M)vLw=kR8S@aCP2 z%(9b)U*i4u+?D^iqkmogqz32ocZWaSM8k^!t_1UE`Sd&c*X2BM_Rq^vv@o)emOrm2 z!iEcf9e(!wUx$bOoAecTh2PzdkNx5te)z8N@3_8qqTc8JoKD~U`qy~ey7Jd_G+zJf z^ijY4b^0OQe;t1P_FvOseD7bU|KhIj<9CIB=qmWj@Npi3zs fr3A+{|bdbwn5Q1 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 diff --git a/shadowsocks-csharp/Encryption/IVEncryptor.cs b/shadowsocks-csharp/Encryption/IVEncryptor.cs index 869cdb58..bd600c06 100755 --- a/shadowsocks-csharp/Encryption/IVEncryptor.cs +++ b/shadowsocks-csharp/Encryption/IVEncryptor.cs @@ -9,11 +9,17 @@ namespace Shadowsocks.Encryption public abstract class IVEncryptor : EncryptorBase { + public const int MAX_KEY_LENGTH = 64; + public const int MAX_IV_LENGTH = 16; + public const int ONETIMEAUTH_FLAG = 0x10; public const int ADDRTYPE_MASK = 0xF; + public const int ONETIMEAUTH_BYTES = 16; - public const int CRC_BUF_LEN = 128; - public const int CRC_BYTES = 2; + public const int ONETIMEAUTH_KEYBYTES = 32; + + public const int HASH_BUF_LEN = 128; + public const int HASH_BYTES = 4; protected static byte[] tempbuf = new byte[MAX_INPUT_SIZE]; @@ -32,8 +38,8 @@ namespace Shadowsocks.Encryption protected byte[] _key; protected int keyLen; protected int ivLen; - protected byte[] crc_buf; - protected int crc_idx = 0; + protected byte[] hash_buf; + protected int hash_idx = 0; public IVEncryptor(string method, string password, bool onetimeauth) : base(method, password, onetimeauth) @@ -41,7 +47,7 @@ namespace Shadowsocks.Encryption InitKey(method, password); if (OnetimeAuth) { - crc_buf = new byte[CRC_BUF_LEN]; + hash_buf = new byte[HASH_BUF_LEN]; } } @@ -125,7 +131,7 @@ namespace Shadowsocks.Encryption protected abstract void cipherUpdate(bool isCipher, int length, byte[] buf, byte[] outbuf); - protected int GetSSHeadLength(byte[] buf, int length) + protected int ss_headlen(byte[] buf, int length) { int len = 0; int atyp = length > 0 ? (buf[0] & ADDRTYPE_MASK) : 0; @@ -147,6 +153,47 @@ namespace Shadowsocks.Encryption return len; } + protected int ss_onetimeauth(byte[] auth, + byte[] msg, int msg_len, + byte[] iv, int iv_len, + byte[] key, int key_len) + { + byte[] auth_key = new byte[ONETIMEAUTH_KEYBYTES]; + byte[] auth_bytes = new byte[MAX_IV_LENGTH + MAX_KEY_LENGTH]; + Buffer.BlockCopy(iv, 0, auth_bytes, 0, ivLen); + Buffer.BlockCopy(key, 0, auth_bytes, ivLen, key_len); + Sodium.crypto_generichash(auth_key, ONETIMEAUTH_KEYBYTES, auth_bytes, (ulong)(iv_len + key_len), null, 0); + return Sodium.crypto_onetimeauth(auth, msg, (ulong)msg_len, auth_key); + } + + protected void ss_gen_hash(byte[] in_buf, ref int in_offset, ref int in_len, + byte[] hash_buf, ref int hash_idx, int buf_size) + { + int i, j; + int offset = in_offset; + int blen = in_len; + int cidx = hash_idx; + int size = (blen / HASH_BUF_LEN + 1) * HASH_BYTES + blen; + if (buf_size < (size + offset)) + throw new Exception("failed to generate hash: buffer size insufficient"); + byte[] hash = new byte[HASH_BYTES]; + for (i = 0, j = offset; i < blen; i++, j++) + { + if (cidx == HASH_BUF_LEN) + { + Sodium.crypto_generichash(hash, HASH_BYTES, hash_buf, HASH_BUF_LEN, null, 0); + Buffer.BlockCopy(in_buf, j, in_buf, j + HASH_BYTES, blen - i); + Buffer.BlockCopy(hash, 0, in_buf, j, HASH_BYTES); + j += HASH_BYTES; cidx = 0; + } + hash_buf[cidx] = in_buf[j]; + cidx++; + } + in_offset = j; + in_len = j - offset; + hash_idx = cidx; + } + public override void Encrypt(byte[] buf, int length, byte[] outbuf, out int outlength) { if (!_encryptIVSent) @@ -159,19 +206,17 @@ namespace Shadowsocks.Encryption { if (OnetimeAuth) { - lock(crc_buf) + lock (hash_buf) { - int headLen = GetSSHeadLength(buf, length); + int headLen = ss_headlen(buf, length); int data_len = length - headLen; Buffer.BlockCopy(buf, headLen, buf, headLen + ONETIMEAUTH_BYTES, data_len); buf[0] |= ONETIMEAUTH_FLAG; byte[] auth = new byte[ONETIMEAUTH_BYTES]; - Sodium.ss_onetimeauth(auth, buf, headLen, _encryptIV, ivLen, _key, keyLen); + ss_onetimeauth(auth, buf, headLen, _encryptIV, ivLen, _key, keyLen); Buffer.BlockCopy(auth, 0, buf, headLen, ONETIMEAUTH_BYTES); int buf_offset = headLen + ONETIMEAUTH_BYTES; - int rc = Sodium.ss_gen_crc(buf, ref buf_offset, ref data_len, crc_buf, ref crc_idx, buf.Length); - if (rc != 0) - throw new Exception("failed to generate crc"); + ss_gen_hash(buf, ref buf_offset, ref data_len, hash_buf, ref hash_idx, buf.Length); length = headLen + ONETIMEAUTH_BYTES + data_len; } } @@ -184,12 +229,10 @@ namespace Shadowsocks.Encryption { if (OnetimeAuth) { - lock(crc_buf) + lock (hash_buf) { int buf_offset = 0; - int rc = Sodium.ss_gen_crc(buf, ref buf_offset, ref length, crc_buf, ref crc_idx, buf.Length); - if (rc != 0) - throw new Exception("failed to generate crc"); + ss_gen_hash(buf, ref buf_offset, ref length, hash_buf, ref hash_idx, buf.Length); } } outlength = length; diff --git a/shadowsocks-csharp/Encryption/Sodium.cs b/shadowsocks-csharp/Encryption/Sodium.cs index c2c22839..a6bc909e 100755 --- a/shadowsocks-csharp/Encryption/Sodium.cs +++ b/shadowsocks-csharp/Encryption/Sodium.cs @@ -41,14 +41,15 @@ namespace Shadowsocks.Encryption public extern static int crypto_stream_chacha20_xor_ic(byte[] c, byte[] m, ulong mlen, byte[] n, ulong ic, byte[] k); [DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)] - public extern static int ss_gen_crc(byte[] buf, ref int buf_offset, ref int data_len, - byte[] crc_buf, ref int crc_idx, int buf_size); + public extern static int crypto_generichash(byte[] outbuf, uint outlen, + byte[] inbuf, ulong inlen, + byte[] key, uint keylen); [DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)] - public extern static int ss_onetimeauth(byte[] auth, - byte[] msg, int msg_len, - byte[] iv, int iv_len, - byte[] key, int key_len); + public extern static int crypto_onetimeauth(byte[] outbuf, byte[] inbuf, ulong inlen, byte[] k); + + [DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)] + public extern static int crypto_onetimeauth_verify(byte[] h, byte[] inbuf, ulong inlen, byte[] k); } }