]> git.deb.at Git - rhonda/impostor.hazel.git/log
rhonda/impostor.hazel.git
5 years agoInclude hash+signature algorithms in ServerKeyExchange
Matthew Endsley [Wed, 3 Feb 2021 22:14:14 +0000 (14:14 -0800)]
Include hash+signature algorithms in ServerKeyExchange

5 years agoUpdate ClientHello to encode extensions size
Matthew Endsley [Wed, 3 Feb 2021 21:44:02 +0000 (13:44 -0800)]
Update ClientHello to encode extensions size

5 years agoMerge branch 'dtls_rotate_hmac' into dtls_development
Matthew Endsley [Wed, 3 Feb 2021 21:41:20 +0000 (13:41 -0800)]
Merge branch 'dtls_rotate_hmac' into dtls_development

5 years agoPeriodically rotate DTLS HMAC keys
Matthew Endsley [Wed, 3 Feb 2021 21:20:52 +0000 (13:20 -0800)]
Periodically rotate DTLS HMAC keys

5 years agoChangeChiperSpec records should have a single byte
Matthew Endsley [Wed, 3 Feb 2021 20:34:20 +0000 (12:34 -0800)]
ChangeChiperSpec records should have a single byte

5 years agoDo not compute HMAC for zero-length cookies
Matthew Endsley [Wed, 3 Feb 2021 21:23:33 +0000 (13:23 -0800)]
Do not compute HMAC for zero-length cookies

This is a common case since all clients send a non-signed ClientHello
message to initiate a new session. There is no need to perform the
hash+hmac for signatures that will always fail verification due to a
mismatched size.

5 years agoAcquire lock when resending DTLS packets
Matthew Endsley [Wed, 3 Feb 2021 11:38:34 +0000 (03:38 -0800)]
Acquire lock when resending DTLS packets

5 years agoMerge branch 'dtls_all_tests' into dtls
Matthew Endsley [Wed, 3 Feb 2021 11:24:54 +0000 (03:24 -0800)]
Merge branch 'dtls_all_tests' into dtls

5 years agoUse TestLogger for ThreadLimitedUdp tests
Matthew Endsley [Wed, 3 Feb 2021 11:23:49 +0000 (03:23 -0800)]
Use TestLogger for ThreadLimitedUdp tests

5 years agoModify ConnectLikeAJerk to cap valid connections at 1
Matthew Endsley [Wed, 3 Feb 2021 11:18:56 +0000 (03:18 -0800)]
Modify ConnectLikeAJerk to cap valid connections at 1

DTLS listeners will reject all raw traffic spam

5 years agoLeverage existing tests for DTLS listener
Matthew Endsley [Wed, 3 Feb 2021 11:10:41 +0000 (03:10 -0800)]
Leverage existing tests for DTLS listener

5 years agoDelegate listener and connection creation to subclass
Matthew Endsley [Wed, 3 Feb 2021 11:03:38 +0000 (03:03 -0800)]
Delegate listener and connection creation to subclass

5 years agoMove test bodies to base class
Matthew Endsley [Wed, 3 Feb 2021 11:01:42 +0000 (03:01 -0800)]
Move test bodies to base class

5 years agoMerge branch 'fix_ipv6' into dtls
Matthew Endsley [Wed, 3 Feb 2021 10:57:41 +0000 (02:57 -0800)]
Merge branch 'fix_ipv6' into dtls

5 years agoModify ConnectionId to key on both an endpoint and serial
Matthew Endsley [Wed, 3 Feb 2021 10:02:12 +0000 (02:02 -0800)]
Modify ConnectionId to key on both an endpoint and serial

5 years agoRemove NetworkConnection.RemoteEndPoint
Matthew Endsley [Wed, 3 Feb 2021 10:17:22 +0000 (02:17 -0800)]
Remove NetworkConnection.RemoteEndPoint

This field was originally created to provide a non-generic alternative
to the Connection class' EndPoint field. However, we've replaced the
generic ConnectionEndPoint with IPEndPoint in the Connection class.

Since the bas class has a less-generic alias, it is now safe to remove
RemoteEndPoint from NetworkConnection in favor of always using
Connection.EndPoint

5 years agoUse IPEndPoint internally in ThreadLimitedUdpConnectionListener
Matthew Endsley [Wed, 3 Feb 2021 10:11:28 +0000 (02:11 -0800)]
Use IPEndPoint internally in ThreadLimitedUdpConnectionListener

5 years agoUpdate error message to reflect new function source
Matthew Endsley [Wed, 3 Feb 2021 09:18:14 +0000 (01:18 -0800)]
Update error message to reflect new function source

