mpc

package
v0.0.0-...-249e25c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2025 License: AGPL-3.0 Imports: 13 Imported by: 0

README

MPC is a Golang port of swanky, a suite of libraries for doing secure multi-party computation developed by Brent Carmer, Alex J. Malozemoff, and Marc Rosen.

Documentation

Index

Constants

View Source
const SPP = 40

SPP sender ot padding

Variables

View Source
var (
	ErrInvalidCuckooSetSize    = errors.New("invalid cuckoo set size")
	ErrInvalidCuckooParameters = errors.New("invalid cuckoo hash parameters")
	ErrCuckooHashMapFull       = errors.New("cuckoo hash full")
)

errors

View Source
var (
	ErrInvalidPoint = errors.New("bytes do not encode a valid point")
)

Errors ...

View Source
var ErrKOSConsistencyCheckFailed = errors.New("consistency check failed")

ErrKOSConsistencyCheckFailed ...

Functions

This section is empty.

Types

type AESHash

type AESHash struct {
	// contains filtered or unexported fields
}

AESHash ...

func NewAESHash

func NewAESHash(key Block) *AESHash

NewAESHash ...

func (*AESHash) CRHash

func (a *AESHash) CRHash(x Block) (r Block)

CRHash ...

func (*AESHash) TCCRHash

func (a *AESHash) TCCRHash(i, x Block) (r Block)

TCCRHash ...

type AESRNG

type AESRNG struct {
	// contains filtered or unexported fields
}

AESRNG ...

func NewAESRNG

func NewAESRNG(seed []byte) (*AESRNG, error)

NewAESRNG ...

func (*AESRNG) Read

func (a *AESRNG) Read(b []byte) (int, error)

Read fills b with random bytes

type ALSZReceiver

type ALSZReceiver struct {
	// contains filtered or unexported fields
}

ALSZReceiver ...

func NewALSZReceiver

func NewALSZReceiver(
	conn Conn,
	ot OTSender,
	rng io.Reader,
) (r *ALSZReceiver, err error)

NewALSZReceiver ...

func (*ALSZReceiver) Receive

func (a *ALSZReceiver) Receive(
	conn Conn,
	inputs []bool,
	rng io.Reader,
) ([]Block, error)

Receive ...

func (*ALSZReceiver) ReceiveSetup

func (a *ALSZReceiver) ReceiveSetup(
	conn Conn,
	r []byte,
	m int,
) ([]byte, error)

ReceiveSetup ...

type ALSZSender

type ALSZSender struct {
	// contains filtered or unexported fields
}

ALSZSender ...

func NewALSZSender

func NewALSZSender(
	conn Conn,
	ot OTReceiver,
	rng io.Reader,
) (*ALSZSender, error)

NewALSZSender ...

func (*ALSZSender) Send

func (a *ALSZSender) Send(
	conn Conn,
	inputs [][2]Block,
	rng io.Reader,
) error

Send ...

func (*ALSZSender) SendSetup

func (a *ALSZSender) SendSetup(
	conn Conn,
	m int,
) ([]byte, error)

SendSetup ...

type Block

type Block [16]byte

Block 128 bit chunk

type Block512

type Block512 [64]byte

Block512 ...

type ChaoOrlandiReceiver

type ChaoOrlandiReceiver struct {
	// contains filtered or unexported fields
}

ChaoOrlandiReceiver oblivious transfer receiver

func NewChaoOrlandiReceiver

func NewChaoOrlandiReceiver(conn Conn, rng io.Reader) (*ChaoOrlandiReceiver, error)

NewChaoOrlandiReceiver ...

func (*ChaoOrlandiReceiver) Receive

func (o *ChaoOrlandiReceiver) Receive(
	conn Conn,
	inputs []bool,
	rng io.Reader,
) ([]Block, error)

Receive values

type ChaoOrlandiSender

type ChaoOrlandiSender struct {
	// contains filtered or unexported fields
}

ChaoOrlandiSender oblivious transfer sender

func NewChaoOrlandiSender

func NewChaoOrlandiSender(conn Conn, rng io.Reader) (*ChaoOrlandiSender, error)

NewChaoOrlandiSender ...

func (*ChaoOrlandiSender) Send

func (o *ChaoOrlandiSender) Send(
	conn Conn,
	inputs [][2]Block,
	rng io.Reader,
) error

Send values

type Conn

type Conn interface {
	io.ReadWriter
	Flush() error
}

Conn ...

type CuckooHashMap

type CuckooHashMap struct {
	// contains filtered or unexported fields
}

CuckooHashMap ...

func NewCuckooHashMap

func NewCuckooHashMap(inputs []Block, nhashes int) (*CuckooHashMap, error)

NewCuckooHashMap ...

func (*CuckooHashMap) Cap

func (c *CuckooHashMap) Cap() int

Cap ...

func (*CuckooHashMap) Hash

func (c *CuckooHashMap) Hash(input Block, idx int) error

Hash ...

func (*CuckooHashMap) Values

func (c *CuckooHashMap) Values() (v []Block)

Values ...

type CuckooItem

type CuckooItem struct {
	// contains filtered or unexported fields
}

CuckooItem ...

