Coder Social home page Coder Social logo

mpc-sok / frameworks Goto Github PK

View Code? Open in Web Editor NEW
472.0 21.0 112.0 769 KB

Sample code and build environments for MPC frameworks

License: Other

Shell 9.22% Makefile 4.00% C++ 35.57% C 8.50% Python 9.99% Vim Script 1.12% CMake 5.69% Scala 1.17% SuperCollider 0.90% Dockerfile 3.64% HTML 2.76% JavaScript 17.45%
cryptography mpc smc

frameworks's People

Contributors

chart21 avatar danxinnoble avatar dymil avatar ggessner avatar gijsvl avatar gutjuri avatar marsella avatar mkskeller avatar mpc-sok avatar niekbouman avatar wangxiao1254 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frameworks's Issues

Jiff examples not working

Running any of the jiff examples gives me the following error. As I am not really familiar with node, I have no idea why this error arises and how to fix it. I'd be very grateful for help :)

root@964978ccb2bf:~/jiff# npm run-script test-demo -- demos/mult3    

> [email protected] test-demo /root/jiff
> ./demos/run-test.sh "demos/mult3"

Server logs at logs/mult3.log
/root/jiff/demos/mult3/server.js:11
require('../../lib/jiff-server').make_jiff(http, { logs:true });
                                 ^

TypeError: require(...).make_jiff is not a function
    at Object.<anonymous> (/root/jiff/demos/mult3/server.js:11:34)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)


  Test
    1) Exhaustive


  0 passing (116ms)
  1 failing

  1) Test
       Exhaustive:
     TypeError: jiff.make_jiff is not a function
      at Object.exports.connect (/root/jiff/demos/mult3/mpc.js:16:27)
      at Context.<anonymous> (/root/jiff/demos/mult3/test.js:130:11)
      at callFnAsync (/root/jiff/node_modules/mocha/lib/runnable.js:377:21)
      at Test.Runnable.run (/root/jiff/node_modules/mocha/lib/runnable.js:324:7)
      at Runner.runTest (/root/jiff/node_modules/mocha/lib/runner.js:442:10)
      at /root/jiff/node_modules/mocha/lib/runner.js:560:12
      at next (/root/jiff/node_modules/mocha/lib/runner.js:356:14)
      at /root/jiff/node_modules/mocha/lib/runner.js:366:7
      at next (/root/jiff/node_modules/mocha/lib/runner.js:290:14)
      at Immediate._onImmediate (/root/jiff/node_modules/mocha/lib/runner.js:334:5)
      at runCallback (timers.js:705:18)
      at tryOnImmediate (timers.js:676:5)
      at processImmediate (timers.js:658:5)



kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] test-demo: `./demos/run-test.sh "demos/mult3"`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] test-demo script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-05-26T18_50_37_333Z-debug.log

Switch reverts to checkouts

I'm not sure if there's standard protocol for this, but switch all the install.sh scripts to use git checkout rather than reverts. It leaves a cleaner git repo and makes it easier to switch back to the latest version (when applicable).

Test before committing.

  • emp-toolkit (figure out for each repo)
  • frigate (is there an equivalent for bitbucket?)
  • SPDZ
  • TinyGarble
  • Wysteria (bitbucket again)

Fix emp-toolkit build

Build currently fails for emp-tool with errors. This cascades to the rest of the container. Check EMP-toolkit docs for changes to syntax?

In file included from /root/emp-tool/emp-tool/emp-tool.h:15:0,
                 from /root/emp-tool/test/sha3_256.cpp:1:
/root/emp-tool/emp-tool/circuits/sha3_256.h: In function 'int emp::sha3_256(uint8_t*, const T*, size_t)':
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: error: there are no arguments to 'EVP_sha3_256' that depend on a template parameter, so a declaration of 'EVP_sha3_256' must be available [-fpermissive]
  const EVP_MD * algo = EVP_sha3_256();
                                     ^
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /root/emp-tool/emp-tool/emp-tool.h:15:0,
                 from /root/emp-tool/test/ecc.cpp:1:
/root/emp-tool/emp-tool/circuits/sha3_256.h: In function 'int emp::sha3_256(uint8_t*, const T*, size_t)':
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: error: there are no arguments to 'EVP_sha3_256' that depend on a template parameter, so a declaration of 'EVP_sha3_256' must be available [-fpermissive]
  const EVP_MD * algo = EVP_sha3_256();
                                     ^
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /root/emp-tool/emp-tool/emp-tool.h:15:0,
                 from /root/emp-tool/test/gen_circuit.cpp:1:
/root/emp-tool/emp-tool/circuits/sha3_256.h: In function 'int emp::sha3_256(uint8_t*, const T*, size_t)':
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: error: there are no arguments to 'EVP_sha3_256' that depend on a template parameter, so a declaration of 'EVP_sha3_256' must be available [-fpermissive]
  const EVP_MD * algo = EVP_sha3_256();
                                     ^
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /root/emp-tool/emp-tool/circuits/integer.h:69:0,
                 from /root/emp-tool/emp-tool/circuits/float32.h:5,
                 from /root/emp-tool/emp-tool/emp-tool.h:11,
                 from /root/emp-tool/test/hash.cpp:1:
/root/emp-tool/emp-tool/circuits/integer.hpp: In member function 'emp::Integer emp::Integer::operator^=(const emp::Integer&)':
/root/emp-tool/emp-tool/circuits/integer.hpp:263:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(size_t i = 0; i < size(); ++i)
                      ^
In file included from /root/emp-tool/emp-tool/emp-tool.h:15:0,
                 from /root/emp-tool/test/hash.cpp:1:
