completeRound2 method

Future<MlDsaSigningMessage> completeRound2({
  1. required Iterable<MlDsaSigningMessage> round1Messages,
})

Completes Round2 after collecting Round1 wire messages for all activePartyIdsZeroBased.

Implementation

Future<MlDsaSigningMessage> completeRound2({
  required Iterable<MlDsaSigningMessage> round1Messages,
}) async {
  _assertRound1Messages(round1Messages);
  final hashes = _orderedRound1Hashes(round1Messages);
  final reveal = await mithrilRound2Party(
    t: params.t,
    n: params.n,
    ceremonySeed: _ceremonySeed.bytes,
    partyIdZeroBased: signerIndex - 1,
    activePartyIdsZeroBased: activePartyIdsZeroBased,
    message: message,
    sessionId: sessionId,
    round1Hashes: hashes,
  );
  return MlDsaSigningMessage.round2(
    params: params,
    ceremonyId: ceremonyId,
    senderIndex: signerIndex,
    sessionId: sessionId,
    revealBytes: reveal,
  );
}