是否可以使用Mozilla Persona签署数据(字符串,令牌,......)?
我想使用navigator.id.request()传递一串数据,然后在不受信任的介质上传输断言并在验证时检索数据。
答案 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签署任意数据。