Я новичок в защите данных и пытаюсь интегрировать драгоценный камень Lockbox в свое приложение Rails.
Моя цель - создать многоступенчатую форму, которая включает зашифрованную личную информацию . В настоящее время я занимаюсь разработкой и считаю чрезвычайно полезным проверять свой объект на каждом этапе. Однако после введения Lockbox я потерял возможность проверять объект из-за ошибки дешифрования.
К сожалению, я не нашел много блогов, сообщений в стеке или подробной документации, которые могли бы помочь мне с пониманием и отладкой этого, и я не должен полностью понимать исходный код для драгоценного камня.
Я подошел к решению этой проблемы, расшифровывая в представлении или в контроллере и пытаясь расшифровать различные части объекта в несколько разными способами, но в любом случае возникает ошибка.
step2. html .erb
<% lockbox = Lockbox.new(key: Rails.application.credentials.lockbox[:master_key] ) %>
<% @example_decrypted = lockbox.decrypt(@example.example.attributes) %>
<%= @example_decrypted.inspect %>
Я вижу эту ошибку в строке, которая пытается расшифровать атрибуты:
Lockbox :: DecryptionError в ExampleController # step2p
Ошибка дешифрования
Я также пробовал следующее на шаге 2. html .erb, который также вызывает указанную выше ошибку
<%= @example_decrypted = (@example.example.attributes.encrypted_attribute) %>
Опять же, вышеупомянутое работало нормально до введения в модель шифрования.
Следующий код работает должным образом в моей консоли rails
lockbox = Lockbox.new(key: Rails.application.credentials.lockbox[:master_key] )
=> #<Lockbox::Encryptor:0x000055c8f3faf458 @encode=nil, @boxes=[#<Lockbox::Box:0x000055c8f3faf390>]>
ciphertext = lockbox.encrypt("hello")
=> "vy\xCE\xC7\xB1\x91\x8E\xFE\xCC\x84\xEFl\xE5\x9A\x93\x97\xD9l\xC8\xC3:\r\xE7o\etc..."
lockbox.decrypt(ciphertext)
=> "hello"
Есть идеи?