EncryptionContext
in package
Table of Contents
- CHECKSUM_ALGO = "sha256"
- $ENABLED : bool
- $decryptCipher : Cipher
- $decryptCounter : int
- $encryptCipher : Cipher
- $encryptCounter : int
- $key : string
- __construct() : mixed
- cfb8() : self
- decrypt() : string
- encrypt() : string
- fakeGCM() : self
- Returns an EncryptionContext suitable for decrypting Minecraft packets from 1.16.200 and up.
- calculateChecksum() : string
Constants
CHECKSUM_ALGO
private
mixed
CHECKSUM_ALGO
= "sha256"
Properties
$ENABLED
public
static bool
$ENABLED
= true
$decryptCipher
private
Cipher
$decryptCipher
$decryptCounter
private
int
$decryptCounter
= 0
$encryptCipher
private
Cipher
$encryptCipher
$encryptCounter
private
int
$encryptCounter
= 0
$key
private
string
$key
Methods
__construct()
public
__construct(string $encryptionKey, string $algorithm, string $iv) : mixed
Parameters
- $encryptionKey : string
- $algorithm : string
- $iv : string
Return values
mixed —cfb8()
public
static cfb8(string $encryptionKey) : self
Parameters
- $encryptionKey : string
Return values
self —decrypt()
public
decrypt(string $encrypted) : string
Parameters
- $encrypted : string
Tags
Return values
string —encrypt()
public
encrypt(string $payload) : string
Parameters
- $payload : string
Return values
string —fakeGCM()
Returns an EncryptionContext suitable for decrypting Minecraft packets from 1.16.200 and up.
public
static fakeGCM(string $encryptionKey) : self
MCPE uses GCM, but without the auth tag, which defeats the whole purpose of using GCM. GCM is just a wrapper around CTR which adds the auth tag, so CTR can replace GCM for this case. However, since GCM passes only the first 12 bytes of the IV followed by 0002, we must do the same for compatibility with MCPE. In PM, we could skip this and just use GCM directly (since we use OpenSSL), but this way is more portable, and better for developers who come digging in the PM code looking for answers.
Parameters
- $encryptionKey : string
Return values
self —calculateChecksum()
private
calculateChecksum(int $counter, string $payload) : string
Parameters
- $counter : int
- $payload : string