TapTap
8c94ec9886
feat(a7): SCRAM-SHA-256 daemon auth to replace replayable digest
Replace the challenge-less static-SHA-256 daemon bearer credential with a
SCRAM-SHA-256-style challenge/response and a salted PBKDF2 verifier store.
PROTOCOL_VERSION 2.18.0 -> 2.19.0; legacy user:SHA256HEX stores hard-reject.
- credentials: b64/rand/PBKDF2/HMAC primitives, verifier store parser,
constant-time proof verify + ServerSignature, --hash-credentials helper
- config: auth block is now [present][username]; client runs the challenge
exchange; config_burn_auth wipes plaintext/derived secrets (A7-4)
- server: gate drives the challenge, dummy verifier for unknown/off-list users
- tests: independent Python KAT, replay + legacy integration tests, fuzz paths
- docs: new store format, --hash-credentials, 2.19.0 bump
TLS verification behavior (A7-3/S1) is intentionally unchanged.
2026-09-12 17:19:33 +02:00
..
2026-09-12 17:19:33 +02:00
2026-09-12 17:19:33 +02:00
2026-09-08 17:25:56 +02:00
2026-09-10 21:40:07 +02:00
2026-08-16 09:37:28 +02:00
2026-06-10 16:58:35 +02:00
2026-09-10 22:05:18 +02:00
2026-09-10 21:40:07 +02:00
2026-09-06 12:34:10 +02:00
2026-09-06 12:34:10 +02:00
2026-09-07 19:50:52 +02:00
2026-09-07 17:42:53 +02:00
2026-09-08 22:53:47 +02:00
2026-06-10 16:58:35 +02:00
2026-09-12 17:19:33 +02:00
2026-07-29 19:19:19 +02:00
2026-09-05 02:01:43 +02:00
2026-07-04 21:25:34 +02:00
2026-09-12 17:19:33 +02:00
2026-06-10 16:58:35 +02:00
2026-09-12 17:19:33 +02:00
2026-09-10 12:50:56 +02:00
2026-09-12 14:00:55 +02:00
2026-09-09 17:48:07 +02:00
2026-07-20 19:42:53 +02:00
2026-07-20 14:44:35 +02:00
2026-09-06 14:19:18 +02:00
2026-09-06 13:20:03 +02:00
2026-09-07 17:42:53 +02:00
2026-07-18 20:00:15 +02:00
2026-08-30 13:50:42 +02:00
2026-07-20 19:42:53 +02:00
2026-09-12 15:33:54 +02:00
2026-09-09 14:23:59 +02:00
2026-09-12 15:21:33 +02:00
2026-07-29 19:19:19 +02:00
2026-07-20 19:42:53 +02:00
2026-07-20 14:44:35 +02:00
2026-09-10 17:49:29 +02:00
2026-09-10 17:13:06 +02:00
2026-09-03 16:07:51 +02:00
2026-07-20 19:42:53 +02:00
2026-09-12 11:06:05 +02:00
2026-07-20 14:44:35 +02:00
2026-09-10 13:52:24 +02:00
2026-09-10 13:52:24 +02:00
2026-09-06 16:27:54 +02:00
2026-07-20 19:42:53 +02:00
2026-09-01 20:46:07 +02:00
2026-07-20 14:44:35 +02:00
2026-09-06 19:35:25 +02:00
2026-07-20 14:44:35 +02:00
2026-08-16 09:37:28 +02:00
2026-06-10 16:58:35 +02:00
2026-09-04 02:25:26 +02:00
2026-07-20 14:44:35 +02:00
2026-09-12 11:06:05 +02:00
2026-07-04 21:25:34 +02:00
2026-09-12 14:54:47 +02:00
2026-09-09 17:48:07 +02:00
2026-09-12 15:03:54 +02:00
2026-07-29 19:19:19 +02:00
2026-09-07 15:43:33 +02:00
2026-06-10 16:58:35 +02:00
2026-09-10 17:39:34 +02:00
2026-09-10 16:27:49 +02:00
2026-08-16 09:37:28 +02:00
2026-07-20 14:44:35 +02:00
2026-09-12 15:01:48 +02:00
2026-07-21 16:55:07 +02:00
2026-09-09 14:29:46 +02:00
2026-07-21 16:55:07 +02:00
2026-09-12 15:01:48 +02:00
2026-07-21 16:55:07 +02:00
2026-07-20 21:04:53 +02:00
2026-09-12 15:03:54 +02:00
2026-09-08 22:27:53 +02:00