Я только что обновил свой Mac до Snow Leopard и заработал среду Rails. Единственное отличие - OSX в стороне - с моей предыдущей установкой я теперь запускаю ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
(Snow Leopard по умолчанию), а не 1.8.6.Как разрешить предупреждения об устаревании для OpenSSL :: Cipher :: Cipher # encrypt
Я теперь вижу устаревание предупреждения, относящееся к OpenSSL, когда я запускаю мой код:
warning: argumtents for OpenSSL::Cipher::Cipher#encrypt and OpenSSL::Cipher::Cipher#decrypt were deprecated; use OpenSSL::Cipher::Cipher#pkcs5_keyivgen to derive key and IV
Пример моего код, который вызывает эти предупреждения (он декодирует зашифрованную строку) в строке 4:
1. def decrypt(data)
2. encryptor = OpenSSL::Cipher::Cipher.new('DES-EDE3-CBC')
3. key = "my key"
4. encryptor.decrypt(key)
5. text = encryptor.update(data)
6. text << encryptor.final
7. end
Я изо всех сил пытаюсь понять, как я могу это разрешить, и Google на самом деле не помогает. Должен ли я попытаться перейти на Ruby 1.8.6 (и если да, то как это лучше всего сделать?), Я должен попытаться просто скрыть предупреждения (похоронить мою голову в песке ?!) или есть простое исправление I может применяться в коде?
Смотрите примечание ниже о упорядочении звонков в '' decrypt' и pkcs5_keyivgen'. – jrdioko
См. Также новую [документацию] (https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl.c#L409). – jrdioko