Skip to main content

Module encryption

Module encryption 

Source
Expand description

TACT encryption key store and Salsa20/ARC4 decryption. TACT encryption support for BLTE mode-E blocks.

Blizzard uses TACT (Trusted Application Content Transfer) to encrypt sensitive game data inside BLTE containers. Each encrypted block carries an encryption header that names the key (a u64 key name), provides an IV, and identifies the cipher:

  • Salsa20 (S) - the 16-byte TACT key is doubled to 32 bytes and used with an 8-byte nonce derived from the IV.
  • ARC4 (A) - RC4 with the standard WoW 1024-byte keystream skip.

Keys are stored in a TactKeyStore which can be populated from the bundled community-known key list or loaded from a text key file.

Structs§

EncryptionHeader
Parsed encryption header from a BLTE mode-E block.
TactKeyStore
Stores TACT encryption keys (key_name u64 -> 16-byte key value).

Enums§

EncryptionAlgorithm
Encryption algorithm used by a BLTE encrypted block.

Functions§

decrypt_block
Decrypt a BLTE mode-E block.
parse_encryption_header
Parse an encryption header from the data following the E mode byte.