[ { "namespace": "manifest", "types": [ { "$extend": "OptionalPermission", "choices": [ { "type": "string", "enum": ["pkcs11"] } ] } ] }, { "namespace": "pkcs11", "description": "PKCS#11 module management API", "permissions": ["pkcs11"], "functions": [ { "name": "isModuleInstalled", "type": "function", "description": "checks whether a PKCS#11 module, given by name, is installed", "async": true, "parameters": [ { "name": "name", "type": "string" } ] }, { "name": "installModule", "type": "function", "description": "Install a PKCS#11 module with a given name", "async": true, "parameters": [ { "name": "name", "type": "string" }, { "name": "flags", "type": "integer", "optional": true } ] }, { "name": "uninstallModule", "type": "function", "description": "Remove an installed PKCS#11 module from firefox", "async": true, "parameters": [ { "name": "name", "type": "string" } ] }, { "name": "getModuleSlots", "type": "function", "description": "Enumerate a module's slots, each with their name and whether a token is present", "async": true, "parameters": [ { "name": "name", "type": "string" } ] } ] } ]