Coder Social home page Coder Social logo

osu-crypto / libote Goto Github PK

View Code? Open in Web Editor NEW
412.0 16.0 105.0 3.87 MB

A fast, portable, and easy to use Oblivious Transfer Library

License: Other

C++ 80.06% C 17.87% CMake 2.03% Python 0.04%
ot-protocols ot-extension delta-ot oblivious-transfer-extension secure-computation oblivious-transfer

libote's People

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

libote's Issues

Compiling KOS

I tried to compile the library on ubuntu.

I ran the commands:

  1. cmake . -DENABLE_MIRACL=ON -DENABLE_KOS=ON
  2. make

And got this error: /home/noa/libOTe/libOTe_Tests/OT_Tests.cpp: In function ‘void tests_libOTe::DotExt_Kos_Test()’:
/home/noa/libOTe/libOTe_Tests/OT_Tests.cpp:551:3: error: ‘KosDotExtSender’ was not declared in this scope
KosDotExtSender sender;

Can you help me to fix it?

Regards,
Noa

Build error: Accessing undefined Log

Hi,

The IOService class member mLog is accessed from Channel.cpp (lines 46 and 70) whether ENABLE_NET_LOG was defined or not. Naturally, when ENABLE_NET_LOG is not defined the build fails.

FYI.

proof checking in KosOtExtSender sometimes fails and throws runtime error

The check at the end of KosOtExtSender::send() sometimes does not pass and throws a runtime error. This occurs only on very specific terms.

This error can be produced by the tests supplied in libOTe. Repeat it by: bin/frontend_libOTe -kos -n <numOTs> but where numOTs is congruent to 1023 modulo 1024.
This error occurs for all values which are congruent to 1023 modulo 1024, and only for these values.
Also, It seems that this failure occurs only at about (or maybe exactly?) 50% of the times. This means that the test mentioned above might pass. But repeating it is bound to fail finally.

I’ve tried to identify why this problem occurs, but, alas, I do not know how the KOS scheme works and I cannot really understand it from code. The results of the KOS scheme are determined by these values:
the base OTs (as placed by setBaseOts and genBaseOts. In the test they just happen to be simulated and randomized without actually applying a full base OT protocol).
prng given as input to the KosOtExtReceiver (which is the party actually sending stuff to the other party)
the Receiver’s choice vector
Both the prng and the choice vector determine the contents of a vector called choice2, but that’s about all I could follow.

