pub fn part3(
round2_secret_package: &SecretPackage,
round1_packages: &BTreeMap<Identifier, Package>,
round2_packages: &BTreeMap<Identifier, Package>,
) -> Result<(KeyPackage, PublicKeyPackage), Error>
Expand description
Performs the third and final part of the distributed key generation protocol
for the participant holding the given round2::SecretPackage
, given the
received round1::Package
s and round2::Package
s received from the
other participants.
round1_packages
must be the same used in part2()
.
round2_packages
maps the identifier of each other participant to the
round2::Package
they sent to the current participant (the owner of
secret_package
). These identifiers must come from whatever mapping the
coordinator has between communication channels and participants, i.e. they
must have assurance that the round2::Package
came from the participant
with that identifier.
It returns the KeyPackage
that has the long-lived key share for the
participant, and the PublicKeyPackage
s that has public information about
all participants; both of which are required to compute FROST signatures.