-SOLVED- Install libsodium 1.0.9
Fresh VM install of Ubuntu 16.04.3 LTS.
Fresh pull of install.sh.
Looks like the crypto constants and functions are not defined where encryption.cpp can use them. But there are no failures to include header files so that's a bit weird.
Code:
vagrant@ubuntu-xenial:/home/eqemu/server_source/Server/build$ make
[ 97%] Built target common
[ 97%] Built target luabind
[ 97%] Built target libuv
[ 97%] Built target fmt
[ 97%] Built target shared_memory
[ 97%] Built target world
[ 97%] Built target zone
[ 97%] Built target ucs
[ 97%] Built target queryserv
[ 97%] Built target eqlaunch
[ 97%] Building CXX object loginserver/CMakeFiles/loginserver.dir/encryption.cpp.o
/home/eqemu/server_source/Server/loginserver/encryption.cpp: In function ‘std::__cxx11::string eqcrypt_argon2(const string&)’:
/home/eqemu/server_source/Server/loginserver/encryption.cpp:78:13: error: ‘crypto_pwhash_STRBYTES’ was not declared in this scope
ret.resize(crypto_pwhash_STRBYTES);
^
/home/eqemu/server_source/Server/loginserver/encryption.cpp:80:56: error: ‘crypto_pwhash_OPSLIMIT_SENSITIVE’ was not declared in this scope
if (crypto_pwhash_str(&ret[0], &msg[0], msg.length(), crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE) != 0) {
^
/home/eqemu/server_source/Server/loginserver/encryption.cpp:80:90: error: ‘crypto_pwhash_MEMLIMIT_SENSITIVE’ was not declared in this scope
if (crypto_pwhash_str(&ret[0], &msg[0], msg.length(), crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE) != 0) {
^
/home/eqemu/server_source/Server/loginserver/encryption.cpp:80:122: error: ‘crypto_pwhash_str’ was not declared in this scope
if (crypto_pwhash_str(&ret[0], &msg[0], msg.length(), crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE) != 0) {
^
/home/eqemu/server_source/Server/loginserver/encryption.cpp: In function ‘bool eqcrypt_verify_hash(const string&, const string&, const string&, int)’:
/home/eqemu/server_source/Server/loginserver/encryption.cpp:147:78: error: ‘crypto_pwhash_str_verify’ was not declared in this scope
return crypto_pwhash_str_verify(&pwhash[0], &password[0], password.length()) == 0;
^
loginserver/CMakeFiles/loginserver.dir/build.make:182: recipe for target 'loginserver/CMakeFiles/loginserver.dir/encryption.cpp.o' failed
make[2]: *** [loginserver/CMakeFiles/loginserver.dir/encryption.cpp.o] Error 1
CMakeFiles/Makefile2:692: recipe for target 'loginserver/CMakeFiles/loginserver.dir/all' failed
make[1]: *** [loginserver/CMakeFiles/loginserver.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2