docs: def StreamSignedBinaryContents(blob_iterator,
                                 chunk_size = 1024
                                ):
    """Yields the contents of the given binary in chunks of the given size.
  
    Args:
      blob_iterator: An Iterator over all the binary's blobs.
      chunk_size: Size, in bytes, of the chunks to yield.
    """
    all_blobs_read = False
    byte_buffer = io.BytesIO()
    while not all_blobs_read or byte_buffer.getvalue():
      while not all_blobs_read and byte_buffer.tell() < chunk_size:
        try:
          blob = next(blob_iterator)
        except StopIteration:
          all_blobs_read = True
          break
        byte_buffer.write(blob.data)
      if byte_buffer.tell() > 0:
        # Yield a chunk of the signed binary and reset the buffer to contain
        # only data that hasn't been sent yet.
        byte_buffer.seek(0)
        yield byte_buffer.read(chunk_size)
        byte_buffer = io.BytesIO(byte_buffer.read())
        byte_buffer.seek(0, io.SEEK_END)