Firefox附加内容脚本中的加密getRandomValue

时间:2014-08-06 08:30:23

标签: javascript firefox firefox-addon firefox-addon-sdk

我需要在我的Firefox插件中使用crypto.getRandomValue(MDN)。但是,我没有找到在我的内容脚本中访问加密的方法。有办法吗?

更新

我错了,我已经尝试过不在内容脚本中,而是直接在main.js.我是否需要仅为此功能使用内容脚本,或者可以不使用内容脚本?

2 个答案:

答案 0 :(得分:1)

对我来说很好......也许你的代码中getRandomValues拼错了getRandomValue

内容脚本

var {PageMod} = require("sdk/page-mod");

// Content scripts should be able to use crypto just fine.
PageMod({
  include: "*",
  contentScript: 'console.log(crypto.getRandomValues(new Uint8Array(10)));'
});

按预期记录一些随机数据。

SDK模块,例如main.js

// SDK modules do not have a window, but we can always borrow the
// hidden window.

var {Cu} = require("chrome");
Cu.import("resource://gre/modules/Services.jsm");
var window = Services.appShell.hiddenDOMWindow;
console.log(window.crypto.getRandomValues(new Uint8Array(10)));

按预期记录一些随机数据。

答案 1 :(得分:0)

您使用的是哪个版本的Firefox?在内容脚本中在Firefox 31中运行此代码似乎对我很好:

var arr = new Uint16Array(6);
console.log(window.crypto.getRandomValues(arr));