Использование libsodium.crypto_pwhash (Argon2) в узле
У меня проблемы с получением crypto_pwhash_str
работая в моем проекте Node. Я импортировал библиотеки libsodium-wrappers-sumo и libsodium-sumo должным образом и могу успешно вызывать другие функции. Мой вызов проблемной функции выглядит следующим образом:
sodium.crypto_pwhash_str(password, 3, 4096, 'text')
В этом случае пароль - это просто строковый объект с буквой "а".
Когда я запускаю отладчик и пытаюсь выяснить, что идет не так, я получаю этот внутренний блок кода:
if ((libsodium._crypto_pwhash_str(hashed_password_address, password_address, password_length, 0, opsLimit, 0, memLimit) | 0) === 0) {
var ret = libsodium.Pointer_stringify(hashed_password_address);
_free_all(address_pool);
return ret;
}
_free_and_throw_error(address_pool);
Не удается войти в цикл for и вызов _crypto_pwhash_str()
оценивает -1
по какой-то причине.
Кто-нибудь имеет опыт работы с этой библиотекой или может помочь мне понять, что я делаю неправильно. Довольно новый для Node, так что я совершенно заблудился.
1 ответ
Догадаться. Я (по какой-то глупой причине) думал, что memlimit
, который я установил на 4096, был измерен в МБ, по-видимому, он измеряется в килобайтах и имеет минимальное допустимое значение 32768 (32 МБ). Теперь это работает!