Activesupport и openssl: ключ должен быть 32 байта - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть проект rails 4.2.1, которому нужен гем с зависимостью от openssl 2.1.1.Моя рубиновая версия 2.3.1.Когда я добавляю гем openssl, я получаю следующую ошибку для любой страницы, которую я загружаю:

lib/active_support/message_encryptor.rb:100: warning: constant OpenSSL::Cipher::Cipher is deprecated

ArgumentError (key must be 32 bytes):
activesupport (4.2.1) lib/active_support/message_encryptor.rb:72:in `key='
  activesupport (4.2.1) lib/active_support/message_encryptor.rb:72:in `_encrypt'
  activesupport (4.2.1) lib/active_support/message_encryptor.rb:58:in `encrypt_and_sign'
  actionpack (4.2.1) lib/action_dispatch/middleware/cookies.rb:527:in `[]='
  actionpack (4.2.1) lib/action_dispatch/middleware/session/cookie_store.rb:110:in `set_cookie'
  rack (1.6.10) lib/rack/session/abstract/id.rb:351:in `commit_session'
  rack (1.6.10) lib/rack/session/abstract/id.rb:226:in `context'
  rack (1.6.10) lib/rack/session/abstract/id.rb:220:in `call'
  actionpack (4.2.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'

Есть ли обходной путь, чтобы сделать их обе совместимыми?

1 Ответ

0 голосов
/ 23 августа 2019

Не меняя старые ключи, я получал succsscull, используя приведенный ниже код для получения ключа:

attr_encrypted: атрибут, ключ: ENV ['MY_KEY']. Bytes [0..31].пачка ("с" * 32)

...