INNER CODE UNIT · Go
func
taurushq-io/multi-party-sig · internal/ot/additive.go:122
func (r *AdditiveOTReceiver) Round1() *AdditiveOTReceiveRound1Message {
msg, result := ExtendedOTReceive(r.ctxHash, r.setup, r.choices)
r.result = result
return &AdditiveOTReceiveRound1Message{Msg: msg}
}
// AdditiveOTReceiveResult is the Receiver's result for an Additive OT.
//
// For each choice_j, we receive choice_j * alpha - pad.
type AdditiveOTReceiveResult [][2]curve.Scalar
// Round2 executes the Receiver's second round of an Additive OT.
func (r *AdditiveOTReceiver) Round2(msg *AdditiveOTSendRound1Message) (AdditiveOTReceiveResult, error) {
batchSize := 8 * len(r.choices)
result := make([][2]curve.Scalar, batchSize)
prg := blake3.New()
for i := 0; i < batchSize; i++ {
mask := -bitAt(i, r.choices)