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编码了解不多,但似乎需要一些参数.
所以任何人都知道
自去年以来,事情发生了变化:
欢迎来到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 作为扩展清单?