#include "../include/odhtdb/PasswordHash.hpp" #include namespace odhtdb { OwnedByteArray hashPassword(const DataView &plainPassword, const DataView &salt) { OwnedByteArray result; const uint32_t tCost = 2; const uint32_t mCost = 1 << 16; const uint32_t parallelism = 1; result.data = new uint8_t[HASH_PASSWORD_LENGTH]; result.size = HASH_PASSWORD_LENGTH; if(argon2i_hash_raw(tCost, mCost, parallelism, plainPassword.data, plainPassword.size, salt.data, salt.size, result.data, HASH_PASSWORD_LENGTH) != ARGON2_OK) throw std::runtime_error("Failed to hash password"); return result; } }