Documentation
¶
Index ¶
- Variables
- func Client()
- func ClientChannels(userTyping, msgReceiving chan string)
- func Commodity()
- func Init()
- func Initialize()
- func InitializeExternal()
- func MarshalPublicKey(c *[32]byte) string
- func Secretary()
- func Tprintf(term *terminal.Terminal, format string, v ...interface{})
- func UnmarshalPublicKey(s string) *[32]byte
- type ChannelCrypto
- type EndCommodity
- type FuncRequest
- type JoinRequest
- type LeaveRequest
- type MaskTripleCommodity
- type Members
- type Message
- type PairConn
- type Party
- type Room
- type RoomState
- type StartCommodity
- type StartRequest
- type TripleCommodity
Constants ¶
This section is empty.
Variables ¶
var Args []string // holds command line arguments after flag parsing
var MyNick string
var MyPrivateKey *[32]byte
var MyPublicKey string
Functions ¶
func ClientChannels ¶
func ClientChannels(userTyping, msgReceiving chan string)
func Commodity ¶
func Commodity()
The GMW commodity server
Commodity Protocol Specification:
CS == commodity server CHASH == computation hash
MESSAGE NATS SUBJECT
P[0] >-- (StartCommodity) ------> CS commodity.CHASH.BLOCKNUM P[0] <----------------- SEED ---< CS P[0].commodity.CHASH.BLOCKNUM
...
P[n-1] <----------------- SEED ---< CS P[n-1].commodity.CHASH.BLOCKNUM
P[0] >-- (TripleRequest) -------> CS commodity.CHASH.BLOCKNUM P[0] <------ (TripleMaterial) --< CS P[0].commodity.CHASH.BLOCKNUM
P[0] >-- (MaskTripleRequest) ---> CS commodity.CHASH.BLOCKNUM P[0] <-- (MaskTripleMaterial) --< CS P[0].commodity.CHASH.BLOCKNUM
P[0] >-- (EndCommodity) --------> CS commodity.CHASH.BLOCKNUM
func Initialize ¶
func Initialize()
func InitializeExternal ¶
func InitializeExternal()
func MarshalPublicKey ¶
func UnmarshalPublicKey ¶
Types ¶
type ChannelCrypto ¶
func (*ChannelCrypto) Decrypt ¶
func (c *ChannelCrypto) Decrypt(ciphertext []byte) []byte
func (*ChannelCrypto) Encrypt ¶
func (c *ChannelCrypto) Encrypt(plaintext []byte) []byte
type EndCommodity ¶
type EndCommodity struct { }
type FuncRequest ¶
type LeaveRequest ¶
type LeaveRequest struct {
Party
}
type MaskTripleCommodity ¶
type PairConn ¶
type PairConn struct { Nc *nats.Conn ChanMasterPRF cipher.Block // contains filtered or unexported fields }
NATS connection datatypes
func (*PairConn) CryptoFromTag ¶
func (p *PairConn) CryptoFromTag(tag string) ChannelCrypto
type RoomState ¶
type RoomState struct { Name string Sub *nats.Subscription Members []Party Hash []byte MpcFunc string }
var MyRoom *RoomState
type StartCommodity ¶
type StartCommodity struct {
Parties []Party
}
messages from clients to commodity server
type StartRequest ¶
type StartRequest struct {
Party
}
type TripleCommodity ¶
type TripleCommodity struct { }