powHSM middleware: 95%

Files Functions Classes

coverage.py v7.5.3, created at 2025-07-10 13:43 +0000

File function statements missing excluded coverage
adm_ledger.py main 33 8 0 76%
adm_ledger.py (no function) 16 1 0 94%
adm_sgx.py main 36 8 0 78%
adm_sgx.py (no function) 16 1 0 94%
admin/__init__.py (no function) 0 0 0 100%
admin/attestation_utils.py PowHsmAttestationMessage.is_header 1 0 0 100%
admin/attestation_utils.py PowHsmAttestationMessage.__init__ 12 0 0 100%
admin/attestation_utils.py load_pubkeys 16 0 0 100%
admin/attestation_utils.py compute_pubkeys_hash 7 0 0 100%
admin/attestation_utils.py compute_pubkeys_output 6 0 0 100%
admin/attestation_utils.py get_root_of_trust 6 0 0 100%
admin/attestation_utils.py (no function) 18 0 0 100%
admin/authorize_signer.py do_authorize_signer 21 1 0 95%
admin/authorize_signer.py (no function) 4 0 0 100%
admin/certificate.py (no function) 4 0 0 100%
admin/certificate_v1.py HSMCertificateRoot.__init__ 4 0 0 100%
admin/certificate_v1.py HSMCertificateRoot.__repr__ 1 0 0 100%
admin/certificate_v1.py HSMCertificateRoot.get_pubkey 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.__init__ 17 0 0 100%
admin/certificate_v1.py HSMCertificateElement.name 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.signed_by 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.tweak 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.message 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.signature 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.to_dict 4 0 0 100%
admin/certificate_v1.py HSMCertificateElement.is_valid 10 0 0 100%
admin/certificate_v1.py HSMCertificateElement.get_value 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.get_pubkey 1 0 0 100%
admin/certificate_v1.py HSMCertificateElement.get_tweak 1 0 0 100%
admin/certificate_v1.py HSMCertificate.from_jsonfile 11 2 0 82%
admin/certificate_v1.py HSMCertificate.__init__ 4 0 0 100%
admin/certificate_v1.py HSMCertificate.validate_and_get_values 20 0 0 100%
admin/certificate_v1.py HSMCertificate.add_element 3 0 0 100%
admin/certificate_v1.py HSMCertificate.clear_targets 1 0 0 100%
admin/certificate_v1.py HSMCertificate.add_target 3 0 0 100%
admin/certificate_v1.py HSMCertificate.to_dict 1 0 0 100%
admin/certificate_v1.py HSMCertificate.save_to_jsonfile 2 0 0 100%
admin/certificate_v1.py HSMCertificate._parse 25 0 0 100%
admin/certificate_v1.py (no function) 43 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.__init__ 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.from_dict 3 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element._init_with_map 6 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.name 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.signed_by 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.get_value 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.get_pubkey 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.is_valid 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2Element.get_tweak 1 1 0 0%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.__init__ 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote._init_with_map 10 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.message 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.custom_data 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.signature 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.is_valid 7 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.get_value 1 1 0 0%
admin/certificate_v2.py HSMCertificateV2ElementSGXQuote.to_dict 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.__init__ 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey._init_with_map 13 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.message 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.key 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.auth_data 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.signature 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.is_valid 7 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.get_pubkey 1 1 0 0%
admin/certificate_v2.py HSMCertificateV2ElementSGXAttestationKey.to_dict 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.from_pemfile 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.from_pem 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.__init__ 2 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509._init_with_map 5 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.message 1 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.certificate 3 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.is_valid 12 1 0 92%
admin/certificate_v2.py HSMCertificateV2ElementX509.get_pubkey 8 0 0 100%
admin/certificate_v2.py HSMCertificateV2ElementX509.to_dict 1 0 0 100%
admin/certificate_v2.py (no function) 73 0 0 100%
admin/changepin.py do_changepin 28 2 0 93%
admin/changepin.py (no function) 6 0 0 100%
admin/dongle_admin.py DongleAdminTimeout.is_timeout 3 0 0 100%
admin/dongle_admin.py DongleAdmin.__init__ 1 0 0 100%
admin/dongle_admin.py DongleAdmin._send_command 9 0 0 100%
admin/dongle_admin.py DongleAdmin.connect 5 0 0 100%
admin/dongle_admin.py DongleAdmin.disconnect 6 2 0 67%
admin/dongle_admin.py DongleAdmin._ensure_connected 2 0 0 100%
admin/dongle_admin.py DongleAdmin.handshake 19 0 0 100%
admin/dongle_admin.py DongleAdmin.get_device_key 13 0 0 100%
admin/dongle_admin.py DongleAdmin.setup_endorsement_key 9 1 0 89%
admin/dongle_admin.py (no function) 48 0 0 100%
admin/dongle_eth.py DongleEthError.from_error_code 2 0 0 100%
admin/dongle_eth.py DongleEth.__init__ 1 0 0 100%
admin/dongle_eth.py DongleEth.connect 5 3 0 40%
admin/dongle_eth.py DongleEth.disconnect 6 3 0 50%
admin/dongle_eth.py DongleEth.get_pubkey 4 0 0 100%
admin/dongle_eth.py DongleEth.sign 8 0 0 100%
admin/dongle_eth.py DongleEth._send_command 7 0 0 100%
admin/dongle_eth.py (no function) 33 0 0 100%
admin/ledger_attestation.py do_attestation 49 2 0 96%
admin/ledger_attestation.py (no function) 4 0 0 100%
admin/ledger_utils.py compute_app_hash 5 0 0 100%
admin/ledger_utils.py encode_eth_message 1 0 0 100%
admin/ledger_utils.py eth_message_to_printable 1 0 0 100%
admin/ledger_utils.py (no function) 5 0 0 100%
admin/migrate_db.py do_migrate_db 53 1 0 98%
admin/migrate_db.py (no function) 5 0 0 100%
admin/misc.py info 3 0 0 100%
admin/misc.py head 7 0 0 100%
admin/misc.py bls 1 0 0 100%
admin/misc.py not_implemented 2 2 0 0%
admin/misc.py get_hsm 9 9 0 0%
admin/misc.py get_sgx_hsm 4 4 0 0%
admin/misc.py get_admin_hsm 5 5 0 0%
admin/misc.py dispose_hsm 5 1 0 80%
admin/misc.py get_eth_dongle 5 5 0 0%
admin/misc.py dispose_eth_dongle 5 3 0 40%
admin/misc.py ask_for_pin 6 6 0 0%
admin/misc.py wait_for_reconnection 2 0 0 100%
admin/misc.py get_ud_value_for_attestation 11 1 0 91%
admin/misc.py (no function) 31 0 0 100%
admin/onboard.py do_onboard 78 9 0 88%
admin/onboard.py gen_seed 1 0 0 100%
admin/onboard.py (no function) 13 0 0 100%
admin/pubkeys.py do_get_pubkeys 54 2 0 96%
admin/pubkeys.py do_get_pubkeys.do_output 1 0 0 100%
admin/pubkeys.py (no function) 11 0 0 100%
admin/rsk_client.py RskClient.__init__ 1 0 0 100%
admin/rsk_client.py RskClient.url 1 0 0 100%
admin/rsk_client.py RskClient.get_best_block_number 4 0 0 100%
admin/rsk_client.py RskClient.get_block_by_number 4 0 0 100%
admin/rsk_client.py RskClient._request 11 0 0 100%
admin/rsk_client.py (no function) 12 0 0 100%
admin/sgx_attestation.py do_attestation 39 2 0 95%
admin/sgx_attestation.py (no function) 6 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.from_jsonfile 12 1 0 92%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.for_spec 1 1 0 0%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.__init__ 8 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.migration_spec 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.signatures 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.add_signature 4 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.to_dict 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization.save_to_jsonfile 2 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization._assert_signature_valid 4 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationAuthorization._contains_signature 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationSpec.__init__ 8 1 0 88%
admin/sgx_migration_authorization.py SGXMigrationSpec.exporter 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationSpec.importer 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationSpec.msg 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationSpec.get_authorization_msg 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationSpec.get_authorization_digest 1 0 0 100%
admin/sgx_migration_authorization.py SGXMigrationSpec.to_dict 1 0 0 100%
admin/sgx_migration_authorization.py (no function) 31 0 0 100%
admin/signer_authorization.py SignerAuthorization.from_jsonfile 10 1 0 90%
admin/signer_authorization.py SignerAuthorization.for_signer_version 1 1 0 0%
admin/signer_authorization.py SignerAuthorization.__init__ 8 0 0 100%
admin/signer_authorization.py SignerAuthorization.signer_version 1 0 0 100%
admin/signer_authorization.py SignerAuthorization.signatures 1 0 0 100%
admin/signer_authorization.py SignerAuthorization.add_signature 2 0 0 100%
admin/signer_authorization.py SignerAuthorization.to_dict 1 0 0 100%
admin/signer_authorization.py SignerAuthorization.save_to_jsonfile 2 0 0 100%
admin/signer_authorization.py SignerAuthorization._assert_signature_valid 4 0 0 100%
admin/signer_authorization.py SignerVersion.__init__ 8 1 0 88%
admin/signer_authorization.py SignerVersion.hash 1 0 0 100%
admin/signer_authorization.py SignerVersion.iteration 1 0 0 100%
admin/signer_authorization.py SignerVersion.msg 1 0 0 100%
admin/signer_authorization.py SignerVersion.get_authorization_msg 1 0 0 100%
admin/signer_authorization.py SignerVersion.get_authorization_digest 1 0 0 100%
admin/signer_authorization.py SignerVersion.to_dict 1 0 0 100%
admin/signer_authorization.py SignerVersion.__repr__ 1 1 0 0%
admin/signer_authorization.py (no function) 31 0 0 100%
admin/unlock.py do_unlock 42 5 0 88%
admin/unlock.py (no function) 5 0 0 100%
admin/verify_ledger_attestation.py do_verify_attestation 78 9 0 88%
admin/verify_ledger_attestation.py (no function) 15 0 0 100%
admin/verify_sgx_attestation.py do_verify_attestation 46 2 0 96%
admin/verify_sgx_attestation.py (no function) 5 0 0 100%
comm/__init__.py (no function) 0 0 0 100%
comm/bip32.py BIP32Element.__init__ 24 3 0 88%
comm/bip32.py BIP32Element.is_hardened 1 0 0 100%
comm/bip32.py BIP32Element.spec_index 3 0 0 100%
comm/bip32.py BIP32Element.index 1 0 0 100%
comm/bip32.py BIP32Element.__str__ 1 0 0 100%
comm/bip32.py BIP32Element.__repr__ 1 1 0 0%
comm/bip32.py BIP32Path.__init__ 13 3 0 77%
comm/bip32.py BIP32Path.elements 1 0 0 100%
comm/bip32.py BIP32Path.to_binary 7 0 0 100%
comm/bip32.py BIP32Path.__str__ 1 0 0 100%
comm/bip32.py BIP32Path.__repr__ 1 1 0 0%
comm/bip32.py BIP32Path.__eq__ 1 0 0 100%
comm/bip32.py (no function) 21 0 0 100%
comm/bitcoin.py get_unsigned_tx 4 1 0 75%
comm/bitcoin.py get_tx_hash 1 0 0 100%
comm/bitcoin.py get_tx_hash_for_unsigned_tx 1 0 0 100%
comm/bitcoin.py get_tx_version 2 0 0 100%
comm/bitcoin.py _unsign_tx 3 0 0 100%
comm/bitcoin.py _clear_all_but_last_op_from_scriptsig 5 0 0 100%
comm/bitcoin.py get_signature_hash_for_p2sh_input 16 5 0 69%
comm/bitcoin.py get_signature_hash_for_p2sh_p2wsh_input 9 9 0 0%
comm/bitcoin.py get_block_hash_as_int 2 0 0 100%
comm/bitcoin.py get_merkle_root 2 0 0 100%
comm/bitcoin.py encode_varint 1 0 0 100%
comm/bitcoin.py _deserialize_block_header 4 0 0 100%
comm/bitcoin.py _deserialize_tx 4 2 0 50%
comm/bitcoin.py (no function) 14 0 0 100%
comm/cstruct.py CStruct._spec 44 0 0 100%
comm/cstruct.py CStruct._struct 1 0 0 100%
comm/cstruct.py CStruct._atrmap 1 0 0 100%
comm/cstruct.py CStruct._names 1 0 0 100%
comm/cstruct.py CStruct._types 1 0 0 100%
comm/cstruct.py CStruct._typename 8 0 0 100%
comm/cstruct.py CStruct.get_bytelength 1 0 0 100%
comm/cstruct.py CStruct.__init__ 10 0 0 100%
comm/cstruct.py CStruct._value 4 1 0 75%
comm/cstruct.py CStruct.__getattr__ 1 0 0 100%
comm/cstruct.py CStruct.get_raw_data 1 0 0 100%
comm/cstruct.py CStruct.to_dict 7 0 0 100%
comm/cstruct.py CStruct.__repr__ 1 1 0 0%
comm/cstruct.py (no function) 26 0 0 100%
comm/english_mnemonic.py EnglishMnemonic.detect_language 1 1 0 0%
comm/english_mnemonic.py EnglishMnemonic.__init__ 2 0 0 100%
comm/english_mnemonic.py (no function) 6 0 0 100%
comm/platform.py Platform.set 4 1 0 75%
comm/platform.py Platform.is_ledger 1 0 0 100%
comm/platform.py Platform.is_sgx 1 0 0 100%
comm/platform.py Platform.options 1 1 0 0%
comm/platform.py Platform.message 1 0 0 100%
comm/platform.py (no function) 18 0 0 100%
comm/pow.py difficulty_to_target 1 1 0 0%
comm/pow.py coinbase_tx_extract_merge_mining_hash 36 36 0 0%
comm/pow.py coinbase_tx_get_hash 15 15 0 0%
comm/pow.py is_valid_merkle_proof 20 20 0 0%
comm/pow.py combine_left_right 3 3 0 0%
comm/pow.py (no function) 21 0 0 100%
comm/protocol.py HSM2Protocol.__init__ 2 0 0 100%
comm/protocol.py HSM2Protocol.handle_request 4 0 0 100%
comm/protocol.py HSM2Protocol.__internal_handle_request 22 0 0 100%
comm/protocol.py HSM2Protocol.initialize_device 1 0 0 100%
comm/protocol.py HSM2Protocol.device_error 2 2 0 0%
comm/protocol.py HSM2Protocol.unknown_error 2 2 0 0%
comm/protocol.py HSM2Protocol.format_error 2 0 0 100%
comm/protocol.py HSM2Protocol._invalid_request 2 0 0 100%
comm/protocol.py HSM2Protocol._wrong_version 2 0 0 100%
comm/protocol.py HSM2Protocol._command_unknown 2 0 0 100%
comm/protocol.py HSM2Protocol._version 1 0 0 100%
comm/protocol.py HSM2Protocol._validate_advance_blockchain 13 0 0 100%
comm/protocol.py HSM2Protocol._advance_blockchain 1 0 0 100%
comm/protocol.py HSM2Protocol._reset_advance_blockchain 1 0 0 100%
comm/protocol.py HSM2Protocol._blockchain_state 1 0 0 100%
comm/protocol.py HSM2Protocol._validate_update_ancestor_block 7 0 0 100%
comm/protocol.py HSM2Protocol._update_ancestor_block 1 0 0 100%
comm/protocol.py HSM2Protocol._validate_key_id 9 0 0 100%
comm/protocol.py HSM2Protocol._validate_auth 16 0 0 100%
comm/protocol.py HSM2Protocol._validate_message 12 0 0 100%
comm/protocol.py HSM2Protocol._validate_get_pubkey 4 0 0 100%
comm/protocol.py HSM2Protocol._get_pubkey 1 0 0 100%
comm/protocol.py HSM2Protocol._validate_sign 10 0 0 100%
comm/protocol.py HSM2Protocol._sign 1 0 0 100%
comm/protocol.py HSM2Protocol._get_blockchain_parameters 1 0 0 100%
comm/protocol.py HSM2Protocol._validate_signer_heartbeat 4 0 0 100%
comm/protocol.py HSM2Protocol._signer_heartbeat 1 0 0 100%
comm/protocol.py HSM2Protocol._validate_ui_heartbeat 4 0 0 100%
comm/protocol.py HSM2Protocol._ui_heartbeat 1 0 0 100%
comm/protocol.py HSM2Protocol._not_implemented 2 0 0 100%
comm/protocol.py HSM2Protocol._init_mappings 4 0 0 100%
comm/protocol.py (no function) 74 0 0 100%
comm/protocol_v1.py HSM1Protocol.__init__ 1 0 0 100%
comm/protocol_v1.py HSM1Protocol._validate_sign 7 0 0 100%
comm/protocol_v1.py HSM1Protocol._init_mappings 4 0 0 100%
comm/protocol_v1.py (no function) 16 0 0 100%
comm/server.py _RequestHandler.__init__ 2 0 0 100%
comm/server.py _RequestHandler.handle 35 0 0 100%
comm/server.py _RequestHandler._reply 7 0 0 100%
comm/server.py _TCPServerRequestHandler.handle 13 0 0 100%
comm/server.py _TCPServerRequestHandler.shutdown 2 0 0 100%
comm/server.py _TCPServerRequestHandler.shutdown.tgt 1 0 0 100%
comm/server.py _TCPServerRequestHandler._do_shutdown 1 0 0 100%
comm/server.py TCPServer.__init__ 5 0 0 100%
comm/server.py TCPServer.run 29 6 0 79%
comm/server.py (no function) 25 0 0 100%
comm/utils.py bitwise_and_bytes 1 0 0 100%
comm/utils.py assert_int 3 3 0 0%
comm/utils.py assert_bool 3 3 0 0%
comm/utils.py assert_dict 3 3 0 0%
comm/utils.py assert_hex_hash 3 3 0 0%
comm/utils.py _assert_keys_present 2 2 0 0%
comm/utils.py _assert_key_present 2 2 0 0%
comm/utils.py _name_from_key 4 4 0 0%
comm/utils.py is_hex_string_of_length 7 0 0 100%
comm/utils.py is_nonempty_hex_string 5 0 0 100%
comm/utils.py hex_or_decimal_string_to_int 3 0 0 100%
comm/utils.py normalize_hex_string 3 0 0 100%
comm/utils.py has_nonempty_hex_field 1 0 0 100%
comm/utils.py has_hex_field_of_length 1 0 0 100%
comm/utils.py has_field_of_type 1 0 0 100%
comm/utils.py is_slice_str 1 1 0 0%
comm/utils.py slice_from_str 7 7 0 0%
comm/utils.py keccak_256 1 0 0 100%
comm/utils.py (no function) 21 0 0 100%
lbutils.py post_process_list_apps 13 0 0 100%
lbutils.py main 26 4 0 85%
lbutils.py (no function) 8 1 0 88%
ledger/__init__.py (no function) 0 0 0 100%
ledger/block_utils.py rlp_mm_payload_size 1 0 0 100%
ledger/block_utils.py remove_mm_fields_if_present 14 0 0 100%
ledger/block_utils.py get_block_hash 1 1 0 0%
ledger/block_utils.py get_coinbase_txn 8 8 0 0%
ledger/block_utils.py rlp_first_element_list_payload_length 10 0 0 100%
ledger/block_utils.py (no function) 7 0 0 100%
ledger/hsm2dongle.py _Error.is_user_defined_error 1 0 0 100%
ledger/hsm2dongle.py SighashComputationMode.__new__ 4 0 0 100%
ledger/hsm2dongle.py HSM2DongleBaseError.message 3 1 0 67%
ledger/hsm2dongle.py HSM2DongleTimeoutError.is_timeout 3 0 0 100%
ledger/hsm2dongle.py HSM2DongleCommError.is_comm_error 3 0 0 100%
ledger/hsm2dongle.py HSM2DongleErrorResult.error_code 1 0 0 100%
ledger/hsm2dongle.py HSM2DongleErrorResult.__str__ 1 1 0 0%
ledger/hsm2dongle.py HSM2Dongle.__init__ 3 0 0 100%
ledger/hsm2dongle.py HSM2Dongle._send_command 24 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.send_command 1 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.connect 8 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.disconnect 13 13 0 0%
ledger/hsm2dongle.py HSM2Dongle.get_current_mode 5 2 0 60%
ledger/hsm2dongle.py HSM2Dongle.echo 4 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.is_onboarded 5 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.onboard 12 1 0 92%
ledger/hsm2dongle.py HSM2Dongle._send_pin 5 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.unlock 3 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.new_pin 8 4 0 50%
ledger/hsm2dongle.py HSM2Dongle.get_version 2 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_retries 2 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_signer_parameters 7 7 0 0%
ledger/hsm2dongle.py HSM2Dongle.exit_menu 1 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.exit_app 1 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_public_key 2 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.sign_authorized 77 3 0 96%
ledger/hsm2dongle.py HSM2Dongle.sign_unauthorized 27 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_blockchain_state 26 3 0 88%
ledger/hsm2dongle.py HSM2Dongle.reset_advance_blockchain 7 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.advance_blockchain 4 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.update_ancestor 9 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_ui_attestation 19 19 0 0%
ledger/hsm2dongle.py HSM2Dongle.get_powhsm_attestation 1 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_signer_heartbeat 1 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.get_ui_heartbeat 1 0 0 100%
ledger/hsm2dongle.py HSM2Dongle.authorize_signer 9 1 0 89%
ledger/hsm2dongle.py HSM2Dongle._do_block_operation 49 11 0 78%
ledger/hsm2dongle.py HSM2Dongle._send_block_header 38 0 0 100%
ledger/hsm2dongle.py HSM2Dongle._send_data_in_chunks 23 2 0 91%
ledger/hsm2dongle.py (no function) 271 0 0 100%
ledger/hsm2dongle_cmds/__init__.py (no function) 3 0 0 100%
ledger/hsm2dongle_cmds/command.py HSM2DongleCommand.__init__ 4 0 0 100%
ledger/hsm2dongle_cmds/command.py HSM2DongleCommand.send 3 0 0 100%
ledger/hsm2dongle_cmds/command.py (no function) 5 0 0 100%
ledger/hsm2dongle_cmds/powhsm_attestation.py PowHsmAttestation.run 22 0 0 100%
ledger/hsm2dongle_cmds/powhsm_attestation.py (no function) 11 0 0 100%
ledger/hsm2dongle_cmds/signer_heartbeat.py HSM2SignerHeartbeat.run 12 0 0 100%
ledger/hsm2dongle_cmds/signer_heartbeat.py (no function) 12 0 0 100%
ledger/hsm2dongle_cmds/ui_heartbeat.py HSM2UIHeartbeat.run 12 0 0 100%
ledger/hsm2dongle_cmds/ui_heartbeat.py (no function) 12 0 0 100%
ledger/hsm2dongle_tcp.py HSM2DongleTCP.__init__ 3 0 0 100%
ledger/hsm2dongle_tcp.py HSM2DongleTCP.connect 8 4 0 50%
ledger/hsm2dongle_tcp.py HSM2DongleTCP.disconnect 9 9 0 0%
ledger/hsm2dongle_tcp.py (no function) 7 0 0 100%
ledger/parameters.py HSM2FirmwareParameters.from_dongle_format 6 6 0 0%
ledger/parameters.py HSM2FirmwareParameters.__init__ 3 0 0 100%
ledger/parameters.py (no function) 10 0 0 100%
ledger/pin.py BasePin.generate_pin 7 0 0 100%
ledger/pin.py BasePin.is_valid 9 1 0 89%
ledger/pin.py FileBasedPin.new 4 0 0 100%
ledger/pin.py FileBasedPin.__init__ 20 5 0 75%
ledger/pin.py FileBasedPin.get_pin 1 0 0 100%
ledger/pin.py FileBasedPin.get_new_pin 3 0 0 100%
ledger/pin.py FileBasedPin.needs_change 1 0 0 100%
ledger/pin.py FileBasedPin.start_change 6 1 0 83%
ledger/pin.py FileBasedPin.commit_change 13 3 0 77%
ledger/pin.py FileBasedPin.abort_change 6 1 0 83%
ledger/pin.py FileBasedPin._error 2 2 0 0%
ledger/pin.py (no function) 25 0 0 100%
ledger/protocol.py HSM2ProtocolLedger.__init__ 4 0 0 100%
ledger/protocol.py HSM2ProtocolLedger.initialize_device 35 14 0 60%
ledger/protocol.py HSM2ProtocolLedger.report_comm_issue 1 0 0 100%
ledger/protocol.py HSM2ProtocolLedger.ensure_connection 10 2 0 80%
ledger/protocol.py HSM2ProtocolLedger._handle_bootloader 40 40 0 0%
ledger/protocol.py HSM2ProtocolLedger._wait_and_reconnect 3 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._check_version 3 1 0 67%
ledger/protocol.py HSM2ProtocolLedger._error 2 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._get_pubkey 14 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._sign 45 3 0 93%
ledger/protocol.py HSM2ProtocolLedger._translate_sign_error 1 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._blockchain_state 12 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._reset_advance_blockchain 11 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._advance_blockchain 11 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._translate_advance_result 2 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._update_ancestor_block 11 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._translate_update_ancestor_result 1 0 0 100%
ledger/protocol.py HSM2ProtocolLedger._get_blockchain_parameters 11 4 0 64%
ledger/protocol.py HSM2ProtocolLedger._signer_heartbeat 14 4 0 71%
ledger/protocol.py HSM2ProtocolLedger._ui_heartbeat 38 4 0 89%
ledger/protocol.py (no function) 30 0 0 100%
ledger/protocol_v1.py HSM1ProtocolLedger.__init__ 4 0 0 100%
ledger/protocol_v1.py HSM1ProtocolLedger.initialize_device 1 0 0 100%
ledger/protocol_v1.py HSM1ProtocolLedger._get_pubkey 14 0 0 100%
ledger/protocol_v1.py HSM1ProtocolLedger._sign 16 0 0 100%
ledger/protocol_v1.py HSM1ProtocolLedger._translate_sign_error 1 0 0 100%
ledger/protocol_v1.py HSM1ProtocolLedger._error 2 0 0 100%
ledger/protocol_v1.py (no function) 10 0 0 100%
ledger/signature.py HSM2DongleSignature.__init__ 13 0 0 100%
ledger/signature.py HSM2DongleSignature.__init__.error 1 0 0 100%
ledger/signature.py HSM2DongleSignature.r 1 0 0 100%
ledger/signature.py HSM2DongleSignature.s 1 0 0 100%
ledger/signature.py HSM2DongleSignature.__repr__ 1 1 0 0%
ledger/signature.py HSM2DongleSignature.__eq__ 1 0 0 100%
ledger/signature.py (no function) 8 0 0 100%
ledger/version.py HSM2FirmwareVersion.__init__ 3 0 0 100%
ledger/version.py HSM2FirmwareVersion.__str__ 1 1 0 0%
ledger/version.py HSM2FirmwareVersion.__repr__ 1 1 0 0%
ledger/version.py HSM2FirmwareVersion.supports 1 0 0 100%
ledger/version.py HSM2FirmwareVersion.__ge__ 1 0 0 100%
ledger/version.py HSM2FirmwareVersion.__eq__ 1 0 0 100%
ledger/version.py (no function) 7 0 0 100%
mgr/__init__.py (no function) 0 0 0 100%
sgx/__init__.py (no function) 0 0 0 100%
sgx/envelope.py SgxEnvelope.__init__ 11 0 0 100%
sgx/envelope.py SgxQeAuthData.__init__ 6 0 0 100%
sgx/envelope.py SgxQeAuthData.get_total_bytelength 1 0 0 100%
sgx/envelope.py SgxQeCertData.__init__ 2 0 0 100%
sgx/envelope.py (no function) 20 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.echo 4 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.unlock 2 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.new_pin 2 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.get_retries 2 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.onboard 9 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.migrate_db_spec 7 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.migrate_db_get_evidence 7 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.migrate_db_send_evidence 9 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.migrate_db_get_data 4 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX.migrate_db_send_data 1 0 0 100%
sgx/hsm2dongle.py HSM2DongleSGX._send_data_in_chunks 8 0 0 100%
sgx/hsm2dongle.py (no function) 34 0 0 100%
signapp.py main 91 18 0 80%
signapp.py (no function) 17 1 0 94%
signmigration.py _require_output_path 4 0 0 100%
signmigration.py do_message 11 0 0 100%
signmigration.py do_manual_sign 9 0 0 100%
signmigration.py do_key 14 0 0 100%
signmigration.py do_eth 38 1 0 97%
signmigration.py main 25 1 0 96%
signmigration.py (no function) 18 1 0 94%
signonetime.py main 26 2 0 92%
signonetime.py (no function) 9 1 0 89%
tests/__init__.py (no function) 0 0 0 100%
tests/admin/__init__.py (no function) 0 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.setUp 3 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.tearDown 2 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_unlock 13 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_onboard 12 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_pubkeys 12 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_changepin 13 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_attestation 13 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_verify_attestation 13 0 0 100%
tests/admin/test_adm_ledger.py TestAdmLedger.test_authorize_signer 13 0 0 100%
tests/admin/test_adm_ledger.py (no function) 24 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.setUp 2 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.tearDown 1 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.test_unlock 13 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.test_onboard 12 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.test_pubkeys 12 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.test_changepin 13 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.test_attestation 13 0 0 100%
tests/admin/test_adm_sgx.py TestAdmSgx.test_migrate_db 14 0 0 100%
tests/admin/test_adm_sgx.py (no function) 22 0 0 100%
tests/admin/test_attestation_utils.py TestPowHsmAttestationMessage.test_is_header 1 0 0 100%
tests/admin/test_attestation_utils.py TestPowHsmAttestationMessage.test_parse_ok 7 0 0 100%
tests/admin/test_attestation_utils.py TestPowHsmAttestationMessage.test_parse_header_mismatch 3 0 0 100%
tests/admin/test_attestation_utils.py TestPowHsmAttestationMessage.test_parse_shorter 3 0 0 100%
tests/admin/test_attestation_utils.py TestPowHsmAttestationMessage.test_parse_longer 3 0 0 100%
tests/admin/test_attestation_utils.py TestLoadPubKeys.test_load_pubkeys_ok 8 0 0 100%
tests/admin/test_attestation_utils.py TestLoadPubKeys.test_load_pubkeys_file_doesnotexist 6 0 0 100%
tests/admin/test_attestation_utils.py TestLoadPubKeys.test_load_pubkeys_invalid_json 6 0 0 100%
tests/admin/test_attestation_utils.py TestLoadPubKeys.test_load_pubkeys_notamap 6 0 0 100%
tests/admin/test_attestation_utils.py TestLoadPubKeys.test_load_pubkeys_invalid_pubkey 6 0 0 100%
tests/admin/test_attestation_utils.py TestComputePubkeysHash.test_ok 4 0 0 100%
tests/admin/test_attestation_utils.py TestComputePubkeysHash.test_ok.to_pub 1 0 0 100%
tests/admin/test_attestation_utils.py TestComputePubkeysHash.test_empty_errors 3 0 0 100%
tests/admin/test_attestation_utils.py TestComputePubkeysOutput.test_sample_output 5 0 0 100%
tests/admin/test_attestation_utils.py TestComputePubkeysOutput.test_sample_output.PubKey.__init__ 1 0 0 100%
tests/admin/test_attestation_utils.py TestComputePubkeysOutput.test_sample_output.PubKey.serialize 1 0 0 100%
tests/admin/test_attestation_utils.py TestGetRootOfTrust.test_file_ok 5 0 0 100%
tests/admin/test_attestation_utils.py TestGetRootOfTrust.test_file_invalid 8 0 0 100%
tests/admin/test_attestation_utils.py TestGetRootOfTrust.test_url_ok 7 0 0 100%
tests/admin/test_attestation_utils.py TestGetRootOfTrust.test_url_error_get 8 0 0 100%
tests/admin/test_attestation_utils.py (no function) 42 0 0 100%
tests/admin/test_attestation_utils_resources.py (no function) 2 0 0 100%
tests/admin/test_authorize_signer.py TestAuthorizeSigner.test_ok 8 0 0 100%
tests/admin/test_authorize_signer.py TestAuthorizeSigner.test_jsonfile_error 9 0 0 100%
tests/admin/test_authorize_signer.py TestAuthorizeSigner.test_unlock_error 9 0 0 100%
tests/admin/test_authorize_signer.py TestAuthorizeSigner.test_get_hsm_error 9 0 0 100%
tests/admin/test_authorize_signer.py TestAuthorizeSigner.test_auth_error 9 0 0 100%
tests/admin/test_authorize_signer.py (no function) 17 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_valid_certificate_ok 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_empty_certificate_ok 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_invalid_version 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_no_version 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_missing_targets 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_invalid_targets 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_missing_elements 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_invalid_element 3 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_target_not_in_elements 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_elements_without_path_to_root 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_create_certificate_signer_not_in_elements 2 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_validate_and_get_values_ok 12 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_validate_and_get_values_invalid_element 12 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_validate_and_get_values_invalid_elements 9 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_add_element_ok 4 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_add_element_invalid_element 5 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_add_target_ok 4 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_add_target_not_in_elements 5 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_clear_targets 3 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_save_to_jsonfile_ok 5 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_save_to_jsonfile_write_error 7 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_from_jsonfile_ok 5 0 0 100%
tests/admin/test_certificate_v1.py TestHSMCertificate.test_from_jsonfile_error 4 0 0 100%
tests/admin/test_certificate_v1.py (no function) 31 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateRoot.test_ok 3 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateRoot.test_invalid_pubkey 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_create_certificate_element_ok 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_create_certificate_element_invalid_name 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_create_certificate_element_missing_certifier 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_create_certificate_element_invalid_tweak 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_create_certificate_element_invalid_message 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_create_certificate_element_invalid_signature 2 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_certificate_element_is_valid_ok 7 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_certificate_element_is_valid_with_tweak_ok 11 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_certificate_element_is_valid_wrong_signature 5 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_certificate_element_is_valid_wrong_tweak 10 0 0 100%
tests/admin/test_certificate_v1_element.py TestHSMCertificateElement.test_certificate_element_get_value 3 0 0 100%
tests/admin/test_certificate_v1_element.py (no function) 24 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.test_behavior_inherited 1 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.test_create_empty_certificate_ok 2 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.test_parse_identity 2 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.mock_element 7 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.mock_element.MockElement.__init__ 3 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.mock_element.MockElement.is_valid 1 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.mock_element.MockElement.get_value 1 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.mock_element.MockElement.get_tweak 1 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.mock_element.mock_element_factory 1 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.test_validate_and_get_values_value 3 0 0 100%
tests/admin/test_certificate_v2.py TestHSMCertificateV2.test_validate_and_get_values_invalid 3 0 0 100%
tests/admin/test_certificate_v2.py (no function) 13 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.setUp 3 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.setUp.TestElement.__init__ 1 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_from_dict_unknown_type 3 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_from_dict_no_name 3 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_from_dict_no_signed_by 3 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_cant_instantiate 2 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_get_pubkey_notimplemented 2 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_get_value_notimplemented 2 0 0 100%
tests/admin/test_certificate_v2_element.py TestHSMCertificateV2Element.test_is_valid_notimplemented 2 0 0 100%
tests/admin/test_certificate_v2_element.py (no function) 11 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.setUp 5 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_props 6 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_to_dict 1 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_parse_identity 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_from_dict_invalid_message 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_from_dict_invalid_key 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_from_dict_invalid_auth_data 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_from_dict_invalid_signature 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_get_value_notimplemented 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_ok 1 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_err_notthekey 4 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_err_message 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_err_message_invalid 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_err_auth_data 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_err_key 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py TestHSMCertificateV2ElementSGXAttestationKey.test_is_valid_err_key_invalid 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_attestation_key.py (no function) 22 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.setUp 1 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_props 6 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_dict_ok 1 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_parse_identity 4 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_from_dict_invalid_message 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_from_dict_invalid_custom_data 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_from_dict_invalid_signature 3 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_get_pubkey_notimplemented 2 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_is_valid_ok 5 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_is_valid_custom_data_mismatch 5 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py TestHSMCertificateV2ElementSGXQuote.test_is_valid_signature_mismatch 5 0 0 100%
tests/admin/test_certificate_v2_element_sgx_quote.py (no function) 20 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.setUp 1 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_props 3 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_dict_ok 1 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_parse_identity 4 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_from_dict_invalid_message 3 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_value_notimplemented 2 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_from_pem 1 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_from_pemfile 5 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_certificate 5 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.setup_pubkey_mocks 7 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_pubkey_ok 4 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_pubkey_err_load_cert 8 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_pubkey_err_get_pub 8 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_pubkey_err_pub_notnistp256 8 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_pubkey_err_public_bytes 8 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_get_pubkey_err_ecdsafromstring 8 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.setup_is_valid_mocks 15 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.setup_is_valid_mocks.load_mock 3 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_is_valid_ok 4 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_is_valid_before_in_future 5 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_is_valid_after_in_past 5 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_is_valid_signature_invalid 5 0 0 100%
tests/admin/test_certificate_v2_element_x509.py TestHSMCertificateV2ElementX509.test_is_valid_x509_error 5 0 0 100%
tests/admin/test_certificate_v2_element_x509.py (no function) 56 0 0 100%
tests/admin/test_certificate_v2_resources.py (no function) 2 0 0 100%
tests/admin/test_changepin.py TestChangepin.setUp 4 0 0 100%
tests/admin/test_changepin.py TestChangepin.test_changepin 8 0 0 100%
tests/admin/test_changepin.py TestChangepin.test_changepin_unlock_error 8 0 0 100%
tests/admin/test_changepin.py TestChangepin.test_changepin_invalid_mode_ledger 9 0 0 100%
tests/admin/test_changepin.py TestChangepin.test_changepin_signer_mode_sgx 9 0 0 100%
tests/admin/test_changepin.py TestChangepin.test_changepin_invalid_pin 10 0 0 100%
tests/admin/test_changepin.py TestChangepin.test_changepin_newpin_error 8 0 0 100%
tests/admin/test_changepin.py (no function) 26 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.setUp 5 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_connect_error 5 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_disconnect 3 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_disconnect_error 5 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_handshake 19 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_handshake_not_connected 4 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_handshake_timeout 4 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_get_device_key 14 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_get_device_key_timeout 4 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_get_device_key_comm_error 5 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_setup_endorsement_key 15 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_setup_endorsement_key_timeout 4 0 0 100%
tests/admin/test_dongle_admin.py TestDongleAdmin.test_setup_endorsement_key_comm_error 5 0 0 100%
tests/admin/test_dongle_admin.py (no function) 28 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.setUpClass 2 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.setUp 5 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.tearDown 1 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_get_pubkey_ok 5 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_get_pubkey_invalid_path 6 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_get_pubkey_wrong_app 6 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_get_pubkey_device_locked 6 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_get_pubkey_dongle_error 6 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_sign_message_ok 11 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_sign_message_invalid_path 8 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_sign_message_wrong_app 8 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_sign_message_device_locked 8 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_sign_message_dongle_error 8 0 0 100%
tests/admin/test_dongle_eth.py TestDongleEth.test_sign_msg_too_big 5 0 0 100%
tests/admin/test_dongle_eth.py (no function) 24 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_load 6 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_delete 6 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_setup_ca 6 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_reset_ca 6 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_gen_ca 6 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_list_apps_no_apps 10 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_list_apps_no_apps.run_module_mock 4 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_list_apps_with_apps 10 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_list_apps_with_apps.run_module_mock 5 0 0 100%
tests/admin/test_lbutils.py TestLbutils.test_list_apps_error 9 1 0 89%
tests/admin/test_lbutils.py (no function) 15 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.setupMocks 7 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.setupDefaultOptions 6 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_ok 13 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_no_output_file 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_no_att_cert_file 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_invalid_jsonfile 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_get_ud_value_for_attestation_error 11 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_unlock_error 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_get_hsm_error 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_get_ui_attestation_error 10 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_get_powhsm_attestation_error 10 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_get_powhsm_attestation_envelope_msg_differ 11 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_add_element_error 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_add_target_error 9 0 0 100%
tests/admin/test_ledger_attestation.py TestAttestation.test_attestation_save_to_jsonfile_error 9 0 0 100%
tests/admin/test_ledger_attestation.py (no function) 33 0 0 100%
tests/admin/test_ledger_utils.py TestComputeAppHash.test_multiple_areas 4 0 0 100%
tests/admin/test_ledger_utils.py TestComputeAppHash.test_no_areas 4 0 0 100%
tests/admin/test_ledger_utils.py TestEncodeEthMessage.test_str 1 0 0 100%
tests/admin/test_ledger_utils.py TestEncodeEthMessage.test_hash 1 0 0 100%
tests/admin/test_ledger_utils.py (no function) 14 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.setUp 7 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.setupMocks 19 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.assert_disposed_hsms 3 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_ok 15 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_no_migauth 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_migauth_load_fails 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_migauth_no_sigs 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_migauth_invalid_exporter 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_migauth_invalid_importer 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_migauth_invalid_signature 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_unlock_fails 9 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_spec_fails 19 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_get_evidence_fails 19 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_send_evidence_fails 19 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_get_data_fails 19 0 0 100%
tests/admin/test_migrate_db.py TestMigrateDb.test_send_data_fails 19 0 0 100%
tests/admin/test_migrate_db.py (no function) 28 0 0 100%
tests/admin/test_misc.py TestGetUdValueForAttestation.test_hex_string 2 0 0 100%
tests/admin/test_misc.py TestGetUdValueForAttestation.test_ud_source_ok 8 0 0 100%
tests/admin/test_misc.py TestGetUdValueForAttestation.test_ud_source_client_error 10 0 0 100%
tests/admin/test_misc.py (no function) 11 0 0 100%
tests/admin/test_onboard.py TestOnboard.setUp 9 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_ledger 20 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_sgx 15 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_already_onboarded 10 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_onboard_error 19 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_handshake_error 19 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_getkey_error 19 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_setupkey_error 19 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_user_cancelled 15 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_no_output_file_ledger 11 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_no_output_file_sgx 10 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_invalid_pin 5 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_invalid_mode 6 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_invalid_device_key 11 0 0 100%
tests/admin/test_onboard.py TestOnboard.test_onboard_invalid_attestation_key 11 0 0 100%
tests/admin/test_onboard.py (no function) 68 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.setUp 9 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys 21 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys.get_pubkey_mock 2 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys_no_unlock 23 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys_no_unlock.get_pubkey_mock 2 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys_unlock_error 8 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys_invalid_pubkey 11 0 0 100%
tests/admin/test_pubkeys.py TestPubkeys.test_pubkeys_invalid_mode 7 0 0 100%
tests/admin/test_pubkeys.py (no function) 21 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.setUp 1 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.generate_post_response 7 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.test_get_best_block_number 6 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.test_get_best_block_number_server_error 6 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.test_get_best_block_number_id_error 7 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.test_get_block_by_number 7 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.test_get_block_by_number_server_error 7 0 0 100%
tests/admin/test_rsk_client.py TestRskClient.test_get_block_by_number_id_error 8 0 0 100%
tests/admin/test_rsk_client.py (no function) 15 0 0 100%
tests/admin/test_sgx_attestation.py TestSgxAttestation.setUp 6 0 0 100%
tests/admin/test_sgx_attestation.py TestSgxAttestation.setupMocks 26 0 0 100%
tests/admin/test_sgx_attestation.py TestSgxAttestation.test_ok 17 0 0 100%
tests/admin/test_sgx_attestation.py TestSgxAttestation.test_no_output_path 14 0 0 100%
tests/admin/test_sgx_attestation.py TestSgxAttestation.test_adm_err_get_attestation 15 0 0 100%
tests/admin/test_sgx_attestation.py TestSgxAttestation.test_adm_err_envelope_parsing 15 0 0 100%
tests/admin/test_sgx_attestation.py (no function) 24 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.setUp 5 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_migration_spec_n_signatures 4 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_invalid_migration_spec 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_invalid_signatures 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_invalid_signature 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_to_dict 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_add_signature 3 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_add_duplicate_signature_not_allowed 3 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_add_invalid_signature 4 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_save_to_jsonfile 4 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_from_jsonfile 8 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_from_jsonfile_invalid_json 5 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_from_jsonfile_invalid_version 5 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_from_jsonfile_invalid_migration_spec 5 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_from_jsonfile_invalid_signatures 5 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_from_jsonfile_invalid_signature 5 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationAuthorization.test_authorization_message 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.setUp 3 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_mrenclave_getters 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_invalid_exporter_mrenclave 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_invalid_importer_mrenclave 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_mrenclave_normalization 3 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_to_dict 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_msg_generation 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_authorization_message 2 0 0 100%
tests/admin/test_sgx_migration_authorization.py TestSGXMigrationSpec.test_authorization_digest 3 0 0 100%
tests/admin/test_sgx_migration_authorization.py (no function) 35 0 0 100%
tests/admin/test_signapp.py TestSignAppHash.test_ok 7 0 0 100%
tests/admin/test_signapp.py TestSignAppMessage.test_ok_to_console 10 0 0 100%
tests/admin/test_signapp.py TestSignAppMessage.test_ok_to_file 13 0 0 100%
tests/admin/test_signapp.py TestSignAppKey.test_newfile_ok 19 0 0 100%
tests/admin/test_signapp.py TestSignAppKey.test_existingfile_ok 18 0 0 100%
tests/admin/test_signapp.py TestSignAppEth.test_newfile_ok 27 0 0 100%
tests/admin/test_signapp.py TestSignAppEth.test_existingfile_ok 26 0 0 100%
tests/admin/test_signapp.py TestSignAppManual.test_ok 9 0 0 100%
tests/admin/test_signapp.py (no function) 42 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.setUp 3 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_signer_version_n_signatures 4 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_invalid_signer_version 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_invalid_signatures 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_invalid_signature 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_to_dict 1 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_add_signature 3 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_add_invalid_signature 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_save_to_jsonfile 4 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile 8 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile_invalid_json 5 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile_invalid_version 5 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile_invalid_hash 5 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile_invalid_iteration 5 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile_invalid_signatures 5 0 0 100%
tests/admin/test_signer_authorization.py TestSignerAuthorization.test_from_jsonfile_invalid_signature 5 0 0 100%
tests/admin/test_signer_authorization.py TestSignerVersion.test_hash_iteration 3 0 0 100%
tests/admin/test_signer_authorization.py TestSignerVersion.test_invalid_hash 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerVersion.test_invalid_version 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerVersion.test_authorization_message 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerVersion.test_authorization_digest 2 0 0 100%
tests/admin/test_signer_authorization.py TestSignerVersion.test_to_dict 2 0 0 100%
tests/admin/test_signer_authorization.py (no function) 31 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationMessage.setUp 4 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationMessage.test_ok_to_console 9 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationMessage.test_ok_to_file 10 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationMessage.test_missing_exporter 7 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationMessage.test_missing_importer 7 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationManual.test_ok 11 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationManual.test_file_not_found 7 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationManual.test_missing_signature 11 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationManual.test_missing_output_file 9 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationManual.test_non_existent_output_file 10 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationKey.test_ok 15 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationKey.test_missing_key 9 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationKey.test_invalid_key 9 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationKey.test_missing_output_file 7 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationKey.test_non_existent_output_file 8 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationKey.test_canonical_signature_encoding 16 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationEth.test_ok_pubkey 20 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationEth.test_existingfile_ok 27 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationEth.test_missing_output_file 7 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationEth.test_get_eth_dongle_exception 10 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationEth.test_get_pubkey_exception 13 0 0 100%
tests/admin/test_signmigration.py TestSignMigrationEth.test_bad_signature 28 0 0 100%
tests/admin/test_signmigration.py (no function) 51 0 0 100%
tests/admin/test_unlock.py TestUnlock.setUp 6 0 0 100%
tests/admin/test_unlock.py TestUnlock.test_unlock 5 0 0 100%
tests/admin/test_unlock.py TestUnlock.test_unlock_invalid_pin 8 0 0 100%
tests/admin/test_unlock.py TestUnlock.test_unlock_not_onboarded 6 0 0 100%
tests/admin/test_unlock.py TestUnlock.test_unlock_invalid_mode 10 0 0 100%
tests/admin/test_unlock.py TestUnlock.test_unlock_wrong_pin 7 0 0 100%
tests/admin/test_unlock.py (no function) 21 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.setUp 25 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_legacy 14 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation 11 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_no_certificate 5 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_no_pubkey 5 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_no_ui_derivation_key 7 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_invalid_certificate 6 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_no_ui_att 10 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_invalid_ui_att 10 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_no_signer_att 10 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_invalid_signer_att 10 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_invalid_signer_att_header 10 0 0 100%
tests/admin/test_verify_ledger_attestation.py TestVerifyLedgerAttestation.test_verify_attestation_invalid_signer_att_msg_too_long 10 0 0 100%
tests/admin/test_verify_ledger_attestation.py (no function) 51 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.setUp 19 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.configure_mocks 7 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation 12 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_err_get_root 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_err_root_invalid 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_err_load_pubkeys 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_err_load_cert 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_validation_noquote 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_validation_failed 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_invalid_header 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_invalid_message 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py TestVerifySgxAttestation.test_verify_attestation_pkh_mismatch 10 0 0 100%
tests/admin/test_verify_sgx_attestation.py (no function) 31 0 0 100%
tests/comm/__init__.py (no function) 0 0 0 100%
tests/comm/test_bip32.py TestBIP32Element.test_normal 5 0 0 100%
tests/comm/test_bip32.py TestBIP32Element.test_max_normal 5 0 0 100%
tests/comm/test_bip32.py TestBIP32Element.test_hardened 5 0 0 100%
tests/comm/test_bip32.py TestBIP32Element.test_max_hardened 5 0 0 100%
tests/comm/test_bip32.py TestBIP32Element.test_spec_invalid 3 0 0 100%
tests/comm/test_bip32.py TestBIP32Path.test_paths 2 0 0 100%
tests/comm/test_bip32.py TestBIP32Path.test_to_binary 4 0 0 100%
tests/comm/test_bip32.py TestBIP32Path.test_spec_invalid 3 0 0 100%
tests/comm/test_bip32.py TestBIP32Path.test_equality 4 0 0 100%
tests/comm/test_bip32.py (no function) 15 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_signed_unsigned_different_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_for_unsigned_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_sample1_signed 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_for_unsigned_hash_partially_signed_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_sighash_unsigned_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_sighash_partially_signed_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_unsigned_sample1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_unsigned_sample2 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_signed_unsigned_different_sample2 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_sample2 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_sample2_signed 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_for_unsigned_sample2 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_for_unsigned_partially_signed_sample2 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_sighash_unsigned_sample2_input0 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_sighash_unsigned_sample2_input1 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_hash_not_signed_sample3 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_sighash_unsigned_sample3_input0 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_block_hash_as_int_sample1 3 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_block_hash_as_int_sample2 3 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_block_hash_as_int_malformed 2 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_merkle_root_sample1 2 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_merkle_root_sample2 2 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_merkle_root_malformed 2 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_version_a 1 0 0 100%
tests/comm/test_bitcoin.py TestBitcoin.test_get_tx_version_b 1 0 0 100%
tests/comm/test_bitcoin.py (no function) 46 0 0 100%
tests/comm/test_cstruct.py TestCStruct.setUp 1 0 0 100%
tests/comm/test_cstruct.py TestCStruct.test_expected_sizes 3 0 0 100%
tests/comm/test_cstruct.py TestCStruct.test_parsing_default 11 0 0 100%
tests/comm/test_cstruct.py TestCStruct.test_parsing_little_offset 11 0 0 100%
tests/comm/test_cstruct.py TestCStruct.test_parsing_big 11 0 0 100%
tests/comm/test_cstruct.py TestCStruct.test_parsing_toosmall 2 0 0 100%
tests/comm/test_cstruct.py TestCStruct.test_invalid_spec 4 0 0 100%
tests/comm/test_cstruct.py (no function) 20 0 0 100%
tests/comm/test_english_mnemonic.py TestEnglishMnemonic.test_same_wordlist 1 0 0 100%
tests/comm/test_english_mnemonic.py TestEnglishMnemonic.test_same_mnemonic 4 0 0 100%
tests/comm/test_english_mnemonic.py (no function) 10 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.setUp 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_format_error 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_format_error_type 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_invalid_request 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_invalid_request_no_command 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_invalid_request_no_version 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_wrong_version 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_version_2_not_supported 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_version_3_not_supported 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_invalid_command 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_version 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_initialize_device_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_getpubkey_keyId_presence 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_getpubkey_keyId_notastring 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_getpubkey_keyId_invalid 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_getpubkey_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_keyId_presence 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_keyId_not_a_string 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_keyId_invalid 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_auth_type_components 3 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_receipt_presence_type 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_receipt_merkle_proof_presence_type 6 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_message_presence_type 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_legacy_message_value 9 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_segwit_message_value 14 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_hash_message_value 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_notimplemented 10 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_noauth_message_presence 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_noauth_message_notobject 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_noauth_message_hash_notpresent 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_noauth_message_hash_invalid 1 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_sign_noauth_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_advance_blockchain_blocks_presence 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_advance_blockchain_brothers_presence 8 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_advance_blockchain_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_reset_advance_blockchain_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_blockchain_status_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_update_ancestor_block_blocks_presence 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_update_ancestor_block_notimplemented 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_blockchain_parameters_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_signer_heartbeat_invalid_ud_value 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_signer_heartbeat_notimplemented 2 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_ui_heartbeat_invalid_ud_value 4 0 0 100%
tests/comm/test_protocol.py TestHSM2Protocol.test_ui_heartbeat_notimplemented 2 0 0 100%
tests/comm/test_protocol.py (no function) 49 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.setUp 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_format_error 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_format_error_type 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_invalid_request 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_invalid_request_no_command 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_invalid_request_no_version 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_wrong_version 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_invalid_command 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_version 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_initialize_device_notimplemented 2 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_getpubkey_keyId_presence 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_getpubkey_keyId_notastring 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_getpubkey_keyId_invalid 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_getpubkey_notimplemented 2 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_keyId_presence 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_keyId_not_a_string 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_keyId_invalid 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_message_presence 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_message_notstring 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_message_not_hex 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_message_not_longenough 1 0 0 100%
tests/comm/test_protocol_v1.py TestHSM1Protocol.test_sign_notimplemented 2 0 0 100%
tests/comm/test_protocol_v1.py (no function) 27 0 0 100%
tests/comm/test_server.py TestTCPServer.setUp 2 0 0 100%
tests/comm/test_server.py TestTCPServer.test_init_ok 3 0 0 100%
tests/comm/test_server.py TestTCPServer.test_run_ok 5 0 0 100%
tests/comm/test_server.py TestTCPServer.test_run_interrupt 6 0 0 100%
tests/comm/test_server.py TestTCPServer.test_run_socket_error 7 0 0 100%
tests/comm/test_server.py TestTCPServer.test_run_initialize_device_not_implemented 6 0 0 100%
tests/comm/test_server.py TestTCPServer.assert_server_setup_ok 4 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.prepare 7 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.handle 1 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.test_handles_ok 4 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.test_handler_correct_subclass 3 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.test_handle_request_handler_error_shutsdown 4 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.test_handle_request_handler_shutdown_shutsdown 4 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.test_handle_request_handler_connection_error_doesnotshutdown 4 0 0 100%
tests/comm/test_server.py TestTCPServerRequestHandler.test_handle_request_handler_other_error_doesnotshutdown 4 0 0 100%
tests/comm/test_server.py TestRequestHandler.setUp 5 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_logger_protocol 2 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handler_correct_encoding 1 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_ok 5 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_broken_pipe_reply 6 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_json_error 5 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_notimplemented_error 5 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_protocol_error 7 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_protocol_shutdown 6 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_unknown_exception 6 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_invalid_encoding 5 0 0 100%
tests/comm/test_server.py TestRequestHandler.test_handle_invalid_encoding_broken_pipe 6 0 0 100%
tests/comm/test_server.py TestRequestHandler.mock_request 1 0 0 100%
tests/comm/test_server.py TestRequestHandler.do_request 1 0 0 100%
tests/comm/test_server.py (no function) 46 0 0 100%
tests/comm/test_utils.py TestBitwiseAndBytes.test_ones 1 0 0 100%
tests/comm/test_utils.py TestBitwiseAndBytes.test_zeroes 1 0 0 100%
tests/comm/test_utils.py TestBitwiseAndBytes.test_mixed 2 0 0 100%
tests/comm/test_utils.py TestKeccak256.test_rsk_blocks 1 0 0 100%
tests/comm/test_utils.py TestKeccak256.test_other 2 0 0 100%
tests/comm/test_utils.py TestKeccak256.test_other.kb 1 0 0 100%
tests/comm/test_utils.py (no function) 14 0 0 100%
tests/ledger/__init__.py (no function) 0 0 0 100%
tests/ledger/hsm2dongle_cmds/__init__.py (no function) 0 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleAdvanceBlockchain.setup_mocks 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleAdvanceBlockchain.test_advance_blockchain_ok 8 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleAdvanceBlockchain.test_advance_blockchain_chunk_error_result 14 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleAdvanceBlockchain.test_advance_blockchain_metadata_error_result 14 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleAdvanceBlockchain.test_advance_blockchain_metadata_error_generating 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleAdvanceBlockchain.test_advance_blockchain_init_error 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py (no function) 30 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.setUp 2 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_ok 6 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_mp_invalid 7 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_mp_too_big 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_mp_unexpected_exc 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_mp_invalid_format 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_receipt_invalid 7 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_receipt_unexpected_error_exc 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_btctx_invalid 7 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_btctx_unexpected_error_exc 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_path_invalid 6 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSignAuthorizedLegacy.test_path_unexpected_error_exc 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py TestHSM2DongleSGXSignAuthorizedLegacy.get_test_mode 1 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_legacy.py (no function) 28 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py TestHSM2DongleSignAuthorizedSegwit.setUp 2 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py TestHSM2DongleSignAuthorizedSegwit.test_ok 6 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py TestHSM2DongleSignAuthorizedSegwit.test_long_witness_script_length 6 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py TestHSM2DongleSignAuthorizedSegwit.test_btctx_invalid 7 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py TestHSM2DongleSignAuthorizedSegwit.test_btctx_unexpected_error_exc 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py TestHSM2DongleSGXSignAuthorizedSegwit.get_test_mode 1 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_sign_auth_segwit.py (no function) 17 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_update_ancestor_ok 7 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_update_ancestor_chunk_error_result 13 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_update_ancestor_metadata_error_result 13 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_update_ancestor_metadata_error_generating 6 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_update_ancestor_init_error 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_update_ancestor_remove_mmfields_exception 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_authorize_signer_ok 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_authorize_signer_ok_first_sig 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_authorize_signer_sigver_error 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_authorize_signer_signature_error 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleUpdateAncestor.test_authorize_not_enough_signatures 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py (no function) 32 0 0 100%
tests/ledger/hsm2dongle_cmds/test_powhsm_attestation.py TestPowHsmAttestation.test_ok 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_powhsm_attestation.py TestPowHsmAttestation.test_legacy_ok 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_powhsm_attestation.py TestPowHsmAttestation.test_error_result 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_powhsm_attestation.py TestPowHsmAttestation.test_exception 5 0 0 100%
tests/ledger/hsm2dongle_cmds/test_powhsm_attestation.py (no function) 11 0 0 100%
tests/ledger/hsm2dongle_cmds/test_signer_heartbeat.py TestHSM2SignerHeartbeat.test_ok 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_signer_heartbeat.py TestHSM2SignerHeartbeat.test_error_result 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_signer_heartbeat.py TestHSM2SignerHeartbeat.test_exception 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_signer_heartbeat.py (no function) 11 0 0 100%
tests/ledger/hsm2dongle_cmds/test_ui_heartbeat.py TestHSM2UIHeartbeat.test_ok 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_ui_heartbeat.py TestHSM2UIHeartbeat.test_error_result 3 0 0 100%
tests/ledger/hsm2dongle_cmds/test_ui_heartbeat.py TestHSM2UIHeartbeat.test_exception 4 0 0 100%
tests/ledger/hsm2dongle_cmds/test_ui_heartbeat.py (no function) 11 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_rlp_first_element_list_payload_length_ok 3 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_rlp_first_element_list_payload_length_ok_emptylist 1 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_rlp_first_element_list_payload_length_notalist 2 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_rlp_mm_payload_size_ok 4 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_rlp_mm_payload_size_wrong_list_size 4 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_rlp_mm_payload_size_wrong_datatype 4 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils.test_remove_mm_fields_if_present_ok 5 0 0 100%
tests/ledger/test_block_utils.py TestBlockUtils._makeblock 1 0 0 100%
tests/ledger/test_block_utils.py (no function) 16 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.get_test_mode 1 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.setUp 20 1 0 95%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.buf 1 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.parse_exchange_spec 20 2 0 90%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.spec_to_exchange 17 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.assert_exchange 10 2 0 80%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.assert_exchange.ensure_cla 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.do_sign_auth 1 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBase.process_sign_auth_spec 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_dongle_error_codes 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_connects_ok 1 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_connects_error_comm 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_connects_error_other 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_get_current_mode 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_echo 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_echo_error 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_is_onboarded_yes 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_is_onboarded_no 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_onboard_ok 8 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_onboard_wipe_error 9 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_onboard_pin_error 7 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_onboard_seed_error 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_unlock_ok 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_unlock_pinerror 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_new_pin 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_version 7 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_retries 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_exit_menu 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_exit_menu_explicit_autoexec 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_exit_menu_no_autoexec 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_exit_app 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_get_public_key_ok 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_get_public_key_invalid_keyid 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_get_public_key_timeout 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2Dongle.test_get_public_key_other_error 5 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleSignUnauthorized.test_sign_unauthorized_ok 6 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleSignUnauthorized.test_sign_unauthorized_invalid_signature 6 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleSignUnauthorized.test_sign_unauthorized_dongle_error_result 7 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleSignUnauthorized.test_sign_unauthorized_invalid_hash 2 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_get_blockchain_state_ok 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_get_blockchain_state_error_hash 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_get_blockchain_state_error_difficulty 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_get_blockchain_state_error_flags 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_reset_advance_blockchain_ok 3 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_reset_advance_blockchain_invalid_response 4 0 0 100%
tests/ledger/test_hsm2dongle.py TestHSM2DongleBlockchainState.test_reset_advance_blockchain_exception 4 0 0 100%
tests/ledger/test_hsm2dongle.py (no function) 71 0 0 100%
tests/ledger/test_pin.py TestBasePin.test_generate_pin 6 0 0 100%
tests/ledger/test_pin.py TestBasePin.test_is_valid 1 0 0 100%
tests/ledger/test_pin.py TestBasePin.test_is_valid_any_pin 1 0 0 100%
tests/ledger/test_pin.py TestFileBasedPin.test_new 7 0 0 100%
tests/ledger/test_pin.py TestFileBasedPin.test_init_pin_doesnotexist 6 0 0 100%
tests/ledger/test_pin.py TestFileBasedPin.test_init_pin_exists 9 0 0 100%
tests/ledger/test_pin.py TestFileBasedPin.test_pin_change 19 0 0 100%
tests/ledger/test_pin.py TestFileBasedPin.test_pin_change_aborted 15 0 0 100%
tests/ledger/test_pin.py (no function) 26 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.setUp 10 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_pubkey_ok 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_pubkey_error 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_pubkey_timeout 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_pubkey_commerror_reconnection 9 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_pubkey_unexpected_error 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_legacy_ok 7 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_segwit_ok 7 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_legacy_error 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_segwit_error 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_legacy_timeout 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_segwit_timeout 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_legacy_commerror_reconnection 11 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_segwit_commerror_reconnection 11 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_legacy_exception 7 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_segwit_exception 7 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_legacy_error_unsigning 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_segwit_error_unsigning 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_message_invalid 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_authorized_auth_invalid 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_unauthorized_ok 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_unauthorized_error 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_unauthorized_timeout 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_unauthorized_commerror_reconnection 10 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_unauthorized_exception 6 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_sign_unauthorized_message_invalid 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_blockchain_state_ok 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_blockchain_state_dongle_exception 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_blockchain_state_dongle_timeout 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_blockchain_state_dongle_commerror_reconnection 8 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_reset_advance_blockchain_ok 3 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_reset_advance_blockchain_dongle_timeout 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_reset_advance_blockchain_dongle_commerror_reconnection 7 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_reset_advance_blockchain_dongle_exception 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_advance_blockchain_mapping 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_advance_blockchain_timeout 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_advance_blockchain_commerror_reconnection 8 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_advance_blockchain_exception 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_update_ancestor_mapping 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_update_ancestor_timeout 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_update_ancestor_commerror_reconnection 8 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_update_ancestor_exception 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_blockchain_parameters_ok 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_blockchain_parameters_dongle_timeout 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_get_blockchain_parameters_exception 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_signer_heartbeat_ok 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_signer_heartbeat_dongle_error 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_signer_heartbeat_dongle_timeout 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_signer_heartbeat_exception 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_signer_ok 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_exit_signer_error 3 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_signer_no_ui_heartbeat 3 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_signer_hb_error 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_signer_hb_error_result 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_signer_back_to_signer_error 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_signer_no_back_to_signer 5 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_invalid_start_mode 2 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_hb_ok 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_hb_hb_error 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger.test_ui_heartbeat_from_hb_hb_error_result 4 0 0 100%
tests/ledger/test_protocol.py TestHSM2ProtocolLedger._assert_reconnected 2 0 0 100%
tests/ledger/test_protocol.py (no function) 137 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.setUp 10 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_get_pubkey_ok 5 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_get_pubkey_error 5 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_get_pubkey_timeout 5 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_get_pubkey_commerror_reconnection 9 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_get_pubkey_unexpected_error 6 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_sign_ok 6 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_sign_error 5 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_sign_timeout 5 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_sign_commerror_reconnection 10 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_sign_exception 6 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger.test_sign_message_invalid 4 0 0 100%
tests/ledger/test_protocol_v1.py TestHSM1ProtocolLedger._assert_reconnected 2 0 0 100%
tests/ledger/test_protocol_v1.py (no function) 34 0 0 100%
tests/ledger/test_signature.py TestHSM2DongleSignature.test_signature_1 6 0 0 100%
tests/ledger/test_signature.py TestHSM2DongleSignature.test_signature_2 6 0 0 100%
tests/ledger/test_signature.py TestHSM2DongleSignature.test_signature_invalid 4 0 0 100%
tests/ledger/test_signature.py TestHSM2DongleSignature.test_equal 4 0 0 100%
tests/ledger/test_signature.py TestHSM2DongleSignature.test_not_equal 5 0 0 100%
tests/ledger/test_signature.py (no function) 10 0 0 100%
tests/ledger/test_version.py TestHSM2FirmwareVersion.test_supports 3 0 0 100%
tests/ledger/test_version.py TestHSM2FirmwareVersion.test_greater_or_equal 3 0 0 100%
tests/ledger/test_version.py TestHSM2FirmwareVersion.test_equal 3 0 0 100%
tests/ledger/test_version.py (no function) 12 0 0 100%
tests/sgx/__init__.py (no function) 0 0 0 100%
tests/sgx/hsm2dongle_cmds/__init__.py (no function) 0 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.get_test_mode 1 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.setup_mocks 4 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.spec_to_exchange 8 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.test_advance_blockchain_ok 8 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.test_advance_blockchain_bh_error_result 14 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.test_advance_blockchain_metadata_error_result 14 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.test_advance_blockchain_metadata_error_generating 5 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py TestHSM2DongleSGXAdvanceBlockchain.test_advance_blockchain_init_error 3 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_advance_blockchain.py (no function) 32 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.get_test_mode 1 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.spec_to_exchange 8 4 0 50%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_update_ancestor_ok 7 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_update_ancestor_bh_error_result 13 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_update_ancestor_metadata_error_result 13 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_update_ancestor_metadata_error_generating 6 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_update_ancestor_init_error 4 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_update_ancestor_remove_mmfields_exception 3 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_authorize_signer_ok 3 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_authorize_signer_ok_first_sig 3 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_authorize_signer_sigver_error 4 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_authorize_signer_signature_error 4 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py TestHSM2DongleSGXUpdateAncestor.test_authorize_not_enough_signatures 4 0 0 100%
tests/sgx/hsm2dongle_cmds/test_hsm2dongle_update_ancestor.py (no function) 34 0 0 100%
tests/sgx/test_envelope.py TestSgxQeAuthData.test_parses_ok 3 0 0 100%
tests/sgx/test_envelope.py TestSgxQeAuthData.test_parses_error_tooshort 2 0 0 100%
tests/sgx/test_envelope.py TestSgxQeCertData.test_parses_ok 5 0 0 100%
tests/sgx/test_envelope.py TestSgxQeCertData.test_parses_error_tooshort 2 0 0 100%
tests/sgx/test_envelope.py TestSgxEnvelope.test_parses_ok 2 0 0 100%
tests/sgx/test_envelope.py TestSgxEnvelope.test_parsing_fails_if_message_mismatch 2 0 0 100%
tests/sgx/test_envelope.py TestSgxStructs.test_sizes_ok 1 0 0 100%
tests/sgx/test_envelope.py (no function) 19 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.setUp 8 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.assert_exchange_called 1 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.assert_xchg_called_ith 2 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_echo_ok 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_echo_response_differs 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_echo_error_triggered 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_unlock_ok 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_unlock_wrong_pass 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_newpin_ok 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_newpin_error 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_get_retries 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_onboard_ok 3 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_onboard_seed_invalid_type 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_onboard_seed_invalid_length 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_onboard_pin_invalid_type 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_onboard_error_result 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_onboard_error_xchg 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_spec_ok 7 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_spec_notenough_sigs 8 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_spec_err_raised 7 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_get_evidence_ok 5 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_get_evidence_err_raised 7 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_send_evidence_ok 10 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_send_evidence_noack 8 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_send_evidence_err_raised 8 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_get_data_ok 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_get_data_nodata 6 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_get_data_err_raised 6 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_send_data_ok 4 0 0 100%
tests/sgx/test_hsm2dongle.py TestHSM2DongleSGX.test_migrate_db_send_data_err_raised 6 0 0 100%
tests/sgx/test_hsm2dongle.py (no function) 40 0 0 100%
tests/test_signonetime.py TestSignOneTime.test_ok_two_apps 15 0 0 100%
tests/test_signonetime.py (no function) 9 0 0 100%
tests/thirdparty/__init__.py (no function) 0 0 0 100%
tests/thirdparty/test_sha256.py TestSha256.test_sha256_random 4 0 0 100%
tests/thirdparty/test_sha256.py TestSha256.test_sha256_multiple_of_64 4 0 0 100%
tests/thirdparty/test_sha256.py TestSha256.generate_random_testcase 4 0 0 100%
tests/thirdparty/test_sha256.py (no function) 13 0 0 100%
thirdparty/__init__.py (no function) 0 0 0 100%
thirdparty/sha256.py _pad 6 0 0 100%
thirdparty/sha256.py _rotr 1 0 0 100%
thirdparty/sha256.py _maj 1 0 0 100%
thirdparty/sha256.py _ch 1 0 0 100%
thirdparty/sha256.py SHA256.__init__ 5 0 0 100%
thirdparty/sha256.py SHA256.set_midstate 7 7 0 0%
thirdparty/sha256.py SHA256._compress 22 0 0 100%
thirdparty/sha256.py SHA256.update 9 0 0 100%
thirdparty/sha256.py SHA256.digest 4 0 0 100%
thirdparty/sha256.py SHA256.hexdigest 1 1 0 0%
thirdparty/sha256.py check 3 3 0 0%
thirdparty/sha256.py (no function) 29 4 0 86%
user/__init__.py (no function) 0 0 0 100%
Total   10260 493 0 95%

No items found using the specified filter.