1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-10 01:40:44 +00:00

max padding len as variable

This commit is contained in:
Darien Raymond 2018-07-08 21:46:13 +02:00
parent a8b0660df0
commit 8a879deac1
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 11 additions and 1 deletions

View File

@ -238,7 +238,12 @@ func (w *AuthenticationWriter) seal(b *buf.Buffer) (*buf.Buffer, error) {
func (w *AuthenticationWriter) writeStream(mb buf.MultiBuffer) error {
defer mb.Release()
payloadSize := buf.Size - int32(w.auth.Overhead()) - w.sizeParser.SizeBytes() - 64 /* padding buffer */
var maxPadding int32
if w.padding != nil {
maxPadding = int32(w.padding.MaxPaddingLen())
}
payloadSize := buf.Size - int32(w.auth.Overhead()) - w.sizeParser.SizeBytes() - maxPadding
mb2Write := buf.NewMultiBufferCap(int32(len(mb) + 10))
for {

View File

@ -21,6 +21,7 @@ type ChunkSizeEncoder interface {
}
type PaddingLengthGenerator interface {
MaxPaddingLen() uint16
NextPaddingLen() uint16
}

View File

@ -111,3 +111,7 @@ func (s *ShakeSizeParser) Encode(size uint16, b []byte) []byte {
func (s *ShakeSizeParser) NextPaddingLen() uint16 {
return s.next() % 64
}
func (s *ShakeSizeParser) MaxPaddingLne() uint16 {
return 64
}