XCOM & XPCOMに基づいた古いFirefoxアドオンを更新し、WebExtentionに再実装しようとしています。この新しいアドオンは、thisに基づいて、一部の情報を安全に交換するためにfirefox sync server 1.1を使用します。これはJ-PAKEを使用しないため、firefox sync server 1.5を使用することはできません。私はサーバとうまくやり取りすることができましたが、プロトコルの第2段階に遭遇しました。WebExtensions with firefox sync 1.1
モバイル/デスクトップがv2のJ-PAKEのMSG 1.新規、チャネルIDランダム弱い秘密(4つの文字-Z0-9)からと PINを生成する計算とアップロード: にケース内に二重アップロードを防ぎますIf-None-Match:*ヘッダー が指定されています。これにより、 チャネルが空の場合にのみメッセージがアップロードされます。そうでなければ、要求は412 前提条件失敗で失敗します。これは200 OKと同じとみなされます。 412には、クライアントのデータのEtagも含まれており、 がアップロードされました。
C: PUT /a7id HTTP/1.1
C: If-None-Match: *
C:
C: {
C: 'type': 'receiver1',
C: 'payload': {
C: 'gx1': '45...9b',
C: 'zkp_x1': {
C: 'b': '09e22607ead737150b1a6e528d0c589cb6faa54a',
C: 'gr': '58...7a'
C: 'id': 'receiver',
C: }
C: 'gx2': 'be...93',
C: 'zkp_x2': {
C: 'b': '222069aabbc777dc988abcc56547cd944f056b4c',
C: 'gr': '5c...23'
C: 'id': 'receiver',
C: }
C: }
C: }
問題は、古い実装がXPCOMオブジェクトを使用している:
var jpake = Component.Classes["@mozilla.org/services-crypto/sync-jpake;1"].createInstance(Ci.nsISyncJPAKE);
と機能を使用することができますがhereを説明し、発電の世話をしたhere
jpake.round1(singerId, gx1, gv1, r1, gx2, gv2, r2)
を実装: gx1, gv1, r1, gx2, gv2 and r2
。
WebExtentionsにXPCOMオブジェクトを使用する方法はありますか?あるいは、私はAdd-on SDKと、強制的にXPCOM low-level APIを使用していますか?
hereから値をエミュレートするのに、curve25519.jsを使用しようとしましたが、成功しませんでした。
すべてのヘルプは、これはあなたが古典的なアドオン内WebExt foromを使用することができますDevチャンネル上で送信された電子メールで、 おかげ
はい、従来のアドオンからWeb拡張機能を起動できます。また、従来のアドオン側ではXPCOMを使用することができます。あなたのメールアドレスは何ですか?私はdevのチャンネルからメールを転送します。 – Noitidart