INNER CODE UNIT · Go
verifyMtA
taurushq-io/multi-party-sig · internal/mta/mta_test.go:43
verifyMtA := func(Di, Dj *paillier.Ciphertext, betaI, betaJ *saferith.Int) {
alphaI, err := ski.Dec(Dj)
require.NoError(t, err, "decryption should pass")
alphaJ, err := skj.Dec(Di)
require.NoError(t, err, "decryption should pass")
gammaI := alphaI.Add(alphaI, betaI, -1)
gammaJ := alphaJ.Add(alphaJ, betaJ, -1)
gamma := gammaI.Add(gammaI, gammaJ, -1)
gammaS := group.NewScalar().SetNat(gamma.Mod(group.Order()))
assert.Equal(t, c, gammaS, "a•b should be equal to α + β")
}
{
Ai, Aj := aiScalar.ActOnBase(), ajScalar.ActOnBase()
betaI, Di, Fi, proofI := ProveAffG(group, hash.New(), ai, Ai, Bj, ski, paillierJ, zk.Pedersen)
betaJ, Dj, Fj, proofJ := ProveAffG(group, hash.New(), aj, Aj, Bi, skj, paillierI, zk.Pedersen)