(ディスコにて)送信したE2EEメッセージの削除について話していたら、クライアント間に暗号化したActivityPubメッセージをサーバ経由で投げあうのだという話になって壮大すぎるだろうとツッコミを入れている
(ディスコにて)送信したE2EEメッセージの削除について話していたら、クライアント間に暗号化したActivityPubメッセージをサーバ経由で投げあうのだという話になって壮大すぎるだろうとツッコミを入れている
実際、カラムごとにユーザリストを管理するような形式にしないと、E2EEメッセージを普通のメッセージアプリのように表示することはできないだろう…。受信したメッセージがユーザリストの誰かからのものならカラムにfan-outする、そんな仕組みだ
E2EEメッセージには受信者リストもin_reply_toもないので、グループチャットなどはクライアント側がユーザリストを管理する必要がある。サーバ側には全く保持されない。ユーザ間でグループリストを共有する方法は現状ない。
送信したE2EEメッセージはサーバには保存されない。クライアントはアプリ内に保存してIDを独自に発行する必要がある
結局OLMライブラリのCコードをがっつり読むはめになってる。get_one_time_keys_json()の出力はpublish状態のワンタイムキーを含まない。maxOneTimeKeysJniが返す定数100はライブラリ内部から参照されてないように見える。
送信したメッセージも保存する必要がある。相手別にカラムを表示したいが、送り先は複数もてるしin_reply_toがないので工夫が必要そう
受信データのデコードは成功したりしなかったりする。ワンタイムキーの管理の問題らしいが、ライブラリがブラックボックスすぎてよく分からない。