simplify crypto/rand reading

This commit is contained in:
Lucas Clemente
2016-08-09 13:08:42 +02:00
parent 8c5a3dabd6
commit 4eb9077f1b
4 changed files with 6 additions and 9 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
}

View File

@@ -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)