verificatum / verificatum-vmn

The first implementation of a fully distributed provably secure and universally verifiable mix-net based on the El Gamal cryptosystem.
https://www.verificatum.org
Other
11 stars 4 forks source link

Trouble running demo on ubuntu 22.04 docker image #16

Closed alexviar closed 3 months ago

alexviar commented 10 months ago
root@2638515ba617:/voting/verificatum-vmn-3.1.0-full# make demo
cd verificatum-vmn-3.1.0/demo/mixnet; ./demo
Cleaning up data from previous demos... done.

EXECUTION OF EL GAMAL MIX-NET (VMN 3.1.0)
----------------------------------------------------------------
Number of mix-servers:              3
Min. number of honest mix-servers:  2
./demointro: 386: test: =: unexpected operator

DEMO FAILED: Mismatching version! ( != 3.1.0)

Generate info files...
  Making directories of servers.... done.
  Generating protocol stub file..../info_files: 95: scp: not found
./info_files: 1: eval: ./tmp_command: not found
./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
  Copy stub file to Party02..../info_files: 109: scp: not found
./info_files: 114: scp: not found
./info_files: 109:  done.
  Copy stub file to Party03...scp: not found
./info_files: 114: scp: not found
 done.
  Generating private and protocol files of Party01..../info_files: 95: scp: not found
./info_files: 95: scp: not found
./info_files: 1: eval: ./tmp_command: not found
./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
  Generating private and protocol files of Party02..../info_files: 95: scp: not found
./info_files: 95: scp: not found
./info_files: 1: eval: ./tmp_command: not found
./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
  Generating private and protocol files of Party03..../info_files: 95: scp: not found
./info_files: 95: scp: not found
./info_files: 1: eval: ./tmp_command: not found
./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
  Copy protocol file of Party01 to Party02..../info_files: 109: scp: not found
./info_files: 114: scp: not found
 done.
  Copy protocol file of Party01 to Party03..../info_files: 109: scp: not found
./info_files: 114: scp: not found
 done.
  Copy protocol file of Party02 to Party01..../info_files: 109: scp: not found
./info_files: 114: scp: not found
 done.
  Copy protocol file of Party02 to Party03..../info_files: 109: scp: not found
./info_files: 114: scp: not found
 done.
  Copy protocol file of Party03 to Party01..../info_files: 109: scp: not found
./info_files: 114: scp: not found
 done.
  Copy protocol file of Party03 to Party02..../info_files: 109: scp: not found
./info_files: 114: scp: not found
 done.
  Merge protocol files to global protocol file at Party01...
ERROR: Invalid usage form, please use "vmni -h" for usage information!

./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
  Merge protocol files to global protocol file at Party02...
ERROR: Invalid usage form, please use "vmni -h" for usage information!

./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
  Merge protocol files to global protocol file at Party03...
ERROR: Invalid usage form, please use "vmni -h" for usage information!

./info_files: 102: scp: not found
cat: exitcode: No such file or directory
./info_files: 314: test: !=: unexpected operator
 done.
done.
Running distributed key generation... Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: xterm: Xt error: Can't open display: %s
Xt error: Can't open display: %s
xterm: xterm: xterm: Xt error: Can't open display: %s
DISPLAY is not set
DISPLAY is not set
xterm: DISPLAY is not set
./keygen: 102: scp: not found
cat: exitcode: No such file or directory
./keygen: 314: test: !=: unexpected operator
./keygen: 102: scp: not found
cat: exitcode: No such file or directory
./keygen: 314: test: !=: unexpected operator
./keygen: 102: scp: not found
cat: exitcode: No such file or directory
./keygen: 314: test: !=: unexpected operator
done.
Generate demo ciphertexts... ./gen_ciphs: 95: scp: not found
./gen_ciphs: 1: eval: ./tmp_command: not found
./gen_ciphs: 102: scp: not found
cat: exitcode: No such file or directory
./gen_ciphs: 314: test: !=: unexpected operator
done.
Copy demo ciphertexts to parties... ./gen_ciphs: 109: scp: not found
./gen_ciphs: 114: scp: not found
./gen_ciphs: 109: scp: not found
./gen_ciphs: 114: scp: not found
done.
Mixing ciphertexts... Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s
xterm: DISPLAY is not set
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: xterm: Xt error: Can't open display: %s
xterm: DISPLAY is not set
Xt error: Can't open display: %s
xterm: DISPLAY is not set
./mix: 102: scp: not found
cat: exitcode: No such file or directory
./mix: 314: test: !=: unexpected operator
./mix: 102: scp: not found
cat: exitcode: No such file or directory
./mix: 314: test: !=: unexpected operator
./mix: 102: scp: not found
cat: exitcode: No such file or directory
./mix: 314: test: !=: unexpected operator
done.
Copying proof from Party01 (verifier is not executing yet)... ./verify: 95: scp: not found
./verify: 1: eval: ./tmp_command: not found
./verify: 102: scp: not found
done.
Verify Fiat-Shamir Proof...
ERROR: Unable to open protocol info file!

com.verificatum.protocol.ProtocolFormatException: Unable to open protocol info file!
        at com.verificatum.protocol.ProtocolBBGen.getBullBoardBasicGen(ProtocolBBGen.java:223)
        at com.verificatum.protocol.mixnet.MixNetElGamalInterfaceFactory.getGenerator(MixNetElGamalInterfaceFactory.java:60)
        at com.verificatum.protocol.mixnet.MixNetElGamalVerifyFiatShamirTool.main(MixNetElGamalVerifyFiatShamirTool.java:1129)
Caused by: java.io.FileNotFoundException: export/protInfo.xml (No such file or directory)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at com.verificatum.eio.ExtIO.readString(ExtIO.java:550)
        at com.verificatum.protocol.ProtocolBBGen.getBullBoardBasicGen(ProtocolBBGen.java:221)
        ... 2 more
----------------------------------------------------------------
EXECUTION COMPLETED
verificatum commented 10 months ago

I appreciate the feedback, since I do not test Dockers! :-)

My best guess from the limited information is: vcpuos which is installed at: /usr/local/bin/vcpuosv. This is an utter hack and I welcome any help to make it more robustly portable, since nobody seems to agree on how to expose information about a system among the OS developers. On a physical Ubuntu 22.04 it looks like this:

13th Gen Intel(R) Core(TM) i9-13900K X32x2 (5.80GHz)###GNU/Linux (Ubuntu 22.04.3 LTS)###3.1.0

Could you please post the output of this command from your Docker?

In addition to this it seems that you have not installed scp in the docker. This is used by the macro copyfromto() which you can find in demo/mixnet/macros. Only the demo uses scp, not VMN itself. We merely need some way to copy files which is portable local/non-local over all Un*x.