linotp.lib.security.provider module¶
The security provider is a dynamic handler for security relevant tasks like random, crypt, decrypt, sign
- class linotp.lib.security.provider.SecurityProvider¶
Bases:
object
the security provider is the singleton in the server who provides the security modules to run security relevant methods
read the hsm configurations
set up a pool of hsm modules
bind a hsm to one session
free the hsm from session after usage
the thread id is used as session identifier
- createHSMPool(hsm_id=None, *args, **kw)¶
Setup the pool of security module connections
- Parameters
hsm_id – The id of the hsm provider which must exist in the hsm config,
if None the one from the config will be used
- Returns
The created pool (list) of hsm connections
- dropSecurityModule(hsm_id=None, sessionId=None)¶
Searches in the hsm pool and finds the hsm connection allocated by the thread (sessionId) and makes that hsm connection free
- Parameters
hsm_id – the identifier of the hsm pool which is stated in the hsm config
sessionId – the thread id
- Returns
expected to be True if it succeeds to drop, false if it fails
- getSecurityModule(hsm_id=None, sessionId=None)¶
Allocate a security module for the sessionId
- Parameters
hsm_id – Specifies from which pool to choose. It will use the
activeOne if it’s not specified :param sessionId: Specifies the threadId which will be used for the allocation of the hsm connection
- Returns
The allocated hsm connection
- get_config_entries(config_name)¶
- Parameters
names – list of config entries by modulename
- Returns
dict
- loadSecurityModule(module_id=None)¶
return the specified security module
- Parameters
id (String or None) – identifier for the security module (from the configuration)
- Returns
None or the created object
- Return type
security module
- load_config(config)¶
load the security modules configuration
- setupModule(hsm_id, config=None)¶
setupModule is called during runtime to define the config parameters like password or connection strings