osu-crypto / libote Goto Github PK
View Code? Open in Web Editor NEWA fast, portable, and easy to use Oblivious Transfer Library
License: Other
A fast, portable, and easy to use Oblivious Transfer Library
License: Other
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.
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 .
.
Does the kkrt function need libSimplestOT.a
@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
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?
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 ?
Hello, I want to use libOTe in the java project, and then get an error message like:
like this: ASM cannot set position for fpic flags in simplest,
https://stackoverflow.com/questions/64853279/set-pic-flag-for-asm-compiling
is there possible to compile a dynamic library to libOTe and use ASM flags, thks a lot.
.....(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
@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.
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
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 ;
git clone --recursive https://github.com/osu-crypto/libOTe.git
cd libOTe/cryptoTools/thirdparty/win
$PWD\bootstrap.bat
.\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
git clone https://github.com/ladnir/relic.git
cd relic
cmake . -DMULTI=OPENMP -DCMAKE_INSTALL_PREFIX:PATH=C:\libs -DCMAKE_GENERATOR_PLATFORM=x64 -DRUNTIME=MT
cmake --build .
cmake --install .
git clone https://github.com/ladnir/miracl.git
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.
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.
If use KKRT protocol, Does SimplestOT have to must be used libOTe in the java project?
I mean, can I ignore SimplestOT?
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
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?
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
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
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!
Is function Psi_drrn_FullSet_Test_Impl Can run independently?
@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~
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
.
libOTe/libOTe/NChooseOne/NcoOtExt.cpp
Line 14 in 9dc5edb
At the NcoOtExt, I think the receiver should randomize their base OT messages.
But, I can not find randomization of the block array of vector.
I wonder this is normal or not.
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.
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../b2 install
after ./b2
. Then I linked the Boost library in cmake and the issue was solved.target_link_libraries(test_s ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} ${GMP_LIBRARIES} ${GMPXX_LIBRARIES} ${RELIC_LIBRARY} libOTe cryptoTools KyberOT)
.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.
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
I tried to compile the library on ubuntu.
I ran the commands:
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
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.
libOTe/SimplestOT/fe25519_freeze.s:141:1: error: 32-bit absolute addressing is not supported in 64-bit mode
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.
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!
Fix the check at the end, reduce the size of the second transpose
Is there BgiPirTests.cpp code description document?
How many servers and clients does a PIR require?
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?
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
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.
I'm not 100% sure if this is a bug, but I think that the KyberOT implementation has a bug.
The pack_pk
function (
Line 10 in 9dc5edb
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
.@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?
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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.