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 |
|
Andy Wang
|
8967819830
|
Fix accidentally removed tx qos
|
2019-08-14 10:28:08 +01:00 |
|
Qian Wang
|
f65a46f4a9
|
Remove unnecessary state variable IsAdmin
|
2019-08-12 14:25:24 +01:00 |
|
Qian Wang
|
58cbb73f0f
|
Refactor return value of decryption
|
2019-08-12 14:21:42 +01:00 |
|
Qian Wang
|
71e48a1947
|
Refactor switchboard configuration and add unordered option
|
2019-08-12 00:48:20 +01:00 |
|
Qian Wang
|
cb672a99de
|
Refactor session configuration
|
2019-08-12 00:22:15 +01:00 |
|
Qian Wang
|
abc83a9190
|
Potential fix to an edge case nil pointer
|
2019-08-09 10:36:27 +01:00 |
|
Qian Wang
|
ea5bb44b0a
|
Add and edit some tests
|
2019-08-08 15:08:16 +01:00 |
|
Qian Wang
|
82fe177c24
|
Change how timestamp's validity is checked
|
2019-08-08 15:05:36 +01:00 |
|
Qian Wang
|
fc9f227ccf
|
stream.Write now returns the correct amount of data written
|
2019-08-08 10:56:29 +01:00 |
|
Qian Wang
|
572fe8486a
|
Rename a variable and modify a test
|
2019-08-07 19:08:37 +01:00 |
|
Qian Wang
|
586cc5ebb6
|
Optimise deobfs
|
2019-08-07 17:53:34 +01:00 |
|
Qian Wang
|
e3de2b9852
|
Fix a potential make len<0
|
2019-08-07 17:22:40 +01:00 |
|
Qian Wang
|
b7549c0664
|
Fix a potential nil pointer
|
2019-08-07 17:06:48 +01:00 |
|
Qian Wang
|
e244340885
|
Modify some tests
|
2019-08-07 17:06:31 +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
|
81f233c226
|
Update obfs_test
|
2019-08-07 00:19:30 +01:00 |
|
Qian Wang
|
acb999ee64
|
Force aead key sizes as 32 bytes due to chacha20-poly1305
|
2019-08-07 00:15:55 +01:00 |
|
Qian Wang
|
581c2332d1
|
Fix obfs_test as it wasn't really testing encryptionMethod other than aes-gcm
|
2019-08-07 00:15:12 +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
|
623ca55ab5
|
Add ecdh test
|
2019-08-06 23:27:18 +01:00 |
|
Qian Wang
|
3002c87a49
|
Fix a server crashing null pointer
|
2019-08-06 21:04:08 +01:00 |
|
Qian Wang
|
e15536d7c7
|
Refactor TLS handshake
|
2019-08-06 15:50:33 +01:00 |
|
Qian Wang
|
3dc4c6fb3f
|
Add more trace logs
|
2019-08-06 11:19:47 +01:00 |
|
Qian Wang
|
01036086c7
|
Change the frame distribution strategy so that each stream is assigned a fixed underlying TCP connection to send its frames to reduce framesorter ooo count
|
2019-08-05 22:14:11 +01:00 |
|
Qian Wang
|
fac381dbca
|
Refactor switchboard
|
2019-08-05 14:33:20 +01:00 |
|
Qian Wang
|
d46fa74924
|
Refactor frame sorter
|
2019-08-05 13:32:53 +01:00 |
|
Qian Wang
|
9fcc328797
|
Fix a mutex deadlock
|
2019-08-05 13:17:02 +01:00 |
|
Qian Wang
|
76095bde0f
|
Add user bypass feature
|
2019-08-04 21:10:59 +01:00 |
|
Qian Wang
|
a513663a72
|
Use a fork of ratelimit for unlimited bucket
|
2019-08-04 17:16:18 +01:00 |
|
Qian Wang
|
640f81461c
|
Buffer reuse in obfs
|
2019-08-04 10:38:49 +01:00 |
|
Qian Wang
|
9fa37e327f
|
Use exclusively salsa20 for header encryption
|
2019-08-03 22:05:06 +01:00 |
|
Qian Wang
|
f933c7b453
|
Move pipe to util
|
2019-08-03 15:01:12 +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
|
57fc31a5fc
|
Add tests
|
2019-08-02 23:23:54 +01:00 |
|
Qian Wang
|
237b9d131b
|
Add and fix some tests
|
2019-08-02 20:50:08 +01:00 |
|
Qian Wang
|
e0e33e12d6
|
Fix non random GREASE generation
|
2019-08-02 20:06:41 +01:00 |
|
Qian Wang
|
05972863b5
|
Add tests
|
2019-08-02 20:06:28 +01:00 |
|
Qian Wang
|
53b6b96262
|
Remove stupid code
|
2019-08-02 18:03:08 +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
|
1a628cb524
|
Refactor client TLS
|
2019-08-02 16:02:25 +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
|
0684f5df40
|
Refactor payload cipher
|
2019-08-01 00:43:33 +01:00 |
|
Qian Wang
|
2735de4f96
|
Fix bad cryptography
|
2019-08-01 00:16:33 +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
|
6af97e2c22
|
Optimise session closing
|
2019-07-28 23:27:59 +01:00 |
|
Qian Wang
|
059a222394
|
Use defer to unlock mutexes
|
2019-07-28 12:52:57 +01:00 |
|
Qian Wang
|
bf8d373f79
|
Stream optimisations
|
2019-07-28 11:58:45 +01:00 |
|
Qian Wang
|
0f9830e716
|
Update test
|
2019-07-28 11:06:15 +01:00 |
|
Qian Wang
|
73c0b8567e
|
Memory optimisation
|
2019-07-28 00:15:27 +01:00 |
|
Qian Wang
|
6fc48c5dae
|
Fix a goroutine leak
|
2019-07-27 21:38:08 +01:00 |
|
Qian Wang
|
1099b558f1
|
Fix admin mode
|
2019-07-27 19:55:53 +01:00 |
|
Qian Wang
|
0e08683828
|
Use a buffered pipe to buffer sorted data
|
2019-07-27 19:53:16 +01:00 |
|
Qian Wang
|
38f3a4a522
|
Only start a session after a local connection has been made
|
2019-07-26 23:12:38 +01:00 |
|
Qian Wang
|
75fecacd20
|
Change the protocol to solve sessionTicket inconsistency
|
2019-07-26 17:05:46 +01:00 |
|
Qian Wang
|
592175f73d
|
Close pipe properly
|
2019-07-25 22:06:33 +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
|
9b552f55a4
|
Allow an terminal message to be set as a session terminates
|
2019-07-24 14:25:57 +01:00 |
|
Qian Wang
|
299f08270c
|
make Session implement net.Listener
|
2019-07-23 11:06:49 +01:00 |
|
Qian Wang
|
29a45bcc1a
|
Rewrite user authentication, credit bookkeeping and db interaction
|
2019-07-22 13:42:39 +01:00 |
|
Qian Wang
|
c88c3d0084
|
Timeout unused new sessions
|
2019-06-16 23:30:35 +10: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
|
ef185b00f0
|
Solve a data race
|
2019-06-15 11:52:46 +10:00 |
|
Qian Wang
|
589900fe52
|
I just did a joint and I need to commit before things go wrong
|
2019-06-14 23:08:28 +10:00 |
|
Qian Wang
|
00069b7a69
|
Support Chaha20-Poly1305
|
2019-06-14 20:26:26 +10:00 |
|
Qian Wang
|
078a382963
|
Improve the security of header obfuscation
|
2019-06-14 19:48:59 +10:00 |
|
Qian Wang
|
f525643518
|
Remove debug log
|
2019-06-10 00:04:16 +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
|
425dbc4797
|
Session times out 30s after all streams have been closed
|
2019-03-23 23:45:12 +11: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
|
c44b202c27
|
Regenerate SessionID on reconnection
|
2019-01-22 21:51:57 +00:00 |
|
Qian Wang
|
9d2e9be1ef
|
Fix a race which causes the server unable to close all the connections in a session
|
2019-01-22 00:03:38 +00:00 |
|
Qian Wang
|
cb07e446b6
|
Fix issue which the closing frame padding gets send as acutal data
|
2019-01-21 21:15:18 +00:00 |
|
Qian Wang
|
a52c3204d1
|
Fix a stuck RWMutex
|
2019-01-21 21:13:54 +00:00 |
|
Qian Wang
|
b522d4a407
|
Fix constant overflow
|
2019-01-21 11:42:27 +00:00 |
|
Qian Wang
|
8a10949846
|
Add unit tests
|
2019-01-20 23:47:10 +00:00 |
|
Qian Wang
|
46c8bc24de
|
Fix wrapping bug
|
2019-01-20 17:23:45 +00:00 |
|
Qian Wang
|
9793537034
|
Faster reconnection
|
2019-01-20 12:13:29 +00:00 |
|
Qian Wang
|
17d024ac16
|
Remove reundancy and fix a race
|
2019-01-19 19:30:32 +00:00 |
|
Qian Wang
|
a6e16b4f74
|
Fix memory leak
|
2019-01-19 19:30:00 +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
|
24cdf274dd
|
Change the stream header format and reduce overhead
|
2019-01-13 21:28:57 +00:00 |
|
Qian Wang
|
f4a1c21c2c
|
Birng back sequence wrapping
|
2019-01-13 19:06:12 +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
|
310ce1643a
|
Minor Makefile edit and remove FIXME
|
2019-01-12 14:16:31 +00:00 |
|
Qian Wang
|
d906541497
|
Redo the header obfuscation. Fix hiccups caused by short packets
|
2019-01-06 01:40:27 +00:00 |
|
Qian Wang
|
fb12f096d1
|
Abandon the frameSeq wrapping
|
2019-01-06 01:39:55 +00:00 |
|
Qian Wang
|
59c18437e4
|
Fix a race regarding client keyPairs caching
|
2019-01-01 14:37:47 +00:00 |
|
Qian Wang
|
f3f3042c81
|
Remove redundant functions
|
2018-12-31 11:30:39 +00:00 |
|
Qian Wang
|
23a06c6a52
|
Clarify the code to enter admin mode
|
2018-12-30 01:15:46 +00:00 |
|
Qian Wang
|
1cb7bff8b3
|
Lexical changes
|
2018-12-30 00:28:38 +00:00 |
|
Qian Wang
|
deb5271cef
|
User can now specify the path of db file and backups
|
2018-12-30 00:18:50 +00:00 |
|
Qian Wang
|
652261af81
|
Implement SessionsCap and ExpiryTime limitations
|
2018-12-29 00:54:10 +00:00 |
|
Qian Wang
|
e31aef3030
|
Stop repetitive closing
|
2018-12-29 00:02:59 +00:00 |
|
Qian Wang
|
4b6ab1b4d5
|
Finish the admin control
|
2018-12-26 00:46:39 +00:00 |
|
Qian Wang
|
73aefdeeeb
|
Done some TODOs
|
2018-12-22 23:58:03 +00:00 |
|
Qian Wang
|
6fbd39ea10
|
Integrate keygen util into ck-server
|
2018-12-17 22:12:38 +00:00 |
|
Qian Wang
|
55780fc85d
|
Remove deprecated field
|
2018-12-12 19:50:11 +00:00 |
|
Qian Wang
|
36a743c3ca
|
Client using AdminUID can now use the proxy without adding themselves to the db
|
2018-12-11 23:26:05 +00:00 |
|
Qian Wang
|
ed1253ff4c
|
Refactor MakeObfs and MakeDeobfs
|
2018-12-09 23:45:06 +00:00 |
|
Qian Wang
|
3abef6dbad
|
Use pointer for UserInfo in User struct
|
2018-12-08 15:30:46 +00:00 |
|
Qian Wang
|
7919834dfe
|
Better keygen
|
2018-12-08 14:49:47 +00:00 |
|
Qian Wang
|
2688e30907
|
Inline formatting
|
2018-12-03 20:33:14 +00:00 |
|
Qian Wang
|
304f7f38a7
|
Redo config format
|
2018-12-03 20:30:06 +00:00 |
|
Qian Wang
|
0253f8077a
|
Delete duplicate return
|
2018-11-24 01:27:41 +00:00 |
|
Qian Wang
|
306385f9c2
|
Uncomment header obfuscation
|
2018-11-24 01:24:47 +00:00 |
|
Qian Wang
|
239647c5b2
|
Fix a race, some cleanup
|
2018-11-24 00:55:26 +00:00 |
|
Qian Wang
|
3b656c9360
|
Use sync.Once to close die ch
|
2018-11-23 23:57:35 +00:00 |
|
Qian Wang
|
85e0e95a4b
|
User control server and client
|
2018-11-22 21:56:29 +00:00 |
|
Qian Wang
|
c4048dccea
|
Basic remote control
|
2018-11-22 21:55:23 +00:00 |
|
Qian Wang
|
0702e37391
|
Syncing in-memory credit with db regularly
|
2018-11-11 19:30:40 +00:00 |
|
Qian Wang
|
fe19d31158
|
Stop duplicate goroutines accepting streams
|
2018-11-08 19:47:53 +00:00 |
|
Qian Wang
|
3534d05055
|
QOS and user managing, bug fixes
|
2018-11-07 21:16:13 +00:00 |
|
Qian Wang
|
6a6b293164
|
Add bandwidth limiter
|
2018-10-28 22:51:00 +00:00 |
|
Qian Wang
|
f476650953
|
Rework switchboard dispatch
|
2018-10-28 21:22:38 +00:00 |
|
Qian Wang
|
9e4aedbdc1
|
Stream closing is now ordered
|
2018-10-27 23:35:46 +01:00 |
|
Qian Wang
|
077eb16dba
|
Fix goroutine leak
|
2018-10-27 15:27:43 +01:00 |
|
Qian Wang
|
0db52a8a26
|
General improvements
|
2018-10-23 20:47:58 +01:00 |
|
Qian Wang
|
3f7eef98e3
|
drop aes encryption of headers
|
2018-10-20 21:41:01 +01:00 |
|
Qian Wang
|
bd69784443
|
optimisations
|
2018-10-20 17:03:39 +01:00 |
|
Qian Wang
|
7487600434
|
Mostly works
|
2018-10-20 11:35:50 +01:00 |
|
Qian Wang
|
02fa072964
|
Fix infinite loop. Baseline
|
2018-10-16 21:13:19 +01:00 |
|
Qian Wang
|
a8786a5576
|
Use ECDH instead of ECIES
|
2018-10-14 20:32:54 +01:00 |
|
Qian Wang
|
b9f2aa4ed0
|
Barely working
|
2018-10-09 21:53:55 +01:00 |
|
Qian Wang
|
ae30ed6ba4
|
Untested server
|
2018-10-09 16:07:54 +01:00 |
|
Qian Wang
|
3fd7e01566
|
Untested client
|
2018-10-07 18:09:45 +01:00 |
|
Qian Wang
|
44d2c0e073
|
Multiplex initial commit
|
2018-10-05 23:44:20 +01:00 |
|