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

时间:2010-03-29 16:46:12

标签: command-line scripting firefox-addon digital-signature

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

Extension Developer Guide on signing updatesMcCoy工具,但它是一个交互式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的可编写脚本的替代
  • do all of this之类的命令行工具是否足够
  • 关于DER编码的优秀/简单的开发人员教程

2 个答案:

答案 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工具有一个命令行补丁。