// Combines partial decryptions provided by decryption servers and returns
// decrypted message.
// This function does not verify zero knowledge proofs. Returned message can be
// incorrectly decrypted if an adversary corrupted partial decryption.
Combines partial decryptions provided by decryption servers and returns
decrypted message.
This function does not verify zero knowledge proofs. Returned message can be
incorrectly decrypted if an adversary corrupted partial decryption.
// Combines partial decryptions provided by decryption servers and returns // decrypted message . // This function does not verify zero knowledge proofs . Returned message can be // incorrectly decrypted if an adversary corrupted partial decryption .
func (tk *ThresholdPublicKey) CombinePartialDecryptions(shares []*PartialDecryption) (*big.Int, error) {
	if err := tk.verifyPartialDecryptions(shares); err != nil {
		return nil, err
	}
	cprime := ONE
	for _, share := range shares {
		lambda := tk.computeLambda(share, shares)
		cprime = tk.updateCprime(cprime, lambda, share)
	}
	return tk.computeDecryption(cprime), nil
}
func ( tk * ThresholdPublicKey ) CombinePartialDecryptions ( shares [ ] * PartialDecryption ) ( * big . Int , error ) { if err := tk . verifyPartialDecryptions ( shares ) ; err != nil { return nil , err } cprime := ONE for _ , share := range shares { lambda := tk . computeLambda ( share , shares ) cprime = tk . updateCprime ( cprime , lambda , share ) } return tk . computeDecryption ( cprime ) , nil }
Combines partial decryptions provided by decryption servers and returns
decrypted message.
Combines partial decryptions provided by decryption servers and returns decrypted message .