为我的firefox扩展自动签署update.rdf清单

ins*_* me 6 scripting command-line firefox-addon digital-signature

我正在开发一个firefox扩展,我想为我的beta测试人员(他们不懂技术)提供自动更新.不幸的是,更新服务器不提供HTTPS.根据Extension Developer Guide对签名更新,我必须签署我的update.rdf并在install.rdf中提供编码的公钥.

还有就是麦考伊工具来做到这一切,但它是一个互动的GUI工具,我想自动使用Ant脚本扩展包装(因为这是一个更大的过程的一部分).我无法找到更准确的描述,正在发生的事情,签署update.rdf清单比下面,并且McCoy源是一个非常多的JavaScript.

医生说:

附加组件作者创建公共/私有RSA加密密钥对.密钥的公共部分是DER编码,然后基于64编码并作为updateKey条目添加到附加组件的install.rdf.

(......)

粗略地说,更新信息被转换为字符串,然后使用sha512散列算法进行散列,并使用私钥对此散列进行签名.得到的数据是DER编码的,然后是base 64编码的,以包含在update.rdf中作为签名条目.

我对DER编码了解不多,但似乎需要一些参数.

所以任何人都知道

  • 要么使用预定义的密钥对来签署update.rdf和install.rdf的完整algortihm,要么使用可编写脚本的替代McCoy
  • 是否像asn1coding这样的命令行工具就足够了
  • DER编码的优秀/简单开发人员教程

Ste*_*ano 3

自去年以来,事情发生了变化:

欢迎来到uhura(它们列在MDC McCoy 官方页面上)

uhura -k signature.key yourextension.xpi http://yourupdateurl
Run Code Online (Sandbox Code Playgroud)

另一个优点是您可以生成、备份、移动您自己的加密密钥,而无需绑定到 mozilla 的数据库。唯一的缺点是:基于 Perl(修复缺失的依赖项是多么痛苦,无论有没有 CPAN)

顺便说一句,我几乎已经开始编写自己的基于 python 的脚本,但找不到任何支持 RDF 的签名库;或者,实际上,甚至 XML 签名库对于 python 来说都是垃圾(但是,嘿,XML-DSig 本质上是邪恶的,不是吗)。为什么 Mozilla 选择 RDF 作为扩展清单?