1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2026-05-09 05:59:07 -04:00

share rand reader across auth readers

This commit is contained in:
Darien Raymond
2018-11-11 16:34:58 +01:00
parent c26a4b407b
commit 3f3d00298a

View File

@@ -4,7 +4,6 @@ import (
"crypto/cipher"
"io"
"math/rand"
"time"
"v2ray.com/core/common"
"v2ray.com/core/common/buf"
@@ -227,7 +226,6 @@ type AuthenticationWriter struct {
sizeParser ChunkSizeEncoder
transferType protocol.TransferType
padding PaddingLengthGenerator
randReader *rand.Rand
}
func NewAuthenticationWriter(auth Authenticator, sizeParser ChunkSizeEncoder, writer io.Writer, transferType protocol.TransferType, padding PaddingLengthGenerator) *AuthenticationWriter {
@@ -239,7 +237,6 @@ func NewAuthenticationWriter(auth Authenticator, sizeParser ChunkSizeEncoder, wr
}
if padding != nil {
w.padding = padding
w.randReader = rand.New(rand.NewSource(time.Now().Unix()))
}
return w
}
@@ -264,7 +261,8 @@ func (w *AuthenticationWriter) seal(b *buf.Buffer) (*buf.Buffer, error) {
}
if paddingSize > 0 {
// With size of the chunk and padding length encrypted, the content of padding doesn't matter much.
common.Must2(eb.ReadFullFrom(w.randReader, int32(paddingSize)))
paddingBytes := eb.Extend(paddingSize)
common.Must2(rand.Read(paddingBytes))
}
return eb, nil