pkcs11.getModuleSlots()
枚举模块的插槽。此函数返回一个数组,其中包含每个插槽的条目。每个条目包含插槽的名称,以及如果插槽包含令牌,则包含有关令牌的信息。
您只能对安装在 Firefox 中的模块调用此函数。
这是一个异步函数,它返回一个 Promise
。
语法
js
let getting = browser.pkcs11.getModuleSlots(
name // string
)
参数
name
-
string
。模块的名称。这必须与模块 PKCS #11 清单 中的name
属性匹配。
返回值
一个 Promise
,它将使用一个对象数组来实现,每个对象数组对应于模块提供的每个插槽。每个对象都有两个属性
name
:插槽的名称token
:如果此插槽中存在令牌,则为Token
对象。如果插槽中不存在令牌,则此属性为null
。
Token
对象具有以下属性
name
-
string
。令牌的名称。 manufacturer
-
string
。令牌制造商的名称。 HWVersion
-
string
。硬件版本,作为 PKCS #11 版本号(两个 32 位整数用点分隔,例如“1.0”。 FWVersion
-
string
。固件版本,作为 PKCS #11 版本号(两个 32 位整数用点分隔,例如“1.0”。 serial
-
string
。序列号,其格式由令牌规范定义。 isLoggedIn
-
boolean
:如果令牌已登录,则为true
,否则为false
。
如果找不到模块或出现其他错误,则承诺将被拒绝并显示错误消息。
浏览器兼容性
BCD 表仅在浏览器中加载
示例
安装模块,然后列出其插槽并列出它们包含的令牌
js
function onInstalled() {
return browser.pkcs11.getModuleSlots("my_module");
}
function onGotSlots(slots) {
for (const slot of slots) {
console.log(`Slot: ${slot.name}`);
if (slot.token) {
console.log(`Contains token: ${slot.token.name}`);
} else {
console.log("Is empty");
}
}
}
browser.pkcs11.installModule("my_module").then(onInstalled).then(onGotSlots);