Documentation ¶
Index ¶
- func NewPipe() (*Pipe, *Pipe)
- func RandomData(size int) ([]byte, error)
- func ReceiveBigInt(io IO) (*big.Int, error)
- func ReceiveString(io IO) (string, error)
- func SendString(io IO, str string) error
- type CO
- type COReceiver
- type COReceiverXfer
- type COSender
- type COSenderXfer
- type IO
- type Label
- func (l Label) Bytes(buf *LabelData) []byte
- func (l Label) Equal(o Label) bool
- func (l Label) GetData(buf *LabelData)
- func (l *Label) Mul2()
- func (l *Label) Mul4()
- func (l Label) S() bool
- func (l *Label) SetBytes(data []byte)
- func (l *Label) SetData(data *LabelData)
- func (l *Label) SetS(set bool)
- func (l Label) String() string
- func (l *Label) Xor(o Label)
- type LabelData
- type OT
- type Pipe
- func (p *Pipe) Close() error
- func (p *Pipe) Drain() error
- func (p *Pipe) Flush() error
- func (p *Pipe) ReceiveByte() (byte, error)
- func (p *Pipe) ReceiveData() ([]byte, error)
- func (p *Pipe) ReceiveUint32() (int, error)
- func (p *Pipe) SendByte(val byte) error
- func (p *Pipe) SendData(val []byte) error
- func (p *Pipe) SendUint32(val int) error
- type RSA
- type Receiver
- type ReceiverXfer
- type Sender
- type SenderXfer
- type Wire
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RandomData ¶
RandomData creates size bytes of random data.
func ReceiveBigInt ¶
ReceiveBigInt receives a bit.Int from the connection.
func ReceiveString ¶
ReceiveString receives a string value.
Types ¶
type CO ¶
type CO struct {
// contains filtered or unexported fields
}
CO implements CO OT as the OT interface.
func (*CO) InitReceiver ¶
InitReceiver initializes the OT receiver.
type COReceiver ¶
type COReceiver struct {
// contains filtered or unexported fields
}
COReceiver implements CO OT receiver.
func NewCOReceiver ¶
func NewCOReceiver(curve elliptic.Curve) *COReceiver
NewCOReceiver creates a new OT receiver.
func (*COReceiver) NewTransfer ¶
func (r *COReceiver) NewTransfer(bit uint) (*COReceiverXfer, error)
NewTransfer creates a new OT transfer for the selection bit.
type COReceiverXfer ¶
type COReceiverXfer struct { Bx *big.Int By *big.Int Asx *big.Int Asy *big.Int // contains filtered or unexported fields }
COReceiverXfer implements receiver OT transfer.
func (*COReceiverXfer) B ¶
func (r *COReceiverXfer) B() (x, y []byte)
B returns receiver's selection.
func (*COReceiverXfer) ReceiveA ¶
func (r *COReceiverXfer) ReceiveA(x, y []byte)
ReceiveA receives sender's random value.
func (*COReceiverXfer) ReceiveE ¶
func (r *COReceiverXfer) ReceiveE(e0, e1 []byte) []byte
ReceiveE receives encrypted messages from the sender and returns the result value.
type COSender ¶
type COSender struct {
// contains filtered or unexported fields
}
COSender implements CO OT sender.
func (*COSender) NewTransfer ¶
func (s *COSender) NewTransfer(m0, m1 []byte) (*COSenderXfer, error)
NewTransfer creates a new OT transfer for the values.
type COSenderXfer ¶
type COSenderXfer struct { Ax *big.Int Ay *big.Int AaInvx *big.Int AaInvy *big.Int // contains filtered or unexported fields }
COSenderXfer implements sender OT transfer.
func (*COSenderXfer) E ¶
func (s *COSenderXfer) E() (e0, e1 []byte)
E returns sender's encrypted messages.
func (*COSenderXfer) ReceiveB ¶
func (s *COSenderXfer) ReceiveB(x, y []byte)
ReceiveB receives receiver's selection.
type IO ¶
type IO interface { // SendByte sends a byte value. SendByte(val byte) error // SendUint32 sends an uint32 value. SendUint32(val int) error // SendData sends binary data. SendData(val []byte) error // Flush flushed any pending data in the connection. Flush() error // ReceiveByte receives a byte value. ReceiveByte() (byte, error) // ReceiveUint32 receives an uint32 value. ReceiveUint32() (int, error) // ReceiveData receives binary data. ReceiveData() ([]byte, error) }
IO defines an I/O interface to communicate between peers.
type Label ¶
Label implements a 128 bit wire label.
type OT ¶
type OT interface { // InitSender initializes the OT sender. InitSender(io IO) error // InitReceiver initializes the OT receiver. InitReceiver(io IO) error // Send sends the wire labels with OT. Send(wires []Wire) error // Receive receives the wire labels with OT based on the flag values. Receive(flags []bool, result []Label) error }
OT defines Oblivious Transfer protocol.
type Pipe ¶
type Pipe struct {
// contains filtered or unexported fields
}
Pipe implements the IO interface with in-memory io.Pipe.
func (*Pipe) ReceiveByte ¶
ReceiveByte receives a byte value.
func (*Pipe) ReceiveData ¶
ReceiveData receives binary data.
func (*Pipe) ReceiveUint32 ¶
ReceiveUint32 receives an uint32 value.
func (*Pipe) SendUint32 ¶
SendUint32 sends an uint32 value.
type RSA ¶
type RSA struct {
// contains filtered or unexported fields
}
RSA implements RSA OT as the OT interface.
func NewRSA ¶
NewRSA creates a new RSA OT implementing the OT interface. The argument specifies the RSA key size in bits.
func (*RSA) InitReceiver ¶
InitReceiver initializes the OT receiver.
func (*RSA) InitSender ¶
InitSender initializes the OT sender.
type Receiver ¶
type Receiver struct {
// contains filtered or unexported fields
}
Receiver implements OT receivers.
func NewReceiver ¶
NewReceiver creates a new OT receiver.
func (*Receiver) MessageSize ¶
MessageSize returns the maximum OT message size.
func (*Receiver) NewTransfer ¶
func (r *Receiver) NewTransfer(bit uint) (*ReceiverXfer, error)
NewTransfer creates a new OT receiver data transfer for the bit.
type ReceiverXfer ¶
type ReceiverXfer struct {
// contains filtered or unexported fields
}
ReceiverXfer implements the OT receiver data transfer.
func (*ReceiverXfer) Message ¶
func (r *ReceiverXfer) Message() (m []byte, bit uint)
Message returns the message and bit from the exchange.
func (*ReceiverXfer) ReceiveMessages ¶
func (r *ReceiverXfer) ReceiveMessages(m0p, m1p []byte, err error) error
ReceiveMessages processes the received m0p and m1p messages.
func (*ReceiverXfer) ReceiveRandomMessages ¶
func (r *ReceiverXfer) ReceiveRandomMessages(x0, x1 []byte) error
ReceiveRandomMessages receives the random messages x0 and x1.
type Sender ¶
type Sender struct {
// contains filtered or unexported fields
}
Sender implements OT sender.
func (*Sender) MessageSize ¶
MessageSize returns the maximum OT message size.
func (*Sender) NewTransfer ¶
func (s *Sender) NewTransfer(m0, m1 []byte) (*SenderXfer, error)
NewTransfer creates a new OT sender data transfer.
type SenderXfer ¶
type SenderXfer struct {
// contains filtered or unexported fields
}
SenderXfer implements the OT sender data transfer.
func (*SenderXfer) MessageSize ¶
func (s *SenderXfer) MessageSize() int
MessageSize returns the maximum OT message size.
func (*SenderXfer) Messages ¶
func (s *SenderXfer) Messages() ([]byte, []byte, error)
Messages creates the transfer messages.
func (*SenderXfer) RandomMessages ¶
func (s *SenderXfer) RandomMessages() ([]byte, []byte)
RandomMessages creates random messages.