代码之家  ›  专栏  ›  技术社区  ›  instanceof me

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

  •  6
  • instanceof me  · 技术社区  · 16 年前

    Extension Developer Guide on signing updates ,我必须在update.rdf上签名,并在install.rdf中提供一个编码的公钥。

    McCoy 工具到 do all of this ,但它是一个交互式的GUI工具,我想使用Ant脚本自动化扩展打包(因为这是一个更大的过程的一部分)。我找不到比下面更精确的关于update.rdf清单签名的描述了,而且McCoy的源代码包含了大量的javascript。

    医生说:

    插件作者创建一个公共/私有RSA加密密钥对。密钥的公共部分是DER编码的,然后是base 64编码的,并作为updateKey条目添加到插件的install.rdf中。

    (...)

    粗略地说,更新信息被转换成一个字符串,然后使用sha512散列算法进行散列,然后使用私钥对该散列进行签名。对生成的数据进行DER编码,然后对base 64进行编码,以将其作为签名条目包含在update.rdf中。

    有人知道吗

    • 使用预定义的密钥对对update.rdf和install.rdf进行签名的完整算法,或McCoy的可脚本替代方法
    • 命令行工具是否 asn1coding
    • 一个关于DER编码的好的/简单的开发人员教程
    2 回复  |  直到 6 年前
        1
  •  3
  •   Stefano    15 年前

    uhura (它们列在 official MDC McCoy

    uhura -k signature.key yourextension.xpi http://yourupdateurl
    

    另外一个好处是,您可以生成、备份、移动自己的加密密钥,而无需绑定到mozilla的DB。唯一的缺点是:基于Perl(无论是否使用CPAN,修复丢失的依赖项都是多么痛苦)

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

        2
  •  2
  •   Pablo    16 年前