namespace VanadiumGuard.Protocol { /// Wire-level constants shared by the guard client and the anti-cheat service. public static class ProtocolConstants { /// Bumped whenever request/response shapes change incompatibly. public const int Version = 1; public const string HeaderSession = "X-VG-Session"; public const string HeaderTimestamp = "X-VG-Timestamp"; public const string HeaderNonce = "X-VG-Nonce"; public const string HeaderSignature = "X-VG-Signature"; public const string HeaderSequence = "X-VG-Seq"; public const string HeaderProtocol = "X-VG-Protocol"; /// /// Per-request signature from the device attestation key, alongside the HMAC. Present /// only when the session bound a key at open; absent means HMAC-only, which is a /// state the server records rather than refuses. /// public const string HeaderAttestation = "X-VG-Attest"; /// How far a client clock may drift before signed requests are rejected. public const int MaxClockSkewSeconds = 120; /// Upper bound on a single memory challenge read, enforced on both ends. public const int MaxChallengeReadLength = 4096; /// Detections are dropped rather than queued once the backlog hits this size. public const int MaxQueuedDetections = 256; } }