auth.py
python
sha256:8d7f41aafae41deee70035a92f93602ef1722a290153597451e5932af503a42c
docs: queue board-identity follow-ups so they survive the session
Human
12 hours ago
| 1 | """Session credential and CSRF generation for the local app server (§Q0.6).""" |
| 2 | |
| 3 | from __future__ import annotations |
| 4 | |
| 5 | import secrets |
| 6 | |
| 7 | |
| 8 | def generate_session_credential() -> str: |
| 9 | """Return a cryptographically secure token with at least 128 bits of entropy.""" |
| 10 | return secrets.token_hex(16) |
| 11 | |
| 12 | |
| 13 | def generate_csrf_token() -> str: |
| 14 | """Return a CSRF token with at least 128 bits of entropy.""" |
| 15 | return secrets.token_hex(16) |
| 16 | |
| 17 | |
| 18 | def constant_time_equal(a: str, b: str) -> bool: |
| 19 | """Compare two strings in constant time.""" |
| 20 | return secrets.compare_digest(a.encode("utf-8"), b.encode("utf-8")) |
File History
1 commit
sha256:8d7f41aafae41deee70035a92f93602ef1722a290153597451e5932af503a42c
docs: queue board-identity follow-ups so they survive the session
Human
12 hours ago