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);
浏览器兼容性
加载中…