Автоматизируйте подпись манифеста update.rdf для моего расширения Firefox - PullRequest
6 голосов
/ 29 марта 2010

Я разрабатываю расширение для Firefox, и я хотел бы обеспечить автоматическое обновление для моих бета-тестеров (которые не разбираются в технологиях). К сожалению, сервер обновлений не обеспечивает HTTPS. Согласно Руководству разработчика расширений по подписанию обновлений , я должен подписать свой файл update.rdf и предоставить закодированный открытый ключ в файле install.rdf.

Существует инструмент McCoy , чтобы делать все это , но это интерактивный инструмент с графическим интерфейсом, и я хотел бы автоматизировать упаковку расширений с помощью сценария Ant (как это является частью гораздо большего процесса). Я не могу найти более точное описание того, что происходит, чтобы подписать манифест update.rdf, чем ниже, а источник Маккоя - это ужасно много javascript.

Док говорит:

Автор надстройки создает пару криптографических ключей открытый / закрытый RSA. Открытая часть ключа кодируется в DER, а затем в кодировке base 64 и добавляется в install.rdf дополнения в виде записи updateKey.

(...)

Грубо говоря, информация об обновлении преобразуется в строку, затем хэшируется с использованием алгоритма хэширования sha512, и этот хэш подписывается с использованием закрытого ключа. Результирующие данные кодируются с использованием DER, а затем кодируются с помощью base 64 для включения в файл update.rdf в качестве записи подписи.

Я не очень хорошо разбираюсь в кодировании DER, но, похоже, ему нужны некоторые параметры.

Кто бы мог знать

  • либо полный алгоритм подписания update.rdf и install.rdf с использованием предопределенной пары ключей, либо альтернатива McCoy с поддержкой сценариев
  • будет ли достаточен инструмент командной строки, такой как asn1coding
  • хорошее / простое руководство для разработчиков по кодировке DER

Ответы [ 2 ]

3 голосов
/ 02 февраля 2011

Вещи изменились с прошлого года:

Добро пожаловать на Ухура (и они перечислены на официальной странице MDC McCoy )

uhura -k signature.key yourextension.xpi http://yourupdateurl

Дополнительным преимуществом является то, что вы можете создавать, создавать резервные копии и перемещать свои собственные крипто-ключи без привязки к базе данных Mozilla. Единственный недостаток: на основе Perl (как больно исправлять отсутствующие зависимости, с или без CPAN)

В качестве дополнительного примечания я почти начал писать свой собственный скрипт на основе Python, но не смог найти какой-либо подписывающей lib с поддержкой RDF; или, на самом деле, даже библиотеки для подписи XML - дерьмо для python (но, эй, XML-DSig по своей сути злой , не так ли). Почему Mozilla выбрала RDF для манифеста расширения?

2 голосов
/ 01 мая 2010

не уверен, что вы уже нашли решение, но инструмент McCoy имеет исправление командной строки.

...