halkyon/.dockerignore
Tizian 「ティツィアーン」 bc499713b8
feat(crypto): SRP-6a, the register's half and the device's
ADR 0017's step 1. Generic over group and hash (SrpGroup); production
takes RFC 5054's 3072-bit group with SHA-256. k = H(N | PAD(g)),
u = H(PAD(A) | PAD(B)), K = H(PAD(S)),
M1 = H(H(N) xor H(g) | H(I) | s | PAD(A) | PAD(B) | K),
M2 = H(PAD(A) | M1 | K). A and B must lie in 1..N-1 and u must not be
0; a and b are 256 bits from Random.secure(); proofs are compared in
constant time. x comes from the caller (halkyon_keys makes it); RFC
5054's own x is there for the vectors only.

- The register's half in halkyon_base_server (base.dart: srpChallenge,
  srpVerify), the device's written by hand in halkyon_base_client
  (srp.dart: SrpClient, srpVerifier). Serverpod's generator cleans and
  writes only a client's lib/src/protocol/ (serverpod_cli 4.0.4's
  _getDirectoriesRequiringCleaning; a generate leaves srp/ untouched).
- Tests: RFC 5054 Appendix B on both halves; the client against the
  register, succeeding and every refusal.
- The module's tests depend on its client, and pub resolves every
  member's dev dependencies, so Learn's server image takes the module's
  client into its workspace too.
- The format check covers the hand-written half.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-22 18:11:08 +02:00

36 lines
1,002 B
Text

# The Docker build context is the repository root. Nothing secret, local or bulky
# goes into it: Learn's server's and curator's Dockerfiles copy their whole package
# folders (and the server the module it builds on, with the module's client, which the
# module's tests depend on).
# Secrets and local state
**/config/passwords.yaml
# Dictionary files: tens of megabytes, mounted on an instance, never built in
apps/learn/halkyon_learn_server/dictionaries/
deploy/dictionaries/
# Published studysets' repositories of a development server
apps/learn/halkyon_learn_server/repositories/
apps/learn/halkyon_learn_server/.serverpod/
deploy/.env
**/*.log
# Tooling and build output
.git/
**/.dart_tool/
**/build/
.vscode/
.claude/
# Not needed to build the server or the curator
apps/learn/halkyon_learn_flutter/
apps/learn/halkyon_learn_client/
apps/learn/tool/
apps/todo/
packages/halkyon_app/
packages/halkyon_core/
packages/halkyon_interop/
packages/halkyon_ui/
docs/
snap/
NEXT.md
SHARED-PACKAGES.md