From 74b34b9dd60829a9fcaf56a59e81c3877a8ecd2c Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Sat, 2 Sep 2017 19:19:23 +0200 Subject: [PATCH] all: make overlap rules wording consistent Updates golang/go#21279 Change-Id: I686835c644f52e3d5ea2b7e6431ef096d188c19d Reviewed-on: https://go-review.googlesource.com/61133 Reviewed-by: Ian Lance Taylor --- chacha20poly1305/internal/chacha20/chacha_generic.go | 5 ++--- nacl/box/box.go | 2 +- salsa20/salsa/salsa20_amd64.go | 2 +- salsa20/salsa/salsa20_ref.go | 2 +- salsa20/salsa20.go | 4 ++-- xts/xts.go | 4 ++-- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/chacha20poly1305/internal/chacha20/chacha_generic.go b/chacha20poly1305/internal/chacha20/chacha_generic.go index f9e8a3a..0f8efdb 100644 --- a/chacha20poly1305/internal/chacha20/chacha_generic.go +++ b/chacha20poly1305/internal/chacha20/chacha_generic.go @@ -167,9 +167,8 @@ func core(out *[64]byte, in *[16]byte, k *[32]byte) { } // XORKeyStream crypts bytes from in to out using the given key and counters. -// In and out may be the same slice but otherwise should not overlap. Counter -// contains the raw ChaCha20 counter bytes (i.e. block counter followed by -// nonce). +// In and out must overlap entirely or not at all. Counter contains the raw +// ChaCha20 counter bytes (i.e. block counter followed by nonce). func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { var block [64]byte var counterCopy [16]byte diff --git a/nacl/box/box.go b/nacl/box/box.go index 7ab1a2e..31b697b 100644 --- a/nacl/box/box.go +++ b/nacl/box/box.go @@ -73,7 +73,7 @@ func Precompute(sharedKey, peersPublicKey, privateKey *[32]byte) { } // Seal appends an encrypted and authenticated copy of message to out, which -// will be Overhead bytes longer than the original and must not overlap. The +// will be Overhead bytes longer than the original and must not overlap it. The // nonce must be unique for each distinct message for a given pair of keys. func Seal(out, message []byte, nonce *[24]byte, peersPublicKey, privateKey *[32]byte) []byte { var sharedKey [32]byte diff --git a/salsa20/salsa/salsa20_amd64.go b/salsa20/salsa/salsa20_amd64.go index c34d362..f9269c3 100644 --- a/salsa20/salsa/salsa20_amd64.go +++ b/salsa20/salsa/salsa20_amd64.go @@ -13,7 +13,7 @@ package salsa func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) // XORKeyStream crypts bytes from in to out using the given key and counters. -// In and out may be the same slice but otherwise should not overlap. Counter +// In and out must overlap entirely or not at all. Counter // contains the raw salsa20 counter bytes (both nonce and block counter). func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { if len(in) == 0 { diff --git a/salsa20/salsa/salsa20_ref.go b/salsa20/salsa/salsa20_ref.go index 95f8ca5..22126d1 100644 --- a/salsa20/salsa/salsa20_ref.go +++ b/salsa20/salsa/salsa20_ref.go @@ -203,7 +203,7 @@ func core(out *[64]byte, in *[16]byte, k *[32]byte, c *[16]byte) { } // XORKeyStream crypts bytes from in to out using the given key and counters. -// In and out may be the same slice but otherwise should not overlap. Counter +// In and out must overlap entirely or not at all. Counter // contains the raw salsa20 counter bytes (both nonce and block counter). func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { var block [64]byte diff --git a/salsa20/salsa20.go b/salsa20/salsa20.go index a8ddd76..0ee6248 100644 --- a/salsa20/salsa20.go +++ b/salsa20/salsa20.go @@ -27,8 +27,8 @@ import ( "golang.org/x/crypto/salsa20/salsa" ) -// XORKeyStream crypts bytes from in to out using the given key and nonce. In -// and out may be the same slice but otherwise should not overlap. Nonce must +// XORKeyStream crypts bytes from in to out using the given key and nonce. +// In and out must overlap entirely or not at all. Nonce must // be either 8 or 24 bytes long. func XORKeyStream(out, in []byte, nonce []byte, key *[32]byte) { if len(out) < len(in) { diff --git a/xts/xts.go b/xts/xts.go index a7643fd..92cbce9 100644 --- a/xts/xts.go +++ b/xts/xts.go @@ -55,7 +55,7 @@ func NewCipher(cipherFunc func([]byte) (cipher.Block, error), key []byte) (c *Ci } // Encrypt encrypts a sector of plaintext and puts the result into ciphertext. -// Plaintext and ciphertext may be the same slice but should not overlap. +// Plaintext and ciphertext must overlap entirely or not at all. // Sectors must be a multiple of 16 bytes and less than 2²⁴ bytes. func (c *Cipher) Encrypt(ciphertext, plaintext []byte, sectorNum uint64) { if len(ciphertext) < len(plaintext) { @@ -86,7 +86,7 @@ func (c *Cipher) Encrypt(ciphertext, plaintext []byte, sectorNum uint64) { } // Decrypt decrypts a sector of ciphertext and puts the result into plaintext. -// Plaintext and ciphertext may be the same slice but should not overlap. +// Plaintext and ciphertext must overlap entirely or not at all. // Sectors must be a multiple of 16 bytes and less than 2²⁴ bytes. func (c *Cipher) Decrypt(plaintext, ciphertext []byte, sectorNum uint64) { if len(plaintext) < len(ciphertext) {