Mozilla Persona签署数据字符串

时间:2014-12-01 13:22:00

标签: javascript mozilla persona

是否可以使用Mozilla Persona签署数据(字符串,令牌,......)?

我想使用navigator.id.request()传递一串数据,然后在不受信任的介质上传输断言并在验证时检索数据。

1 个答案:

答案 0 :(得分:1)

Persona / BrowserID不是一般的puropse签名方案。为此,您可能需要查看JSON Web Signature(JWS),其中有许多语言的库支持。

navigator.id.request API没有提供将任意数据传递到配置工作流程的方法,因此标准的Persona JavaScript无法实现此目的。您必须使用自定义JavaScript,它使用自定义数据而不是公钥对象提供配置回调。

如果你做到这一点,你是否可以让身份提供者签署任意数据将取决于IdP软件如何处理公钥参数。 例如,Haskell persona库不透明地处理公钥参数;它将证明任何JSON' Value' (see source)。

另一方面,如果IdP软件希望以JavaScript中介代码生成的格式解析有效的密钥对象,那么您将无法签署任意数据。

总之:如果您托管自定义JavaScript以将任意数据传递给IdP而不是公钥,则如果IdP的软件将公钥视为不透明值,则您可以使用Persona签署任意数据。