5 years agoUse ConnectionId as key to connection map
Matthew Endsley [Wed, 3 Feb 2021 09:53:23 +0000 (01:53 -0800)]
Use ConnectionId as key to connection map

5 years agoUse consuming enumerator for queue processing
Matthew Endsley [Wed, 3 Feb 2021 09:15:10 +0000 (01:15 -0800)]
Use consuming enumerator for queue processing

This changes avoids us needing to write the proper error-checking code
to see if a queue has been completed vs some unrelated failure.

5 years agoInitialize the keep-alive timer before sending packets
Matthew Endsley [Wed, 3 Feb 2021 09:14:36 +0000 (01:14 -0800)]
Initialize the keep-alive timer before sending packets

5 years agoEnsure disconnect message is encrypted with DTLS
Matthew Endsley [Wed, 3 Feb 2021 09:14:05 +0000 (01:14 -0800)]
Ensure disconnect message is encrypted with DTLS

5 years agoAttempt to resend reliable packets during connection loop
Matthew Endsley [Wed, 3 Feb 2021 08:22:14 +0000 (00:22 -0800)]
Attempt to resend reliable packets during connection loop

5 years agoFix outgoing sequence numbers from DTLS connection listener
Matthew Endsley [Wed, 3 Feb 2021 22:27:33 +0000 (14:27 -0800)]
Fix outgoing sequence numbers from DTLS connection listener

5 years agoAdd DTLS connection tests
Matthew Endsley [Tue, 2 Feb 2021 14:17:23 +0000 (06:17 -0800)]
Add DTLS connection tests

5 years agoOnly join threads if we were active
Matthew Endsley [Tue, 2 Feb 2021 15:07:52 +0000 (07:07 -0800)]
Only join threads if we were active

5 years agoDo not clear spans of zero length
Matthew Endsley [Tue, 2 Feb 2021 15:06:35 +0000 (07:06 -0800)]
Do not clear spans of zero length

5 years agoMerge branch 'dtls_client' into dtls
Matthew Endsley [Tue, 2 Feb 2021 14:17:05 +0000 (06:17 -0800)]
Merge branch 'dtls_client' into dtls

5 years agoImplement client-side DTLS handshake
Matthew Endsley [Mon, 1 Feb 2021 23:35:28 +0000 (15:35 -0800)]
Implement client-side DTLS handshake

5 years agoAdd stub DTLS client connection
Matthew Endsley [Mon, 1 Feb 2021 21:53:52 +0000 (13:53 -0800)]
Add stub DTLS client connection

5 years agoMerge branch 'dtls_listener' into dtls
Matthew Endsley [Sun, 24 Jan 2021 18:06:49 +0000 (10:06 -0800)]
Merge branch 'dtls_listener' into dtls

5 years agoImplement server-side DTLS handshake
Matthew Endsley [Tue, 12 Jan 2021 15:10:12 +0000 (07:10 -0800)]
Implement server-side DTLS handshake

5 years agoAdd stub DTLS listener
Matthew Endsley [Thu, 17 Dec 2020 18:25:22 +0000 (10:25 -0800)]
Add stub DTLS listener

5 years agoAllow subclasses to mark a connection as stale
Matthew Endsley [Sun, 24 Jan 2021 17:24:04 +0000 (09:24 -0800)]
Allow subclasses to mark a connection as stale

These connections will be disconnected at the next call to DisconnectOldConnections

5 years agoUse abstract connection identifier
Matthew Endsley [Sun, 24 Jan 2021 17:30:35 +0000 (09:30 -0800)]
Use abstract connection identifier

This change lays the groundwork for the
ThreadLimitedUdpConnectionListener to distinguish different logical
sessions from the same remote address.

5 years agoAdd null record protection implementation
Matthew Endsley [Fri, 22 Jan 2021 18:39:08 +0000 (10:39 -0800)]
Add null record protection implementation

5 years agoMerge branch 'dtls_listener_update' into dtls
Matthew Endsley [Wed, 13 Jan 2021 18:32:09 +0000 (10:32 -0800)]
Merge branch 'dtls_listener_update' into dtls

5 years agoAllow TL connection listener to override incoming message processing
Matthew Endsley [Thu, 17 Dec 2020 18:00:50 +0000 (10:00 -0800)]
Allow TL connection listener to override incoming message processing

5 years agoMerge branch 'dtls_record_protection' into dtls
Matthew Endsley [Wed, 13 Jan 2021 12:25:01 +0000 (04:25 -0800)]
Merge branch 'dtls_record_protection' into dtls

