Firefox 拡張機能を開発していますが、ベータ テスター (技術に詳しくない) に自動更新を提供したいと考えています。残念ながら、更新サーバーは HTTPS を提供していません。更新の署名に関する Extension Developer Guide によると、update.rdf に署名し、install.rdf でエンコードされた公開鍵を提供する必要があります。
これらすべてを実行するMcCoyツールがありますが、これはインタラクティブな GUI ツールであり、Ant スクリプトを使用して拡張機能のパッケージ化を自動化したいと考えています (これはより大きなプロセスの一部であるため)。update.rdf マニフェストに署名するために何が起こっているかについて、以下よりも正確な説明を見つけることができません。McCoy のソースは非常に多くの JavaScript です。
ドキュメントは次のように述べています。
アドオンの作成者は、公開/秘密の RSA 暗号化キー ペアを作成します。キーの公開部分は DER でエンコードされ、次に Base 64 でエンコードされ、アドオンの install.rdf に updateKey エントリとして追加されます。
(...)
大まかに言えば、更新情報は文字列に変換され、sha512 ハッシュ アルゴリズムを使用してハッシュされ、このハッシュは秘密鍵を使用して署名されます。結果のデータは、署名エントリとして update.rdf に含めるために DER でエンコードされ、次に base 64 でエンコードされます。
DERエンコーディングについてはよくわかりませんが、いくつかのパラメータが必要なようです。
だから誰でも知っているだろう
- 定義済みの鍵ペアを使用して update.rdf と install.rdf に署名するための完全なアルゴリズム、または McCoy のスクリプト可能な代替手段のいずれか
- asn1codingのようなコマンドライン ツールで十分かどうか
- DER エンコーディングに関する優れた/簡単な開発者向けチュートリアル