Files
amethyst/quartz/tools/tsmls-vector-gen

tsmls-vector-gen

Node helper that emits MLS interop test vectors from ts-mls, the TypeScript MLS implementation that powers marmot-ts (the Marmot protocol client that runs in the browser / Node / Bun / Deno).

Produces quartz/src/commonTest/resources/mls/tsmls-welcome.json, which TsMlsWelcomeInteropTest consumes to prove Amethyst can parse and decrypt a Welcome + application messages authored by the TypeScript side. Together with mdk-vector-gen (OpenMLS/Rust) the Marmot suite now has cross-implementation KATs from two independent MLS backends.

Regenerating

cd quartz/tools/tsmls-vector-gen
npm install --legacy-peer-deps
node generate.mjs > ../../src/commonTest/resources/mls/tsmls-welcome.json

The generator uses fresh randomness each run; commit the regenerated JSON if you change the generator. ts-mls returns Ed25519 signature private keys as PKCS#8-DER envelopes (16-byte header + 32-byte seed); we strip the header before emitting so the vector's signature_priv field is directly comparable to the one mdk-vector-gen produces.