Transport layer encryption and login #117
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements working AES-256 encryption for singular packets together with a login packet implementation.
There's still more testing I need to do before this PR will be ready to merge. For example, I believe currently batched packets are not encrypted correctly, but this should be an issue somewhere else in bedrock-rs rather than the
Encryptor
module itself. Furthermore, encryption of fragmented packets is broken in Mirai so I also expect it to be broken in this implementation.Secondly, the login packet decoder has properly been implemented in this PR with the exception of decoding of skin data. This will likely come in a later PR due to the connection with the
AddPlayer
andPlayerSkin
packets.Lastly, I still need to design a user-friendly API to use login data.
Once these issues are resolved I'll mark this PR as complete.
Changes in this PR:
Work in progress: