summaryrefslogtreecommitdiffstats
path: root/internal/cryptoutil
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cryptoutil')
-rw-r--r--internal/cryptoutil/oae2.go7
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