Skip to content

Supporting more than 2 parties? #111

Open
@LennyHuang15

Description

@LennyHuang15

It's introduced in this paper Obliv-C: A Language for Extensible Data-Oblivious Computation that

our design can support any number of parties

However, when I try to simply change the codes like this (connecting both party-2 and party-3 to the port of party-1):

const int N_PARTY = 3;
if(*p_cp == 1) {
  for(int p = 2; p <= N_PARTY; p++)
    if(protocolAcceptTcp2P(p_pd, port) != 0) {
      log_err("TCP accept from %s failed\n", remote_host);
      exit(1);
    }
} else {
  if(protocolConnectTcp2P(p_pd, remote_host, port) != 0) {
    log_err("TCP connect to %s failed\n", remote_host);
    exit(1);
  }
}
// Final initializations before entering protocol
setCurrentParty(p_pd, *p_cp); // only checks for a '1'

I got an error when running execYaoProtocol:
(At party-2 and party-3)

a.out: src/ext/oblivc/obliv_bits.c:1041: setupYaoFixedKeyCipher: Assertion `ocRandomBytes(pd,gen,ypd->yaoFixedKey,klen,3-pd->thisParty)' failed

(At party-1)

TCP read error: : No such file or directory

Do this repo support more than 2 parties? If so, what are the correct codes? Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions