Skip to content

メッセージの復号失敗とグループ名のID表示を修正 - #5

Open
shirafukayayoi wants to merge 3 commits into
MidnightTale:masterfrom
shirafukayayoi:codex/e2ee-group-info
Open

shirafukayayoi wants to merge 3 commits into
MidnightTale:masterfrom
shirafukayayoi:codex/e2ee-group-info

Conversation

@shirafukayayoi

Copy link
Copy Markdown

暗号化された本文の復号に失敗すると (none) が表示され、参加グループが多い環境ではグループ名の代わりにIDが表示されます。暗号鍵の取得・キャッシュを修正したlinejsへ更新し、グループ情報を小分けに取得するようにします。

変更内容

  • linejsと型定義を3.5.0に固定。ログイン時の鍵束から指定IDの鍵を選び、相手別の公開鍵キャッシュを使用します。保存済みの過去の世代の鍵は維持します。
  • 復号失敗を明示するフラグと、既存のQR再認証による暗号鍵の再取得操作を追加。空の本文や復号失敗を保存したキャッシュは再取得します。同じメッセージIDでも本文が修復された場合は画面を更新します。
  • グループ情報を5件ずつ取得し、失敗したバッチだけ個別取得へ切り替えます。名前・画像・通知設定を保存し、受信したグループメッセージを送信者個人のDMへ振り分けないようにします。
  • 再度のアプリ起動は既存ウィンドウを表示し、同じ鍵を共有する通信処理を重複させません。QR認証はスマホの操作時間を確保するため通常の要求より長く待ちます。

検証

Arch Linux / x86_64、GTK4・Libadwaita、Rust・Denoで確認しました。

  • cargo fmt --all -- --check
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo test --all-targets --all-features:8件成功。
  • deno task --config protocol/deno.json check:12件成功。同じ鍵IDを持つ別の相手、鍵束の選択と過去の世代の保持、復号失敗・キャッシュ再取得、115グループの分割取得、部分失敗とメッセージの振り分けを確認。
  • 通信プログラムのコンパイルと、認証情報なしでの起動を確認。
  • 分離前のローカル統合版では、実アカウントの暗号化本文20件すべてを復号し、115グループすべての名前・画像を取得できました。メッセージ送信は行っていません。この独立PRでのQR再認証の実アカウント検証は未実施です。
  • 日本語対応PRとのローカル結合でも競合なくマージでき、Rust 13件・Deno 13件、fmt・clippyが成功。

日本語UIの追加とメールログイン機能は含めていません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant