Browse Source

Remove restriction of padding length

pull/14/head
V2Ray 9 years ago
parent
commit
cc3f374623
  1. 5
      io/vmess/vmess.go
  2. 2
      spec/vmess.md

5
io/vmess/vmess.go

@ -226,10 +226,7 @@ func (w *VMessRequestWriter) Write(writer io.Writer, request *VMessRequest) erro
buffer = append(buffer, []byte(request.Address.Domain)...) buffer = append(buffer, []byte(request.Address.Domain)...)
} }
paddingLength := blockSize - 1 - (len(buffer)-encryptionBegin)%blockSize paddingLength := mrand.Intn(32) + 1
if paddingLength == 0 {
paddingLength = blockSize
}
paddingBuffer := make([]byte, paddingLength) paddingBuffer := make([]byte, paddingLength)
_, err = rand.Read(paddingBuffer) _, err = rand.Read(paddingBuffer)
if err != nil { if err != nil {

2
spec/vmess.md

@ -26,7 +26,7 @@
* 4 字节:IPv4 * 4 字节:IPv4
* 1 字节长度 + 域名 * 1 字节长度 + 域名
* 16 字节:IPv6 * 16 字节:IPv6
* 1 字节:随机填充长度 M2 (0 < M2 <= 32)使得指令部分长度为 16 的倍数字节 * 1 字节:随机填充长度 M2 (0 < M2 <= 32)
* M2 字节:随机填充内容 * M2 字节:随机填充内容
数据部分 数据部分

Loading…
Cancel
Save