Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Receiver ¶
type Receiver struct {
A group.Element // The random group element from the sender
B group.Element // B = [b]G if c == 0, B = A+[b]G if c == 1
// contains filtered or unexported fields
}
func (*Receiver) Round1Receiver ¶
func (receiver *Receiver) Round1Receiver(myGroup group.Group, choice int, index int, A group.Element) group.Element
Input: myGroup, the group we operate in Input: choice, the receiver choice bit Input: index, the index of this SimOT Input: A, from sender Output: B = [b]G if c == 0, B = A+[b]G if c == 1 (Implementation in constant time). b, the receiver randomness
type Sender ¶
type Sender struct {
A group.Element // [a]G
B group.Element // The random group element from the receiver
// contains filtered or unexported fields
}
func (*Sender) InitSender ¶
Input: myGroup, the group we operate in Input: m0, m1 the 2 message of the sender Input: index, the index of this SimOT Output: A = [a]G, a the sender randomness
func (*Sender) Returne0e1 ¶
func (*Sender) Returnm0m1 ¶
func (*Sender) Round2Sender ¶
Input: B from the receiver Output: e0, e1, encryption of m0 and m1 under key k0, k1 Round2Sender must be called at most once after each call to InitSender. It panics on subsequent calls to prevent reuse of the sender randomness.