github.com/cloudflare/circl@v1.5.0/ot/simot/simotparty.go (about) 1 package simot 2 3 import "github.com/cloudflare/circl/group" 4 5 type Sender struct { 6 index int // Indicate which OT 7 m0 []byte // The M0 message from sender 8 m1 []byte // The M1 message from sender 9 a group.Scalar // The randomness of the sender 10 A group.Element // [a]G 11 B group.Element // The random group element from the receiver 12 k0 []byte // The encryption key of M0 13 k1 []byte // The encryption key of M1 14 e0 []byte // The encryption of M0 under k0 15 e1 []byte // The encryption of M1 under k1 16 myGroup group.Group // The elliptic curve we operate in 17 } 18 19 type Receiver struct { 20 index int // Indicate which OT 21 c int // The choice bit of the receiver 22 A group.Element // The random group element from the sender 23 b group.Scalar // The randomness of the receiver 24 B group.Element // B = [b]G if c == 0, B = A+[b]G if c == 1 25 kR []byte // The decryption key of receiver 26 ec []byte // The encryption of mc 27 mc []byte // The decrypted message from sender 28 myGroup group.Group // The elliptic curve we operate in 29 }