pkcs11.getModuleSlots()
Enumerate a module's slots. This function returns an array containing one entry for each slot. Each entry contains the slot's name and, if the slot contains a token, information about the token.
You can only call this for a module that is installed in Firefox.
This is an asynchronous function that returns a Promise
.
Syntax
js
let getting = browser.pkcs11.getModuleSlots(
name // string
)
Parameters
name
-
string
. Name of the module. This must match thename
property in the PKCS #11 manifest for the module.
Return value
A Promise
that will be fulfilled with an array of objects, one for each slot that the module provides access to. Each object has two properties:
name
: the name of the slottoken
: if a token is present in this slot, aToken
object. If no token is present in the slot, this property isnull
.
Token
objects have the following properties:
name
-
string
. Name of the token. manufacturer
-
string
. Name of the token's manufacturer. HWVersion
-
string
. Hardware version, as a PKCS #11 version number (two 32-bit integers separated with a dot, like "1.0". FWVersion
-
string
. Firmware version, as a PKCS #11 version number (two 32-bit integers separated with a dot, like "1.0". serial
-
string
. Serial number, whose format is defined by the token specification. isLoggedIn
-
boolean
:true
if the token is logged on already,false
otherwise.
If the module could not be found or some other error occurs, the promise will be rejected with an error message.
Browser compatibility
BCD tables only load in the browser
Examples
Installs a module, then lists its slots and list the tokens they contain:
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);