Repository navigation
Conversation
Contributor
Contributor
|
|
Marzooqa
changed the base branch from
master
to
vibhavgopalkrishna/wal-2459-critical-bitgojs-gg18-external-signer-s-share-helper-accepts
November 10, 2026 11:00
Marzooqa
requested a deployment
to
breaking-changes-override
November 10, 2026 11:05 — with
GitHub Actions
Waiting
vibhavgo
force-pushed
the
vibhavgopalkrishna/wal-2459-critical-bitgojs-gg18-external-signer-s-share-helper-accepts
branch
2 times, most recently
from
November 11, 2026 08:23
4199628 to
a1a6510
Compare
Base automatically changed from
vibhavgopalkrishna/wal-2459-critical-bitgojs-gg18-external-signer-s-share-helper-accepts
to
master
November 11, 2026 11:33
Marzooqa
force-pushed
the
marzooqanaeemakather/wal-2456-critical-bitgojs-external-signer-eddsa-mpcv1-helpers-expose
branch
from
November 11, 2026 11:38
3c554a0 to
d4416d8
Compare
Marzooqa
requested a deployment
to
breaking-changes-override
November 11, 2026 11:48 — with
GitHub Actions
Waiting
Moves the offline-signing adata binding helpers (signable/path core, envelope formatting and validation, max age) from EcdsaUtils into a shared module so signing protocols enforce an identical binding format. Behavior-preserving; EcdsaUtils delegates to the shared helpers. References: WAL-2456
…held envelope The R round now returns only the nonce reveal (r and R). The R-share envelope is bound to the signable via AEAD adata and validated at the R and G rounds, and the G round consumes the signer-created envelope once via a markConsumed callback instead of caller-supplied share values. The commitment round accepts only the pinned BitGo MPCv1 GPG public key in environments that require BitGo public key config. References: WAL-2456
Wires the consumed-shares registry into the EdDSA MPCv1 G round, removes the plaintext user share from the G request codec, and redacts the R response codec to the nonce reveal. References: WAL-2456
Share-generation failures on the EdDSA MPCv1 rounds (GPG key pin, envelope binding, expiry, single use, undecryptable envelope) are caller-input failures; surface them as 400 client errors instead of 500. The original error is still logged by the handler. References: WAL-2456
In environments that do not enforce the BitGo GPG public key config (mock, custom, local dev), the signer share is encrypted to any caller-supplied GPG public key. Log a warning at startup so operators of unpinned environments know share encryption accepts any key. References: WAL-2456
Marzooqa
force-pushed
the
marzooqanaeemakather/wal-2456-critical-bitgojs-external-signer-eddsa-mpcv1-helpers-expose
branch
from
November 11, 2026 13:46
d4416d8 to
8dfed06
Compare
Marzooqa
requested a deployment
to
breaking-changes-override
November 11, 2026 13:56 — with
GitHub Actions
Waiting
This branch is waiting to be deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hardens the EdDSA MPCv1 offline-signing (signer mode) share handling in the SDK and Express, mirroring #10126 for the GG18 flow. Stacked on #10126 (reuses its consumed-shares registry and adata binding helpers).
Linear: WAL-2456
Changes
tssshare/Rreturns only the nonce reveal (r,R); the R-share envelope created at the commitment step is bound to the signable via AEAD adata and validated at the R and G rounds.Test Plan