Skip to content

Handle encrypted packets expose raw encrypted bytes #33

Description

@Michelprogram

Context

The decryption logic is game-specific and does not belong in photon-parser.
This task exposes the raw encrypted bytes to the caller so that the consuming layer
(e.g. albion-lens) can provide its own decryption implementation.

Current behavior

// Packet with non-0xF3 signature → silently dropped
if sig != 0xF3 {
    return nil
}

Target behavior

// Encrypted packet detected → fire OnEncryptedPacket with raw bytes
// Caller owns the decryption — photon-parser stays protocol-agnostic

API proposal

// New MessageType constant
const EncryptedPacket MessageType = ...

// Usage via existing OnEvent mechanism
parser.OnEncryptedPacket(func(raw []byte) {
    // caller decrypts and re-feeds if needed
})

Tasks

Détection

  • Identifier tous les cas de signature non-0xF3 dans le parsing loop

Exposition

  • Ajouter la constante EncryptedPacket dans MessageType
  • Extraire les bytes bruts du paquet chiffré (sans copie si possible)
  • Appeler un handler custom OnEncryptedPacket enregistrés
  • Si aucun handler enregistré → comportement actuel (skip silencieux) conservé

Tests

  • Test : paquet chiffré sans handler → aucune erreur, skip silencieux
  • Test : paquet chiffré avec handler → bytes bruts reçus correctement
  • Test : handler absent après OnEvent dé-enregistré → skip silencieux

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions