Git Product home page Git Product logo

opensse-schemes'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

Watchers

 avatar  avatar  avatar  avatar  avatar

opensse-schemes's Issues

Installation Error

I have following the suggested procedures to install the dependency,
but I have come to the error in opensee-schemes make procedure,

the error is shown as follows,

[ 37%] Built target sse_crypto
[ 41%] Built target dbparser
[ 54%] Built target schemes
[ 68%] Built target runners
[ 70%] Linking CXX executable sophos_client
../lib/librunners.so: undefined reference to `grpc_core::JoinHostPort(absl::lts_2020_02_25::string_view, int)'

Is there any thing wrong with the grpc installation?
But I have successfully installed grpc with cmake and make.
The only reason I suspect is that should I cmake grpc with option shared libraries (.so)?

Improve the logging

Today, the logging is done by hand, and the result is not satisfactory. We should instead use a logging library that will provide us with far better-looking and usable results, without hindering the performance (glog might be a good idea as we already use grpc and GoogleTest, but other candidates have to be studied).

Re-writes the clients as consoles.

The behavior of the clients is very limited today: there is no interaction between the user and the executable. It would be much easier to have a console that could be used to search for keywords, add new entries, load JSON datasets, ...

Enable CI

Write a functional .travis.yml file and fix all the encountered problems.

Use configuration files instead of CLI arguments to configure the client and server apps

The number of CLI arguments, the poor documentation, and the difficult use of these arguments pledge for a change in the way the client and server applications are configured at startup.
A way better way to deal with configuration is to use configuration files, and to pass the configuration file as the only argument to the executables.

This would require to add code to parse this configuration file, but, as we already use rapidjson to parse JSON datasets, if we decide to use JSON as the format of the configuration file, we would not have to add an additional dependency to the code base. On the other hand, YAML or TOML might be better choices than JSON to write configuration files, but it would require to use a new library.

build on master branch is failing for Ubuntu 18.04

Dear Rbost,
Building seems failing on Ubuntu 18.04.
make
Scanning dependencies of target sse_crypto
[ 1%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/cipher.cpp.o
[ 2%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/key.cpp.o
[ 3%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/prg.cpp.o
[ 4%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/tdp.cpp.o
[ 5%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/prp.cpp.o
[ 6%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/hmac.cpp.o
[ 8%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/prf.cpp.o
[ 9%] Building CXX object third_party/crypto/src/CMakeFiles/sse_crypto.dir/puncturable_enc.cpp.o
In file included from /home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/util.hpp:3:0,
from /home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:11,
from /home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp:23:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator==(const relicxx::ZR&, const relicxx::ZR&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:218:33: error: ‘CMP_EQ’ was not declared in this scope
if (bn_cmp(x.z, y.z) == CMP_EQ) {
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:218:33: note: suggested alternative: ‘M_E’
if (bn_cmp(x.z, y.z) == CMP_EQ) {
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator!=(const relicxx::ZR&, const relicxx::ZR&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:243:33: error: ‘CMP_EQ’ was not declared in this scope
if (bn_cmp(x.z, y.z) != CMP_EQ) {
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:243:33: note: suggested alternative: ‘M_E’
if (bn_cmp(x.z, y.z) != CMP_EQ) {
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator>(const relicxx::ZR&, const relicxx::ZR&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:268:33: error: ‘CMP_GT’ was not declared in this scope
if (bn_cmp(x.z, y.z) == CMP_GT) {
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:268:33: note: suggested alternative: ‘EP_OT’
if (bn_cmp(x.z, y.z) == CMP_GT) {
^~~~~~
EP_OT
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator<(const relicxx::ZR&, const relicxx::ZR&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:293:33: error: ‘CMP_LT’ was not declared in this scope
if (bn_cmp(x.z, y.z) == CMP_LT) {
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:293:33: note: suggested alternative: ‘EP_OT’
if (bn_cmp(x.z, y.z) == CMP_LT) {
^~~~~~
EP_OT
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: At global scope:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:324:58: error: ‘FP_BYTES’ was not declared in this scope
constexpr static uint16_t kByteSize = 1 + 2 * FP_BYTES;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:324:58: note: suggested alternative: ‘FP_QNRES’
constexpr static uint16_t kByteSize = 1 + 2 * FP_BYTES;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:325:54: error: ‘FP_BYTES’ was not declared in this scope
constexpr static uint16_t kCompactByteSize = 1 + FP_BYTES;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:325:54: note: suggested alternative: ‘FP_QNRES’
constexpr static uint16_t kCompactByteSize = 1 + FP_BYTES;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator==(const relicxx::G1&, const relicxx::G1&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:415:36: error: ‘CMP_EQ’ was not declared in this scope
return g1_cmp(x.g, y.g) == CMP_EQ;
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:415:36: note: suggested alternative: ‘M_E’
return g1_cmp(x.g, y.g) == CMP_EQ;
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator!=(const relicxx::G1&, const relicxx::G1&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:419:36: error: ‘CMP_EQ’ was not declared in this scope
return g1_cmp(x.g, y.g) != CMP_EQ;
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:419:36: note: suggested alternative: ‘M_E’
return g1_cmp(x.g, y.g) != CMP_EQ;
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: At global scope:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:426:58: error: ‘FP_BYTES’ was not declared in this scope
constexpr static uint16_t kByteSize = 1 + 4 * FP_BYTES;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:426:58: note: suggested alternative: ‘FP_QNRES’
constexpr static uint16_t kByteSize = 1 + 4 * FP_BYTES;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:427:58: error: ‘FP_BYTES’ was not declared in this scope
constexpr static uint16_t kCompactByteSize = 1 + 2 * FP_BYTES;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:427:58: note: suggested alternative: ‘FP_QNRES’
constexpr static uint16_t kCompactByteSize = 1 + 2 * FP_BYTES;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator==(const relicxx::G2&, const relicxx::G2&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:514:70: error: ‘CMP_EQ’ was not declared in this scope
return g2_cmp(const_cast<G2&>(x).g, const_cast<G2&>(y).g) == CMP_EQ;
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:514:70: note: suggested alternative: ‘M_E’
return g2_cmp(const_cast<G2&>(x).g, const_cast<G2&>(y).g) == CMP_EQ;
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator!=(const relicxx::G2&, const relicxx::G2&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:518:70: error: ‘CMP_EQ’ was not declared in this scope
return g2_cmp(const_cast<G2&>(x).g, const_cast<G2&>(y).g) != CMP_EQ;
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:518:70: note: suggested alternative: ‘M_E’
return g2_cmp(const_cast<G2&>(x).g, const_cast<G2&>(y).g) != CMP_EQ;
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: At global scope:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:525:55: error: ‘FP_BYTES’ was not declared in this scope
constexpr static uint16_t kByteSize = 12 * FP_BYTES;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:525:55: note: suggested alternative: ‘FP_QNRES’
constexpr static uint16_t kByteSize = 12 * FP_BYTES;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:526:54: error: ‘FP_BYTES’ was not declared in this scope
constexpr static uint16_t kCompactByteSize = 8 * FP_BYTES;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:526:54: note: suggested alternative: ‘FP_QNRES’
constexpr static uint16_t kCompactByteSize = 8 * FP_BYTES;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator==(const relicxx::GT&, const relicxx::GT&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:613:70: error: ‘CMP_EQ’ was not declared in this scope
return gt_cmp(const_cast<GT&>(x).g, const_cast<GT&>(y).g) == CMP_EQ;
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:613:70: note: suggested alternative: ‘M_E’
return gt_cmp(const_cast<GT&>(x).g, const_cast<GT&>(y).g) == CMP_EQ;
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function ‘bool relicxx::operator!=(const relicxx::GT&, const relicxx::GT&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:617:70: error: ‘CMP_EQ’ was not declared in this scope
return gt_cmp(const_cast<GT&>(x).g, const_cast<GT&>(y).g) != CMP_EQ;
^~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:617:70: note: suggested alternative: ‘M_E’
return gt_cmp(const_cast<GT&>(x).g, const_cast<GT&>(y).g) != CMP_EQ;
^~~~~~
M_E
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: At global scope:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:80:29: error: ‘RELIC_BN_BITS’ was not declared in this scope
#define RELIC_BN_BYTES CEIL(RELIC_BN_BITS, 8)
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:654:11: note: in expansion of macro ‘RELIC_BN_BYTES’
= RELIC_BN_BYTES + kStatisticalSecurity / 8;
^~~~~~~~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:80:29: note: suggested alternative: ‘RLC_BN_BITS’
#define RELIC_BN_BYTES CEIL(RELIC_BN_BITS, 8)
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:654:11: note: in expansion of macro ‘RELIC_BN_BYTES’
= RELIC_BN_BYTES + kStatisticalSecurity / 8;
^~~~~~~~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:80:24: error: ‘CEIL’ was not declared in this scope
#define RELIC_BN_BYTES CEIL(RELIC_BN_BITS, 8)
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:654:11: note: in expansion of macro ‘RELIC_BN_BYTES’
= RELIC_BN_BYTES + kStatisticalSecurity / 8;
^~~~~~~~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:80:24: note: suggested alternative: ‘CALL’
#define RELIC_BN_BYTES CEIL(RELIC_BN_BITS, 8)
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:654:11: note: in expansion of macro ‘RELIC_BN_BYTES’
= RELIC_BN_BYTES + kStatisticalSecurity / 8;
^~~~~~~~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:657:60: error: could not convert template argument ‘relicxx::PairingGroup::kPrfOutputSize’ from ‘const unsigned int’ to ‘short unsigned int’
ZR pseudoRandomZR(const sse::crypto::Prf& prf,
^
In file included from /home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp:23:0:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:32:61: error: ‘FP_BYTES’ was not declared in this scope
using PPKE_HKDF = sse::crypto::HMac<sse::crypto::Hash, 12 * FP_BYTES>;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:32:61: note: suggested alternative: ‘FP_QNRES’
using PPKE_HKDF = sse::crypto::HMac<sse::crypto::Hash, 12 * FP_BYTES>;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:32:69: error: template argument 2 is invalid
using PPKE_HKDF = sse::crypto::HMac<sse::crypto::Hash, 12 * FP_BYTES>;
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:307:58: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
void keygen(const sse::crypto::Prf& prf,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:312:60: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
void paramgen(const sse::crypto::Prf& prf,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:425:50: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
const sse::crypto::Prf& prf,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:429:50: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
const sse::crypto::Prf& prf,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:451:65: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
void keygenPartial(const sse::crypto::Prf& prf,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:458:74: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
GmppkePrivateKeyShare skgen(const sse::crypto::Prf& prf,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp: In member function ‘sse::crypto::GmmppkeCT sse::crypto::Gmppke::encrypt(const sse::crypto::GmppkePublicKey&, const T&, const tag_type&) const’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:342:34: error: ‘FP_BYTES’ was not declared in this scope
std::array<uint8_t, 12 * FP_BYTES> gt_blind_bytes;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:342:34: note: suggested alternative: ‘FP_QNRES’
std::array<uint8_t, 12 * FP_BYTES> gt_blind_bytes;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:342:42: error: template argument 2 is invalid
std::array<uint8_t, 12 * FP_BYTES> gt_blind_bytes;
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:344:45: error: request for member ‘size’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
.getBytes(false, gt_blind_bytes.size(), gt_blind_bytes.data());
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:344:68: error: request for member ‘data’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
.getBytes(false, gt_blind_bytes.size(), gt_blind_bytes.data());
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:347:34: error: request for member ‘data’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
hkdf.hmac(gt_blind_bytes.data(),
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:348:34: error: request for member ‘size’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
gt_blind_bytes.size(),
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp: In member function ‘sse::crypto::GmmppkeCT sse::crypto::Gmppke::encrypt(const sse::crypto::GmppkeSecretParameters&, const T&, const tag_type&) const’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:368:34: error: ‘FP_BYTES’ was not declared in this scope
std::array<uint8_t, 12 * FP_BYTES> gt_blind_bytes;
^~~~~~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:368:34: note: suggested alternative: ‘FP_QNRES’
std::array<uint8_t, 12 * FP_BYTES> gt_blind_bytes;
^~~~~~~~
FP_QNRES
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:368:42: error: template argument 2 is invalid
std::array<uint8_t, 12 * FP_BYTES> gt_blind_bytes;
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:370:45: error: request for member ‘size’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
.getBytes(false, gt_blind_bytes.size(), gt_blind_bytes.data());
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:370:68: error: request for member ‘data’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
.getBytes(false, gt_blind_bytes.size(), gt_blind_bytes.data());
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:373:34: error: request for member ‘data’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
hkdf.hmac(gt_blind_bytes.data(),
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:374:34: error: request for member ‘size’ in ‘gt_blind_bytes’, which is of non-class type ‘int’
gt_blind_bytes.size(),
^~~~
/home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp: At global scope:
/home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp:52:46: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
const sse::crypto::Prf master_prf_;
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp:55:61: error: could not convert template argument ‘sse::crypto::kPPKEPrfOutputSize’ from ‘const size_t {aka const long unsigned int}’ to ‘short unsigned int’
== sse::crypto::Prf::kKeySize,
^
/home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp: In constructor ‘sse::crypto::PuncturableEncryption::PEncImpl::PEncImpl(sse::crypto::punct::master_key_type&&)’:
/home/vaibhav/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp:61:33: error: cannot convert ‘std::remove_reference<sse::crypto::Key<32>&>::type {aka sse::crypto::Key<32>}’ to ‘const int’ in initialization
: master_prf_(std::move(key))
^
third_party/crypto/src/CMakeFiles/sse_crypto.dir/build.make:230: recipe for target 'third_party/crypto/src/CMakeFiles/sse_crypto.dir/puncturable_enc.cpp.o' failed
make[2]: *** [third_party/crypto/src/CMakeFiles/sse_crypto.dir/puncturable_enc.cpp.o] Error 1
CMakeFiles/Makefile2:1059: recipe for target 'third_party/crypto/src/CMakeFiles/sse_crypto.dir/all' failed
make[1]: *** [third_party/crypto/src/CMakeFiles/sse_crypto.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

Unable to build C object third_party/crypto/src/CMakeFiles/sse_crypto.dir/aez/aez.c.o

Hi @rbost,

I tried building the code in MacOS 11.6 (Apple M1 chip). The build files were successfully written after 'cmake ..', but I got the following error while trying to 'make' it. This doesn't seem to be an error from your code, but do you by chance know what can be the culprit here? Maybe some header files are not included in the file third_party/crypto/src/CMakeFiles/sse_crypto.dir/aez/aez.c.o

[  8%] Building C object third_party/crypto/src/CMakeFiles/sse_crypto.dir/aez/aez.c.o
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:648:17: error: implicit declaration of function '_mm_set1_epi32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        frag1 = _mm_set1_epi32(0x00);
                ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:648:15: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
        frag1 = _mm_set1_epi32(0x00);
              ^ ~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:650:17: error: implicit declaration of function '_mm_set1_epi32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        frag0 = _mm_set1_epi32(0x00);
                ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:650:15: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
        frag0 = _mm_set1_epi32(0x00);
              ^ ~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:651:15: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
        frag1 = _mm_set1_epi32(0x00);
              ^ ~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:662:31: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
    final1 = vxor(final1, aes((const block*)ctx, final0, ctx->J[d]));
             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:143:32: note: expanded from macro 'vxor'
#define vxor(x, y) veorq_u8(x, y)
                               ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:664:31: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
    final0 = vxor(final0, aes((const block*)ctx, final1, ctx->J[d ^ 1]));
             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:143:32: note: expanded from macro 'vxor'
#define vxor(x, y) veorq_u8(x, y)
                               ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:674:33: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
        frag0 = vxor(frag0, aes((const block*)ctx, s, ctx->J[2]));
                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:143:32: note: expanded from macro 'vxor'
#define vxor(x, y) veorq_u8(x, y)
                               ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:675:33: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
        frag1 = vxor(frag1, aes((const block*)ctx, s, vxor(ctx->J[2], J)));
                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:143:32: note: expanded from macro 'vxor'
#define vxor(x, y) veorq_u8(x, y)
                               ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:682:33: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
        frag0 = vxor(frag0, aes((const block*)ctx, s, ctx->J[2]));
                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:143:32: note: expanded from macro 'vxor'
#define vxor(x, y) veorq_u8(x, y)
                               ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:834:17: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
        t = aes((const block*)ctx, t, vxor(ctx->J[0], ctx->J[1]));
                ^~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:862:26: error: passing 'const uint8x16_t *' to parameter of type 'uint8x16_t *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
        t = zero_pad(aes((const block*)ctx, t, vxor(ctx->J[0], ctx->J[1])),
                         ^~~~~~~~~~~~~~~~~
/Users/basanta/Documents/opensse-schemes/third_party/crypto/src/aez/aez.c:182:35: note: passing argument to parameter 'key' here
static uint8x16_t aes(uint8x16_t* key, uint8x16_t in, uint8x16_t first_key)
                                  ^
12 errors generated.
make[2]: *** [third_party/crypto/src/CMakeFiles/sse_crypto.dir/aez/aez.c.o] Error 1
make[1]: *** [third_party/crypto/src/CMakeFiles/sse_crypto.dir/all] Error 2
make: *** [all] Error 2

Build error on Ubuntu 20.04.3: requires -fPIC

Hello,

I am trying to install OpenSSE on Ubuntu 20.04.3. I have installed all the dependencies needed, I am able to execute 'cmake', but I get the following error while trying to 'make' it.

..
[ 52%] Building CXX object lib/CMakeFiles/schemes.dir/tethys/tethys_allocator.cpp.o
[ 53%] Building CXX object lib/CMakeFiles/schemes.dir/pluto/rocksdb_store.cpp.o
[ 54%] Linking CXX shared library libschemes.so
/usr/bin/ld: /usr/local/lib/librocksdb.a(concurrent_arena.o): relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb15ConcurrentArena9tls_cpuidE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(iostats_context.o): relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb15iostats_contextE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(perf_context.o): relocation R_X86_64_TPOFF32 against `__tls_guard' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(perf_level.o): relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb10perf_levelE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(thread_status_updater.o): relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb19ThreadStatusUpdater19thread_status_data_E' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(thread_status_util.o): relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb16ThreadStatusUtil27thread_updater_initialized_E' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(random.o): relocation R_X86_64_TPOFF32 against `_ZZN7rocksdb6Random14GetTLSInstanceEvE12tls_instance' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(thread_local.o): relocation R_X86_64_TPOFF32 against symbol `_ZN7rocksdb14ThreadLocalPtr10StaticMeta4tls_E' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/librocksdb.a(db_impl_open.o): relocation R_X86_64_PC32 against symbol `_ZN7rocksdb32kPersistentStatsColumnFamilyNameB5cxx11E' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [lib/CMakeFiles/schemes.dir/build.make:334: lib/libschemes.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:429: lib/CMakeFiles/schemes.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

I tried editing the CMakeLists.txt by adding the missing flag when compiling, but I still get the same error.

set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) 
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )

Please let me know if any other information is required.

make issue

Hi

I've followed the instructions to build the library on Ubuntu 18.04 but it seems to get stuck in this step in make.

I've installed rocksdb with the shared library and both my clang and gcc versions support C++17.

[ 38%] Built target dbparser
[ 38%] Building CXX object lib/CMakeFiles/schemes.dir/utils/logger.cpp.o
[ 39%] Building CXX object lib/CMakeFiles/schemes.dir/utils/rocksdb_wrapper.cpp.o
In file included from /usr/local/include/rocksdb/iterator.h:23:0,
from /usr/local/include/rocksdb/db.h:20,
from /home/smhan/opensse-schemes/lib/include/sse/schemes/utils/rocksdb_wrapper.hpp:26,
from /home/smhan/opensse-schemes/lib/utils/rocksdb_wrapper.cpp:21:
/usr/local/include/rocksdb/slice.h:46:20: error: ‘string_view’ in namespace ‘std’ does not name a type
Slice(const std::string_view& sv) : data_(sv.data()), size_(sv.size()) {}
^~~~~~~~~~~
/usr/local/include/rocksdb/slice.h:95:8: error: ‘string_view’ in namespace ‘std’ does not name a type
std::string_view ToStringView() const {
^~~~~~~~~~~
/usr/local/include/rocksdb/slice.h: In constructor ‘rocksdb::Slice::Slice(const int&)’:
/usr/local/include/rocksdb/slice.h:46:48: error: request for member ‘data’ in ‘sv’, which is of non-class type ‘const int’
Slice(const std::string_view& sv) : data_(sv.data()), size_(sv.size()) {}
^~~~
/usr/local/include/rocksdb/slice.h:46:66: error: request for member ‘size’ in ‘sv’, which is of non-class type ‘const int’
Slice(const std::string_view& sv) : data_(sv.data()), size_(sv.size()) {}
^~~~
In file included from /home/smhan/opensse-schemes/lib/utils/rocksdb_wrapper.cpp:21:0:
/home/smhan/opensse-schemes/lib/include/sse/schemes/utils/rocksdb_wrapper.hpp: In constructor ‘sse::sophos::RockDBWrapper::RockDBWrapper(const string&)’:
/home/smhan/opensse-schemes/lib/include/sse/schemes/utils/rocksdb_wrapper.hpp:106:13: error: ‘struct rocksdb::Options’ has no member named ‘new_table_reader_for_compaction_inputs’; did you mean ‘disable_auto_compactions’?
options.new_table_reader_for_compaction_inputs = true;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
disable_auto_compactions
/home/smhan/opensse-schemes/lib/include/sse/schemes/utils/rocksdb_wrapper.hpp: In constructor ‘sse::sophos::RockDBListStore<T, Serializer>::RockDBListStore(const string&)’:
/home/smhan/opensse-schemes/lib/include/sse/schemes/utils/rocksdb_wrapper.hpp:387:13: error: ‘struct rocksdb::Options’ has no member named ‘new_table_reader_for_compaction_inputs’; did you mean ‘disable_auto_compactions’?
options.new_table_reader_for_compaction_inputs = true;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
disable_auto_compactions
/home/smhan/opensse-schemes/lib/utils/rocksdb_wrapper.cpp: In constructor ‘sse::sophos::RocksDBCounter::RocksDBCounter(const string&)’:
/home/smhan/opensse-schemes/lib/utils/rocksdb_wrapper.cpp:56:13: error: ‘struct rocksdb::Options’ has no member named ‘new_table_reader_for_compaction_inputs’; did you mean ‘disable_auto_compactions’?
options.new_table_reader_for_compaction_inputs = true;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
disable_auto_compactions
lib/CMakeFiles/schemes.dir/build.make:89: recipe for target 'lib/CMakeFiles/schemes.dir/utils/rocksdb_wrapper.cpp.o' failed

Does opensse-schemes support centos7?

I try to build opensse-schemes on centos7, but I met some problems, what should I do?
The problems look like this, "In file included from /home/swj/research/build/opensse-schemes/third_party/crypto/src/ppke/util.hpp:3:0,
from /home/swj/research/build/opensse-schemes/third_party/crypto/src/ppke/GMPpke.hpp:11,
from /home/swj/research/build/opensse-schemes/third_party/crypto/src/puncturable_enc.cpp:23:
/home/swj/research/build/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h: In function 'bool relicxx::operator==(const relicxx::ZR&, const relicxx::ZR&)':
/home/swj/research/build/opensse-schemes/third_party/crypto/src/ppke/relic_wrapper/relic_api.h:218:33: error: 'RLC_EQ' was not declared in this scope
if (bn_cmp(x.z, y.z) == RLC_EQ) {"

Fail to build out of the box on Mac OS X

I have tried to build on Mac OS X and had to do the following fixes to make it pass:

diff --git a/cmake/FindGRPC.cmake b/cmake/FindGRPC.cmake
index df19edd..8c65838 100644
--- a/cmake/FindGRPC.cmake
+++ b/cmake/FindGRPC.cmake
@@ -77,7 +77,7 @@ endfunction()


 set(protobuf_MODULE_COMPATIBLE TRUE)
-  find_package(Protobuf CONFIG REQUIRED)
+  find_package(Protobuf REQUIRED)
   message(STATUS "Using protobuf ${Protobuf_VERSION}")

   set(PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)

-> there is no Protobuf.Config.cmake file to be found

diff --git a/lib/tethys/tethys_graph.cpp b/lib/tethys/tethys_graph.cpp
index 1fee707..219e5bd 100644
--- a/lib/tethys/tethys_graph.cpp
+++ b/lib/tethys/tethys_graph.cpp
@@ -534,7 +534,7 @@ size_t TethysGraph::get_flow() const
     }

     size_t flow = 0;
-    for (const EdgePtr e_ptr : source.out_edges) {
+    for (const EdgePtr &e_ptr : source.out_edges) {
         // cppcheck-suppress useStlAlgorithm
         flow += edges[e_ptr].flow;
     }

The c++ compiler chokes on the lack of reference operator.

cmake: Could NOT find RocksDB (missing: ROCKSDB_LIBRARIES ROCKSDB_INCLUDE_DIRS)

Hi,
When I try to build with cmake, I get this error:

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.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
-- Performing Test COMPILER_OPT_WALL_SUPPORTED
-- Performing Test COMPILER_OPT_WALL_SUPPORTED - Success
-- Performing Test COMPILER_OPT_WEXTRA_SUPPORTED
-- Performing Test COMPILER_OPT_WEXTRA_SUPPORTED - Success
-- Performing Test COMPILER_OPT_WERROR_SUPPORTED
-- Performing Test COMPILER_OPT_WERROR_SUPPORTED - Success
-- Performing Test COMPILER_OPT_ARCH_NATIVE_SUPPORTED
-- Performing Test COMPILER_OPT_ARCH_NATIVE_SUPPORTED - Success
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find RocksDB (missing: ROCKSDB_LIBRARIES ROCKSDB_INCLUDE_DIRS)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
cmake/FindRocksDB.cmake:35 (find_package_handle_standard_args)
CMakeLists.txt:82 (find_package)

-- Configuring incomplete, errors occurred!

It seems it looks for a directory named lib that doesn't exist in my rocksdb installation

Houston we have a problem

I have these errors while compiling and so I can't test this library, someone would help me?

CMake Warning at /usr/share/cmake-3.23/Modules/FindProtobuf.cmake:524 (message):
  Protobuf compiler version 3.12.4 doesn't match library version 3.19.4
Call Stack (most recent call first):
  CMakeLists.txt:86 (find_package)


CMake Error at /usr/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Protobuf (missing: Protobuf_PROTOC_EXECUTABLE) (found
  version "3.19.4.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/lib/cmake/protobuf/protobuf-module.cmake:160 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /usr/lib/cmake/protobuf/protobuf-config.cmake:151 (include)
  cmake/FindGRPC.cmake:80 (find_package)
  CMakeLists.txt:87 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/kali/opensse-schemes/build/CMakeFiles/CMakeOutput.log".
See also "/home/kali/opensse-schemes/build/CMakeFiles/CMakeError.log".

CMakeError.log
CMakeOutput.log

Cmake Error:Could NOT find Protobuf (missing: Protobuf_PROTOC_EXECUTABLE) (found version "3.13.0.0")

Hi,
When i try to build, i get this error:

cmake ..

CMake Error at /usr/local/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Protobuf (missing: Protobuf_PROTOC_EXECUTABLE) (found
version "3.13.0.0")
Call Stack (most recent call first):
/usr/local/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/usr/local/lib/cmake/protobuf/protobuf-module.cmake:162 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
/usr/local/lib/cmake/protobuf/protobuf-config.cmake:149 (include)
cmake/FindGRPC.cmake:80 (find_package)
CMakeLists.txt:87 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/zhouyou/opensse-schemes/build/CMakeFiles/CMakeOutput.log".
See also "/home/zhouyou/opensse-schemes/build/CMakeFiles/CMakeError.log".

I have installed protobuf :
protoc --version
libprotoc 3.13.0

Running example with diana_client does not work

I have tried to run the example suggested using diana_server and diana_client but the later fails:

% build/src/diana_client -l inverted_index_test.json  whose
[2021-08-05 09:47:27.273] [console] [warning] Client database not specified. Using 'test.dcdb' by default
[2021-08-05 09:47:27.282] [console] [info] Load file inverted_index_test.json
[2021-08-05 09:47:27.294] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.294] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.294] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.294] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.302] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.302] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.302] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.302] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.303] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.303] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.303] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.310] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.311] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.311] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.311] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.311] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.311] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.311] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.312] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.319] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.319] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.319] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.331] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.331] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.331] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.331] [console] [error] Update session stopped: broken stream.
[2021-08-05 09:47:27.331] [console] [info] Loading: 26 keywords processed
[2021-08-05 09:47:27.331] [console] [error] Status not OK at the end of update sessions. Status:
failed to connect to all addresses
Maximum queue size: 18
[2021-08-05 09:47:27.331] [console] [info] Done loading file inverted_index_test.json

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.