Я разрабатываю расширение для Firefox, и я хотел бы обеспечить автоматическое обновление для моих бета-тестеров (которые не разбираются в технологиях). К сожалению, сервер обновлений не поддерживает HTTPS. Согласно Руководству разработчика расширений по подписанию обновлений, я должен подписать свое обновление. rdf и предоставьте закодированный открытый ключ в файле install.rdf.
Существует инструмент McCoy для делает все это, но это интерактивный инструмент с графическим интерфейсом, и я хотел бы автоматизировать упаковку расширений с помощью сценария Ant (так как этот является частью гораздо большего процесса). Я не могу найти более точного описания того, что происходит, чтобы подписать манифест update.rdf, чем ниже, а источник McCoy - это ужасно много javascript.
Док говорит:
Автор надстройки создает пару открытых/закрытых криптографических ключей RSA. Открытая часть ключа кодируется DER, а затем кодируется base 64 и добавляется в файл install.rdf надстройки как запись updateKey.
(...)
Грубо говоря, информация об обновлении преобразуется в строку, затем хэшируется с использованием алгоритма хеширования sha512, и этот хэш подписывается с использованием закрытого ключа. Результирующие данные кодируются DER, а затем кодируются по основанию 64 для включения в update.rdf в качестве записи подписи.
Я не очень хорошо разбираюсь в кодировании DER, но, похоже, ему нужны некоторые параметры.
Так кто-нибудь знает
- либо полный алгоритм для подписи update.rdf и install.rdf с использованием предопределенной пары ключей, либо скриптовая альтернатива McCoy
- достаточно ли инструмента командной строки, такого как asn1coding.
- хороший/простой учебник для разработчиков по кодированию DER