Commit Graph

173 Commits

Author SHA1 Message Date
Andy Wang
780d607436 Use io.Copy for redir 2020-04-09 13:41:06 +01:00
Andy Wang
77c33ff352 Fix redir null pointer 2020-04-09 13:37:33 +01:00
Andy Wang
15f343db31 Refactor server configuration 2020-04-09 13:26:23 +01:00
Andy Wang
97858197cd Move common types to its own package 2020-04-09 00:39:40 +01:00
Andy Wang
86095ba5e6 Refactor out Dialer 2020-04-09 00:34:02 +01:00
Andy Wang
7e9fe952aa Move code around for clarity 2020-04-08 22:07:11 +01:00
Andy Wang
ec76ecfe71 Update tests 2020-04-08 21:47:31 +01:00
Andy Wang
693544659f Refactor server transport 2020-04-08 21:37:21 +01:00
Andy Wang
43ae82ec0e Fix test, improve err message and fix nil interface casting 2020-04-08 15:58:46 +01:00
Andy Wang
545164a300 Make send/receive buffer sizes configurable 2020-04-08 15:07:35 +01:00
Andy Wang
01e5d15d20 Code cleanup 2020-04-08 12:18:20 +01:00
Andy Wang
963dae829d Fix tests 2020-04-07 21:19:40 +01:00
Andy Wang
c1f3408c2c Make key lengths explicit 2020-04-07 21:15:28 +01:00
Andy Wang
443aeecf5f Use cbeuw/connutil for connection testing 2020-04-07 20:59:32 +01:00
Andy Wang
e7963b9e24 Change wsAcceptor's name to wsOnceListener 2020-04-07 18:18:14 +01:00
Andy Wang
8d375e3f9b remove redundant fields 2020-04-06 20:51:21 +01:00
Andy Wang
e8af6233c1 Fix test 2020-04-06 15:58:34 +01:00
Andy Wang
285b966326 Fix server reply certificate length 2020-04-06 15:55:22 +01:00
Andy Wang
6a83c58143 Refactor authentication pipeline 2020-04-06 15:24:18 +01:00
Andy Wang
a161409577 Rename a struct 2020-04-06 14:29:38 +01:00
Andy Wang
8d84ebd145 Code styles 2020-04-05 00:56:43 +01:00
Andy Wang
e4da349aa0 Add websocket auth test 2020-04-04 16:11:02 +01:00
notsure2
2de034ec92 Make keepalive optional on client -> server and server -> proxy connections. Use KeepAlive value in config (seconds). 2020-04-04 15:32:19 +01:00
Andy Wang
d05809f2a6 Fix logging of transport 2020-04-03 23:37:09 +01:00
Andy Wang
85e95de69c variable cert length in TLS server response 2020-03-16 11:39:27 +00:00
Andy Wang
e33afb258a extract util testing function 2020-03-16 11:38:30 +00:00
Andy Wang
517a6d6e57 Handle error and retry for Crypto.rand 2020-02-01 23:46:46 +00:00
Andy Wang
e714dc61a8 Add a test for server touchstone 2020-01-25 10:20:11 +00:00
Andy Wang
fa1c109d90 Make authentication info arrays 2020-01-24 15:13:26 +00:00
Andy Wang
fe8b2d78ef Change authenticationInfo structure 2020-01-24 14:38:41 +00:00
Andy Wang
39e54bae6c Fix transport null pointer 2020-01-22 22:27:19 +00:00
Andy Wang
af5c8a381f Make a test streamline instead of modular 2020-01-22 19:33:53 +00:00
Andy Wang
3d3d06ec96 Fix tests 2020-01-22 18:40:03 +00:00
Andy Wang
74a70a3113 Refactor Transport and add tests 2020-01-22 18:37:01 +00:00
Andy Wang
e3552b2afc Refactor server config parser and add tests 2019-12-29 13:28:52 +00:00
Andy Wang
9c30c9b5b5 Add explanations on accepting websocket connections 2019-11-08 16:56:31 +00:00
Andy Wang
3649283a49 Fix tests 2019-10-20 15:18:27 +01:00
Andy Wang
8c477fb2b5 Default StreamTimeout to 300 seconds 2019-09-21 16:47:02 +01:00
Andy Wang
52720ca52f RedirAddr backward compatibility 2019-09-21 16:17:43 +01:00
Andy Wang
8a6f6b6088 Minor error prompt and listen to :80 and :443 by default 2019-09-15 18:11:23 +01:00
Andy Wang
63f3b4a89f Allow server to listen on multiple ports 2019-09-15 15:29:29 +01:00
Andy Wang
e2d4ab7376 Use non-pointer receiver instead 2019-09-02 14:04:52 +01:00
Andy Wang
854dc422a2 Update some comments 2019-09-01 23:14:28 +01:00
Andy Wang
339b324946 Working direct WebSocket transport 2019-09-01 20:23:45 +01:00
Andy Wang
f47f57a59f Direct WebSocket 2019-09-01 01:33:34 +01:00
Andy Wang
3a28bb65d5 Refactor touchStone 2019-08-31 21:40:50 +01:00
Andy Wang
31898dad63 Change the way user termination works 2019-08-30 22:14:45 +01:00
Andy Wang
87a7684e10 More comments 2019-08-20 22:43:04 +01:00
Andy Wang
dd4a1769d0 Refactor new session authorisation 2019-08-20 17:35:17 +01:00
Andy Wang
eabe113547 Add Stream Timeout 2019-08-19 23:23:41 +01:00
Andy Wang
cf1f1ccf16 Add some tests 2019-08-17 00:59:30 +01:00
Andy Wang
57255fdeb2 Fail to parse ClientHello if the TLS record layer Content Type and versions are wrong 2019-08-17 00:35:28 +01:00
Andy Wang
0e0a3314c9 Add server TLS parse test 2019-08-17 00:32:03 +01:00
Andy Wang
b5c6d7fedc Change touchUp function signature 2019-08-16 23:56:46 +01:00
Andy Wang
e28df86a55 Move Unordered field around 2019-08-16 23:20:24 +01:00
Andy Wang
c19c43f6e8 Server side UDP to proxy server 2019-08-14 11:56:55 +01:00
Andy Wang
c36ec04ce5 Add unordered mode 2019-08-14 11:56:55 +01:00
Andy Wang
52fac535e3 Fix nil pointer with ClientInfo 2019-08-14 11:48:32 +01:00
Qian Wang
58cbb73f0f Refactor return value of decryption 2019-08-12 14:21:42 +01:00
Qian Wang
cb672a99de Refactor session configuration 2019-08-12 00:22:15 +01:00
Qian Wang
82fe177c24 Change how timestamp's validity is checked 2019-08-08 15:05:36 +01:00
Qian Wang
d99b4009b2 Differentiate concrete types of LimitedValve and UnlimitedValve to avoid unnecessary atomic.AddUint64 since it has non-trivial overhead on embedded systems 2019-08-07 15:43:42 +01:00
Qian Wang
e7aa4cd04b Fix a stuck mutex 2019-08-07 13:59:27 +01:00
Qian Wang
ae4fc917b6 Let the server send a mock encrypted certificate after ChangeCipherSuite to imitate real behaviour more closely 2019-08-07 00:28:08 +01:00
Qian Wang
1d878b3adb Use AEAD to encrypt session key in ServerHello to provide authentication of the identity of the server 2019-08-06 23:59:29 +01:00
Qian Wang
e15536d7c7 Refactor TLS handshake 2019-08-06 15:50:33 +01:00
Qian Wang
76095bde0f Add user bypass feature 2019-08-04 21:10:59 +01:00
Qian Wang
bf83273f6e Fix redirection 2019-08-03 13:26:57 +01:00
Qian Wang
64b39d728f Refactor usedrandom 2019-08-03 11:49:05 +01:00
Qian Wang
08cb5d8462 Refactor usermanager 2019-08-03 11:17:09 +01:00
Qian Wang
67521efbd6 Alter composeServerHello function signature slightly 2019-08-02 23:37:00 +01:00
Qian Wang
429da0e0d9 Add unit tests 2019-08-02 18:00:27 +01:00
Qian Wang
e75c713385 Refactor session struct's obfs fields 2019-08-02 16:37:48 +01:00
Qian Wang
33f232475d Improve logging 2019-08-02 15:45:33 +01:00
Qian Wang
726a405a26 TLS1.3 2019-08-02 01:01:19 +01:00
Qian Wang
0fbb6011fc Remove psudorandom padding 2019-07-31 23:58:15 +01:00
Qian Wang
0f3b2232ab Remove redundant config field 2019-07-31 14:44:34 +01:00
Qian Wang
e1c879a478 Fix CORS and POST handler 2019-07-30 23:49:22 +01:00
Qian Wang
059a222394 Use defer to unlock mutexes 2019-07-28 12:52:57 +01:00
Qian Wang
75fecacd20 Change the protocol to solve sessionTicket inconsistency 2019-07-26 17:05:46 +01:00
Qian Wang
8f9922b06b Add terminal messages upon session closing 2019-07-25 20:57:02 +01:00
Qian Wang
8ff0f3d17e Rename handlers 2019-07-25 13:09:36 +01:00
Qian Wang
09bdae2584 Add CORS header through middleware 2019-07-25 13:03:32 +01:00
Qian Wang
2ce6f380d1 Implement admin control through a tunneled RESTful API 2019-07-25 12:17:29 +01:00
Qian Wang
98a772b6ee Add server response to status update 2019-07-24 15:25:09 +01:00
Qian Wang
29a45bcc1a Rewrite user authentication, credit bookkeeping and db interaction 2019-07-22 13:42:39 +01:00
Qian Wang
710fa6835a Reduce the size of UID to 16 bytes 2019-06-16 11:08:51 +10:00
Qian Wang
d781c7b1be Use a sessional ephemeral key as the main key instead of UID for forward security 2019-06-16 00:20:55 +10:00
Qian Wang
8168b9e2e7 Use AES-GCM instead of CTR 2019-06-10 00:03:28 +10:00
Qian Wang
0dd52d8570 Add optional encryption 2019-06-09 21:05:41 +10:00
Qian Wang
3e9855191b Cloak 2: generalising cloak as a universal pluggable transport for arbitary proxies 2019-06-09 16:10:22 +10:00
Qian Wang
99afb1a58b Remove ECDH as an external dependancy and include it as a internal package 2019-01-25 00:24:47 +00:00
Qian Wang
8a10949846 Add unit tests 2019-01-20 23:47:10 +00:00
Qian Wang
17d024ac16 Remove reundancy and fix a race 2019-01-19 19:30:32 +00:00
Qian Wang
935f995954 Fix a user input validation 2019-01-19 13:18:13 +00:00
Qian Wang
735dc64bd1 Stop using custom conversion function 2019-01-13 22:22:55 +00:00
Qian Wang
41da4102ab Syntax cleanups 2019-01-13 21:43:50 +00:00
Qian Wang
95c3dbfcf2 Specify when failed to open userinfo database 2019-01-12 17:05:55 +00:00
Qian Wang
0544364a8e Cleanup logs 2019-01-12 15:51:20 +00:00
Qian Wang
59c18437e4 Fix a race regarding client keyPairs caching 2019-01-01 14:37:47 +00:00