acquire.acquire.tools.decrypter

Module Contents

Classes

EncryptedFile

Basic buffered stream that provides easy aligned reads.

Functions

Attributes

acquire.acquire.tools.decrypter.progress
acquire.acquire.tools.decrypter.log
acquire.acquire.tools.decrypter.CHUNK_SIZE
acquire.acquire.tools.decrypter.WORKER_COUNT
acquire.acquire.tools.decrypter.STATUS_EXIT = 0
acquire.acquire.tools.decrypter.STATUS_INFO = 1
acquire.acquire.tools.decrypter.STATUS_START = 2
acquire.acquire.tools.decrypter.STATUS_UPDATE = 3
exception acquire.acquire.tools.decrypter.VerifyError

Bases: Exception

Common base class for all non-exit exceptions.

class acquire.acquire.tools.decrypter.EncryptedFile(fh, key_file=None, key_server=None)

Bases: dissect.util.stream.AlignedStream

Basic buffered stream that provides easy aligned reads.

Must be subclassed for various stream implementations. Subclasses can implement:
  • _read(offset, length)

  • _seek(pos, whence=io.SEEK_SET)

The offset and length for _read are guaranteed to be aligned. The only time that overriding _seek would make sense is if there’s no known size of your stream, but still want to provide SEEK_END functionality.

Most subclasses of AlignedStream take one or more file-like objects as source. Operations on these subclasses, like reading, will modify the source file-like object as a side effect.

Parameters:
  • size – The size of the stream. This is used in read and seek operations. None if unknown.

  • align – The alignment size. Read operations are aligned on this boundary. Also determines buffer size.

property file_header
property header
property footer
property timestamp
seekable()

Return whether object supports random access.

If False, seek(), tell() and truncate() will raise OSError. This method may need to do a test seek().

seek(pos, whence=io.SEEK_CUR)

Seek the stream to the specified position.

chunks(chunk_size=CHUNK_SIZE)
verify()
acquire.acquire.tools.decrypter.decrypt_header(header, fingerprint, key_file=None, key_server=None)
acquire.acquire.tools.decrypter.check_existing(in_path: pathlib.Path, out_path: pathlib.Path, status_queue: multiprocessing.Queue) bool
acquire.acquire.tools.decrypter.worker(task_id, stop_event, status_queue, in_path, out_path, key_file=None, key_server=None, clobber=False)
acquire.acquire.tools.decrypter.setup_logging(logger, verbosity)
acquire.acquire.tools.decrypter.main()
acquire.acquire.tools.decrypter.show_duplicates(output_directory: pathlib.Path, files: list[pathlib.Path]) None
acquire.acquire.tools.decrypter.find_enc_files(files: list[pathlib.Path]) list[pathlib.Path]