Eval computes the private share v = p(i).
(i int)
| 76 | |
| 77 | // Eval computes the private share v = p(i). |
| 78 | func (p *PriPoly) Eval(i int) *PriShare { |
| 79 | xi := p.g.Scalar().SetInt64(1 + int64(i)) |
| 80 | v := p.g.Scalar().Zero() |
| 81 | for j := p.Threshold() - 1; j >= 0; j-- { |
| 82 | v.Mul(v, xi) |
| 83 | v.Add(v, p.coeffs[j]) |
| 84 | } |
| 85 | return &PriShare{i, v} |
| 86 | } |
| 87 | |
| 88 | // Shares creates a list of n private shares p(1),...,p(n). |
| 89 | func (p *PriPoly) Shares(n int) []*PriShare { |