Initial commit: wowee native WoW 3.3.5a client

This commit is contained in:
Kelsi 2026-02-02 12:24:50 -08:00
commit ce6cb8f38e
147 changed files with 32347 additions and 0 deletions

53
include/auth/rc4.hpp Normal file
View file

@ -0,0 +1,53 @@
#pragma once
#include <cstdint>
#include <vector>
namespace wowee {
namespace auth {
/**
* RC4 Stream Cipher
*
* Used for encrypting/decrypting World of Warcraft packet headers.
* Only the packet headers are encrypted; packet bodies remain plaintext.
*
* Implementation based on standard RC4 algorithm with 256-byte state.
*/
class RC4 {
public:
RC4();
~RC4() = default;
/**
* Initialize the RC4 cipher with a key
*
* @param key Key bytes for initialization
*/
void init(const std::vector<uint8_t>& key);
/**
* Process bytes through the RC4 cipher
* Encrypts or decrypts data in-place (RC4 is symmetric)
*
* @param data Pointer to data to process
* @param length Number of bytes to process
*/
void process(uint8_t* data, size_t length);
/**
* Drop the first N bytes of keystream
* WoW protocol requires dropping first 1024 bytes
*
* @param count Number of bytes to drop
*/
void drop(size_t count);
private:
uint8_t state[256]; // RC4 state array
uint8_t x; // First index
uint8_t y; // Second index
};
} // namespace auth
} // namespace wowee