adding support for non-seekable streams

Save for the unencrypted size calc I think now most code allows for
non-seekable encrypted streams.