summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-29 22:22:27 +0100
committersalmonik <salmonik@tuta.io>2026-10-29 22:22:27 +0100
commitf30b1a519771ac49e2b03640e742fdb0a246bd81 (patch)
treeb9a78039ba55a364e73df5dc174320dc8222f5c3 /docs
parentformatting (diff)
downloadzagan-bet-f30b1a519771ac49e2b03640e742fdb0a246bd81.tar.gz
zagan-bet-f30b1a519771ac49e2b03640e742fdb0a246bd81.zip
v2.4.0: key stored credentials by certificate fingerprint
Diffstat (limited to 'docs')
-rw-r--r--docs/SERVER_SETUP.md10
-rw-r--r--docs/TESTING.md14
2 files changed, 23 insertions, 1 deletions
diff --git a/docs/SERVER_SETUP.md b/docs/SERVER_SETUP.md
index 62d1a9c..37d55b1 100644
--- a/docs/SERVER_SETUP.md
+++ b/docs/SERVER_SETUP.md
@@ -69,11 +69,19 @@ On first contact the client prints the SPKI fingerprint and pins it. If you
69regenerate the server identity, the client will reject the new key; run 69regenerate the server identity, the client will reject the new key; run
70`forget-host` in the client if the change is intentional. 70`forget-host` in the client if the change is intentional.
71 71
72Credentials are stored against the pinned fingerprint, not the address. Log in
73once through `127.0.0.1:11525` and connecting through the machine's LAN address
74will authenticate automatically, because both addresses present the same key.
75`forget-host` removes one address; the stored login is only dropped when the
76last address for that key is forgotten.
77
72## Database 78## Database
73 79
74The server creates `server.db` in the current directory on first use. It holds 80The server creates `server.db` in the current directory on first use. It holds
75users, balances, and the per-game `plays` audit. The client keeps its own 81users, balances, and the per-game `plays` audit. The client keeps its own
76`client.db` for host fingerprints and stored credentials. 82`client.db` for host fingerprints and stored credentials. Databases from before
83the fingerprint-keyed credentials are migrated on startup; rows whose host was
84already forgotten cannot be re-keyed and require one fresh login.
77 85
78During development, delete both files to reset users, balances, history, and 86During development, delete both files to reset users, balances, history, and
79trust: 87trust:
diff --git a/docs/TESTING.md b/docs/TESTING.md
index 15b060c..fe302a9 100644
--- a/docs/TESTING.md
+++ b/docs/TESTING.md
@@ -124,6 +124,20 @@ Use an 80-column terminal because several output lines are width-sensitive.
124 one row with `winnings = 0`, `details.result = "abandoned"` and 124 one row with `winnings = 0`, `details.result = "abandoned"` and
125 `details.reason = "server_restart"`. 125 `details.reason = "server_restart"`.
126 126
127## Manual identity / credential checklist
128
1291. Connect through one address, `register` and `login`. `hosts` shows the
130 fingerprint.
1312. `disconnect`, then `connect` through another address that reaches the same
132 server (for example `10.0.0.100` when you first used `127.0.0.1`). The client
133 must print `Authenticated as <user>` without asking for a password.
1343. `hosts` must list both addresses on one line under one fingerprint.
1354. `forget-host <first address>` must say the credentials were kept and name
136 the remaining address. Connecting through the remaining address still
137 authenticates automatically.
1385. `forget-host <last address>` must say trust and credentials were cleared.
139 The next connect is a first contact and does not authenticate.
140
127## Manual server checks 141## Manual server checks
128 142
129- Register, log out, log in again (bcrypt path). 143- Register, log out, log in again (bcrypt path).