プロジェクト

全般

プロフィール

バグ #842

完了

OpenSSL::Cipher#key= に長すぎるキーを指定しないようにする

rhen ium さんがほぼ8年前に追加. 7年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:

説明

以前は OpenSSL::Cipher#key= に長すぎる文字列を渡した場合、勝手に(bf-ecb なら)16 バイトに切り詰められていたのですが、RDoc にも言及がなくどう考えても不自然な挙動なので、2 日前に r55146 (https://github.com/ruby/ruby/commit/ce635262f53b760284d56bb1027baebaaec175d1) で弾かれるように変更しました。
mikutter では SecureRandom.hex(= 32 バイト)を直接渡しているため、この影響を受けてしまっています。これは mikutter 側で修正するべきだと思うのですがどうでしょうか。

diff --git a/core/service_keeper.rb b/core/service_keeper.rb
index cdf18fa..fc4775e 100644
--- a/core/service_keeper.rb
+++ b/core/service_keeper.rb
@@ -15,7 +15,8 @@ class Service
     @@service_lock = Monitor.new

     def key
-      UserConfig[:account_crypt_key] ||= SecureRandom.hex end
+      key = UserConfig[:account_crypt_key] ||= SecureRandom.hex(8)
+      key[0, 16] end

     # 全てのアカウント情報をオブジェクトとして返す
     # ==== Return

再現手順

rubyのHEADでmikutterを起動する


関連するチケット

関連している 機能 #877: Ruby 2.4に対応するため、gtk2 3.0.9を利用する終了コスモ 虹川2016-09-03

操作

他の形式にエクスポート: Atom PDF