'Creates a crypto context for decrypting
:param key: 256-bit key
:param iv: 128-bit iv or nonce used for decryption
:param offset: offset into the message; used for range reads
:returns: an instance of a decryptor'

def create_decryption_ctxt(self, key, iv, offset):

    self.check_key(key)
    if (offset < 0):
        raise ValueError('Offset    must    not    be    negative')
    if offset:
        (offset_blocks, offset_in_block) = divmod(offset, self.iv_length)
        ivl = (long(binascii.hexlify(iv), 16) + offset_blocks)
        ivl %= (1 << algorithms.AES.block_size)
        iv = str(bytearray.fromhex(format(ivl, ('0%dx' % (2 * self.iv_length)))))
    else:
        offset_in_block = 0
    engine = Cipher(algorithms.AES(key), modes.CTR(iv), backend=self.backend)
    dec = engine.decryptor()
    dec.update(('*' * offset_in_block))
    return dec
