Session/Token Management¶
Modules for Token and session creation and management.
Session Management¶
Methods responsible for managing a user’s session and login/c_logout
-
pypkcs11.session_management.c_close_all_sessions(slot)¶ Closes all the sessions on a given slot
Parameters: slot – The slot to close all sessions on Returns: retcode Return type: int
-
pypkcs11.session_management.c_close_session(h_session)¶ Closes a session
Parameters: h_session (int) – Session handle Returns: retcode Return type: int
-
pypkcs11.session_management.c_finalize()¶ Finalizes PKCS11 usage.
Returns: retcode
-
pypkcs11.session_management.c_get_info()¶ Get general information about the Cryptoki Library
Returns a dictionary containing the following keys:
- cryptokiVersion
- manufacturerID
- flags
- libraryDescription
- libraryVersion
cryptokiVersionandlibraryVersionare ~pypkcs11.cryptoki.CK_VERSION structs, and the major/minor values can be accessed directly (info['cryptokiVersion'].major == 2)Returns: (retcode, info dictionary)
-
pypkcs11.session_management.c_get_session_info(session)¶ Get information about the given session.
Parameters: session (int) – session handle Returns: (retcode, dictionary of session information) Return type: tuple
-
pypkcs11.session_management.c_get_slot_info(slot)¶ Get information about the given slot number.
Parameters: slot (int) – Target slot Returns: Dictionary of slot information
-
pypkcs11.session_management.c_get_slot_list(token_present=True)¶ Get a list of all slots.
Parameters: token_present (bool) – If true, will only return slots that have a token present. Returns: List of slots
-
pypkcs11.session_management.c_get_token_info(slot_id, rstrip=True)¶ Gets the token info for a given slot id
Parameters: Returns: (retcode, A python dictionary representing the token info)
Return type: tuple
-
pypkcs11.session_management.c_init_pin(h_session, pin)¶ Initializes the PIN
Parameters: - h_session (int) – Session handle
- pin – pin to c_initialize
Returns: THe result code
-
pypkcs11.session_management.c_initialize()¶ Initializes current process for use with PKCS11
Returns: retcode
-
pypkcs11.session_management.c_logout(h_session)¶ Logs out of a given session
Parameters: h_session (int) – Session handle Returns: retcode Return type: int
-
pypkcs11.session_management.c_open_session(slot_num, flags=6)¶ Opens a session on the given slot
Parameters: Returns: (retcode, session handle)
Return type: tuple
-
pypkcs11.session_management.c_set_pin(h_session, old_pass, new_pass)¶ Allows a user to change their PIN
Parameters: - h_session (int) – Session handle
- old_pass – The user’s old password
- new_pass – The user’s desired new password
Returns: The result code
-
pypkcs11.session_management.get_firmware_version(slot)¶ Calls to
C_GetTokenInfofor the given slot. Returns a string representing the firmware version.Parameters: slot (int) – Token slot number Returns: Firmware String in the format “X.Y.Z”, where X is major, Y is minor, Z is subminor. Return type: str
-
pypkcs11.session_management.get_slot_dict(token_present=False)¶ Compiles a dictionary of the available slots
Returns: A python dictionary of the available slots
-
pypkcs11.session_management.login(h_session, slot_num=1, password=None, user_type=1)¶ Login to the given session.
Parameters: Returns: retcode
Return type:
Token Management¶
Created on Aug 24, 2012
@author: mhughes
-
pypkcs11.token_management.c_get_mechanism_info(slot, mechanism_type)¶ Gets a mechanism’s info
Parameters: - slot – The slot to query
- mechanism_type – The type of the mechanism to get the information for
Returns: The result code, The mechanism info
-
pypkcs11.token_management.c_get_mechanism_list(slot)¶ Gets the list of mechanisms
Parameters: slot – The slot number to get the mechanism list on Returns: The result code, A python dictionary representing the mechanism list
-
pypkcs11.token_management.c_init_token(slot_num, password, token_label='Main Token')¶ Initializes at token at a given slot with the proper password and label
Parameters: - slot_num – The index of the slot to c_initialize a token in
- password – The password to c_initialize the slot with
- token_label – The label to c_initialize the slot with (Default value = ‘Main Token’)
Returns: The result code
-
pypkcs11.token_management.get_token_by_label(label)¶ Iterates through all the tokens and returns the first token that has a label that is identical to the one that is passed in
Parameters: label – The label of the token to search for Returns: The result code, The slot of the token