]> git.deb.at Git - rhonda/impostor.hazel.git/log
rhonda/impostor.hazel.git
5 years agoMerge pull request #11 from willardf/synchronous_disconnect
Forest [Fri, 5 Mar 2021 23:17:07 +0000 (15:17 -0800)]
Merge pull request #11 from willardf/synchronous_disconnect

Ensure Unity clients send a Disconnect packet when disposed

5 years agoAdd a synchronous WriteBytesToConnection to handle disconnect packets
Matthew Endsley [Fri, 5 Mar 2021 22:09:07 +0000 (14:09 -0800)]
Add a synchronous WriteBytesToConnection to handle disconnect packets

5 years agoEnsure Unity clients send a Disconnect packet when disposed
Matthew Endsley [Sun, 28 Feb 2021 23:48:25 +0000 (15:48 -0800)]
Ensure Unity clients send a Disconnect packet when disposed

5 years agoMerge pull request #10 from willardf/dtls
Matthew Endsley [Tue, 9 Feb 2021 18:36:57 +0000 (10:36 -0800)]
Merge pull request #10 from willardf/dtls

Add DTLS Support

5 years agoMerge branch 'dtls_listener_shutdown' into dtls_development
Matthew Endsley [Tue, 9 Feb 2021 18:34:37 +0000 (10:34 -0800)]
Merge branch 'dtls_listener_shutdown' into dtls_development

5 years agoFlush outgoing packets before shutting closing socket
Matthew Endsley [Thu, 4 Feb 2021 21:54:15 +0000 (13:54 -0800)]
Flush outgoing packets before shutting closing socket

This ensures we at least attempt to send out Disconnect packets to
connected clients when shutting down. Prior to this the send thread
would race the Dispose thread causing indeterminate behavior. Sometimes
disconnect packets would be sent out, sometimes they wouldn't.

5 years agoAdd prefix string to TestLogger
Matthew Endsley [Thu, 4 Feb 2021 21:52:00 +0000 (13:52 -0800)]
Add prefix string to TestLogger

5 years agoEncode each certificate size in Certficate message
Matthew Endsley [Wed, 3 Feb 2021 22:49:12 +0000 (14:49 -0800)]
Encode each certificate size in Certficate message

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