pkcs11.getModuleSlots()

列舉模組的插槽。此函式返回一個數組,其中包含每個插槽的一個條目。每個條目包含插槽的名稱,如果插槽包含令牌,則包含令牌資訊。

您只能對已安裝在 Firefox 中的模組呼叫此函式。

這是一個非同步函式,返回一個 Promise

語法

js
let getting = browser.pkcs11.getModuleSlots(
  name              // string
)

引數

name

string。模組名稱。此名稱必須與 PKCS #11 manifest 中模組的 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

如果找不到模組或發生其他錯誤,承諾將被拒絕並顯示錯誤訊息。

示例

安裝一個模組,然後列出它的插槽以及其中包含的令牌。

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

瀏覽器相容性