/root/emp-tool/emp-tool/circuits/sha3_256.h: In function 'int emp::sha3_256(uint8_t*, const T*, size_t)':
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: error: there are no arguments to 'EVP_sha3_256' that depend on a template parameter, so a declaration of 'EVP_sha3_256' must be available [-fpermissive]
  const EVP_MD * algo = EVP_sha3_256();
                                     ^
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:37: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/root/emp-tool/test/gen_circuit.cpp: In function 'void sort(int)':
/root/emp-tool/test/gen_circuit.cpp:28:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(uint64_t i = 0; i < n; ++i) {
                        ^
/root/emp-tool/emp-tool/circuits/sha3_256.h: In instantiation of 'int emp::sha3_256(uint8_t*, const T*, size_t) [with T = unsigned char; uint8_t = unsigned char; size_t = long unsigned int]':
/root/emp-tool/test/sha3_256.cpp:16:42:   required from here
/root/emp-tool/emp-tool/circuits/sha3_256.h:31:36: error: 'EVP_sha3_256' was not declared in this scope
  const EVP_MD * algo = EVP_sha3_256();

Add recommendations to framework READMEs

Since some people won't read the paper, it might be useful to have our recommendations here.

Was considering adding a star rating
*** = would recommend for general use (Sharemind, SCALE-MAMBA, Obliv-C )
** = some reservations (e.g. usability is bad, limited functionality, high cryptographic expertise recommended)
* = would not recommend (e.g. we couldn't implement all our sample programs)

Maybe lower the star rating for non-maintained frameworks.

Thoughts? @bhemen @danxinnoble

Can't generate inputs for ABY mult3 example program

I'm trying to run and play with the basic example programs for the ABY framework. I was able to successfully build the docker image and run it. However, when I run the command
python ~/ABY/src/examples/geninput.py -e <ex>, I get the following error message on my bash shell bash: syntax error near unexpected token newline. How do I attempt to fix this?

print_ln wat not executed after run ./Player.x

Hi, I'm a beginner of SCALE-MAMBA. It looks like the innerprod.mpc is not executed after run ./Player.x

./Player.x 0 Programs/innerprod -pnb 7000

Output:

(Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player1.crt
P1
1
127.0.0.1
Player2.crt
P2


p=1073872897
sm::0:: loading certificate from Cert-Store/Player1.crt
Opening file Programs/innerprod/innerprod.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/innerprod/innerprod-0.bc

The source code of innerprod.mpc:

sum = sint(0)
aaaas = sint.Array(10)
bbbbs = sint.Array(10)

for i in range(10):
  aaaas[i] = sint(i) # sint.get_private_input_from(0)
  bbbbs[i] = sint(i*2) # sint.get_private_input_from(1)
  

for i in range(10):
  sum = sum + (aaaas[i] * bbbbs[i])

print_ln("InnerProd: %s", sum.reveal())

Where is the result output from print_ln("InnerProd: %s", sum.reveal()) ?

Some questions about Frigate and Semi-Honest-BMR

Hi Marcella,
Thanks for your work! This project is really amazing!
I'm a new MPC learner. My questions are as follows:

  1. I see there are 3 types in Frigate's type system. I'm wondering whether this framework supports floats.
  2. After running the mult3 program, I want to ask where is the result. Besides, how to get the random secret key <Key>. Here I didn't set this parameter.
    EJXYQ`G$7)NZ3$0BU U84M
  3. My inputs are 0010, 1110, and 1111. Does this multiplication circuit really contain 18242 AND gates and 36110 XOR gates?
  4. I've learned the paper "Optimizing Semi-Homest Secure Multiparty Computation for the Internet". The document README.txt contains very limited description. It's hard for me to understand and run the code. I would really appreciate it if you could recommend some examples or projects about this implementation.
    BTW, about the version of bison, 2.5.12 wouldn't work and 3.8 could.
    Thanks for your attention!

add aby3 framework

See branch add-aby3.

Current status: builds correctly, 2/3 sample programs, partial documentation in wiki.

To do: get Tables working in xtabs example, finish filling out tables (documentation).

Binary vs source releases

For frameworks that are released in both binary and source, which one is preferred for the installation scripts?

Output bits

How can I know the output bits for CBMC-GC-2? There doesn't seem to be any output file for it.

Add table(s) to wiki

At least Table 1 from the paper would be valuable to have in the wiki, to keep updated as new frameworks come out.

Copy this over from the paper, add existing frameworks (spdz, mp-spdz), consider adding other frameworks that aren't open-source yet (ezpc, hycc, aby3).

Update framework versions

Some frameworks have been updated by their maintainers, yet this repository still contains examples for old versions.
This is problematic, as some of our examples ceased working and are thus no longer useful.

Additionally, the base image versions used in our Docker images are often rather old.
However, users are typically concerned whether or not the framework in question is able to run on current software stacks.

For this reason we should update our examples to utilise 1) a recent version of the framework in question 2) a recent docker base image. We track progress in this issue.

Some frameworks do not work with recent (>= Ubuntu 20.04) docker base images (because of dependencies etc.):

  • frigate

ObliVM default mode

ObliVM seems to run some circuit verification mode by default instead of actual garbled circuits when run on Linux. Should this be changed?

Add actual licenses to tables

Some people care about the specific license, beyond just whether it's open source or not. Add this to the tables in the wiki.

How to run AES.mpc?

hey
I would like to ask how to run aes.mpc with mp-spdz in the docker๏ผŸ
I don't know how to choose the protocol to run AES๏ผŒand the number of parties and the format of operation like the example of mult3.mpc
Maybe its a low-level question ๐Ÿ˜„
Thank you for your reply

ABY innerproduct does not match expected results.

I noticed some mismatch when running the innerprod example for ABY. Occasionally the expected value returned after running python ~/ABY/src/examples/geninput.py -e innerprod doesn't match the circuit result from running ./ABY/build/bin/innerprod_test -r 0 & ./ABY/build/bin/innerprod_test -r 1.

Reported by PFW, verified by me.

Possible fix: update to the latest ABY version.

SCALE-MAMBA compile failed

When I run the command that docker build -t scalemamba .,
make progs in the install.sh script has errror:

OT/exROT.cpp: In member function 'void exROT_Sender::next_iteration(Player&, unsigned int, std::vector<std::vector<gf2n> >&)':
OT/exROT.cpp:61:49: error: no matching function for call to 'ceil(unsigned int)'
   unsigned int nbBlocks= ceil(size / OT_comp_sec);

What is the cause of it๏ผŸ

Frigate: find a different solution for evaluating circuits

As Frigate lacks a way to execute the circuits it generates, an additional tool for execution is required. Currently, we use a Semi-Honest-BMR implementation found here: https://github.com/cryptobiu/Semi-Honest-BMR

However, this project has not been updated in >7 years and does not compile under Ubuntu >18.04 (see this issue: cryptobiu/Semi-Honest-BMR#2).
As we aim to keep the provided MPC-examples compatible with current OSes, some action is needed:
Either, we need to fix the build process of the Semi-Honest-BMR implementation on recent OSes, or move to a different tool for executing circuits compiled by Frigate.

ABY Docker container link is out of date

Thank you for the comprehensive work with these frameworks, really helpful!

The error occurs while trying to install Boost. Particularly,

wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.bz2

--2021-06-22 12:13:49--  https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.bz2
Resolving dl.bintray.com (dl.bintray.com)... 34.218.153.129, 34.223.170.36, 35.161.90.47, ...
Connecting to dl.bintray.com (dl.bintray.com)|34.218.153.129|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2021-06-22 12:13:50 ERROR 403: Forbidden.

Apparently this has been an issue for a while, dl.bintray.com not being reliable. Fetching from the official repo seems to work.

wgethttps://boostorg.jfrog.io/artifactory/main/release/1.66.0/source/boost_1_66_0.tar.bz2

add fresco framework

See branch add-fresco.

Current status: Sample programs all completed.

To do: figure out how to run sample programs, document runtime details, document tables in wiki.

Issues in oblivm

I want to run some examples in oblivm framework. However, I meet two issues:

  1. when i run this command:
    ./run-compiler.sh [PORT] examples/<program>/<program>.lcc
    it come out :
    Exception in thread "main" java.lang.NumberFormatException: For input string: "[PORT]" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at com.oblivm.compiler.cmd.Cmd.main(Cmd.java:68) javac: no source files
    when i delete [PORT], it come out:
    [INFO] Compilation finishes successfully. javac: no source files Usage: javac <options> <source files>

  2. when I want to run:
    ./runtogether.sh examples/<program>/input_alice.txt examples/<program>/input_bob.txt
    there is no runtogether.sh file.

I am a new researcher, maybe the question is too simple, but it bother me a lot. Thanks for answer!

xtabs on PICCO

hey,

I got a question regarding the xtabs test program.
Why are you not considering every element for bin-summing to obfuscate data correlations, as you do in xtabs on sharemind for example. The test here is only summing up, if their id matches and only sums the actual bin. I would interpret you can deduce equivalence of the ID and later somehow which bin it belongs? So, doesnt this reveal information about the input data and/or its structure? In the sharemind xtabs you do an oblivious transfer to obfuscate.
I thought, you might not consider doing this, as PICCO employs Mux for private index, but isnt this a public index here, so shouldn't apply? Any help/explanation appreciated.

some other issues I encountered while trying to make the example run (are not related to you, rather to picco):

  • two dim input arrays are not two lines of input with many comma separated values; convenience issue; rather it is really first dimension = row; resulting in many lines for the xtabs example; picco-utility doesn't check or catch for violation of this dimensionality,
    even though, it could know what to expect
  • further, I have observed that the created shares correlate; same input for two input-providers create same shares; So a computation node can deduce, at least, that some of the input of 1 is equal to input 2; why would you want to accept that?

Kind regards

add ezpc framework

See branch add-ezpc.

Current status: dependencies installed, don't think the framework compiles yet.

Still needs: successful build, sample programs, documentation.

SCALE-MAMBA docker image building issue

Hi, I tried docker build -t scalemamba . and then start the container. However, there was no SCALE-MAMBA folder in the container. I noticed that the second line in install.sh file did not specify the path where should SCALE-MAMBA be cloned to:

# download SCALE-MAMBA v1.5
cd  
git clone https://github.com/KULeuven-COSIC/SCALE-MAMBA.git
...

So I changed it to

# download SCALE-MAMBA v1.5
cd  ~
git clone https://github.com/KULeuven-COSIC/SCALE-MAMBA.git
...

Seems to fix the problem.

mpyc mult3.py example gives result different from expected when M > 3

For instance:
root@c609d1fbbcde:~/source# python mult3.py -M 6
2021-11-24 11:51:28,496 Start MPyC runtime v0.7
2021-11-24 11:51:28,830 All 6 parties connected.
player 0 input: 4000
expected: 64000000000
result: -740248758255576370955515465
2021-11-24 11:51:28,885 Stop MPyC runtime -- elapsed time: 0:00:00.388515

The command 'bash install.sh' returned a non-zero code: 2

after i typed the command line: "docker build aby" ,error occurred:
CMake Error at /usr/share/cmake-3.12/Modules/FindBoost.cmake:2048 (message):
Unable to find the requested Boost libraries.
Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost or BOOST_INCLUDEDIR to the directory containing
Boost's headers.
Call Stack (most recent call first):
extern/ENCRYPTO_utils/CMakeLists.txt:24 (find_package)
OTExtension was not found: add OTExtension subdirectory
-- Configuring incomplete, errors occurred!
See also "/root/ABY/build/CMakeFiles/CMakeOutput.log".
See also "/root/ABY/build/CMakeFiles/CMakeError.log".
make: *** No targets specified and no makefile found. Stop.
The command 'bash install.sh' returned a non-zero code: 2

how can solve it? thank you

emp docker image cannot be build on all platforms

Hi, first of all great project! Building the docker images often does not work for me even on different machines with different OS. I tried Ubuntu 20.04.2.0, MAC OS, Windows 10. Building the EMP docker image fails at the last step on all platforms. Below are the relevant logs when building the image on MAC OS. Does anyone know how to get it running?

=> ERROR [8/8] RUN ["bash", "install.sh"] 100.7s

#12 98.98 -- Found emp-tool: /usr/local/include
#12 98.99 -- Found emp-ot: /usr/local/include
#12 98.99 -- Found emp-sh2pc: /usr/local/include
#12 99.00 -- Found EMP-AG2PC: /usr/local/include
#12 99.00 -- Configuring done
#12 99.01 -- Generating done
#12 99.01 -- Build files have been written to: /root/ag_test
#12 99.06 Scanning dependencies of target mult3.ag2pc
#12 99.07 [ 25%] Building CXX object CMakeFiles/mult3.ag2pc.dir/test/mult3.ag2pc.cpp.o
#12 100.0 In file included from /root/ag_test/test/mult3.ag2pc.cpp:3:0:
#12 100.0 /root/ag_test/test/single_execution.h: In function 'void test(int, T*, std::__cxx11::string, std::__cxx11::string)':
#12 100.0 /root/ag_test/test/single_execution.h:41:2: error: 'CircuitFile' was not declared in this scope
#12 100.0 CircuitFile cf(file.c_str());
#12 100.0 ^
#12 100.0 /root/ag_test/test/single_execution.h:43:28: error: 'cf' was not declared in this scope
#12 100.0 C2PC twopc(io, party, &cf);
#12 100.0 ^
#12 100.0 /root/ag_test/test/mult3.ag2pc.cpp: In function 'void test(int, emp::NetIO*, std::__cxx11::string, std::__cxx11::string)':
#12 100.0 /root/ag_test/test/mult3.ag2pc.cpp:12:2: error: 'CircuitFile' was not declared in this scope
#12 100.0 CircuitFile cf(file.c_str());
#12 100.0 ^
#12 100.0 /root/ag_test/test/mult3.ag2pc.cpp:16:32: error: 'cf' was not declared in this scope
#12 100.0 C2PC twopc(io, party, &cf);
#12 100.0 ^
#12 100.6 CMakeFiles/mult3.ag2pc.dir/build.make:62: recipe for target 'CMakeFiles/mult3.ag2pc.dir/test/mult3.ag2pc.cpp.o' failed
#12 100.6 make[2]: *** [CMakeFiles/mult3.ag2pc.dir/test/mult3.ag2pc.cpp.o] Error 1
#12 100.6 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mult3.ag2pc.dir/all' failed
#12 100.6 make[1]: *** [CMakeFiles/mult3.ag2pc.dir/all] Error 2
#12 100.6 Makefile:83: recipe for target 'all' failed
#12 100.6 make: *** [all] Error 2

executor failed running [bash install.sh]: exit code: 2
The terminal process "/bin/bash '-c', 'docker build --pull --rm -f "frameworks/emp/Dockerfile" -t emp:latest "frameworks/emp"'" terminated with exit code: 1.

Clean up EMP-toolkit returns

Returning values as a string works most of the time. Figure out what situations it doesn't work and rewrite examples to print results as strings of the decimal number (rather than bitwise representations).

SCALE-MAMBA README ambiguous

I'm trying to use the SCALE-MAMBA Docker image to try out the example programs. I've tried two different setup variants and they have both failed on mult3. I tried:

4 parties, Shamir @ 1
2 parties, Full Threshold

In both executions of mult3, I got the following error:

terminate called recursively
terminate called recursively
terminate called recursively
terminate called after throwing an instance of 'terminate called recursively

The README is a little ambiguous, because it recommends to use Shamir sharing but then a sample execution with two parties:

$ ./Player.x 0 Programs/innerprod & ./Player.x 1 Programs.innerprod

However, Shamir sharing requires 0 < t < 1 for a 2-party MPC setup.

Any ideas how I can tweak the setup to run the provided examples?

Logs

2 party, Shamir (impossible)

$ docker run -it --rm scalemamba
root@35e641e609d2:~# cd SCALE-MAMBA/
root@35e641e609d2:~/SCALE-MAMBA# ./Setup.x
What do you want to set up?
	1) Certs
	2) Secret Sharing
	3) Conversion circuit for LSSS<->GC computations
	4) All three

Enter a number (1-4)..
4
Enter the name of the root CA (e.g. RootCA)
RootCA
Cert is
-----BEGIN CERTIFICATE-----
MIIFFTCCAv2gAwIBAgIULt5kq4V1vAVKxxOWfc4Jq8ZX1lgwDQYJKoZIhvcNAQEL
BQAwGjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMB4XDTIwMDcyMjEzMjEwOFoX
DTI1MDcyMjEzMjEwOFowGjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArxTqSpqYYbmBEo7MePQT6L0A6kfT
KUdjrJ2rlGVfpGvH7tUyyE4DOF3F6MXM9mHvjMvqEWARWehkhGhutAmGDh2bZDkt
KyaJyN4LDC/dCcQScx+5l38cCeSRrNxB2wf6qcgLN80ohQy9OJGstIQx+DTbqy0c
YTSDWn0PEJRt/q8Gy9F8HxW7/UrDxi8eaC8NboZ6V+zRxyuzRBIH85G4CvZ/gy6f
3rWRLKDqFHGoOdzRl1gwvdlsLQTNwI+GO3At1IhtoAr+Atd249bWKOpOExJMXyFI
+Ow6XuBBJWpVKHpE6lpqYQN8H+s3eDsXl6N8aRk2cuKDmkWw43f9VsDcud4Bdwe4
6szWTl494vif3YpKs0vnQxfKjwsICGfGIGWZsfaZrcTK/JdnCfoUM1ARg0CJBSEk
hXofgJsXHs7ic3KEjRHNQqRGwCce6fFwKvGHv0J6S84GsL63IFcm6g0/g0JxVXVu
su1yC/GLc8uqraObAMASa1QqpHUJpTWmfJPXOECzBH3Ov+ukGV2IzTMDSNIjGNYx
4yoCBdOqkrEVJw2rWDkATLlKlgpSEt2I6Y8aM8WdEFH66fG1V7IwPbfcdHC8frpp
5JEvRVNgX343ZPHkysWF8YZr4DQG6l+/85XNYWZlQT7g4WpyjdznjbG4WJJ96ySG
OywgoXM/+kbXAW8CAwEAAaNTMFEwHQYDVR0OBBYEFI3As5PtX5hsxUb8OwCHucAR
bgrzMB8GA1UdIwQYMBaAFI3As5PtX5hsxUb8OwCHucARbgrzMA8GA1UdEwEB/wQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggIBAKI33RSibK2Fel0Jx++1JpoJqTggxqGj
KQT6bPhWd3iL3EOEk5KzHiyWa2XygjAnmR68vilSh731SxCPp0gDl0ocSj3GioaC
ZwKuOrYr8AlNriyJvDAEvIHudV9YgeoKXHBzlpkn2fwbqFgM4H+kcb+pKHG+W11B
B5cd7lBE74lpKWcZ/dXLTu+I4DFf2KrWU0NPMcrKfjOMjjyfaQyuR0/77/qaRjYy
UiuM+3RuLqyh/1T0Q5OgiVALvOabKunD7iXnIYe1L3SBYtXr29r3IZp5r2HhwIVn
j2Y1pFWWHxSruEQuXFyUYTKNCSlA0M7cdxKgqPMciXuj0xtFhIyH7V1sfd0R2pGk
kCQa1qJUFde1NLyfAlc/6eKPu66Cm22GZoxMQIZsQdTKBndLES44775q0Nj/9b8r
S0rCiUkh7YfojJuI4fnHbexIq7iQhCLmY1QbyPX8sXh4LF89AX7Wxcj3ueDMl0i6
PjfBmKZXLxpxPQ+DgcemCzFIqNBpP1HeNvG1HLTafQFE3tOILADc+9z5YSlfUIn/
WDg/VCF5PsWhvrxtEzIYNrO3ml0iWQ2wNVCmsoLT7bXXJjlU87KwIZ2d0voZP3MX
MkyQoQSop5S9HpeMn9RnHc+w209mmDG6fiI3DZECmwVUpg/zdJ8ZyYgmairoLyR1
6zF5mKcu1moY
-----END CERTIFICATE-----

Number of players (2--100) :
2
For each player now enter:
	 IP address (127.0.0.1) for localhost
	 The certificate name for this player


Player 0
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player0.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgPyMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjBAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDuRxUg9/d4uCiDFY5xj6cpNsCbIVsM4dz7a8PHEYkNGBdHWAPVTufu
TElJEaLBK+AtzxYdzjBpYRlPpEb1NMbtVDrOJx86JB02c0yCWymduex9WEilbAet
gkEZsleFqMeGgSC97ZPF9GOoi49r2wjg0A9IOr09vzeqdMO7au9n2jAjLcf7oFBl
fHWVfegN1gyF8HWTyZMJ02VNQpXkjhfKN/JG+oe1k6YceYpMQ7fwwtq7KXMoYzjB
+wtELE5I61OmxK1rO1SzIjY4c6j909GDSHCAPhIyjYFSpOKyjqyuLFnMvGjQjTAf
rLz2AwCJ2xVoatVcD8cEOmG4k8dR8EkxAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AEPRvoWS0f1LLDuRr/aLhnWsvOmg6F/CJV+j6OU4/AzesMUCP7HYa7b4CTOZmrjU
m88SK38Hof9hd60YbvUOQlNazo4hBxTnkcsmWXgqLdHEpN3pY/ltviM6K3rlE2wv
eVIzC6BDy1CfJXHDzXV1r74xZ+Zkjwiu5eI4zpLflLsAkg3zY+fGXoAJe8zX+ab3
z0alLJwajEiBxp9oOAkUzmrH12/f3rpTLDTa9EMt1gKHbFg3FKxKxXrAak7o3Akc
mx2J1PxXwlmmliZpcbz43yAJHz2iMrVznI0YU2gf+tnNmXLe/uxTyilcYAMmtv7L
SvIzDzjLO2vuZH8XeCAOeU6Rk3zqOGEG3ZXABILUt72H4EmBB4n+TJp/QiDfPclY
l/lgAksGxSKVlcEMXvMSQFKRsrV+jY2866KjKE8pjCLmDRiDGL5L9SJvLLchScty
y43+VWUPJKPPCBdL+F+2h5oaRlLPGBVajxZzlvzI/kWhWMKoCkDb/v9eSG4yfp0Y
QsgUsfFbb1B0TxhIwZPIwWu5KtV0TIuAKCbldd8XgFcp3E9fe8NWUho34ZB6qjYm
av+ycRdBUIuUmMSci9+3fEhAJLr00h5TnVdanfNaEJodY8f/og9zA5WRcvHcDpMR
Kt93fy0yLrWMXrWAJMqc11NnjAE+upGh0nJqBX3SHxr0
-----END CERTIFICATE-----

Common name in certificate is [email protected]


Player 1
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player1.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgPzMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjFAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQC8CM2j2Cd7kMW9pOBkUG2xWvrr4xeKVzNLtXCFJCJYhk+I1ssv8GVM
LGvs1z5PN9KF/2j+EsN92fV7LPPYPxxQuapCPck8jqx3dsso14u36Wu/1xhG3Btu
OzdogT/OUFy6bkxAwER0JAiFy/hQKuI9duBhwLK/iexyrvJx09gE3A11xYqWbhOC
wzLyJ0E2M8gtXbR2J3kZWEu75MHmm3iOSGUOFqix+/r+lUmYDUOfd0/pU2k4z+I6
bPOWou03dWJQAVjTdA7bLqfavqS4WpMXZ6T3HSOdvh3vpkkfHo79RS9Tc3d9jtuX
qdNUS794PEgLToi6I1Tdr7G+dDgw5PMFAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AAyBXIb5cXviOUrwnfL0UJyifGfhM0fBeB5bDbQ5FjPSAzbyCbggXDs6SG3wiSob
PnrqkpwEuwL25eLfdsPnUuZQWU0+8aEAFzfKw1IA8AC8k1wH+wQWHZbT6Py7Kw1l
9nS5h90dha2oYQ0mZPTPOGIWOsqaj0OqmcuN81Ikvcy8e4tcebqH+EfqKKzGQQzv
JSt5mQJN0xjT0d1LHl+W6up9QxYiL4bntAND7tGK3bS7DtZ489B2fjRkizMP64p4
sVURP/7tcWdWqbJyW3JyG45AghLOduXimeO2uaPHaQaj+ztAqN9n94LNQoMa4lxV
tRQSJsG+EGAsWvJ5NS/PMZQL07nIeDvn9da+KLNF1XmZQfmbEqT8/7gDwy3n1qyC
pfWYKIdfbDxo3fue1D+sJXukG9FR6+m121dLiMWCm9ZWfTWtQOi7ln6rr0D6SY+N
Z5Tb9rictTa930DwZ/V7SHXTxGTgUiKCutyZOOWzF5jmAFi2DWxx8mdlp6DKngtw
2zFsLtYGKYEV5hsobLVWAPuvzVFcG4IK43RLWRN2NswU3wqe2/qW2b6cBFlhrMMS
blVaouAtCKHOONXHO59XuMWsMr5US6DMXxAk7yI4J3lT+mZAnXP1ysTwLs0uByAi
95ZgEKgaaBBFsskL0gRYMiS/MNkxoJNQdPAWX5YPDjXQ
-----END CERTIFICATE-----

Common name in certificate is [email protected]
Number of players = 2

Choose which LSSS you want...
	1) Full Threshold
	2) Shamir
	3) Replicated
	4) General Q2 MSP
Enter a number (1-4)..
2

What modulus do you want to use for secret sharing?
2147483999
Using modulus p=2147483999
Enter threshold 0 < t < 1
0
Enter threshold 0 < t < 1
1
Enter threshold 0 < t < 1

4 party, Shamir (t = 1)

$ docker run -it --rm scalemamba
root@4c09229c8a63:~# cd SCALE-MAMBA/
root@4c09229c8a63:~/SCALE-MAMBA# ./Setup.x
What do you want to set up?
	1) Certs
	2) Secret Sharing
	3) Conversion circuit for LSSS<->GC computations
	4) All three

Enter a number (1-4)..
4
Enter the name of the root CA (e.g. RootCA)
RootCA
Cert is
-----BEGIN CERTIFICATE-----
MIIFFTCCAv2gAwIBAgIULt5kq4V1vAVKxxOWfc4Jq8ZX1lgwDQYJKoZIhvcNAQEL
BQAwGjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMB4XDTIwMDcyMjEzMjEwOFoX
DTI1MDcyMjEzMjEwOFowGjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArxTqSpqYYbmBEo7MePQT6L0A6kfT
KUdjrJ2rlGVfpGvH7tUyyE4DOF3F6MXM9mHvjMvqEWARWehkhGhutAmGDh2bZDkt
KyaJyN4LDC/dCcQScx+5l38cCeSRrNxB2wf6qcgLN80ohQy9OJGstIQx+DTbqy0c
YTSDWn0PEJRt/q8Gy9F8HxW7/UrDxi8eaC8NboZ6V+zRxyuzRBIH85G4CvZ/gy6f
3rWRLKDqFHGoOdzRl1gwvdlsLQTNwI+GO3At1IhtoAr+Atd249bWKOpOExJMXyFI
+Ow6XuBBJWpVKHpE6lpqYQN8H+s3eDsXl6N8aRk2cuKDmkWw43f9VsDcud4Bdwe4
6szWTl494vif3YpKs0vnQxfKjwsICGfGIGWZsfaZrcTK/JdnCfoUM1ARg0CJBSEk
hXofgJsXHs7ic3KEjRHNQqRGwCce6fFwKvGHv0J6S84GsL63IFcm6g0/g0JxVXVu
su1yC/GLc8uqraObAMASa1QqpHUJpTWmfJPXOECzBH3Ov+ukGV2IzTMDSNIjGNYx
4yoCBdOqkrEVJw2rWDkATLlKlgpSEt2I6Y8aM8WdEFH66fG1V7IwPbfcdHC8frpp
5JEvRVNgX343ZPHkysWF8YZr4DQG6l+/85XNYWZlQT7g4WpyjdznjbG4WJJ96ySG
OywgoXM/+kbXAW8CAwEAAaNTMFEwHQYDVR0OBBYEFI3As5PtX5hsxUb8OwCHucAR
bgrzMB8GA1UdIwQYMBaAFI3As5PtX5hsxUb8OwCHucARbgrzMA8GA1UdEwEB/wQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggIBAKI33RSibK2Fel0Jx++1JpoJqTggxqGj
KQT6bPhWd3iL3EOEk5KzHiyWa2XygjAnmR68vilSh731SxCPp0gDl0ocSj3GioaC
ZwKuOrYr8AlNriyJvDAEvIHudV9YgeoKXHBzlpkn2fwbqFgM4H+kcb+pKHG+W11B
B5cd7lBE74lpKWcZ/dXLTu+I4DFf2KrWU0NPMcrKfjOMjjyfaQyuR0/77/qaRjYy
UiuM+3RuLqyh/1T0Q5OgiVALvOabKunD7iXnIYe1L3SBYtXr29r3IZp5r2HhwIVn
j2Y1pFWWHxSruEQuXFyUYTKNCSlA0M7cdxKgqPMciXuj0xtFhIyH7V1sfd0R2pGk
kCQa1qJUFde1NLyfAlc/6eKPu66Cm22GZoxMQIZsQdTKBndLES44775q0Nj/9b8r
S0rCiUkh7YfojJuI4fnHbexIq7iQhCLmY1QbyPX8sXh4LF89AX7Wxcj3ueDMl0i6
PjfBmKZXLxpxPQ+DgcemCzFIqNBpP1HeNvG1HLTafQFE3tOILADc+9z5YSlfUIn/
WDg/VCF5PsWhvrxtEzIYNrO3ml0iWQ2wNVCmsoLT7bXXJjlU87KwIZ2d0voZP3MX
MkyQoQSop5S9HpeMn9RnHc+w209mmDG6fiI3DZECmwVUpg/zdJ8ZyYgmairoLyR1
6zF5mKcu1moY
-----END CERTIFICATE-----

Number of players (2--100) :
4
For each player now enter:
	 IP address (127.0.0.1) for localhost
	 The certificate name for this player


Player 0
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player0.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgPyMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjBAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDuRxUg9/d4uCiDFY5xj6cpNsCbIVsM4dz7a8PHEYkNGBdHWAPVTufu
TElJEaLBK+AtzxYdzjBpYRlPpEb1NMbtVDrOJx86JB02c0yCWymduex9WEilbAet
gkEZsleFqMeGgSC97ZPF9GOoi49r2wjg0A9IOr09vzeqdMO7au9n2jAjLcf7oFBl
fHWVfegN1gyF8HWTyZMJ02VNQpXkjhfKN/JG+oe1k6YceYpMQ7fwwtq7KXMoYzjB
+wtELE5I61OmxK1rO1SzIjY4c6j909GDSHCAPhIyjYFSpOKyjqyuLFnMvGjQjTAf
rLz2AwCJ2xVoatVcD8cEOmG4k8dR8EkxAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AEPRvoWS0f1LLDuRr/aLhnWsvOmg6F/CJV+j6OU4/AzesMUCP7HYa7b4CTOZmrjU
m88SK38Hof9hd60YbvUOQlNazo4hBxTnkcsmWXgqLdHEpN3pY/ltviM6K3rlE2wv
eVIzC6BDy1CfJXHDzXV1r74xZ+Zkjwiu5eI4zpLflLsAkg3zY+fGXoAJe8zX+ab3
z0alLJwajEiBxp9oOAkUzmrH12/f3rpTLDTa9EMt1gKHbFg3FKxKxXrAak7o3Akc
mx2J1PxXwlmmliZpcbz43yAJHz2iMrVznI0YU2gf+tnNmXLe/uxTyilcYAMmtv7L
SvIzDzjLO2vuZH8XeCAOeU6Rk3zqOGEG3ZXABILUt72H4EmBB4n+TJp/QiDfPclY
l/lgAksGxSKVlcEMXvMSQFKRsrV+jY2866KjKE8pjCLmDRiDGL5L9SJvLLchScty
y43+VWUPJKPPCBdL+F+2h5oaRlLPGBVajxZzlvzI/kWhWMKoCkDb/v9eSG4yfp0Y
QsgUsfFbb1B0TxhIwZPIwWu5KtV0TIuAKCbldd8XgFcp3E9fe8NWUho34ZB6qjYm
av+ycRdBUIuUmMSci9+3fEhAJLr00h5TnVdanfNaEJodY8f/og9zA5WRcvHcDpMR
Kt93fy0yLrWMXrWAJMqc11NnjAE+upGh0nJqBX3SHxr0
-----END CERTIFICATE-----

Common name in certificate is [email protected]


Player 1
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player1.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgPzMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjFAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQC8CM2j2Cd7kMW9pOBkUG2xWvrr4xeKVzNLtXCFJCJYhk+I1ssv8GVM
LGvs1z5PN9KF/2j+EsN92fV7LPPYPxxQuapCPck8jqx3dsso14u36Wu/1xhG3Btu
OzdogT/OUFy6bkxAwER0JAiFy/hQKuI9duBhwLK/iexyrvJx09gE3A11xYqWbhOC
wzLyJ0E2M8gtXbR2J3kZWEu75MHmm3iOSGUOFqix+/r+lUmYDUOfd0/pU2k4z+I6
bPOWou03dWJQAVjTdA7bLqfavqS4WpMXZ6T3HSOdvh3vpkkfHo79RS9Tc3d9jtuX
qdNUS794PEgLToi6I1Tdr7G+dDgw5PMFAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AAyBXIb5cXviOUrwnfL0UJyifGfhM0fBeB5bDbQ5FjPSAzbyCbggXDs6SG3wiSob
PnrqkpwEuwL25eLfdsPnUuZQWU0+8aEAFzfKw1IA8AC8k1wH+wQWHZbT6Py7Kw1l
9nS5h90dha2oYQ0mZPTPOGIWOsqaj0OqmcuN81Ikvcy8e4tcebqH+EfqKKzGQQzv
JSt5mQJN0xjT0d1LHl+W6up9QxYiL4bntAND7tGK3bS7DtZ489B2fjRkizMP64p4
sVURP/7tcWdWqbJyW3JyG45AghLOduXimeO2uaPHaQaj+ztAqN9n94LNQoMa4lxV
tRQSJsG+EGAsWvJ5NS/PMZQL07nIeDvn9da+KLNF1XmZQfmbEqT8/7gDwy3n1qyC
pfWYKIdfbDxo3fue1D+sJXukG9FR6+m121dLiMWCm9ZWfTWtQOi7ln6rr0D6SY+N
Z5Tb9rictTa930DwZ/V7SHXTxGTgUiKCutyZOOWzF5jmAFi2DWxx8mdlp6DKngtw
2zFsLtYGKYEV5hsobLVWAPuvzVFcG4IK43RLWRN2NswU3wqe2/qW2b6cBFlhrMMS
blVaouAtCKHOONXHO59XuMWsMr5US6DMXxAk7yI4J3lT+mZAnXP1ysTwLs0uByAi
95ZgEKgaaBBFsskL0gRYMiS/MNkxoJNQdPAWX5YPDjXQ
-----END CERTIFICATE-----

Common name in certificate is [email protected]


Player 2
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player2.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgP0MA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjJAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQC+gmDKqj+JFKQ9SXh4LR5fm7TTfdzK9IoIYwxLnIQ9kE2rHqfkoLNj
xp7IZtwnMRyFZLuGGDKS5vPjYZMm0FlEiEhrcq3zCo3g+h4j2PksNoIn1QcB9xSG
YrX0QpQSa/2ChWnTEeoMTuaFFSbx/0nl5roqu1EWt09IyKWVlikonzmyHyK9mIG/
tefe3TfLcNqu+hEpyWV3TrSN1CKT7qfYzlZ1pUl8GyDXYq4X+NGhOQtMohQlK2tE
cb1DF2M6fIo0Spu9fAhPa8T9qTMxDhKXkQhTA7VV8vIlUC8FlM19QNvMCB3udoBI
gz/87MEUSolYnu0TOf2wzf+x6g0I37wZAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AI+cRGtXdV7tgl7I7ZShJYLUUv0YIiOT8IJShh3Ri3OD1ZTgx0yMK/PzG6orgXmG
teGSRGoXVEWy4NhXEV0syS7REHsVdkgEyRQ9fHWH6Uiy+OqwVf99ZZh20AUjVHa1
JtsS6tkmJ/F1JubmQCN8kd1n3SfNsoVAWS3AF0/4hQzEo1br8yqB8v8RFILsHFZD
WjcuHYuMGRJuEMz0Ie6zRclR2Qa3ANWTH4iFTsRHOVC5SztIv+KS/OW0FkaSV/PH
06zYz/xItvXDN6iN38+NrNNHvSURgqcUY32s3trVXbH5YwNn0iT9mnRmqasbqYb5
cenJjAAjGpzZkrJRjPWFybw+zViMVoFyF/SZx4RLhv4mWG35049Y6h74209/WVQO
F/hZoWOxr7KpALJ2A8PCgrHlotGY6dWvMsdt2iEX9xzgkm4STPy6k5agdlzrjrQt
OZ2KEtkXpsf9bDDmUC2dFswVjlWzx4PY2E91yCJvrJMv+QgcA9jGiaylvvhP3r5o
YcweEB6Imx1qxGqYLEEz04SOOlWxK9o7myxgd5n4zsogJnV/axm9UbKjQVFNuG4/
dKasBeD3sZ4LJZI/MS0UxaxffS+DztbzuIph/HS69Q1Hv0fKI8Rf7qvxsIjIkFbz
K6qGk00NwWOjKDShGMT7MWNg5r0gVFmmiM+zPv85MnHP
-----END CERTIFICATE-----

Common name in certificate is [email protected]


Player 3
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player3.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgP1MA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjNAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCmbVlZIoiu7OxJVgXOcRCjlPi/4+EJXjIcqBafyGaNQq8s266DQzfg
bVw1r07/1jcA/V6iNWu9m3ggjqDXcEkCwrqlZZgNe0LexkOlw8RmMnIXly2YPkZv
rxDWSAjGbKDFgswLUZMy1DQ0sD6Cl/t7iygPxjrVbxI0V1M+Ml1vswZpHVG1Y9TA
lrzWXpkXMkjiMGiOGAO3DlOjoXsduJC+/Trs8JSHfVtyJkjNSWbBySI3GcNQNk2b
CbWTNVN72+TIzEYBeFeANSjNG6KJWn5Jghb+yLc8fMQTAcP9O0qcXtOcGwYYdUAc
h6zeLXky2NfsMLNCYzSD3Fq1BWBdnDpNAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
ADREyZhfl9QrlsU62fJur1fVPwyIbNIatuYmkiuOsA9pw3QdaTcn17VgVIjD4/R/
fiN3qYpzVSh2N98cl5scpKMNhOVUjbmdWfn3KiGZ6TOSAgSKBDv58J5WzyEcxNh8
9N1V9ZztLXvY9jacZpkrP5rZKy0zj95bZwp577yNrRofSlYUrPKl05hSSra+QR3c
R1C9y3LEs/mFZGk8GvGEOVhdBU5qfPQsBgAGMrG+oIRfT8zQeR6M0fR7mQ3el+I9
yEY7xTCUKAxjVbLnR3axfUGkodI5w1XukJ0WfVD0mROknDJ+3i3c0ZUaP+eyQLM6
OY2GwHx/dmys0URoVlCjwBNp/EK0HU348o57j9lDjww2lxcIpiorev02vL9uFwdv
4FqTReTcRplBcKa5xhQDCQTMcdUdHvqEYQpgIUEJt0tIuoSJ4FCpmoDewy/O10bO
jBhYUDNkapK6a1il9WwyXQuvRQIPVSgziHBCfk9saTZv8FgqzXBuFhXl3qiwgdgZ
KbUhBJh6sEkS3f1v9mdHgCpSd9NMpB9uPB3m4GIise0duMQspUCKVWRS6JmaB45s
EK0xLcJM4s7buxTpIg9LeHWgWyMQAT3CF0gmGFmfUAqXDVa7i8TpWOiyYlRE3rhA
MrPKrbEzoXl5fgtV0IDzQ/Bn5EutTMo2cGf811niXdLH
-----END CERTIFICATE-----

Common name in certificate is [email protected]
Number of players = 4

Choose which LSSS you want...
	1) Full Threshold
	2) Shamir
	3) Replicated
	4) General Q2 MSP
Enter a number (1-4)..
2

What modulus do you want to use for secret sharing?
2147483999
Using modulus p=2147483999
Enter threshold 0 < t < 2
1
Finished setting up secret sharing.
The underlying MSP is...
4 2
1 2
1 3
1 4
1 5

4
1 1 1 1

There is no need to create a conversion circuit to GC for small primes
This is done programmatically in the code
root@4c09229c8a63:~/SCALE-MAMBA# ./compile.sh Programs/mult3
rm: cannot remove 'Programs/mult3/*.asm': No such file or directory
rm: cannot remove 'Programs/mult3/*.bc': No such file or directory
rm: cannot remove 'Programs/mult3/*.sch': No such file or directory
Running
	 ./compile.py -A -n -r -M -D -u -s Programs/mult3

Compiling program in Programs/mult3
mult3
p = 2147483999
Prime size: 32
Default bit length: 24
Default statistical security parameter: 6
Under Over Flow flag:  True
Compiling file Programs/mult3/mult3.mpc
Compiling basic block mult3-0--0
Processing tape mult3-0 with 1 blocks
Processing basic block mult3-0--0, 0/1, 26 instructions
Not merging open instructions in tape mult3-0
Compile offline data requirements...
Tape requires 2 triples in modp
Tape requires prime bit length 0
Program requires: {('modp', 'triple'): 2}
Memory size: defaultdict(<function <lambda> at 0x7f417044f750>, {'sr': 8192, 'c': 8192, 'r': 8192, 's': 8192, 'sb': 8192})
Writing to Programs/mult3/mult3.sch
Writing to Programs/mult3/mult3-0.asm

Now running
	./scasm Programs/mult3

+ cargo run --manifest-path Assembler/Cargo.toml --release --bin scale_repo_helper --quiet -- --verbose Programs/mult3 -- --hide-warnings
reading all `.asm` files in Programs/mult3
processing: Programs/mult3/mult3-0.asm...

root@4c09229c8a63:~/SCALE-MAMBA# ./Player.x 0 Programs/mult3 &
[1] 3093
root@4c09229c8a63:~/SCALE-MAMBA# (Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player0.crt
[email protected]
1
127.0.0.1
Player1.crt
[email protected]
2
127.0.0.1
Player2.crt
[email protected]
3
127.0.0.1
Player3.crt
[email protected]


p=2147483999
sm::0:: loading certificate from Cert-Store/Player0.crt
Opening file Programs/mult3/mult3.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/mult3/mult3-0.bc

root@4c09229c8a63:~/SCALE-MAMBA# ./Player.x 1 Programs/mult3 &
[2] 3094
root@4c09229c8a63:~/SCALE-MAMBA# (Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player0.crt
[email protected]
1
127.0.0.1
Player1.crt
[email protected]
2
127.0.0.1
Player2.crt
[email protected]
3
127.0.0.1
Player3.crt
[email protected]


p=2147483999
sm::1:: loading certificate from Cert-Store/Player1.crt
Opening file Programs/mult3/mult3.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/mult3/mult3-0.bc

root@4c09229c8a63:~/SCALE-MAMBA# ./Player.x 2 Programs/mult3 &
[3] 3095
root@4c09229c8a63:~/SCALE-MAMBA# (Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player0.crt
[email protected]
1
127.0.0.1
Player1.crt
[email protected]
2
127.0.0.1
Player2.crt
[email protected]
3
127.0.0.1
Player3.crt
[email protected]


p=2147483999
sm::2:: loading certificate from Cert-Store/Player2.crt
Opening file Programs/mult3/mult3.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/mult3/mult3-0.bc

root@4c09229c8a63:~/SCALE-MAMBA# ./Player.x 3 Programs/mult3 &
[4] 3096
root@4c09229c8a63:~/SCALE-MAMBA# (Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player0.crt
[email protected]
1
127.0.0.1
Player1.crt
[email protected]
2
127.0.0.1
Player2.crt
[email protected]
3
127.0.0.1
Player3.crt
[email protected]


p=2147483999
sm::3:: loading certificate from Cert-Store/Player3.crt
Opening file Programs/mult3/mult3.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/mult3/mult3-0.bc
All connections now done
All connections now done
Setting up threads
Setting up threads
All connections now done
Setting up threads
Waiting for thread 0 to be ready
I am player 0 in thread 3
Waiting for thread 0 to be ready
I am player 1 in thread 1
I am player 0 in thread 20000
I am player 2 in thread 4
All connections now done
Setting up threads
I am player 0 in thread 20001
Waiting for thread 0 to be ready
I am player 2 in thread 20001
I am player 1 in thread 2
I am player 1 in thread 3
I am player 2 in thread 3
I am player 0 in thread 2
I am player 1 in thread 0
I am player 2 in thread 20000
I am player 3 in thread 0
I am player 3 in thread 1
I am player 0 in thread 0
I am player 2 in thread 2
I am player 0 in thread 4
I am player 2 in thread 1
I am player 3 in thread 20000
Waiting for thread 0 to be ready
I am player 3 in thread 20001
I am player 1 in thread 4
I am player 1 in thread 20000
I am player 2 in thread 0
I am player 3 in thread 2
I am player 1 in thread 20001
I am player 3 in thread 3
I am player 3 in thread 4
I am player 0 in thread 1
Set up player 0 in thread 2
Set up player 0 in thread 20000
Set up player 0 in thread 0
Set up player 1 in thread 2
Set up player 0 in thread 4
Doing online for player 0 in online thread 0
Set up player 1 in thread 0
Set up player 2 in thread 2
Set up player 3 in thread 2
Set up player 1 in thread 20000
Set up player 0 in thread 20001
Set up player 0 in thread 3
Set up player 0 in thread 1
Set up player 1 in thread 4
Doing online for player 1 in online thread 0
Set up player 2 in thread 20000
Set up player 3 in thread 20000
Set up player 1 in thread 20001
Set up player 1 in thread 3
Set up player 1 in thread 1
Set up player 2 in thread 0
Set up player 3 in thread 0
Set up player 2 in thread 3
Set up player 3 in thread 3
Set up player 2 in thread 1
Set up player 3 in thread 1
Set up player 2 in thread 20001
Set up player 3 in thread 20001
Set up player 2 in thread 4
Doing online for player 2 in online thread 0
Set up player 3 in thread 4
Doing online for player 3 in online thread 0
Finished Base-OTs
Finished Base-OTs
Finished Base-OTs
Finished Base-OTs
terminate called after throwing an instance of 'receiving_error'
terminate called recursively

2 party, Full Threshold

$ docker run -it --rm scalemamba
root@a7ab6d29fbbc:~# cd SCALE-MAMBA/
root@a7ab6d29fbbc:~/SCALE-MAMBA# ./Setup.x
What do you want to set up?
	1) Certs
	2) Secret Sharing
	3) Conversion circuit for LSSS<->GC computations
	4) All three

Enter a number (1-4)..
4
Enter the name of the root CA (e.g. RootCA)
RootCA
Cert is
-----BEGIN CERTIFICATE-----
MIIFFTCCAv2gAwIBAgIULt5kq4V1vAVKxxOWfc4Jq8ZX1lgwDQYJKoZIhvcNAQEL
BQAwGjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMB4XDTIwMDcyMjEzMjEwOFoX
DTI1MDcyMjEzMjEwOFowGjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArxTqSpqYYbmBEo7MePQT6L0A6kfT
KUdjrJ2rlGVfpGvH7tUyyE4DOF3F6MXM9mHvjMvqEWARWehkhGhutAmGDh2bZDkt
KyaJyN4LDC/dCcQScx+5l38cCeSRrNxB2wf6qcgLN80ohQy9OJGstIQx+DTbqy0c
YTSDWn0PEJRt/q8Gy9F8HxW7/UrDxi8eaC8NboZ6V+zRxyuzRBIH85G4CvZ/gy6f
3rWRLKDqFHGoOdzRl1gwvdlsLQTNwI+GO3At1IhtoAr+Atd249bWKOpOExJMXyFI
+Ow6XuBBJWpVKHpE6lpqYQN8H+s3eDsXl6N8aRk2cuKDmkWw43f9VsDcud4Bdwe4
6szWTl494vif3YpKs0vnQxfKjwsICGfGIGWZsfaZrcTK/JdnCfoUM1ARg0CJBSEk
hXofgJsXHs7ic3KEjRHNQqRGwCce6fFwKvGHv0J6S84GsL63IFcm6g0/g0JxVXVu
su1yC/GLc8uqraObAMASa1QqpHUJpTWmfJPXOECzBH3Ov+ukGV2IzTMDSNIjGNYx
4yoCBdOqkrEVJw2rWDkATLlKlgpSEt2I6Y8aM8WdEFH66fG1V7IwPbfcdHC8frpp
5JEvRVNgX343ZPHkysWF8YZr4DQG6l+/85XNYWZlQT7g4WpyjdznjbG4WJJ96ySG
OywgoXM/+kbXAW8CAwEAAaNTMFEwHQYDVR0OBBYEFI3As5PtX5hsxUb8OwCHucAR
bgrzMB8GA1UdIwQYMBaAFI3As5PtX5hsxUb8OwCHucARbgrzMA8GA1UdEwEB/wQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggIBAKI33RSibK2Fel0Jx++1JpoJqTggxqGj
KQT6bPhWd3iL3EOEk5KzHiyWa2XygjAnmR68vilSh731SxCPp0gDl0ocSj3GioaC
ZwKuOrYr8AlNriyJvDAEvIHudV9YgeoKXHBzlpkn2fwbqFgM4H+kcb+pKHG+W11B
B5cd7lBE74lpKWcZ/dXLTu+I4DFf2KrWU0NPMcrKfjOMjjyfaQyuR0/77/qaRjYy
UiuM+3RuLqyh/1T0Q5OgiVALvOabKunD7iXnIYe1L3SBYtXr29r3IZp5r2HhwIVn
j2Y1pFWWHxSruEQuXFyUYTKNCSlA0M7cdxKgqPMciXuj0xtFhIyH7V1sfd0R2pGk
kCQa1qJUFde1NLyfAlc/6eKPu66Cm22GZoxMQIZsQdTKBndLES44775q0Nj/9b8r
S0rCiUkh7YfojJuI4fnHbexIq7iQhCLmY1QbyPX8sXh4LF89AX7Wxcj3ueDMl0i6
PjfBmKZXLxpxPQ+DgcemCzFIqNBpP1HeNvG1HLTafQFE3tOILADc+9z5YSlfUIn/
WDg/VCF5PsWhvrxtEzIYNrO3ml0iWQ2wNVCmsoLT7bXXJjlU87KwIZ2d0voZP3MX
MkyQoQSop5S9HpeMn9RnHc+w209mmDG6fiI3DZECmwVUpg/zdJ8ZyYgmairoLyR1
6zF5mKcu1moY
-----END CERTIFICATE-----

Number of players (2--100) :
2
For each player now enter:
	 IP address (127.0.0.1) for localhost
	 The certificate name for this player


Player 0
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player0.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgPyMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjBAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDuRxUg9/d4uCiDFY5xj6cpNsCbIVsM4dz7a8PHEYkNGBdHWAPVTufu
TElJEaLBK+AtzxYdzjBpYRlPpEb1NMbtVDrOJx86JB02c0yCWymduex9WEilbAet
gkEZsleFqMeGgSC97ZPF9GOoi49r2wjg0A9IOr09vzeqdMO7au9n2jAjLcf7oFBl
fHWVfegN1gyF8HWTyZMJ02VNQpXkjhfKN/JG+oe1k6YceYpMQ7fwwtq7KXMoYzjB
+wtELE5I61OmxK1rO1SzIjY4c6j909GDSHCAPhIyjYFSpOKyjqyuLFnMvGjQjTAf
rLz2AwCJ2xVoatVcD8cEOmG4k8dR8EkxAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AEPRvoWS0f1LLDuRr/aLhnWsvOmg6F/CJV+j6OU4/AzesMUCP7HYa7b4CTOZmrjU
m88SK38Hof9hd60YbvUOQlNazo4hBxTnkcsmWXgqLdHEpN3pY/ltviM6K3rlE2wv
eVIzC6BDy1CfJXHDzXV1r74xZ+Zkjwiu5eI4zpLflLsAkg3zY+fGXoAJe8zX+ab3
z0alLJwajEiBxp9oOAkUzmrH12/f3rpTLDTa9EMt1gKHbFg3FKxKxXrAak7o3Akc
mx2J1PxXwlmmliZpcbz43yAJHz2iMrVznI0YU2gf+tnNmXLe/uxTyilcYAMmtv7L
SvIzDzjLO2vuZH8XeCAOeU6Rk3zqOGEG3ZXABILUt72H4EmBB4n+TJp/QiDfPclY
l/lgAksGxSKVlcEMXvMSQFKRsrV+jY2866KjKE8pjCLmDRiDGL5L9SJvLLchScty
y43+VWUPJKPPCBdL+F+2h5oaRlLPGBVajxZzlvzI/kWhWMKoCkDb/v9eSG4yfp0Y
QsgUsfFbb1B0TxhIwZPIwWu5KtV0TIuAKCbldd8XgFcp3E9fe8NWUho34ZB6qjYm
av+ycRdBUIuUmMSci9+3fEhAJLr00h5TnVdanfNaEJodY8f/og9zA5WRcvHcDpMR
Kt93fy0yLrWMXrWAJMqc11NnjAE+upGh0nJqBX3SHxr0
-----END CERTIFICATE-----

Common name in certificate is [email protected]


Player 1
IP Address (in format 127.0.0.1)
127.0.0.1
Name of certificate (e.g. Player1.crt)
Player1.crt
Cert is
-----BEGIN CERTIFICATE-----
MIIDrTCCAZUCAgPzMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMDA3MjIxMzIxMDhaFw0yMzA0MTgxMzIxMDhaMB4xHDAaBgNV
BAMME3BsYXllcjFAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQC8CM2j2Cd7kMW9pOBkUG2xWvrr4xeKVzNLtXCFJCJYhk+I1ssv8GVM
LGvs1z5PN9KF/2j+EsN92fV7LPPYPxxQuapCPck8jqx3dsso14u36Wu/1xhG3Btu
OzdogT/OUFy6bkxAwER0JAiFy/hQKuI9duBhwLK/iexyrvJx09gE3A11xYqWbhOC
wzLyJ0E2M8gtXbR2J3kZWEu75MHmm3iOSGUOFqix+/r+lUmYDUOfd0/pU2k4z+I6
bPOWou03dWJQAVjTdA7bLqfavqS4WpMXZ6T3HSOdvh3vpkkfHo79RS9Tc3d9jtuX
qdNUS794PEgLToi6I1Tdr7G+dDgw5PMFAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AAyBXIb5cXviOUrwnfL0UJyifGfhM0fBeB5bDbQ5FjPSAzbyCbggXDs6SG3wiSob
PnrqkpwEuwL25eLfdsPnUuZQWU0+8aEAFzfKw1IA8AC8k1wH+wQWHZbT6Py7Kw1l
9nS5h90dha2oYQ0mZPTPOGIWOsqaj0OqmcuN81Ikvcy8e4tcebqH+EfqKKzGQQzv
JSt5mQJN0xjT0d1LHl+W6up9QxYiL4bntAND7tGK3bS7DtZ489B2fjRkizMP64p4
sVURP/7tcWdWqbJyW3JyG45AghLOduXimeO2uaPHaQaj+ztAqN9n94LNQoMa4lxV
tRQSJsG+EGAsWvJ5NS/PMZQL07nIeDvn9da+KLNF1XmZQfmbEqT8/7gDwy3n1qyC
pfWYKIdfbDxo3fue1D+sJXukG9FR6+m121dLiMWCm9ZWfTWtQOi7ln6rr0D6SY+N
Z5Tb9rictTa930DwZ/V7SHXTxGTgUiKCutyZOOWzF5jmAFi2DWxx8mdlp6DKngtw
2zFsLtYGKYEV5hsobLVWAPuvzVFcG4IK43RLWRN2NswU3wqe2/qW2b6cBFlhrMMS
blVaouAtCKHOONXHO59XuMWsMr5US6DMXxAk7yI4J3lT+mZAnXP1ysTwLs0uByAi
95ZgEKgaaBBFsskL0gRYMiS/MNkxoJNQdPAWX5YPDjXQ
-----END CERTIFICATE-----

Common name in certificate is [email protected]
Number of players = 2

Choose which LSSS you want...
	1) Full Threshold
	2) Shamir
	3) Replicated
	4) General Q2 MSP
Enter a number (1-4)..
1
Do you want me to find a prime for the LSSS, or do you want to try one yourself?
	0) You find one
	1) I will enter one
0
What bit length of modulus do you want for secret sharing? (16-1024)
32
N  = 16384
U = 18  V = 9
p  = 2148728833 : 32 32 1
p0 = 2854495385411919762116571938898990272768868353 : 153 152 1
p1 = 170239837180009555970897945312467222529 : 128 128 1
Finished setting up secret sharing.
The underlying MSP is...
2 2
1 0
0 1

2
1 1

There is no need to create a conversion circuit to GC for small primes
This is done programmatically in the code
root@a7ab6d29fbbc:~/SCALE-MAMBA# ./compile.sh Programs/mult3
rm: cannot remove 'Programs/mult3/*.asm': No such file or directory
rm: cannot remove 'Programs/mult3/*.bc': No such file or directory
rm: cannot remove 'Programs/mult3/*.sch': No such file or directory
Running
	 ./compile.py -A -n -r -M -D -u -s Programs/mult3

Compiling program in Programs/mult3
mult3
p = 2148728833
Prime size: 32
Default bit length: 24
Default statistical security parameter: 6
Under Over Flow flag:  True
Compiling file Programs/mult3/mult3.mpc
Compiling basic block mult3-0--0
Processing tape mult3-0 with 1 blocks
Processing basic block mult3-0--0, 0/1, 26 instructions
Not merging open instructions in tape mult3-0
Compile offline data requirements...
Tape requires 2 triples in modp
Tape requires prime bit length 0
Program requires: {('modp', 'triple'): 2}
Memory size: defaultdict(<function <lambda> at 0x7f369597d750>, {'sr': 8192, 'c': 8192, 'r': 8192, 's': 8192, 'sb': 8192})
Writing to Programs/mult3/mult3.sch
Writing to Programs/mult3/mult3-0.asm

Now running
	./scasm Programs/mult3

+ cargo run --manifest-path Assembler/Cargo.toml --release --bin scale_repo_helper --quiet -- --verbose Programs/mult3 -- --hide-warnings
reading all `.asm` files in Programs/mult3
processing: Programs/mult3/mult3-0.asm...

root@a7ab6d29fbbc:~/SCALE-MAMBA# ./Player.x 0 Programs/mult3 &
[1] 3093
root@a7ab6d29fbbc:~/SCALE-MAMBA# (Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player0.crt
[email protected]
1
127.0.0.1
Player1.crt
[email protected]


p=2148728833
sm::0:: loading certificate from Cert-Store/Player0.crt
Opening file Programs/mult3/mult3.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/mult3/mult3-0.bc

root@a7ab6d29fbbc:~/SCALE-MAMBA# ./Player.x 1 Programs/mult3 &
[2] 3094
root@a7ab6d29fbbc:~/SCALE-MAMBA# (Min,Max) number of ...
	(0,infty) multiplication triples
	(0,infty) square pairs
	(0,infty) bits
0
127.0.0.1
Player0.crt
[email protected]
1
127.0.0.1
Player1.crt
[email protected]


p=2148728833
sm::1:: loading certificate from Cert-Store/Player1.crt
Opening file Programs/mult3/mult3.sch
Number of online threads I will run in parallel =  1
Number of program sequences I need to load =  1
Loading program 0 from Programs/mult3/mult3-0.bc
All connections now done
All connections now done
Setting up threads
Setting up threads
I am player 0 in thread 0
I am player 1 in thread 1
I am player 1 in thread 3
I am player 0 in thread 1
I am player 1 in thread 2
I am player 1 in thread 0
I am player 1 in thread 4
I am player 0 in thread 2
I am player 1 in thread 10000
I am player 0 in thread 3
I am player 1 in thread 10001
I am player 0 in thread 4
I am player 1 in thread 20000
I am player 0 in thread 10000
Waiting for thread 0 to be ready
I am player 1 in thread 20001
Waiting for thread 0 to be ready
I am player 0 in thread 10001
I am player 0 in thread 20001
I am player 0 in thread 20000
Set up player 0 in thread 1
Set up player 1 in thread 1
Set up player 0 in thread 2
Set up player 1 in thread 2
Set up player 0 in thread 0
Set up player 0 in thread 10001
Set up player 1 in thread 0
Set up player 1 in thread 10001
Set up player 0 in thread 3
Set up player 1 in thread 3
Set up player 0 in thread 4
Doing online for player 0 in online thread 0
Set up player 1 in thread 4
Doing online for player 1 in online thread 0
Set up player 0 in thread 10000
Set up player 1 in thread 10000
Set up player 0 in thread 20000
Set up player 1 in thread 20000
Set up player 0 in thread 20001
Set up player 1 in thread 20001
Finished Base-OTs
Finished Base-OTs
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called after throwing an instance of '

FRESCO is an end-to-end framework

This is a really cool project! Thank you so much for doing it!

However, as one of the developers of FRESCO I am a little puzzled why you would describe it as "doesn't provide an end-to-end framework itself" (https://github.com/MPC-SoK/frameworks/wiki/Projects-Not-Surveyed).

I would say that it does, but maybe I am not understanding what you mean by end-to-end?

Anyway, if you are interested we would be happy to make a PR with the sample programs implemented in FRESCO.

add jiff framework

add sample code, add wiki page with architecture and extra information, fill out tables.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.