"""Simple token-based authentication for I2PControl.""" from __future__ import annotations import os class TokenAuth: """Simple token-based authentication for I2PControl.""" def __init__(self) -> None: self._tokens: set[str] = set() def generate_token(self) -> str: """Generate and store a new auth token (32 hex chars).""" token = os.urandom(16).hex() self._tokens.add(token) return token def validate_token(self, token: str) -> bool: """Return True if the token is valid.""" return token in self._tokens def revoke_token(self, token: str) -> bool: """Revoke a token. Returns True if it existed, False otherwise.""" if token in self._tokens: self._tokens.discard(token) return True return False