'Decrypts a multipart mime doc response body.
:param resp: application response
:param boundary: multipart boundary string
:param body_key: decryption key for the response body
:param crypto_meta: crypto_meta for the response body
:return: generator for decrypted response body'

def multipart_response_iter(self, resp, boundary, body_key, crypto_meta):

    with closing_if_possible(resp):
        parts_iter = multipart_byteranges_to_document_iters(FileLikeIter(resp), boundary)
        for (first_byte, last_byte, length, headers, body) in parts_iter:
            (yield (('--' + boundary) + '\r\n'))
            for header_pair in headers:
                (yield ('%s:    %s\r\n' % header_pair))
            (yield '\r\n')
            decrypt_ctxt = self.crypto.create_decryption_ctxt(body_key, crypto_meta['iv'], first_byte)
            for chunk in iter((lambda : body.read(DECRYPT_CHUNK_SIZE)), ''):
                (yield decrypt_ctxt.update(chunk))
            (yield '\r\n')
        (yield (('--' + boundary) + '--'))
