|  | @@ -98,16 +98,12 @@ func (this *VMessOutboundHandler) startCommunicate(request *protocol.VMessReques
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (this *VMessOutboundHandler) handleRequest(conn net.Conn, request *protocol.VMessRequest, firstPacket v2net.Packet, input <-chan *alloc.Buffer, finish *sync.Mutex) {
 | 
	
		
			
				|  |  |  	defer finish.Unlock()
 | 
	
		
			
				|  |  | -	aesStream, err := v2crypto.NewAesEncryptionStream(request.RequestKey[:], request.RequestIV[:])
 | 
	
		
			
				|  |  | -	if err != nil {
 | 
	
		
			
				|  |  | -		log.Error("VMessOut: Failed to create AES encryption stream: ", err)
 | 
	
		
			
				|  |  | -		return
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | +	aesStream := v2crypto.NewAesEncryptionStream(request.RequestKey[:], request.RequestIV[:])
 | 
	
		
			
				|  |  |  	encryptRequestWriter := v2crypto.NewCryptionWriter(aesStream, conn)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	buffer := alloc.NewBuffer().Clear()
 | 
	
		
			
				|  |  |  	defer buffer.Release()
 | 
	
		
			
				|  |  | -	buffer, err = request.ToBytes(proto.NewTimestampGenerator(proto.Timestamp(time.Now().Unix()), 30), buffer)
 | 
	
		
			
				|  |  | +	buffer, err := request.ToBytes(proto.NewTimestampGenerator(proto.Timestamp(time.Now().Unix()), 30), buffer)
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		log.Error("VMessOut: Failed to serialize VMess request: ", err)
 | 
	
		
			
				|  |  |  		return
 | 
	
	
		
			
				|  | @@ -160,16 +156,12 @@ func (this *VMessOutboundHandler) handleResponse(conn net.Conn, request *protoco
 | 
	
		
			
				|  |  |  	responseKey := md5.Sum(request.RequestKey[:])
 | 
	
		
			
				|  |  |  	responseIV := md5.Sum(request.RequestIV[:])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	aesStream, err := v2crypto.NewAesDecryptionStream(responseKey[:], responseIV[:])
 | 
	
		
			
				|  |  | -	if err != nil {
 | 
	
		
			
				|  |  | -		log.Error("VMessOut: Failed to create AES encryption stream: ", err)
 | 
	
		
			
				|  |  | -		return
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | +	aesStream := v2crypto.NewAesDecryptionStream(responseKey[:], responseIV[:])
 | 
	
		
			
				|  |  |  	decryptResponseReader := v2crypto.NewCryptionReader(aesStream, conn)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	buffer := alloc.NewSmallBuffer()
 | 
	
		
			
				|  |  |  	defer buffer.Release()
 | 
	
		
			
				|  |  | -	_, err = io.ReadFull(decryptResponseReader, buffer.Value[:4])
 | 
	
		
			
				|  |  | +	_, err := io.ReadFull(decryptResponseReader, buffer.Value[:4])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		log.Error("VMessOut: Failed to read VMess response (", buffer.Len(), " bytes): ", err)
 |