Procházet zdrojové kódy

First step to reduce number of bytes for response validation

v2ray před 9 roky
rodič
revize
350b31cad9
1 změnil soubory, kde provedl 5 přidání a 3 odebrání
  1. 5 3
      proxy/vmess/outbound/outbound.go

+ 5 - 3
proxy/vmess/outbound/outbound.go

@@ -40,7 +40,10 @@ func (this *VMessOutboundHandler) Dispatch(firstPacket v2net.Packet, ray ray.Out
 
 	buffer := alloc.NewSmallBuffer()
 	defer buffer.Release()                             // Buffer is released after communication finishes.
-	v2net.ReadAllBytes(rand.Reader, buffer.Value[:36]) // 16 + 16 + 4
+	v2net.ReadAllBytes(rand.Reader, buffer.Value[:33]) // 16 + 16 + 1
+	buffer.Value[33] = 0
+	buffer.Value[34] = 0
+	buffer.Value[35] = 0
 	request.RequestIV = buffer.Value[:16]
 	request.RequestKey = buffer.Value[16:32]
 	request.ResponseHeader = buffer.Value[32:36]
@@ -137,8 +140,7 @@ func handleRequest(conn net.Conn, request *protocol.VMessRequest, firstPacket v2
 }
 
 func headerMatch(request *protocol.VMessRequest, responseHeader []byte) bool {
-	return ((request.ResponseHeader[0] ^ request.ResponseHeader[1]) == responseHeader[0]) &&
-		((request.ResponseHeader[2] ^ request.ResponseHeader[3]) == responseHeader[1])
+	return (request.ResponseHeader[0] == responseHeader[0])
 }
 
 func handleResponse(conn net.Conn, request *protocol.VMessRequest, output chan<- *alloc.Buffer, finish *sync.Mutex, isUDP bool) {