A new field on the FileHeader struct called Password
of type PasswordFn will be set when either reading
or writing a password protected zip. The previous
method was unsuitable due to the ambiguity of
an empty password "" and no password. This new
way can now differentiate the two.
Buffered reading is recommended as it will fully
authenticate the ciphertext before sending any data
to be decrypted. Streaming authentication is only
recommended if: 1. you buffer the data yourself
and wait for authentication before streaming to another
source such as the network, or 2. you just don't
care about authenticating unknown ciphertext before use :).