kdbx_parsing.common

class pykeepass.kdbx_parsing.common.AES256Payload(subcon)
class pykeepass.kdbx_parsing.common.ARCFourVariantStream(protected_stream_key, subcon)
class pykeepass.kdbx_parsing.common.ChaCha20Payload(subcon)
class pykeepass.kdbx_parsing.common.ChaCha20Stream(protected_stream_key, subcon)
class pykeepass.kdbx_parsing.common.Concatenated(subcon)

Data Blocks <—> Bytes

exception pykeepass.kdbx_parsing.common.CredentialsError
class pykeepass.kdbx_parsing.common.Decompressed(subcon)

Compressed Bytes <—> Decompressed Bytes

class pykeepass.kdbx_parsing.common.DecryptedPayload(subcon)

Encrypted Bytes <—> Decrypted Bytes

class pykeepass.kdbx_parsing.common.DynamicDict(key, subcon, lump=[])

ListContainer <—> Container Convenience mapping so we dont have to iterate ListContainer to find the right item

FIXME: lump kwarg was added to get around the fact that InnerHeader is not truly a dict. We lump all ‘binary’ InnerHeaderItems into a single list

exception pykeepass.kdbx_parsing.common.HeaderChecksumError
exception pykeepass.kdbx_parsing.common.PayloadChecksumError
class pykeepass.kdbx_parsing.common.Salsa20Stream(protected_stream_key, subcon)
class pykeepass.kdbx_parsing.common.TwoFishPayload(subcon)
pykeepass.kdbx_parsing.common.Unprotect(protected_stream_id, protected_stream_key, subcon)

Select stream cipher based on protected_stream_id

class pykeepass.kdbx_parsing.common.UnprotectedStream(protected_stream_key, subcon)

lxml etree <—> unprotected lxml etree Iterate etree for Protected elements and decrypt using cipher provided by get_cipher

class pykeepass.kdbx_parsing.common.XML(subcon)

Bytes <—> lxml etree

pykeepass.kdbx_parsing.common.aes_kdf(key, rounds, key_composite)

Set up a context for AES128-ECB encryption to find transformed_key

pykeepass.kdbx_parsing.common.compute_key_composite(password=None, keyfile=None)

Compute composite key. Used in header verification and payload decryption.

pykeepass.kdbx_parsing.common.compute_master(context)

Computes master key from transformed key and master seed. Used in payload decryption.