Conversation
Marzooqa
left a comment
There was a problem hiding this comment.
Implementation is correct and consistent with the ECDSA pattern — correct use of verifyPeerMessageRoundOne, handleIncomingMessages, ed25519 GPG, and userMsgPayload carry-over in sessionPayload. Three minor nits inline; none blocking.
da5cd64 to
c072f46
Compare
Add the EdDSA MPCv2 offline round-1 handler for external signer flows. It stores encrypted carry-over state for the next signing round. - Generate the round-1 EdDSA MPCv2 signature share from a fresh DSG session. - Persist DSG session state and user message payload in the round-1 session. - Encrypt session and ephemeral GPG private key data with signing-context adata. - Cover SJCL encryption, v2 envelopes, payload shape, and transaction guards. Ticket: WCI-378
Marzooqa
left a comment
There was a problem hiding this comment.
Implementation is correct — session restore, userMsgPayload carry-over, handleIncomingMessages round-2 output, and re-encryption with ROUND2_STATE adata all look good. Previous nits addressed. One minor dead code note: the assert(Array.isArray(transactions) && transactions.length === 1, ...) after getSignableHexAndDerivationPath is unreachable since that method already makes the same check — safe to remove in a follow-up.
Marzooqa
left a comment
There was a problem hiding this comment.
Implementation is correct — session restore, userMsgPayload carry-over, handleIncomingMessages round-2 output, and re-encryption with ROUND2_STATE adata all look good. Previous nits addressed. One minor dead code note: the assert(Array.isArray(transactions) && transactions.length === 1, ...) after getSignableHexAndDerivationPath is unreachable since that method already makes the same check — safe to remove in a follow-up.
From TypeScript narrowing perspective, the local assert is still useful, because TS does not understand that a previous helper call proved txRequest.transactions is defined. 635 const signatureShares = transactions[0].signatureShares; |
Add the EdDSA MPCv2 offline round-2 handler for external signer flows. It restores the encrypted round-1 DSG session and produces the round-2 share plus encrypted carry-over state for round 3.
Ticket: WCI-477