@Override
    public final int read(byte[] b) throws IOException {
        return read(b, 0, b.length);
    }
Reads up to <code>b.length</code> bytes of data from this input
stream into an array of bytes.
<p>
The <code>read</code> method of <code>InputStream</code> calls
the <code>read</code> method of three arguments with the arguments
<code>b</code>, <code>0</code>, and <code>b.length</code>.

@param b the buffer into which the data is read.
@return the total number of bytes read into the buffer, or
<code>-1</code> is there is no more data because the end of
the stream has been reached.
@throws IOException if an I/O error occurs.
@see java.io.InputStream#read(byte[], int, int)
src/main/java/org/gaul/s3proxy/crypto/DecryptionInputStream.java