Standing upstream-requirement issue. Filter: upstream.
Gated feature. Engine-authenticated key distribution for shared-field encryption. Shared encrypted columns ship with a lofi-owned construction instead: a self-derived x25519 keypair per account, a self-published key-directory table, and per-resource field keys wrapped to member public keys, with TOFU fingerprint pinning (upgraded by out-of-band pinning through lofi2 sharing-identity strings) making server key substitution a detectable active attack.
Upstream requirement. In the pinned jazz-tools@2.0.0-alpha.53, the client API exposes only user_id strings (Session in dist/runtime/context.d.ts); no account signing or encryption public key, no sealer/sealed-box primitive, and no authenticated member-key enumeration are reachable from the API surface — the crypto engine is Rust-internal behind jazz-wasm, which exports only deriveUserId and token minting. Engine-authenticated account public keys would let wrapped field keys verify against identity material the server cannot substitute, replacing the TOFU directory and pin store.
On pin bump. Check whether the API exposes account public keys or a sealed-box primitive; if so, migrate the key directory to engine-authenticated keys (directory table and pin store become verification caches), and re-run the shared-field sync suite.
Standing upstream-requirement issue. Filter:
upstream.Gated feature. Engine-authenticated key distribution for shared-field encryption. Shared encrypted columns ship with a lofi-owned construction instead: a self-derived x25519 keypair per account, a self-published key-directory table, and per-resource field keys wrapped to member public keys, with TOFU fingerprint pinning (upgraded by out-of-band pinning through
lofi2sharing-identity strings) making server key substitution a detectable active attack.Upstream requirement. In the pinned
jazz-tools@2.0.0-alpha.53, the client API exposes onlyuser_idstrings (Sessionindist/runtime/context.d.ts); no account signing or encryption public key, no sealer/sealed-box primitive, and no authenticated member-key enumeration are reachable from the API surface — the crypto engine is Rust-internal behindjazz-wasm, which exports onlyderiveUserIdand token minting. Engine-authenticated account public keys would let wrapped field keys verify against identity material the server cannot substitute, replacing the TOFU directory and pin store.On pin bump. Check whether the API exposes account public keys or a sealed-box primitive; if so, migrate the key directory to engine-authenticated keys (directory table and pin store become verification caches), and re-run the shared-field sync suite.