pkcs11.getModuleSlots()
Enumeriert die Slots eines Moduls. Diese Funktion gibt ein Array zurück, das einen Eintrag für jeden Slot enthält. Jeder Eintrag enthält den Namen des Slots und, falls der Slot ein Token enthält, Informationen über das Token.
Sie können dies nur für ein Modul aufrufen, das in Firefox installiert ist.
Dies ist eine asynchrone Funktion, die ein Promise
zurückgibt.
Syntax
let getting = browser.pkcs11.getModuleSlots(
name // string
)
Parameter
name
-
string
. Name des Moduls. Dies muss mit dername
-Eigenschaft im PKCS #11 Manifest für das Modul übereinstimmen.
Rückgabewert
Ein Promise
, das mit einem Array von Objekten erfüllt wird, eines für jeden Slot, auf den das Modul Zugriff gewährt. Jedes Objekt hat zwei Eigenschaften:
name
: der Name des Slotstoken
: wenn ein Token in diesem Slot vorhanden ist, einToken
-Objekt. Wenn kein Token im Slot vorhanden ist, ist diese Eigenschaftnull
.
Token
-Objekte haben die folgenden Eigenschaften:
name
-
string
. Name des Tokens. manufacturer
-
string
. Name des Herstellers des Tokens. HWVersion
-
string
. Hardware-Version, als eine PKCS #11 Versionsnummer (zwei 32-Bit Integer, getrennt durch einen Punkt, zum Beispiel "1.0"). FWVersion
-
string
. Firmware-Version, als eine PKCS #11 Versionsnummer (zwei 32-Bit Integer, getrennt durch einen Punkt, zum Beispiel "1.0"). serial
-
string
. Seriennummer, deren Format durch die Token-Spezifikation definiert ist. isLoggedIn
-
boolean
:true
, wenn das Token bereits angemeldet ist,false
sonst.
Wenn das Modul nicht gefunden werden konnte oder ein anderer Fehler auftritt, wird das Promise mit einer Fehlermeldung abgelehnt.
Browser-Kompatibilität
BCD tables only load in the browser
Beispiele
Installiert ein Modul, listet dann seine Slots auf und die Tokens, die sie enthalten:
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);