type KKRTReceiver

type KKRTReceiver struct {
	// contains filtered or unexported fields
}

KKRTReceiver ...

func NewKKRTReceiver

func NewKKRTReceiver(c Conn, ot OTSender, rng io.Reader) (*KKRTReceiver, error)

NewKKRTReceiver ...

func (*KKRTReceiver) Receive

func (k *KKRTReceiver) Receive(
	conn Conn,
	inputs []Block,
	rng io.Reader,
) ([]Block512, error)

Receive ...

type KKRTSender

type KKRTSender struct {
	// contains filtered or unexported fields
}

KKRTSender ...

func NewKKRTSender

func NewKKRTSender(c Conn, ot OTReceiver, rng io.Reader) (*KKRTSender, error)

NewKKRTSender ...

func (*KKRTSender) Compute

func (k *KKRTSender) Compute(seed Block512, src Block) (dst Block512)

Compute ...

func (*KKRTSender) Encode

func (k *KKRTSender) Encode(dst *Block512, src Block)

Encode ...

func (*KKRTSender) Send

func (k *KKRTSender) Send(
	conn Conn,
	m int,
	rng io.Reader,
) ([]Block512, error)

Send ...

type KOSReceiver

type KOSReceiver struct {
	// contains filtered or unexported fields
}

KOSReceiver ...

func NewKOSReceiver

func NewKOSReceiver(conn Conn, ot OTSender, rng io.Reader) (*KOSReceiver, error)

NewKOSReceiver ...

func (*KOSReceiver) Receive

func (a *KOSReceiver) Receive(
	conn Conn,
	inputs []bool,
	rng io.Reader,
) ([]Block, error)

Receive ...

func (*KOSReceiver) ReceiveSetup

func (a *KOSReceiver) ReceiveSetup(
	conn Conn,
	inputs []bool,
	rng io.Reader,
) ([]byte, error)

ReceiveSetup ...

type KOSSender

type KOSSender struct {
	// contains filtered or unexported fields
}

KOSSender ...

func NewKOSSender

func NewKOSSender(conn Conn, ot OTReceiver, rng io.Reader) (*KOSSender, error)

NewKOSSender ...

func (*KOSSender) Send

func (a *KOSSender) Send(
	conn Conn,
	inputs [][2]Block,
	rng io.Reader,
) error

Send ...

func (*KOSSender) SendSetup

func (a *KOSSender) SendSetup(
	conn Conn,
	m int,
	rng io.Reader,
) ([]byte, error)

SendSetup ...

type NaorPinkasReceiver

type NaorPinkasReceiver struct{}

NaorPinkasReceiver oblivious transfer receiver

func (*NaorPinkasReceiver) Receive

func (o *NaorPinkasReceiver) Receive(
	conn Conn,
	inputs []bool,
	rng io.Reader,
) ([]Block, error)

Receive values

type NaorPinkasSender

type NaorPinkasSender struct{}

NaorPinkasSender oblivious transfer sender

func (*NaorPinkasSender) Send

func (o *NaorPinkasSender) Send(
	conn Conn,
	inputs [][2]Block,
	rng io.Reader,
) error

Send values

type OTReceiver

type OTReceiver interface {
	Receive(conn Conn, inputs []bool, rng io.Reader) ([]Block, error)
}

OTReceiver ...

type OTSender

type OTSender interface {
	Send(conn Conn, inputs [][2]Block, rng io.Reader) error
}

OTSender ...

type PSZReceiver

type PSZReceiver struct {
	// contains filtered or unexported fields
}

PSZReceiver ...

func NewPSZReceiver

func NewPSZReceiver(oprf *KKRTReceiver) (*PSZReceiver, error)

NewPSZReceiver ...

func (*PSZReceiver) Receive

func (p *PSZReceiver) Receive(
	conn Conn,
	inputs [][]byte,
	rng io.Reader,
) ([][]byte, error)

Receive ...

func (*PSZReceiver) ReceivePayloads

func (p *PSZReceiver) ReceivePayloads(
	conn Conn,
	inputs [][]byte,
	rng io.Reader,
) (*redblacktree.Tree, error)

ReceivePayloads ...

type PSZSender

type PSZSender struct {
	// contains filtered or unexported fields
}

PSZSender ...

func NewPSZSender

func NewPSZSender(oprf *KKRTSender) (*PSZSender, error)

NewPSZSender ...

func (*PSZSender) Send

func (p *PSZSender) Send(
	conn Conn,
	inputs [][]byte,
	rng io.Reader,
) error

Send ...

func (*PSZSender) SendPayloads

func (p *PSZSender) SendPayloads(
	conn Conn,
	inputs [][]byte,
	rng io.Reader,
) ([]Block, error)

SendPayloads ...

type PseudorandomCode

type PseudorandomCode struct {
	// contains filtered or unexported fields
}

PseudorandomCode ...

func NewPseudorandomCode

func NewPseudorandomCode(k0, k1, k2, k3 Block) (*PseudorandomCode, error)

NewPseudorandomCode ...

func (*PseudorandomCode) Encode

func (p *PseudorandomCode) Encode(dst *Block512, b Block)

Encode ...

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL