1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-10 09:50:43 +00: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
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

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