diff --git a/proxy/vmess/vmessin.go b/proxy/vmess/vmessin.go index 3f003e1f..a79ca14f 100644 --- a/proxy/vmess/vmessin.go +++ b/proxy/vmess/vmessin.go @@ -87,8 +87,8 @@ func (handler *VMessInboundHandler) HandleConnection(connection net.Conn) error go handleInput(request, connReader, input, &readFinish) - responseKey := md5.Sum(request.RequestKey[:]) - responseIV := md5.Sum(request.RequestIV[:]) + responseKey := md5.Sum(request.RequestKey) + responseIV := md5.Sum(request.RequestIV) responseWriter, err := v2io.NewAesEncryptWriter(responseKey[:], responseIV[:], connection) if err != nil { @@ -97,7 +97,7 @@ func (handler *VMessInboundHandler) HandleConnection(connection net.Conn) error // Optimize for small response packet buffer := make([]byte, 0, 2*1024) - buffer = append(buffer, request.ResponseHeader[:]...) + buffer = append(buffer, request.ResponseHeader...) if data, open := <-output; open { buffer = append(buffer, data...) @@ -118,7 +118,7 @@ func handleInput(request *protocol.VMessRequest, reader io.Reader, input chan<- defer close(input) defer finish.Unlock() - requestReader, err := v2io.NewAesDecryptReader(request.RequestKey[:], request.RequestIV[:], reader) + requestReader, err := v2io.NewAesDecryptReader(request.RequestKey, request.RequestIV, reader) if err != nil { log.Error("VMessIn: Failed to create decrypt reader: %v", err) return diff --git a/proxy/vmess/vmessin_udp.go b/proxy/vmess/vmessin_udp.go index 709a5835..11b45540 100644 --- a/proxy/vmess/vmessin_udp.go +++ b/proxy/vmess/vmessin_udp.go @@ -49,7 +49,7 @@ func (handler *VMessInboundHandler) AcceptPackets(conn *net.UDPConn) { continue } - cryptReader, err := v2io.NewAesDecryptReader(request.RequestKey[:], request.RequestIV[:], reader) + cryptReader, err := v2io.NewAesDecryptReader(request.RequestKey, request.RequestIV, reader) if err != nil { log.Error("VMessIn: Failed to create decrypt reader: %v", err) continue @@ -71,8 +71,8 @@ func (handler *VMessInboundHandler) handlePacket(conn *net.UDPConn, request *pro ray := handler.vPoint.DispatchToOutbound(packet) close(ray.InboundInput()) - responseKey := md5.Sum(request.RequestKey[:]) - responseIV := md5.Sum(request.RequestIV[:]) + responseKey := md5.Sum(request.RequestKey) + responseIV := md5.Sum(request.RequestIV) buffer := bytes.NewBuffer(make([]byte, 0, bufferSize)) @@ -81,7 +81,7 @@ func (handler *VMessInboundHandler) handlePacket(conn *net.UDPConn, request *pro log.Error("VMessIn: Failed to create encrypt writer: %v", err) return } - responseWriter.Write(request.ResponseHeader[:]) + responseWriter.Write(request.ResponseHeader) hasData := false