Я пытаюсь использовать гем Lockbox для шифрования электронных писем Devise User согласно: https://ankane.org/securing-user-emails-lockbox. Я добавил гем boxbox и blind_index, запустил миграцию (с текстовым полем для: email_ciphertext согласно https://github.com/ankane/lockbox, например:
def change
# encrypted data
add_column :users, :email_ciphertext, :text
#blind index
add_column :users, :email_bidx, :string
add_index :users, :email_bidx, unique: true
#drop the original user email column
remove_column :users, :email
end
и обновил мою модель пользователя с помощью :
encrypts :email, key: "0000000000000000000000000000000000000000000000000000000000000000"
blind_index :email, key: "0000000000000000000000000000000000000000000000000000000000000000"
Однако, когда я пытаюсь создать нового пользователя, я получаю ошибку: LoadError в Users :: RegistrationsController # create Не удается найти Argon2.
Я пытался добавить gem Argon2, но это не исправляет ошибку. Мой файл gem включает в себя:
gem 'lockbox'
gem 'blind_index'
gem 'argon2' , '>= 2'
Я использую
ruby - версия: ruby 2.6.1p33 (2019-01 -30 редакция 66950) [x86_64-linux] и rails -v: Rails 5.0.7.2
Информация о пакете argon2 дает
* argon2 (2.0.2)
Summary: Argon2 Password hashing binding
Homepage: https://github.com/technion/ruby-argon2
Path: /home/csbarton/.rvm/gems/ruby-2.6.1/gems/argon2-2.0.2
Lockbox работает в консоли rails для шифрования / дешифрования строки, но когда я запускаю следующие консольные команды:
n = User.new
n.email="test@email.com"
Я получаю сообщение об ошибке:
NoMethodError (undefined method `argon2id_hash_raw' for Argon2::KDF::FFI:Module)
Есть идеи, почему я не могу создать нового пользователя? Спасибо!