[frames] | no frames]

[ Module Hierarchy | Class Hierarchy ]

# Class Hierarchy

- pyhsm.base.YHSM: Base class for accessing a YubiHSM.
- pyhsm.cmd.YHSM_Cmd: Base class for YubiHSM commands.
  - pyhsm.aead_cmd.YHSM_AEAD_Cmd: Class for common non-trivial parse_result for commands returning a YSM_AEAD_GENERATE_RESP.
    - pyhsm.aead_cmd.YHSM_Cmd_AEAD_Buffer_Generate: Generate AEAD block of data buffer for a specific key.
    - pyhsm.aead_cmd.YHSM_Cmd_AEAD_Generate: Generate AEAD block from data for a specific key.
    - pyhsm.aead_cmd.YHSM_Cmd_AEAD_Random_Generate: Generate a random AEAD block using the YubiHSM internal TRNG.
    - pyhsm.validate_cmd.YHSM_Cmd_AEAD_Validate_OTP: Request the YubiHSM to validate an OTP using an externally stored AEAD.
  - pyhsm.aead_cmd.YHSM_Cmd_AEAD_Decrypt_Cmp: Validate an AEAD using the YubiHSM, matching it against some known plain text.
  - pyhsm.aes_ecb_cmd.YHSM_Cmd_AES_ECB: Common code for command classes in this module.
    - pyhsm.aes_ecb_cmd.YHSM_Cmd_AES_ECB_Compare: Have the YubiHSM AES ECB decrypt something using the key of a key handle, and then compare it with a plaintext we supply.
    - pyhsm.aes_ecb_cmd.YHSM_Cmd_AES_ECB_Decrypt: Have the YubiHSM AES ECB decrypt something using the key of a key handle.
    - pyhsm.aes_ecb_cmd.YHSM_Cmd_AES_ECB_Encrypt: Have the YubiHSM AES ECB encrypt something using the key of a key handle.
  - pyhsm.buffer_cmd.YHSM_Cmd_Buffer_Load: Ask YubiHSM to load some data into it's internal buffer.
  - pyhsm.buffer_cmd.YHSM_Cmd_Buffer_Random_Load: Ask YubiHSM to generate a secret for a specific public_id
  - pyhsm.db_cmd.YHSM_Cmd_DB_Validate_OTP: Request the YubiHSM to validate an OTP for a YubiKey stored in the internal database.
  - pyhsm.db_cmd.YHSM_Cmd_DB_YubiKey_Store: Ask YubiHSM to store data about a YubiKey in the internal database (not buffer).
  - pyhsm.basic_cmd.YHSM_Cmd_Echo: Send something to the stick, and expect to get it echoed back.
  - pyhsm.hmac_cmd.YHSM_Cmd_HMAC_SHA1_Write: Calculate HMAC SHA1 using a key_handle in the YubiHSM.
  - pyhsm.basic_cmd.YHSM_Cmd_HSM_Unlock: Have the YubiHSM unlock the HSM operations (those involving the keystore) with a YubiKey OTP.
  - pyhsm.basic_cmd.YHSM_Cmd_Key_Storage_Unlock: Have the YubiHSM unlock it's key storage using the HSM password.
  - pyhsm.basic_cmd.YHSM_Cmd_Key_Store_Decrypt: Have the YubiHSM decrypt it's key store using the master key.
  - pyhsm.debug_cmd.YHSM_Cmd_Monitor_Exit: Send magics to YubiHSM in debug mode, and get it to exit to configuration mode again.
  - pyhsm.basic_cmd.YHSM_Cmd_Nonce_Get: Get nonce value from YubiHSM - causes it to increment by one (or a specified number).
  - pyhsm.basic_cmd.YHSM_Cmd_Random: Ask stick to generate a number of random bytes.
  - pyhsm.basic_cmd.YHSM_Cmd_Random_Reseed: Provide YubiHSM DRBG_CTR with a new seed.
  - pyhsm.basic_cmd.YHSM_Cmd_System_Info: Request system information from the YubiHSM.
  - pyhsm.basic_cmd.YHSM_Cmd_Temp_Key_Load: Load an AEAD into the phantom key handle 0xffffffff.
- pyhsm.aead_cmd.YHSM_GeneratedAEAD: Small class to represent a YHSM_AEAD_GENERATE_RESP.
- pyhsm.hmac_cmd.YHSM_GeneratedHMACSHA1: Small class to represent a YHSM_HMAC_SHA1_GENERATE_RESP.
- pyhsm.basic_cmd.YHSM_NonceResponse: Small class to hold response of Nonce_Get command.
- pyhsm.stick.YHSM_Stick: The current YHSM is a USB device using serial communication.
- pyhsm.stick_client.YHSM_Stick_Client: The current YHSM is a USB device using serial communication.
- pyhsm.validate_cmd.YHSM_ValidationResult: The result of a Validate operation.
- pyhsm.version.YHSM_Version: Keeps the YubiHSM's version number and can tell what capabilities it has.
- pyhsm.aead_cmd.YHSM_YubiKeySecret: Small class to represent a YUBIKEY_SECRETS struct.
- object: The most base type
  - exceptions.BaseException: Common base class for all exceptions
    - exceptions.Exception: Common base class for all non-exit exceptions.
      - pyhsm.exception.YHSM_Error: Base class for YHSM exceptions in this package.
        - pyhsm.exception.YHSM_CommandFailed: Exception raised when a command sent to the YubiHSM returned an error.
        - pyhsm.exception.YHSM_InputTooLong: Exception raised for too long input to some function.
        - pyhsm.exception.YHSM_InputTooShort: Exception raised for too short input to some function.
        - pyhsm.exception.YHSM_WrongInputSize: Exception raised for errors in the size of an argument to some function.
        - pyhsm.exception.YHSM_WrongInputType: Exception raised for errors in the type of an argument to some function.