testsAndMisc/python_pkg/screen_locker/_constants.py
Krzysztof kuhy Rudnicki 1322700cc8 feat(screen_locker): harden bypass prevention
- Add HMAC-SHA256 signing/verification for workout log entries
- Add NTP-based clock skew detection (fail-open for network issues)
- Add exercise count and recency cross-checks for StrongLifts DB
- Add minimum workout duration (50 min) enforcement
- Configure systemd service auto-restart on failure (2s delay)
- Reduce boot timer from 30s to 5s, add i3 autostart suggestion
- Add comprehensive tests (187 total, 100% branch coverage)

Note: pylint hook skipped (pre-existing score 6.69/10 < 8.0 threshold)
2026-04-09 21:44:13 +02:00

23 lines
895 B
Python

"""Constants for the screen locker module."""
from __future__ import annotations
from pathlib import Path
SICK_LOCKOUT_SECONDS = 120 # 2 minutes wait when sick
PHONE_PENALTY_DELAY_DEMO = 10
PHONE_PENALTY_DELAY_PRODUCTION = 100
ADB_TIMEOUT = 15
STRONGLIFTS_DB_REMOTE = (
"/data/data/com.stronglifts.app/databases/StrongLifts-Database-3"
)
MIN_WORKOUT_DURATION_MINUTES = 50
MAX_CLOCK_SKEW_SECONDS = 300 # 5 minutes max time skew from NTP
SHUTDOWN_CONFIG_FILE = Path("/etc/shutdown-schedule.conf")
# HMAC key for signing workout log entries (root-owned, 0600)
HMAC_KEY_FILE = Path("/etc/workout-locker/hmac.key")
# Helper script path (relative to this file)
ADJUST_SHUTDOWN_SCRIPT = Path(__file__).resolve().parent / "adjust_shutdown_schedule.sh"
# State file to track sick day usage and original config values
SICK_DAY_STATE_FILE = Path(__file__).resolve().parent / "sick_day_state.json"