dissect.target.helpers.keychain#

Module Contents#

Classes#

KeyType

Generic enumeration.

Key

Functions#

Attributes#

dissect.target.helpers.keychain.log#
class dissect.target.helpers.keychain.KeyType#

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RAW = 'raw'#
PASSPHRASE = 'passphrase'#
RECOVERY_KEY = 'recovery_key'#
FILE = 'file'#
class dissect.target.helpers.keychain.Key#

Bases: NamedTuple

key_type: KeyType#
value: str | bytes#
provider: str#
identifier: str#
is_wildcard: bool = False#
dissect.target.helpers.keychain.KEYCHAIN: list[Key] = []#
dissect.target.helpers.keychain.register_key(key_type: KeyType, value: str, identifier: str = None, provider: str = None, is_wildcard: bool = False) None#
dissect.target.helpers.keychain.get_all_keys() list[Key]#
dissect.target.helpers.keychain.get_keys_for_provider(provider: str) list[Key]#
dissect.target.helpers.keychain.get_keys_without_provider() list[Key]#
dissect.target.helpers.keychain.parse_key_type(key_type_name: str) KeyType#
dissect.target.helpers.keychain.register_wildcard_value(value: str) None#
dissect.target.helpers.keychain.register_keychain_file(keychain_path: pathlib.Path) None#

Register all keys from provided keychain file.

The keychain file is a CSV file in “excel” dialect with the columns:

provider,key_type,identifier,value

Values in columns key_type and value are required, provider and identifier are optional. Example of the CSV-serialised data:

bitlocker,recovery_key,,312268-409816-583517-486695-627121-599511-664389-145640 bitlocker,passphrase,,Password1234 ,passphrase,,AnotherTestPassword bitlocker,passphrase,b6ad258a-2725-4a42-93c6-844478bf7a90,Password1234 bitlocker,passphrase,,”Password with comma, space and quotes ‘ and “” inside”