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);