我正在开发一个firefox扩展,我想为我的beta测试人员(他们不懂技术)提供自动更新。不幸的是,更新服务器不提供HTTPS。根据{{3}},我必须签署我的update.rdf并在install.rdf中提供编码的公钥。
Extension Developer Guide on signing updates有McCoy工具,但它是一个交互式GUI工具,我想使用Ant脚本自动化扩展包装(因为这是一个更大的过程的一部分) )。我无法找到更准确的描述,发现签署update.rdf清单的情况比下面更多,而且McCoy源代码是一个非常多的javascript。
医生说:
附加组件作者创建公共/私有RSA加密密钥对。密钥的公共部分是DER编码,然后基于64编码并作为updateKey条目添加到附加组件的install.rdf。
(...)
粗略地说,更新信息将转换为字符串,然后使用sha512哈希算法进行哈希处理,并使用私钥对此哈希进行签名。结果数据是DER编码的,然后是base 64编码,以包含在update.rdf中作为签名条目。
我对DER编码了解不多,但似乎需要一些参数。
所以任何人都知道
答案 0 :(得分:3)
自去年以来事情发生了变化:
欢迎来到uhura(它们列在official MDC McCoy页面上)
uhura -k signature.key yourextension.xpi http://yourupdateurl
其他优点是您可以生成,备份,移动自己的加密密钥,而不必绑定到mozilla的数据库。唯一的缺点是:基于Perl(修复丢失的依赖关系有多痛苦,有或没有CPAN)
作为旁注,我几乎开始编写自己的基于python的脚本,但找不到任何支持RDF的签名库;或者,实际上,即使是XML签名库也是python的废话(但是嘿,XML-DSig is inherently evil,不是这样)。为什么Mozilla选择RDF作为扩展清单?
答案 1 :(得分:2)
不确定您是否已找到解决方案,但McCoy工具有一个命令行补丁。