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  }