Tried repeating the error by manipulating the data put into the KOS send and receive functions.
It seems that the base OT part has no impact on whether the process fails or not. I.e. by determining the choices vector and the send-message and recv-message of the base, the process either always passes or always fails regardless of the baseRecv baseSend and baseChoice arrays (and also the flipping of the choice bits (by the delta bits) in setBaseOts and genBaseOts.
But determining the output of the base OTs (i.e. setting the baseRecv, baseSend, baseChoice and choice bit flipping) it seems that manipulating either the prng-seed of the KOS-receiver and/or the choice vector of the KOS Receiver, the process might pass or fail with about 50% chance, according to these specific inputs.
I could not manage to squeeze any more valuable info about what’s goes wrong.

The relevant cmake parameters I've used:
ENABLE_SSE=ON
ENABLE_BOOST=ON
OTE_KOS_HASH = OTE_DAVIE_MEYER_AES (but I think I've tried it with OTE_RANDOM_ORACLE as well and it did not help. I am not fully sure by now)
OTE_KOS_FIAT_SHAMIR = ON (Again, I believe I tried it OFF as well, but not sure)

The details of the machine I use are: kabylake-apple-darwin20.2.0 MacOS Big-Sur

Unit Tests Failing with Relic

@ladnir The UnitTest 29 REccpPoint_Test is failing for me. I'm using relic-0.4.
From what I could make out this seems to be a relic related issue. It would be great if you could check this out. Thanks.

29 - REccpPoint_Test                         ga_br != ga_br2
(F793B5C394FBBF90DCC77200BD113B6EEF7A857077BC548852A80F64911446C5 , 9EF8C8A11C3FC805036E09FB5C68AEA2F14020B6999F9B3BDBFCA0DC7C2AF4C6 , 1                                                                )
(F793B5C394FBBF90DCC77200BD113B6EEF7A857077BC548852A80F64911446C5 , 9EF8C8A11C3FC805036E09FB5C68AEA2F14020B6999F9B3BDBFCA0DC7C2AF4C6 , 1                                                                )
(F793B5C394FBBF90DCC77200BD113B6EEF7A857077BC548852A80F64911446C5 , 9EF8C8A11C3FC805036E09FB5C68AEA2F14020B6999F9B3BDBFCA0DC7C2AF4C6 , 1                                                                )
Failed - ga_br != ga_br2   6ms

class osuCrypto::SparseMtx::Col’ has no member named ‘usize’;

I am compiling this library. But it shows the following error:

/libOTe/libOTe/Tools/LDPC/LdpcEncoder.cpp:774:13: error: ‘class osuCrypto::SparseMtx::Col’ has no member named ‘usize’; did you mean ‘size’?

  774 |     if (col.usize() != expSize)

      |             ^~~~~

      |             size

compilation terminated due to -Wfatal-errors.

make[2]: *** [libOTe/CMakeFiles/libOTe.dir/build.make:264:libOTe/CMakeFiles/libOTe.dir/Tools/LDPC/LdpcEncoder.cpp.o] error 1

make[1]: *** [CMakeFiles/Makefile2:318:libOTe/CMakeFiles/libOTe.dir/all] error 2

make: *** [Makefile:149:all] error 2

PIR document

Is there BgiPirTests.cpp code description document?

cuckoo stash overflow

@ladnir Hi, when I run the PSI task, the following prompt appears:
libOTe/cryptoTools/cryptoTools/Common/CuckooIndex.cpp:460
Exception info:cuckoo stash overflow

When I re-run, this prompt disappears.
Why does this happen, is there any impact or is there any precautions?
Thanks~

Issue when building on linux

.....(similar errors)
/usr/bin/ld: ../lib/libSimplestOT.a(gfe4x_square.s.o): relocation R_X86_64_32S against symbol scale19' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ../lib/libSimplestOT.a(fe25519_nsquare.s.o): relocation R_X86_64_32S against symbol CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
frontend/CMakeFiles/frontend_libOTe.dir/build.make:128: recipe for target 'bin/frontend_libOTe' failed

Implement KK13

  • for 1-out-of-N for small N (probably subsumed by your OOS)
  • for 1-out-of-2 for shorter secrets (this works only for semi-honest)

How to implement the KKRT16 OT Protocol?

I would like to implement the [KKRT16] 1-out-of-N oblivious transfer protocol by using libOTe. However, I don’t know how to invoke the API.

I would like to implement a program in Ubuntu 16.04 with two entities, Alice and Bob. Alice holds N different strings. Bob chooses one of them (maybe the i-th string). Then Alice and Bob invoke the [KKRT16] 1-out-of-N protocol. As a result, Bob knows the i-th string but nothing else.

I would like to fix N to be a small number, less than 1000. Each message will be defined as a symmetric key (for example, a 128-bit key of AES encryption). How to implement this program? Are there any volunteers help me to build this program?

Building on MAC

Similar issue from earlier today, after running make:
[ 94%] Linking CXX executable ../bin/frontend_libOTe clang: warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument] Undefined symbols for architecture x86_64: "_sha1_update_intel", referenced from: sha1_compress(unsigned int*, unsigned char const*) in libcryptoTools.a(sha1.cpp.o) ld: symbol(s) not found for architecture x86_64 clang: fatal error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [bin/frontend_libOTe] Error 1 make[1]: *** [frontend/CMakeFiles/frontend_libOTe.dir/all] Error 2 make: *** [all] Error 2
This was on a MAC, and the submodule was updated along with running cmake ..

IknpOtExt features about non-block sized message

@ladnir Hi, It seems that there is no support to reduce or enlarge the message pair size when using IknpOtExt, and currently it supports only block-sized message, what should I do if I want to adapt my non-block sized message pairs?

Cannot open file 'frontend_cryptoTools/miracl.lib' and 'frontend/libboost_date_time-vc141-mt-gd-x64-1_69.lib'

image

Is the above intended behaviour? I am using Windows 10 and this is my project.jam configuration

import option ; 
 
using msvc : 14.1 : "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64\cl.exe";
 
option.set keep-going : false ; 

Steps to reproduce:

Build Boost

  1. git clone --recursive https://github.com/osu-crypto/libOTe.git
  2. cd libOTe/cryptoTools/thirdparty/win
  3. Download boost 1.69.0 .zip file from https://www.boost.org/users/history/version_1_69_0.html inside this directory and extract
  4. $PWD\bootstrap.bat
  5. .\b2.exe toolset=msvc-14.1 architecture=x86 address-model=64 --with-thread --with-filesystem --with-regex --with-date_time stage link=static variant=debug,release runtime-link=static threading=multi

Enable Relic

  1. git clone https://github.com/ladnir/relic.git
  2. cd relic
  3. cmake . -DMULTI=OPENMP -DCMAKE_INSTALL_PREFIX:PATH=C:\libs -DCMAKE_GENERATOR_PLATFORM=x64 -DRUNTIME=MT
  4. cmake --build .
  5. cmake --install .
  6. Edit the config file libOTe/cryptoTools/cryptoTools/Common/config.h to include #define ENABLE_RELIC.

Enable Miracl

  1. cd libOTe/cryptoTools/thirdparty/win
  2. git clone https://github.com/ladnir/miracl.git
  3. Built Miracl.sln in Visual Studio 2019
  4. Edit the config file libOTe/cryptoTools/cryptoTools/Common/config.h to include #define ENABLE_MIRACL

There were minor bugs and config changes along the way which I had to fix to make it compatible with Visual Studio 2019.

Please let me know if you need any other details to reproduce the error.

Kyber OT

I'm not 100% sure if this is a bug, but I think that the KyberOT implementation has a bug.
The pack_pk function (

static void pack_pk(unsigned char *r, const polyvec *pk, const unsigned char *seed)
) stripped out the call to polyvec_compress. That function not only compressed the polyvec's, but it also froze them (making sure all coordinates are smaller than q), because internally the implementation allows coordinates larger than q.

The code for the naor-pinkas base OT does not fully comply with the NP01 suggestion

The algorithm in the NP01 paper says the random message encryption Mi is the output of H((PKi**r), R, i) where i is the choice bit (or integer).
In the libOTe NaorPinkas class, the random messages are the output of H(i, point, R) where i is the index counter of the OT (so not the same i). Indeed, it seems that adding this i counter is important when applying same R for multiple OTs. But the input of the choice bit i which appears in the paper is actually missing from the libOTe NaorPinkas code. In the code it is marked by variable u at the sender side, and by choice at the receiver side, but they both do not use it as an entry to the random oracle H.

NP01 justifies the need for this additional entry, at the end of the discussion part before section 3.1:
“Note that adding the index sigma [the choice bit] as a suffix […] in the call for H assures that the answers for PK0 and PK1 are independent, even if PK0 is chosen (maliciously) to be equal to PK1 by setting it to be square root of C[choice]”

This can be very easily avoided by adding an additional entry of the choice bit (or variable u, at the sender side) as an entry to the random oracle.

Detla-OT

Fix the check at the end, reduce the size of the second transpose

Meeting a "illegal instruction(core dumped)" error.

When I build your libOTe library, I have successfully built the whole project with Relic. But i meet a "illegal instruction(core dumped)" error while running the bin/frontend_libOTe and bin/frontend_cryptotools. I meet this error both on my WSL ubuntu 18.04 on my laptop and a ubuntu dual os on the same laptop. Could you please offer me some help.

Segmentation fault for malicious secure OOS16

When executing OOS16 with maliciousSecure set to true in .configure, a Segmentation Fault is caused after the end of the execution.
This also occurs if I copy NcoOt_Oos_Test from NcoOT_Tests.cpp into my file and execute it.
maliciousSecure set to false does not produce this problem.
The attached cpp file produces the described behaviour and the following output.
minimalExample.txt

Output:

Testing OOS16.------------------------------------------------------
Sender: Configure done.
Receiver: Configure done.
Receiver: genBaseOts done.
Sender: genBaseOts done.
Sender: Finished
Receiver: Result:
0: 0, 0
1: 1, 0
2: 2, 0
3: 3, 0
4: 4, 0
5: 5, 0
6: 6, 0
7: 7, 0
8: 8, 0
9: 9, 0
Segmentation fault (core dumped)

The server runs Ubuntu 18.04.3 LTS.
I compiled libOTe with:

  cmake . -DENABLE_MIRACL=ON -DENABLE_WOLFSSL=ON -DENABLE_SIMPLESTOT=OFF - 
 DENABLE_SILENTOT=OFF \
 -DENABLE_MR_KYBER=OFF \
 -DENABLE_MR=OFF -DENABLE_NP=ON -DENABLE_KOS=ON -DENABLE_IKNP=ON -DENABLE_DELTA_KOS=ON -DENABLE_DELTA_IKNP=ON \
 -DENABLE_OOS=ON -DENABLE_KKRT=ON -DENABLE_RR=ON -DENABLE_AKN=ON

"set(ENABLE_SIMPLESTOT_ASM, OFF)" not work

Hi, I'm facing a compile problem when building my project using libOTe as a submodule. In CMakeLists.txt, I wrote:

set(ENABLE_RELIC ON CACHE BOOL "Build relic by default" FORCE)
set(MULTI PTHREAD CACHE STRING "Build relic with multithreading from pthread" FORCE)
set(ARITH easy CACHE STRING "Build relic without gmp" FORCE)
set(WITH "MD;DV;BN;FB;FP;EB;EC;EP" CACHE STRING "Overwrite Relic algorithms in ABY with their superset" FORCE)

# we need to set these compile flags globally to compile libOTe and its dependencies
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-pie -pthread -maes -msse2 -msse3 -msse4.1 -mpclmul -mavx -mavx2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-attributes")

find_package(libOTe QUIET)
if (libOTe_FOUND)
    message(STATUS "Found libOTe")
elseif (NOT libOTe_FOUND AND NOT TARGET libOTe::libote)
    message("libOTe was not found: add libOTe subdirectory")
    if (NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/libOTe/CMakeLists.txt")
        find_package(Git REQUIRED)
        message("initialize Git submodule: extern/libOTe")
        execute_process(COMMAND git submodule update --init --recursive extern/libOTe
                WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}")
    endif ()
    add_subdirectory(extern/libOTe)
endif ()
set(ENABLE_SIMPLESTOT ON CACHE BOOL "Enable Simplest OT for Base OTs" FORCE)
set(ENABLE_IKNP ON CACHE BOOL "Enable IKNP for 1-out-of-2 OTs" FORCE)
set(ENABLE_KKRT ON CACHE BOOL "Enable KKRT for OPRFs" FORCE)

And indeed, output shows that ENABLE_SIMPLESTOT_ASM is OFF:

[cmake] -- Base OT protocols
[cmake] =======================================================
[cmake] -- Option: ENABLE_SIMPLESTOT     = ON
[cmake] -- Option: ENABLE_SIMPLESTOT_ASM = OFF
[cmake] -- Option: ENABLE_MR             = OFF
[cmake] -- Option: ENABLE_MR_KYBER       = OFF
[cmake] -- Option: ENABLE_NP             = OFF
[cmake] 
[cmake] 
[cmake] -- 1-out-of-2 OT Extension protocols
[cmake] =======================================================
[cmake] -- Option: ENABLE_KOS            = OFF
[cmake] -- Option: ENABLE_IKNP           = ON
[cmake] -- Option: ENABLE_SILENTOT       = OFF
[cmake] 
[cmake] 
[cmake] -- 1-out-of-2 Delta-OT Extension protocols
[cmake] =======================================================
[cmake] -- Option: ENABLE_DELTA_KOS      = OFF
[cmake] -- Option: ENABLE_DELTA_IKNP     = OFF
[cmake] 
[cmake] 
[cmake] -- 1-out-of-N OT Extension protocols
[cmake] =======================================================
[cmake] -- Option: ENABLE_OOS            = OFF
[cmake] -- Option: ENABLE_KKRT           = ON
[cmake] -- Option: ENABLE_RR             = OFF

However, when compiling my project, it reports the error:

undefined reference to `receiver_procS' in 'extern/libOTe/libOTe/Base/SimplestOT.cpp'
undefined reference to `sender_genS' in 'extern/libOTe/libOTe/Base/SimplestOT.cpp'
...

The reason should be #ifdef ENABLE_SIMPLESTOT_ASM is enabled in SimplestOT.cpp. Why would this happen? I've checked the content in file Debug/extern/libOTe/libOTe/config.h is actually

// build the library with "simplest" Base OT enabled
#define ENABLE_SIMPLESTOT ON

// build the library with the ASM "simplest" Base OT enabled
/* #undef ENABLE_SIMPLESTOT_ASM */

// build the library with Masney Rindal Base OT enabled
/* #undef ENABLE_MR */

// build the library with Masney Rindal Kyber Base OT enabled
/* #undef ENABLE_MR_KYBER */

// build the library with Naor Pinkas Base OT enabled
/* #undef ENABLE_NP */

So maybe this file is not used. (Debug is the building folder)

Any suggestions? Thanks!

PIR

Is function Psi_drrn_FullSet_Test_Impl Can run independently?

Building on mac with m1(arm64) cpu?

Hi, I'm trying to build this library on my mac (with m1 cpu), but is seems that the library does not support for arm64 when I set the circuits and ot ON? It shows that the third-party library bitpolymul cannot build on arm64, is there any suggestion?

Linking error when used as an external library

I am trying to use libOTe as a library. I got the following error.

/usr/bin/ld: //usr/local/lib/liblibOTe.a(naor-pinkas.cpp.o): undefined reference to symbol 'ep_copy'
/usr/local/lib/librelic.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/test_s.dir/build.make:112: recipe for target 'bin/test_s' failed
make[2]: *** [bin/test_s] Error 1
CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/test_s.dir/all' failed
make[1]: *** [CMakeFiles/test_s.dir/all] Error 2
Makefile:102: recipe for target 'all' failed
make: *** [all] Error 2

I am writing all the steps I have done so far since I don't know which step may have the problem.

  • First, I ran make install in the libOTe directory. It resulted in linking error similar to the one above. Then I removed the relic build that I installed from github.com/ladnir/relic/ (linked in the README) and reinstalled from the original relic repo github.com/relic-toolkit/relic. This got rid of the linking error.
  • I wrote a minimal code to perform one round of IKNP OT and placed it as a subdirectory inside libOTe. The code compiled and ran without issues.
  • I placed the code in an external directory outside libOTe and created a new cmake project.
  • First problem I faced was with linking Boost library. I edited the boost.get file and added ./b2 install after ./b2. Then I linked the Boost library in cmake and the issue was solved.
  • I had issues with linking Simplest OT (it worked inside libOTe but showed linking error in the external directory). I disabled Simplest OT and ran cmake again inside libOTe and installed.
  • My final cmake linking looks like this target_link_libraries(test_s ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} ${GMP_LIBRARIES} ${GMPXX_LIBRARIES} ${RELIC_LIBRARY} libOTe cryptoTools KyberOT).
  • Finally it resulted in the linking error above. I cannot disable NPOT since that is the only base OT I enabled.

Sorry for the long report. I would appreciate if you could help me solve this. If possible, a minimal CMakeList.txt example for separate a cmake project would be great.

libSimplestOT error

use libSimplestOT.a error
libSimplestOT.a(ge25519_p1p1_to_p3.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a shared object; recompile with -fPIC

SimplestOT CMakeLists.txt include target_compile_options(SimplestOT PUBLIC -fpic)

Reason to remove SILVER?

@ladnir , may I know the reason to remove SILVER code? After going through the paper, I want to see the implementation, but it seems that it is removed according to f931e50.

Thanks

Build issue on ubuntu20.04

When I type python3 build.py --setup --boost --relic in terminal, the new issue occured:
image
How to solve that, thanks for helping!

Trying to build libOTe on Ubuntu

I got to the final step of the build process, but received this error.

../lib/libcryptoTools.a(sha1.cpp.o): In function sha1_compress(unsigned int*, unsigned char const*)':
sha1.cpp:(.text._Z13sha1_compressPjPKh+0x1): undefined reference to sha1_update_intel' collect2: error: ld returned 1 exit status frontend/CMakeFiles/frontend_libOTe.dir/build.make:180: recipe for target 'bin/frontend_libOTe' failed make[2]: *** [bin/frontend_libOTe] Error 1 CMakeFiles/Makefile2:422: recipe for target 'frontend/CMakeFiles/frontend_libOTe.dir/all' failed make[1]: *** [frontend/CMakeFiles/frontend_libOTe.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2

I am not sure if this is familiar to anyone here so I decided to post it. I am looking into it now.

How to use the libOTe_Tests

Hello!I‘m a rookie. I want to test KKRT from libOTe_tests. Nevertheless I don't know how to use the libOTe_test's CmakeFiles. Could you please give an example for how to test the OTs? Thank you!!!
image
image

PIR COMM

How many servers and clients does a PIR require?

How to print the intermediate result to debug?

I solved the installation of libOTe a few days ago, and I have successfully linked KKRT(1-out-of-N OT) into my project.
Now I want to print some intermediate results to debug the program, in which block.h and Matrix.h classes I find that no override the << operators, so how to print this ? Directly cout will report an error.
The important intermediate results such as:

std::vector<block>recvMsgs(numOTs);
Matrix<block>sendMsgs(numOTs, numChosenMsgs);

How to print the data for these classes? Thanks!

IKNPDotExtension for Semi Honest

@ladnir If I need to use the IKNPDotExtension for the semi honest setting what do I do? The code for IKNPDotExtension seems to be doing additional stuff as it caters to the malicious setting.

So I need to use a C-OT for generating multiplication triplets, but couldn't find an appropriate extension to use in libOTe. Any pointers regarding this?

Thanks.

i have a error when i build

i have a error when i build "python build.py --setup --boost --relic",as follow:

Traceback (most recent call last):
File "build.py", line 3, in
import cryptoTools.build
ModuleNotFoundError: No module named 'cryptoTools.build'

what should i do ?

More information on how to use this?

Hello,
I am trying to use kkrt as an OPRF in a wider protocol. I wanted to have two parties, one with an input, and the other running the PRF. I was wondering if could give any assistance with understanding how to interface with this library in a broader context. From what I can see, frontend.exe is only for benchmarking the code, but I could be mistaken.

KKRT PROTOCOL

If use KKRT protocol, Does SimplestOT have to must be used libOTe in the java project?
I mean, can I ignore SimplestOT?

cuckoo stash overflow

image
hi, each partie's dataset we used doesn't have duplicate data, and we didn't have cuckoo stash overflow in last year’s commit:
libPSI commit:bc9b405f91936e74394efd47da3b2e3ec4cb77df
libOTE commit:e4943906b900b472d63a0519625b417914e6cf47

the dataset we used are following.
the dataset of party0 , input0.csv:
1
2
3
4
5
6

the dataset of party1, input1.csv:
1
3
5
7
8
9

Running Kos with BaseOt's

Hi,

what commands should I append to ./bin/frontend_libOTe - in order to run Kos using BaseOt's and number of threads bigger than 1?

Regards,
Noa

linux building issues with Simplest OT

When I try to build on linux (Ubuntu 19.04) with SimplestOT ON I get errors. Any ideas why?
Here is a small repro.

osboxes@osboxes:~/other_tests$ git clone [email protected]:osu-crypto/libOTe.git --recursive
Cloning into 'libOTe'...
remote: Enumerating objects: 472, done.
remote: Counting objects: 100% (472/472), done.
remote: Compressing objects: 100% (295/295), done.
remote: Total 3567 (delta 278), reused 336 (delta 175), pack-reused 3095
Receiving objects: 100% (3567/3567), 2.32 MiB | 12.44 MiB/s, done.
Resolving deltas: 100% (2545/2545), done.
Submodule 'cryptoTools' (https://github.com/ladnir/cryptoTools.git) registered for path 'cryptoTools'
Cloning into '/home/osboxes/other_tests/libOTe/cryptoTools'...
remote: Enumerating objects: 179, done.        
remote: Counting objects: 100% (179/179), done.        
remote: Compressing objects: 100% (117/117), done.        
remote: Total 2847 (delta 117), reused 109 (delta 62), pack-reused 2668        
Receiving objects: 100% (2847/2847), 1.11 MiB | 9.95 MiB/s, done.
Resolving deltas: 100% (2133/2133), done.
Submodule path 'cryptoTools': checked out 'f64289334505a114111c283ba3087e8509e4d7e8'
osboxes@osboxes:~/other_tests$ cd libOTe/cryptoTools/thirdparty/linux/
osboxes@osboxes:~/other_tests/libOTe/cryptoTools/thirdparty/linux$ bash all.get 
 =================== Building Boost ===================
--2019-09-08 13:11:34--  https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.bz2
Resolving dl.bintray.com (dl.bintray.com)... 54.201.76.60, 52.35.217.225
Connecting to dl.bintray.com (dl.bintray.com)|54.201.76.60|:443... connected.
HTTP request sent, awaiting response... 302 
Location: https://d29vzk4ow07wi7.cloudfront.net/8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406?response-content-disposition=attachment%3Bfilename%3D%22boost_1_69_0.tar.bz2%22&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHAqOi8vZDI5dnprNG93MDd3aTcuY2xvdWRmcm9udC5uZXQvOGYzMmQ0NjE3MzkwZDFjMmQxNmYyNmEyN2FiNjBkOTc4MDdiMzU0NDBkNDU4OTFmYTM0MGZjMjY0OGIwNDQwNj9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPWF0dGFjaG1lbnQlM0JmaWxlbmFtZSUzRCUyMmJvb3N0XzFfNjlfMC50YXIuYnoyJTIyIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNTY3OTYzNDE1fSwiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9fX1dfQ__&Signature=etUOtILRFYDjKgvmWqceG8cF4tW8LNMjWL1JixU0E8lqG2Al2W8WWV8CEA9PW2K8DhLAfcl-Em07sJW2RhAS9Qe9ftO0YKddoSLRU68v45GshcOk7qxPL-xS-zcqyKdKQHD0bTbFxcmNZnkNdTXDSunbaUfh4tUceD6C9EuKkkzO51wMPC~Hq69DNoK2meM9~Cfzmb-FuJ-JrO6-i5wpyRp1XS8992v9q~~cu-qGiGEkZlpHmkEKk1ehNhcB1qO1ewPZI4oRQzPLBZU8IYzSXjNgIl~mSTRQuwBW3neCV7rujuWG8pMuqVKNLWEHnB2VmJnJN~cm1cwPOhvzkQ5KYQ__&Key-Pair-Id=APKAIFKFWOMXM2UMTSFA [following]
--2019-09-08 13:11:35--  https://d29vzk4ow07wi7.cloudfront.net/8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406?response-content-disposition=attachment%3Bfilename%3D%22boost_1_69_0.tar.bz2%22&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHAqOi8vZDI5dnprNG93MDd3aTcuY2xvdWRmcm9udC5uZXQvOGYzMmQ0NjE3MzkwZDFjMmQxNmYyNmEyN2FiNjBkOTc4MDdiMzU0NDBkNDU4OTFmYTM0MGZjMjY0OGIwNDQwNj9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPWF0dGFjaG1lbnQlM0JmaWxlbmFtZSUzRCUyMmJvb3N0XzFfNjlfMC50YXIuYnoyJTIyIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNTY3OTYzNDE1fSwiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9fX1dfQ__&Signature=etUOtILRFYDjKgvmWqceG8cF4tW8LNMjWL1JixU0E8lqG2Al2W8WWV8CEA9PW2K8DhLAfcl-Em07sJW2RhAS9Qe9ftO0YKddoSLRU68v45GshcOk7qxPL-xS-zcqyKdKQHD0bTbFxcmNZnkNdTXDSunbaUfh4tUceD6C9EuKkkzO51wMPC~Hq69DNoK2meM9~Cfzmb-FuJ-JrO6-i5wpyRp1XS8992v9q~~cu-qGiGEkZlpHmkEKk1ehNhcB1qO1ewPZI4oRQzPLBZU8IYzSXjNgIl~mSTRQuwBW3neCV7rujuWG8pMuqVKNLWEHnB2VmJnJN~cm1cwPOhvzkQ5KYQ__&Key-Pair-Id=APKAIFKFWOMXM2UMTSFA
Resolving d29vzk4ow07wi7.cloudfront.net (d29vzk4ow07wi7.cloudfront.net)... 13.33.46.170, 13.33.46.106, 13.33.46.221, ...
Connecting to d29vzk4ow07wi7.cloudfront.net (d29vzk4ow07wi7.cloudfront.net)|13.33.46.170|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 95078138 (91M) [application/x-bzip2]
Saving to: ‘./boost_1_69_0.tar.bz2’

./boost_1_69_0.tar.bz2                             100%[================================================================================================================>]  90.67M   999KB/s    in 63s     

2019-09-08 13:12:39 (1.43 MB/s) - ‘./boost_1_69_0.tar.bz2’ saved [95078138/95078138]

Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

    ./b2
    
To adjust configuration, edit 'project-config.jam'.
Further information:

   - Command line help:
     ./b2 --help
     
   - Getting started guide: 
     http://www.boost.org/more/getting_started/unix-variants.html
     
   - Boost.Build documentation:
     http://www.boost.org/build/doc/html/index.html

Performing configuration checks

    - default address-model    : 64-bit
    - default architecture     : x86
    - lockfree boost::atomic_flag : yes

Component configuration:

    - atomic                   : not building
    - chrono                   : not building
    - container                : not building
    - context                  : not building
    - contract                 : not building
    - coroutine                : not building
    - date_time                : not building
    - exception                : not building
    - fiber                    : not building
    - filesystem               : not building
    - graph                    : not building
    - graph_parallel           : not building
    - iostreams                : not building
    - locale                   : not building
    - log                      : not building
    - math                     : not building
    - mpi                      : not building
    - program_options          : not building
    - python                   : not building
    - random                   : not building
    - regex                    : not building
    - serialization            : not building
    - stacktrace               : not building
    - system                   : building
    - test                     : not building
    - thread                   : building
    - timer                    : not building
    - type_erasure             : not building
    - wave                     : not building

...patience...
...found 1264 targets...
...updating 25 targets...
gcc.compile.c++ bin.v2/libs/system/build/gcc-8.3.0/release/link-static/threading-multi/visibility-hidden/error_code.o
gcc.archive bin.v2/libs/system/build/gcc-8.3.0/release/link-static/threading-multi/visibility-hidden/libboost_system.a
common.copy stage/lib/libboost_system.a
gcc.compile.c++ bin.v2/libs/thread/build/gcc-8.3.0/release/link-static/threadapi-pthread/threading-multi/visibility-hidden/pthread/thread.o
gcc.compile.c++ bin.v2/libs/thread/build/gcc-8.3.0/release/link-static/threadapi-pthread/threading-multi/visibility-hidden/pthread/once.o
gcc.compile.c++ bin.v2/libs/thread/build/gcc-8.3.0/release/link-static/threadapi-pthread/threading-multi/visibility-hidden/future.o
gcc.archive bin.v2/libs/thread/build/gcc-8.3.0/release/link-static/threadapi-pthread/threading-multi/visibility-hidden/libboost_thread.a
common.copy stage/lib/libboost_thread.a
...updated 25 targets...
 =================== Building Miracl ==================
downloading Miracl
Cloning into 'miracl'...
remote: Enumerating objects: 638, done.
remote: Total 638 (delta 0), reused 0 (delta 0), pack-reused 638
Receiving objects: 100% (638/638), 19.70 MiB | 15.71 MiB/s, done.
Resolving deltas: 100% (213/213), done.
building Mircal
rm: cannot remove 'libmiracl.a': No such file or directory
 ====================== all done! =====================
osboxes@osboxes:~/other_tests/libOTe/cryptoTools/thirdparty/linux$ cd ../../../
osboxes@osboxes:~/other_tests/libOTe$ cmake . -DENABLE_SIMPLESTOT=ON
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Option: CMAKE_BUILD_TYPE = Release
	Release
	Debug
	RelWithDebInfo
-- Option: ENABLE_SIMPLESTOT = ON
-- Option: ENABLE_KYBEROT    = OFF
-- Option: KOS hashing (current = OTE_DAVIE_MEYER_AES):

--       OTE_KOS_HASH=OTE_RANDOM_ORACLE         use the random oracle (slower)
--       OTE_KOS_HASH=OTE_DAVIE_MEYER_AES       use AES in the Davie Meyer compression function

-- Option: OTE_KOS_FIAT_SHAMIR = OFF
-- Option: ENABLE_SILENTOT   = OFF
-- Option: ENABLE_MIRACL     = OFF
-- Option: ENABLE_RELIC      = OFF
-- Option: ENABLE_CIRCUITS   = OFF
-- Option: ENABLE_CPP_14     = ON
-- Option: ENABLE_NASM       = OFF
-- Option: ENABLE_NET_LOG    = OFF
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Boost version: 1.69.0
-- Found the following Boost libraries:
--   system
--   thread
-- Boost_include  /home/osboxes/other_tests/libOTe/cryptoTools/thirdparty/linux/boost
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Configuring done
-- Generating done
-- Build files have been written to: /home/osboxes/other_tests/libOTe
osboxes@osboxes:~/other_tests/libOTe$ make 
Scanning dependencies of target sha_asm
[  0%] Built target sha_asm
Scanning dependencies of target cryptoTools
[  1%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Circuit/BetaCircuit.cpp.o
[  2%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Circuit/BetaLibrary.cpp.o
[  3%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/BitVector.cpp.o
[  3%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/CLP.cpp.o
[  4%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/CuckooIndex.cpp.o
[  5%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/Defines.cpp.o
[  5%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/Log.cpp.o
[  6%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/TestCollection.cpp.o
[  7%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Common/Timer.cpp.o
[  7%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/AES.cpp.o
[  8%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/Blake2.cpp.o
[  9%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/Curve.cpp.o
[ 10%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/PRNG.cpp.o
[ 10%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/RCurve.cpp.o
[ 11%] Building C object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/blake2/blake2b.c.o
[ 12%] Building C object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/blake2/blake2bp.c.o
[ 12%] Building C object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/blake2/blake2xb.c.o
[ 13%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Crypto/sha1.cpp.o
[ 14%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Network/Channel.cpp.o
[ 14%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Network/IOService.cpp.o
[ 15%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Network/IoBuffer.cpp.o
[ 16%] Building CXX object cryptoTools/cryptoTools/CMakeFiles/cryptoTools.dir/Network/Session.cpp.o
[ 16%] Linking CXX static library ../../lib/libcryptoTools.a
[ 16%] Built target cryptoTools
Scanning dependencies of target tests_cryptoTools
[ 17%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/AES_Tests.cpp.o
[ 18%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/BtChannel_Tests.cpp.o
[ 18%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/Circuit_Tests.cpp.o
[ 19%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/Circuit_aes_Tests.cpp.o
[ 20%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/Common.cpp.o
[ 20%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/Cuckoo_Tests.cpp.o
[ 21%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/Ecc_Tests.cpp.o
[ 22%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/Misc_Tests.cpp.o
[ 22%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/REcc_Tests.cpp.o
[ 23%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/SimpleCuckoo.cpp.o
[ 24%] Building CXX object cryptoTools/tests_cryptoTools/CMakeFiles/tests_cryptoTools.dir/UnitTests.cpp.o
[ 25%] Linking CXX static library ../../lib/libtests_cryptoTools.a
[ 25%] Built target tests_cryptoTools
Scanning dependencies of target frontend_cryptoTools
[ 26%] Building CXX object cryptoTools/frontend_cryptoTools/CMakeFiles/frontend_cryptoTools.dir/Tutorials/Network.cpp.o
[ 27%] Building CXX object cryptoTools/frontend_cryptoTools/CMakeFiles/frontend_cryptoTools.dir/main.cpp.o
[ 28%] Building CXX object cryptoTools/frontend_cryptoTools/CMakeFiles/frontend_cryptoTools.dir/signalHandle.cpp.o
[ 28%] Linking CXX executable ../../bin/frontend_cryptoTools
[ 28%] Built target frontend_cryptoTools
Scanning dependencies of target SimplestOT
[ 28%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/Keccak-simple.c.o
[ 29%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/consts.s.o
[ 30%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/consts4x.s.o
[ 30%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/cpucycles.c.o
[ 31%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_add.c.o
[ 32%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_freeze.s.o
[ 32%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_getparity.c.o
[ 33%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_invert.c.o
[ 34%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_iseq_vartime.c.o
[ 34%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_mul.s.o
[ 35%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_neg.c.o
[ 36%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_nsquare.s.o
[ 37%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_pack.c.o
[ 37%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_pow2523.c.o
[ 38%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_setint.c.o
[ 39%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_square.s.o
[ 39%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_sub.c.o
[ 40%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/fe25519_unpack.c.o
[ 41%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_add.c.o
[ 41%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_add_p1p1.s.o
[ 42%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_dbl_p1p1.s.o
[ 43%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_double.c.o
[ 43%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_lookup.s.o
[ 44%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_lookup_niels.s.o
[ 45%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_nielsadd2.s.o
[ 46%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_p1p1_to_p2.s.o
[ 46%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_p1p1_to_p3.s.o
[ 47%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_pack.c.o
[ 48%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_scalarmult.c.o
[ 48%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_scalarmult_base.c.o
[ 49%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_setneutral.c.o
[ 50%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge25519_unpack.c.o
[ 50%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x.c.o
[ 51%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_add_p1p1.s.o
[ 52%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_double_p1p1.s.o
[ 53%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_lookup.s.o
[ 53%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_lookup_niels.s.o
[ 54%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_niels_add_p1p1.s.o
[ 55%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_pack.c.o
[ 55%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ge4x_unpack_vartime.c.o
[ 56%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x.c.o
[ 57%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_add.s.o
[ 57%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_getparity.c.o
[ 58%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_iseq_vartime.c.o
[ 59%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_mul.s.o
[ 59%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_nsquare.c.o
[ 60%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_pow2523.c.o
[ 61%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_square.s.o
[ 62%] Building ASM object SimplestOT/CMakeFiles/SimplestOT.dir/gfe4x_sub.s.o
[ 62%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/network.c.o
[ 63%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ot_receiver.c.o
[ 64%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ot_receiver_test.c.o
[ 64%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ot_sender.c.o
[ 65%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/ot_sender_test.c.o
[ 66%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/randombytes.c.o
[ 66%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/sc25519_from32bytes.c.o
[ 67%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/sc25519_random.c.o
[ 68%] Building C object SimplestOT/CMakeFiles/SimplestOT.dir/sc25519_window4.c.o
[ 68%] Linking CXX static library ../lib/libSimplestOT.a
[ 68%] Built target SimplestOT
Scanning dependencies of target libOTe
[ 69%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Base/MasnyRindal.cpp.o
[ 70%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Base/MasnyRindalKyber.cpp.o
[ 70%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Base/SimplestOT.cpp.o
[ 71%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Base/naor-pinkas.cpp.o
[ 72%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseK/AknOtReceiver.cpp.o
[ 72%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseK/AknOtSender.cpp.o
[ 73%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/Kkrt/KkrtNcoOtReceiver.cpp.o
[ 74%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/Kkrt/KkrtNcoOtSender.cpp.o
[ 75%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/NcoOtExt.cpp.o
[ 75%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/Oos/OosNcoOtReceiver.cpp.o
[ 76%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/Oos/OosNcoOtSender.cpp.o
[ 77%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/RR17/Rr17NcoOtReceiver.cpp.o
[ 77%] Building CXX object libOTe/CMakeFiles/libOTe.dir/NChooseOne/RR17/Rr17NcoOtSender.cpp.o
[ 78%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/LinearCode.cpp.o
[ 79%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/SilentPprf.cpp.o
[ 79%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/Tools.cpp.o
[ 80%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/bitpolymul.cpp.o
[ 81%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/bitpolymul/bc.cpp.o
[ 82%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/bitpolymul/bc_to_lch_gen_code.cpp.o
[ 82%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/bitpolymul/bc_to_mono_gen_code.cpp.o
[ 83%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/bitpolymul/btfy.cpp.o
[ 84%] Building CXX object libOTe/CMakeFiles/libOTe.dir/Tools/bitpolymul/encode.cpp.o
[ 84%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/IknpDotExtReceiver.cpp.o
[ 85%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/IknpDotExtSender.cpp.o
[ 86%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/IknpOtExtReceiver.cpp.o
[ 86%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/IknpOtExtSender.cpp.o
[ 87%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/KosDotExtReceiver.cpp.o
[ 88%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/KosDotExtSender.cpp.o
[ 88%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/KosOtExtReceiver.cpp.o
[ 89%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/KosOtExtSender.cpp.o
[ 90%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/OTExtInterface.cpp.o
[ 91%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/SilentOtExtReceiver.cpp.o
[ 91%] Building CXX object libOTe/CMakeFiles/libOTe.dir/TwoChooseOne/SilentOtExtSender.cpp.o
[ 92%] Linking CXX static library ../lib/liblibOTe.a
[ 92%] Built target libOTe
Scanning dependencies of target libOTe_Tests
[ 93%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/AknOt_Tests.cpp.o
[ 93%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/BaseOT_Tests.cpp.o
[ 94%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/Common.cpp.o
[ 95%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/NcoOT_Tests.cpp.o
[ 95%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/OT_Tests.cpp.o
[ 96%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/SilentOT_Tests.cpp.o
[ 97%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/UnitTests.cpp.o
[ 97%] Building CXX object libOTe_Tests/CMakeFiles/libOTe_Tests.dir/bitpolymul_Tests.cpp.o
[ 98%] Linking CXX static library ../lib/liblibOTe_Tests.a
[ 98%] Built target libOTe_Tests
Scanning dependencies of target frontend_libOTe
[ 99%] Building CXX object frontend/CMakeFiles/frontend_libOTe.dir/main.cpp.o
[100%] Building CXX object frontend/CMakeFiles/frontend_libOTe.dir/util.cpp.o
[100%] Linking CXX executable ../bin/frontend_libOTe
/usr/bin/ld: ../lib/libSimplestOT.a(ge25519_p1p1_to_p3.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge4x_add_p1p1.s.o): relocation R_X86_64_32S against symbol `Gk' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge4x_double_p1p1.s.o): relocation R_X86_64_32S against symbol `scale19' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge4x_lookup.s.o): relocation R_X86_64_32S against symbol `_allone' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge4x_lookup_niels.s.o): relocation R_X86_64_32S against symbol `_allone' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge4x_niels_add_p1p1.s.o): relocation R_X86_64_32S against symbol `scale19' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(gfe4x_mul.s.o): relocation R_X86_64_32S against symbol `scale19' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(gfe4x_square.s.o): relocation R_X86_64_32S against symbol `scale19' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(fe25519_freeze.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(fe25519_mul.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(fe25519_nsquare.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(fe25519_square.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge25519_add_p1p1.s.o): relocation R_X86_64_32S against symbol `CONST_2P0' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge25519_dbl_p1p1.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge25519_lookup_niels.s.o): relocation R_X86_64_32S against symbol `CONST_2P0' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge25519_nielsadd2.s.o): relocation R_X86_64_32S against symbol `CONST_2P0' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: ../lib/libSimplestOT.a(ge25519_p1p1_to_p2.s.o): relocation R_X86_64_32S against symbol `CONST_REDMASK51' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[2]: *** [frontend/CMakeFiles/frontend_libOTe.dir/build.make:106: bin/frontend_libOTe] Error 1
make[1]: *** [CMakeFiles/Makefile2:486: frontend/CMakeFiles/frontend_libOTe.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Issue when building on MAC

libOTe/SimplestOT/fe25519_freeze.s:141:1: error: 32-bit absolute addressing is not supported in 64-bit mode

Unable to "make install" (mac)

Main issue:
When I try make install, I run into it being unable to find a "cryptotools-config.cmake" in cryptotools.

[ 96%] Built target libOTe_Tests
[100%] Built target frontend_libOTe
Install the project...
-- Install configuration: "Release"
CMake Error at cryptoTools/cmake_install.cmake:41 (file):
  file INSTALL cannot find
  "/Users/..../libs/libOTe/cryptoTools/cryptotools-config.cmake": No such
  file or directory.
Call Stack (most recent call first):
  cmake_install.cmake:42 (include)


make: *** [install] Error 1

I kinda worked around this by commenting out the line with install(FILES cryptotools-config.cmake DESTINATION cmake/) in the cryptoTools/CmakeList.txt.
But while this does technically get through make install without errors, it feels like the wrong thing to do.


Possibly related issue: Even after doing the above workaround, I am not sure of the right way to include it in my project.

find_package(libOTe REQUIRED) fails, as it can't find "libOTeConfig.cmake" or "libote-config.cmake" anywhere.
Because of the workaround above, using "cryptoTools" as the name fails for similar reasons.

What is the correct package name? Or am I doing this incorrectly?
I couldn't find any "*onfig.cmake" files in this project that would hint at what I should use.


Some context:
On a mac.
I had to update the libOTE minimum cmake version to get cmake to stop having openmp issues.
"make" itself is working, to the extent that ./frontend/frontend_libOTe has output.
I have relic installed, and enabled. I also turned on NP and IKNP just as a baseline.
I ran things out of a "build" folder, i.e. mkdir build; cd build; cmake .. {options}; make.

Inputs and Output in KKRT Protocol

I would like to use KKRT implementation of the libOTe library. For using KKRT protocol, previous issues have been directed to https://github.com/osu-crypto/libOTe/blob/master/libOTe_Tests/NcoOT_Tests.cpp#L32. Here, which method/function should we follow? Further, I am unable to figure out for each N choose 1 OTs which object stores the random inputs of the Sender and the choices and the inputs received corresponding to the choices for the Receiver. Can you direct me to these objects?

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.