diff options
| -rw-r--r-- | internal/cryptoutil/oae2.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/internal/cryptoutil/oae2.go b/internal/cryptoutil/oae2.go index be4f1a9..a230c06 100644 --- a/internal/cryptoutil/oae2.go +++ b/internal/cryptoutil/oae2.go @@ -306,7 +306,7 @@ func (k EncryptionKey) NewReader(r io.Reader, options ...Option) *DecryptingRead o(&opts) } return &DecryptingReader{ - r: bufio.NewReaderSize(r, 1), + r: bufio.NewReaderSize(r, headerSize), oae2: oae2{ key: k, additionalData: opts.additionalData, @@ -316,13 +316,14 @@ func (k EncryptionKey) NewReader(r io.Reader, options ...Option) *DecryptingRead } func (r *DecryptingReader) initialize() error { - header := make([]byte, headerSize) - if _, err := io.ReadFull(r.r, header); err != nil { + header, err := r.r.Peek(headerSize) + if err != nil { return err } if err := r.oae2.initialize(header); err != nil { return err } + r.r.Discard(len(header)) r.buf = *bytes.NewBuffer(make([]byte, 0, r.segmentSize+aeadOverhead)) r.initialized = true return nil |
