halkyon/LICENSE.md
Tizian 「ティツィアーン」 3bc0bae6e3
feat(keys): halkyon_keys, an account's keys on the device
ADR 0017's step 1, on libsodium (sodium 4.1.0+1, whose build hook
compiles the libsodium 1.0.22 it ships: a C compiler and make wherever
it builds):
- Argon2id (64 MiB, 3 passes, kept with the account and never below
  that) makes a master key, which libsodium's KDF splits into SRP's
  secret (x) and the key-encryption key.
- The account's X25519 and Ed25519 key pairs, their private halves
  wrapped with XChaCha20-Poly1305 under the KEK and under the recovery
  key, bound to their public keys.
- A 24-word BIP-39 recovery phrase (the English list, MIT) and the
  recovery key derived from it.
- Data keys sealed to the account with crypto_box_seal, bound to their
  IDs; content in ADR 0002's envelope, encrypted with a data key and
  signed with Ed25519 (detached), bound to a context the caller names.
- Secrets in libsodium's guarded memory where its API takes them.
- Tests: libsodium's Argon2id known answers, BIP-39's English vectors,
  round trips and every refusal.

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

2.6 KiB

Licences

The repository's packages carry different licences, each package's full text in its LICENSE file:

Package Licence SPDX
apps/learn/halkyon_learn_flutter, Learn's app GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
apps/learn/halkyon_learn_client, generated from Learn's models GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
apps/learn/halkyon_learn_server Server Side Public License, version 1 SSPL-1.0
apps/learn/halkyon_learn_curator, turning dictionary downloads into dictionary files GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
packages/halkyon_base_server, the Serverpod module every Halkyon server includes Server Side Public License, version 1 SSPL-1.0
packages/halkyon_base_client, generated from the module's models, with SRP's client half GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
packages/halkyon_app, packages/halkyon_ui GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
packages/halkyon_keys, an account's keys on the device; BIP-39's English word list in it under the MIT License (BIP39-LICENSE) GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
packages/halkyon_core, packages/halkyon_interop GNU Affero General Public License, version 3 or any later version, as halkyon_shared, where they began, licensed them AGPL-3.0-or-later
apps/todo/halkyon_todo_flutter, Todo's app GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
apps/todo/halkyon_todo_client, generated from Todo's models GNU Affero General Public License, version 3 or any later version AGPL-3.0-or-later
apps/todo/halkyon_todo_server Server Side Public License, version 1 (decided 2026-10-19, as Learn's) SSPL-1.0

The servers and the module build on Serverpod's core, which is under the SSPL, and so are under it too. The apps and the shared Flutter packages link only permissively licensed packages (Todo's icon is Lucide's, under the ISC licence, whose notice the app registers), and the client packages are generated from our own model definitions, so all of them are under the AGPL. The curator depends on neither a server nor Serverpod: Learn's server reads the files it writes, never its code.

Everything else in this repository (tooling, documentation, deployment files) is under AGPL-3.0-or-later unless a file says otherwise.