From 3fa0ce0c9ce6d4341299829860ba05966c9e6222 Mon Sep 17 00:00:00 2001 From: Sudhi Herle Date: Tue, 24 Mar 2020 11:39:04 -0700 Subject: [PATCH] Make encryption a bit more efficient * don't copy chunksize but encode in-place * reduce stack allocation of chunksize+seq buffer and reuse output buffer --- sign/encrypt.go | 3 +-- version | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sign/encrypt.go b/sign/encrypt.go index a65a924..23411c5 100644 --- a/sign/encrypt.go +++ b/sign/encrypt.go @@ -295,7 +295,6 @@ func fullwrite(buf []byte, wr io.Writer) error { // modification attacks. The encoded length & block number is used as // additional data in the AEAD construction. func (e *Encryptor) encrypt(buf []byte, wr io.Writer, i uint32, eof bool) error { - var b [8]byte var nonceb [32]byte var z uint32 = uint32(len(buf)) @@ -304,6 +303,7 @@ func (e *Encryptor) encrypt(buf []byte, wr io.Writer, i uint32, eof bool) error z |= _EOF } + b := e.buf[:8] binary.BigEndian.PutUint32(b[:4], z) binary.BigEndian.PutUint32(b[4:], i) @@ -312,7 +312,6 @@ func (e *Encryptor) encrypt(buf []byte, wr io.Writer, i uint32, eof bool) error h.Write(b[:]) nonce := h.Sum(nonceb[:0])[:e.ae.NonceSize()] - copy(e.buf[:4], b[:4]) cbuf := e.buf[4:] c := e.ae.Seal(cbuf[:0], nonce, buf, b[:]) diff --git a/version b/version index 9084fa2..524cb55 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.1.0 +1.1.1