1

我想调用window.crypto.subtle.generateKey我的 Firefox AddOn。由于我无法windowmain.js中访问,我创建了一个带有内容脚本的页面工作者

var self = require('sdk/self');
var cryptoScript = require('sdk/page-worker').Page({
  contentURL: self.data.url('empty.html'),
  contentScriptFile: self.data.url('call-web-crypto.js')
});

我可以调用call-web-crypto.jswindow.crypto.subtle.generateKey,但我无法访问生成的密钥对的密钥属性:

XrayWrapper 拒绝访问属性 publicKey(原因:值与目标不同源)。有关更多信息,请参阅https://developer.mozilla.org/en-US/docs/Xray_vision。请注意,只会报告来自给定全局对象的第一个被拒绝的属性访问。

如何在我的 Firefox 插件中生成密钥对并访问其密钥?

4

1 回答 1

3

main.js你可以...

const { Cu } = require("chrome");
Cu.importGlobalProperties(["crypto"]);

那么您将可以使用crypto.subtle.generateKey以及所有其他crypto好处...注意不window

于 2015-11-06T10:37:36.860 回答