:py:mod:`dissect.evidence.adcrypt.stream` ========================================= .. py:module:: dissect.evidence.adcrypt.stream Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: dissect.evidence.adcrypt.stream.ADCryptStream Attributes ~~~~~~~~~~ .. autoapisummary:: dissect.evidence.adcrypt.stream.HAS_CRYPTO .. py:data:: HAS_CRYPTO :value: True .. py:class:: ADCryptStream(fh: BinaryIO, key: bytes, index: int) Bases: :py:obj:`dissect.util.stream.AlignedStream` Basic buffered stream that provides aligned reads. Must be subclassed for various stream implementations. Subclasses can implement: - :meth:`~AlignedStream._read` - :meth:`~AlignedStream._seek` The offset and length for ``_read`` are guaranteed to be aligned for streams of a known size. If your stream has an unknown size (i.e. ``size == None``), reads of length ``-1`` (i.e. read until EOF) will be passed through to your implementation of ``_read``. 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. :param size: The size of the stream. This is used in read and seek operations. ``None`` if unknown. :param align: The alignment size. Read operations are aligned on this boundary. Also determines buffer size. .. automethod:: _read .. automethod:: _seek .. py:attribute:: fh .. py:attribute:: key .. py:attribute:: index