操作
バグ #1585
完了OpenSSL 3.x 環境 (ubuntu 22.04 等) で mikutter が起動しない
プラグイン名:
world
ブランチ:
クラッシュする:
はい
説明
概要¶
ubuntu 22.04 LTS で mikutter 5.0.4 が起動しない。
OpenSSL 3.x で deprecated とされた blowfish が使われていることが原因と思われる。
現象¶
bundler を設定して mikutter を起動すると以下の "unsupported" の OpenSSL のエラーが出力されて起動に失敗する。
notice: {MIKUTTER_DIR}/core/miquire_plugin.rb:154:in `block in load': plugin loaded: {MIKUTTER_DIR}/plugin/world/world.rb /home/tsutsui/mikutter/plugin/world/keep.rb:131:in `initialize': unsupported (OpenSSL::Cipher::CipherError) from /home/tsutsui/mikutter/plugin/world/keep.rb:131:in `new' from /home/tsutsui/mikutter/plugin/world/keep.rb:131:in `decrypt' from /home/tsutsui/mikutter/plugin/world/keep.rb:37:in `block in accounts' from /home/tsutsui/mikutter/plugin/world/keep.rb:34:in `synchronize' from /home/tsutsui/mikutter/plugin/world/keep.rb:34:in `accounts' from /home/tsutsui/mikutter/plugin/world/world.rb:39:in `load_world' from /home/tsutsui/mikutter/plugin/world/world.rb:80:in `block (3 levels) in <top (required)>'
原因¶
world plugin の decrypt
で使用している encrypt()
, decrypt()
で使用している blowfish の bf-ecb
が
OpenSSL 3.x で deprecated とされていて(少なくともデフォルトの状態では)使えなくなっていることが原因と思われる。
source:plugin/world/keep.rb@a94158ee#L131
参考:
https://www.openssl.org/docs/manmaster/man7/migration_guide.html#Deprecated-low-level-encryption-functions
https://wiki.openssl.org/index.php/OpenSSL_3.0#Providers
対応案¶
暗号化というか情報秘匿ではなく難読化が目的であれば、暗号アルゴリズムを使う必然性は薄くて
base64 とかでも同じという気はする。(key も乱数生成で config に保管しているようなので)
ただ、変更すると migration 処理の実装が必要になってそれはそれで大変?
ファイル
再現手順
- ubuntu 22.04 をインストールする
- ログインして端末を起動する
- 以下を実行して mikutter を入れて起動
sudo apt install make gcc git ruby bundler libcairo-dev git clone git://mikutter.hachune.net/mikutter.git cd mikutter bundle config set --local path vendor/bundle bundle install ruby mikutter.rb
操作