Я разрабатываю расширение для 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