EFT Internals: response processing
Originally written for the development of Haru.
Step-by-step overview of the client processing the response body.
Example path used: /client/game/start.
Useful for both Aki devs as reference point for implementing it into the server and modders who want to implement custom payload protection.
Notes
As of now, the client only supports aes as payload encryption type.
Since it's passed as a string, you can override the appropriate method in the client to support additional (custom) encryption types.
To find the method to target, simply look scan for the string "aes" inside Assembly-CSharp.dll.
1. Response payload
HTTP header X-Encryption: aes is present.
(Code, 8 lines)
Payload layout
Encryption is AES, block cipher mode is CBC, with zero-padding.
Key
Format is AES-192, data is UTF-8 bytes, extracted from the client (0.13.5).
(Code, 2 lines)
Initialization vector (IV)
First block (16 bytes) of the payload.
(Code, 2 lines)
Encrypted data
Remaining bytes after IV block, remaining…
nohurry
0