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)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…