From 4eb9077f1bbc729bef36096de65ab923b778592e Mon Sep 17 00:00:00 2001 From: Lucas Clemente Date: Tue, 9 Aug 2016 13:08:42 +0200 Subject: [PATCH] simplify crypto/rand reading --- crypto/curve_25519.go | 3 +-- crypto/source_address_token.go | 2 +- handshake/crypto_setup.go | 5 ++--- handshake/server_config.go | 5 ++--- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/crypto/curve_25519.go b/crypto/curve_25519.go index 4813a2617..a570d6b31 100644 --- a/crypto/curve_25519.go +++ b/crypto/curve_25519.go @@ -3,7 +3,6 @@ package crypto import ( "crypto/rand" "errors" - "io" "golang.org/x/crypto/curve25519" ) @@ -19,7 +18,7 @@ var _ KeyExchange = &curve25519KEX{} // NewCurve25519KEX creates a new KeyExchange using Curve25519, see https://cr.yp.to/ecdh.html func NewCurve25519KEX() (KeyExchange, error) { c := &curve25519KEX{} - if _, err := io.ReadFull(rand.Reader, c.secret[:]); err != nil { + if _, err := rand.Read(c.secret[:]); err != nil { return nil, errors.New("Curve25519: could not create private key") } // See https://cr.yp.to/ecdh.html diff --git a/crypto/source_address_token.go b/crypto/source_address_token.go index 709361e98..6afdacd65 100644 --- a/crypto/source_address_token.go +++ b/crypto/source_address_token.go @@ -121,7 +121,7 @@ func deriveKey(secret []byte) ([]byte, error) { func encryptToken(aead cipher.AEAD, token *sourceAddressToken) ([]byte, error) { nonce := make([]byte, stkNonceSize) - if _, err := io.ReadFull(rand.Reader, nonce); err != nil { + if _, err := rand.Read(nonce); err != nil { return nil, err } return aead.Seal(nonce, nonce, token.serialize(), nil), nil diff --git a/handshake/crypto_setup.go b/handshake/crypto_setup.go index 0c2de6439..efd265737 100644 --- a/handshake/crypto_setup.go +++ b/handshake/crypto_setup.go @@ -3,7 +3,6 @@ package handshake import ( "bytes" "crypto/rand" - "io" "net" "sync" @@ -238,12 +237,12 @@ func (h *CryptoSetup) handleCHLO(sni string, data []byte, cryptoData map[Tag][]b } nonce := make([]byte, 32) - if _, err = io.ReadFull(rand.Reader, nonce); err != nil { + if _, err = rand.Read(nonce); err != nil { return nil, err } h.diversificationNonce = make([]byte, 32) - if _, err = io.ReadFull(rand.Reader, h.diversificationNonce); err != nil { + if _, err = rand.Read(h.diversificationNonce); err != nil { return nil, err } diff --git a/handshake/server_config.go b/handshake/server_config.go index 91e047ad6..dc33e9775 100644 --- a/handshake/server_config.go +++ b/handshake/server_config.go @@ -3,7 +3,6 @@ package handshake import ( "bytes" "crypto/rand" - "io" "github.com/lucas-clemente/quic-go/crypto" ) @@ -19,13 +18,13 @@ type ServerConfig struct { // NewServerConfig creates a new server config func NewServerConfig(kex crypto.KeyExchange, signer crypto.Signer) (*ServerConfig, error) { id := make([]byte, 16) - _, err := io.ReadFull(rand.Reader, id) + _, err := rand.Read(id) if err != nil { return nil, err } stkSecret := make([]byte, 32) - if _, err = io.ReadFull(rand.Reader, stkSecret); err != nil { + if _, err = rand.Read(stkSecret); err != nil { return nil, err } stkSource, err := crypto.NewStkSource(stkSecret)