5 years agoUpdate SendMessageInfo to hold byte span
Matthew Endsley [Sat, 19 Dec 2020 01:19:38 +0000 (17:19 -0800)]
Update SendMessageInfo to hold byte span

5 years agoAdd AesGcm record protection
Matthew Endsley [Wed, 13 Jan 2021 07:58:16 +0000 (23:58 -0800)]
Add AesGcm record protection

5 years agoAllow derived listener classes access to the logger
Matthew Endsley [Tue, 12 Jan 2021 15:14:53 +0000 (07:14 -0800)]
Allow derived listener classes access to the logger

5 years agoMerge branch 'dtls_record' into dtls
Matthew Endsley [Wed, 13 Jan 2021 09:35:12 +0000 (01:35 -0800)]
Merge branch 'dtls_record' into dtls

5 years agoAdd interface for record protection
Matthew Endsley [Wed, 13 Jan 2021 18:37:06 +0000 (10:37 -0800)]
Add interface for record protection

5 years agoMerge branch 'dtls_psuedo_random_function' into dtls
Matthew Endsley [Wed, 13 Jan 2021 08:56:28 +0000 (00:56 -0800)]
Merge branch 'dtls_psuedo_random_function' into dtls

5 years agoAdd record wire format conversions
Matthew Endsley [Wed, 13 Jan 2021 09:30:55 +0000 (01:30 -0800)]
Add record wire format conversions

5 years agoAdd common PRF labels as constants
Matthew Endsley [Wed, 13 Jan 2021 08:41:11 +0000 (00:41 -0800)]
Add common PRF labels as constants

5 years agoAdd ExpandSecret variant that takes label as a byte span
Matthew Endsley [Wed, 13 Jan 2021 08:39:21 +0000 (00:39 -0800)]
Add ExpandSecret variant that takes label as a byte span

5 years agoMerge branch 'key_exchange' into dtls
Matthew Endsley [Sat, 19 Dec 2020 06:33:57 +0000 (22:33 -0800)]
Merge branch 'key_exchange' into dtls

5 years agoAdd the psuedoranomm function P_SHA256
Matthew Endsley [Wed, 13 Jan 2021 08:18:45 +0000 (00:18 -0800)]
Add the psuedoranomm function P_SHA256

5 years agoMerge branch 'crypto_primitives' into dtls_new
Matthew Endsley [Sat, 23 Jan 2021 23:55:52 +0000 (15:55 -0800)]
Merge branch 'crypto_primitives' into dtls_new

5 years agoAdd x25519 version of ECDHE_RSA_256 cipher suite
Matthew Endsley [Sat, 19 Dec 2020 02:32:30 +0000 (18:32 -0800)]
Add x25519 version of ECDHE_RSA_256 cipher suite

This the portion of the cipher suite used during connection negotiation.

5 years agoAdd initial cipher suite interfaces
Matthew Endsley [Sat, 19 Dec 2020 02:21:34 +0000 (18:21 -0800)]
Add initial cipher suite interfaces

5 years agoAdd AES_GCM primitive
Matthew Endsley [Sat, 19 Dec 2020 02:10:32 +0000 (18:10 -0800)]
Add AES_GCM primitive

5 years agoAdd x25519 primitive
Matthew Endsley [Sat, 19 Dec 2020 01:59:52 +0000 (17:59 -0800)]
Add x25519 primitive

5 years agoAdd a few constant-time utilities
Matthew Endsley [Sat, 19 Dec 2020 02:02:49 +0000 (18:02 -0800)]
Add a few constant-time utilities

5 years agoAdd ByteSpan utility
Matthew Endsley [Thu, 17 Dec 2020 23:55:07 +0000 (15:55 -0800)]
Add ByteSpan utility

5 years agoMerge branch 'cleanup_tests' into fewerThreads2
Matthew Endsley [Wed, 16 Dec 2020 22:45:08 +0000 (14:45 -0800)]
Merge branch 'cleanup_tests' into fewerThreads2

5 years agoInitialize keepalive timer in constructor
Matthew Endsley [Wed, 16 Dec 2020 21:30:45 +0000 (13:30 -0800)]
Initialize keepalive timer in constructor

5 years agoFix disposal issues in ThreadLimitedUdpConnectionListener
Matthew Endsley [Wed, 16 Dec 2020 21:30:24 +0000 (13:30 -0800)]
Fix disposal issues in ThreadLimitedUdpConnectionListener

