from cryptography.fernet import Fernet from app.config import settings _fernet: Fernet | None = ( Fernet(settings.token_encryption_key.encode()) if settings.token_encryption_key else None ) def _require_fernet() -> Fernet: if _fernet is None: raise RuntimeError("TOKEN_ENCRYPTION_KEY is not configured") return _fernet def encrypt(value: str | None) -> str | None: if value is None: return None return _require_fernet().encrypt(value.encode()).decode() def decrypt(value: str | None) -> str | None: if value is None: return None return _require_fernet().decrypt(value.encode()).decode()