Использование 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 МБ). Теперь это работает!

Другие вопросы по тегам