5 years agoAdd the ability to start a MessageWriter in the middle of a MessageReader
Forest [Tue, 15 Dec 2020 01:03:54 +0000 (17:03 -0800)]
Add the ability to start a MessageWriter in the middle of a MessageReader

5 years agoA bit of testing and pushing abstractions around. Readers and Writers now clear their...
Forest [Thu, 5 Nov 2020 07:00:13 +0000 (23:00 -0800)]
A bit of testing and pushing abstractions around. Readers and Writers now clear their buffer upon get.

5 years agoMerge branch 'rewritepkts' into fewerThreads2
Forest [Sat, 31 Oct 2020 23:00:40 +0000 (16:00 -0700)]
Merge branch 'rewritepkts' into fewerThreads2

5 years agoTest UnityUdpClientConnection a little
Forest [Sat, 31 Oct 2020 22:58:10 +0000 (15:58 -0700)]
Test UnityUdpClientConnection a little

5 years agoA little tidy
Forest [Sat, 31 Oct 2020 22:31:26 +0000 (15:31 -0700)]
A little tidy

5 years agoCleanup old, unused doc project and fix #7
Forest [Wed, 14 Oct 2020 05:42:18 +0000 (22:42 -0700)]
Cleanup old, unused doc project and fix #7

5 years agoMerge remote-tracking branch 'origin/fewerThreads2'
Forest [Sat, 31 Oct 2020 22:15:08 +0000 (15:15 -0700)]
Merge remote-tracking branch 'origin/fewerThreads2'

5 years agoRemove documentation project
Forest [Sat, 31 Oct 2020 22:07:30 +0000 (15:07 -0700)]
Remove documentation project

5 years agoAdd functionality to rewrite packets
Forest [Sat, 31 Oct 2020 22:04:38 +0000 (15:04 -0700)]
Add functionality to rewrite packets

5 years agoCleanup old, unused doc project and fix #7
Forest [Wed, 14 Oct 2020 05:42:18 +0000 (22:42 -0700)]
Cleanup old, unused doc project and fix #7

5 years agoMerge pull request #6 from willardf/bug-5
Forest [Thu, 8 Oct 2020 07:02:00 +0000 (00:02 -0700)]
Merge pull request #6 from willardf/bug-5

Test and fix bug #5: A malformed packet can be used to leak old packets

5 years agoMerge branch 'bug-5' into fewerThreads2
Forest [Thu, 8 Oct 2020 00:42:46 +0000 (17:42 -0700)]
Merge branch 'bug-5' into fewerThreads2

5 years agoTest and fix bug #5: A malformed packet can be used to leak old packets
Forest [Thu, 8 Oct 2020 00:37:28 +0000 (17:37 -0700)]
Test and fix bug #5: A malformed packet can be used to leak old packets

5 years agoA couple subtle changes
Forest [Thu, 8 Oct 2020 00:02:36 +0000 (17:02 -0700)]
A couple subtle changes

5 years agoPoll for socket avail and handle send errors
Forest [Thu, 24 Sep 2020 17:35:01 +0000 (10:35 -0700)]
Poll for socket avail and handle send errors

6 years agoAcceptable. Time to improve
Forest [Sun, 6 Sep 2020 18:46:42 +0000 (11:46 -0700)]
Acceptable. Time to improve

6 years agoHazel pretty good. 2020.9.1
Forest [Thu, 3 Sep 2020 22:31:52 +0000 (15:31 -0700)]
Hazel pretty good. 2020.9.1

6 years agoAdd more tests, fix a bug when recycling unaware hello messages
Forest [Wed, 19 Aug 2020 21:50:55 +0000 (14:50 -0700)]
Add more tests, fix a bug when recycling unaware hello messages

6 years agoMore testing, some fixes
Forest [Mon, 6 Jul 2020 22:04:15 +0000 (15:04 -0700)]
More testing, some fixes

6 years agoFix a severe issue with redundant acks
Forest [Wed, 29 Apr 2020 22:46:21 +0000 (15:46 -0700)]
Fix a severe issue with redundant acks
Fix a potential issue in ObjectPool on Unity IL2CPP
Improve naming of thread limited classes.

6 years agoAdd 8x redundancy to acks
Forest [Thu, 2 Apr 2020 23:07:08 +0000 (16:07 -0700)]
Add 8x redundancy to acks

6 years agoRemove unused timeout param from ConnectAsync
Forest [Fri, 17 Jan 2020 23:04:20 +0000 (15:04 -0800)]
Remove unused timeout param from ConnectAsync

