34 lines
848 B
C
34 lines
848 B
C
|
#ifndef H_MSG
|
||
|
#define H_MSG
|
||
|
|
||
|
#include "arith.h"
|
||
|
#include "hosts.h"
|
||
|
#include <stdint.h>
|
||
|
|
||
|
typedef struct {
|
||
|
uint8_t *data;
|
||
|
uint8_t len;
|
||
|
} packet;
|
||
|
|
||
|
// Convert a packet (recieved on the network) into a field element.
|
||
|
fp *packet_to_fp(packet *p);
|
||
|
|
||
|
// Convert a field element to a packet.
|
||
|
packet *fp_to_packet(fp *elem);
|
||
|
|
||
|
// Convert a char [len] array into a packet.
|
||
|
// Note: this is necessary for the commitments sent.
|
||
|
packet *to_packet(uint8_t *data, uint8_t len);
|
||
|
|
||
|
// Broadcast to all connections a packet.
|
||
|
void broadcast(struct host **conns, int num_conns, packet *data);
|
||
|
|
||
|
// Recieve from all connections a packet.
|
||
|
packet *recv_broadcasts(struct host **conns, int num_conns);
|
||
|
|
||
|
// Recieve from a single connection a packet. (Can use it for recieving the
|
||
|
// initial input opening for wires).
|
||
|
packet *recv_single_broadcast(struct host *con);
|
||
|
|
||
|
#endif
|