6 years agoAdded a listener with a fixed number of threads. Still testing how that works in...
Forest [Wed, 15 Jan 2020 21:08:15 +0000 (13:08 -0800)]
Added a listener with a fixed number of threads. Still testing how that works in practice

6 years agoAdd some UPnP capabilities, add an intercept for internal disconnect messages
Forest [Sat, 11 Jan 2020 23:37:26 +0000 (15:37 -0800)]
Add some UPnP capabilities, add an intercept for internal disconnect messages

6 years agoMerge remote-tracking branch 'origin/master'
Forest [Thu, 2 Jan 2020 22:16:50 +0000 (14:16 -0800)]
Merge remote-tracking branch 'origin/master'

6 years agoCreate a separate client connection better suited to unity. Tidy up a great many...
Forest [Tue, 17 Dec 2019 21:05:31 +0000 (13:05 -0800)]
Create a separate client connection better suited to unity. Tidy up a great many things

6 years agoMerge pull request #2 from shaunthesheep644/LoggerNullRefFix
Forest [Fri, 18 Oct 2019 19:39:19 +0000 (12:39 -0700)]
Merge pull request #2 from shaunthesheep644/LoggerNullRefFix

Fix a null-ref if not using the logger Action and a server receive completes synchronously.

6 years ago* Fix some issues that popped up in Hazel-Examples because of overzealous refactoring.
Forest [Fri, 18 Oct 2019 19:27:31 +0000 (12:27 -0700)]
* Fix some issues that popped up in Hazel-Examples because of overzealous refactoring.
* Add more data into the early AcceptConnectionCheck to benefit IP-based connection rejection.
* Add a metric for message resends
* Tune message resends a little more

6 years agologger nullref fix
Max Tiganov [Sat, 21 Sep 2019 11:47:09 +0000 (14:47 +0300)]
logger nullref fix

7 years agoImprove broadcast listener debugging and ignore some infrequent exceptions
Forest [Thu, 5 Sep 2019 21:14:26 +0000 (14:14 -0700)]
Improve broadcast listener debugging and ignore some infrequent exceptions

7 years agoBetter enable very early connection validation
Forest [Tue, 20 Aug 2019 22:33:13 +0000 (15:33 -0700)]
Better enable very early connection validation
Tidy up some broadcaster stuff
Fix a misreported statistic
Some logging for suspect stuff

7 years agoRevert some bad code that caused OnNewConnection to be called multiple times for...
Forest [Thu, 25 Jul 2019 23:42:40 +0000 (16:42 -0700)]
Revert some bad code that caused OnNewConnection to be called multiple times for some connections

7 years agoLots of code clean up, fixed an issue were a latent connection could cause packet...
Forest [Thu, 25 Jul 2019 21:47:08 +0000 (14:47 -0700)]
Lots of code clean up, fixed an issue were a latent connection could cause packet spamming

7 years agoFix and test disconnect message feature
Forest [Thu, 20 Jun 2019 21:38:47 +0000 (14:38 -0700)]
Fix and test disconnect message feature

7 years agoFix some flaky tests, clean up some style
Forest [Thu, 20 Jun 2019 21:30:09 +0000 (14:30 -0700)]
Fix some flaky tests, clean up some style

7 years agoAdd the ability to send extra data along side a disconnect message
Forest [Thu, 20 Jun 2019 21:13:36 +0000 (14:13 -0700)]
Add the ability to send extra data along side a disconnect message

7 years agoImprove debuggability, and maybe fix a case where the disconnect handler wasn't getti...
Forest [Thu, 13 Jun 2019 23:07:35 +0000 (16:07 -0700)]
Improve debuggability, and maybe fix a case where the disconnect handler wasn't getting called

7 years agoClean up a slow leak of ping packets when connections are dispose
Forest [Thu, 6 Jun 2019 21:20:56 +0000 (14:20 -0700)]
Clean up a slow leak of ping packets when connections are dispose

7 years agoClean up some stuff, fix some bugs, add a new type of copy to MessageReader, add...
Forest [Wed, 29 May 2019 04:26:52 +0000 (21:26 -0700)]
Clean up some stuff, fix some bugs, add a new type of copy to MessageReader, add a new stat counter. Revise pings so they aren't so chatty over lossy connections.

7 years agoRe-remove TCP (this time for good), add a counter to track potentionally fragmented...
Forest [Fri, 26 Apr 2019 19:26:53 +0000 (12:26 -0700)]
Re-remove TCP (this time for good), add a counter to track potentionally fragmented (by MTU) packets, catch a small crash-causer caused by disposing client connections