| 
					
				 | 
			
			
				@@ -136,25 +136,25 @@ func (v *ClientSession) EncodeRequestBody(request *protocol.RequestHeader, write 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			authWriter = cryptionWriter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} else if request.Security.Is(protocol.SecurityType_AES128_GCM) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		block, _ := aes.NewCipher(v.responseBodyKey) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		block, _ := aes.NewCipher(v.requestBodyKey) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		aead, _ := cipher.NewGCM(block) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		auth := &crypto.AEADAuthenticator{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			AEAD: aead, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			NonceGenerator: &ChunkNonceGenerator{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Nonce: append([]byte(nil), v.responseBodyIV...), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Nonce: append([]byte(nil), v.requestBodyIV...), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Size:  aead.NonceSize(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			AdditionalDataGenerator: crypto.NoOpBytesGenerator{}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		authWriter = crypto.NewAuthenticationWriter(auth, writer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} else if request.Security.Is(protocol.SecurityType_CHACHA20_POLY1305) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		aead, _ := chacha20poly1305.New(GenerateChacha20Poly1305Key(v.responseBodyKey)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		aead, _ := chacha20poly1305.New(GenerateChacha20Poly1305Key(v.requestBodyKey)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		auth := &crypto.AEADAuthenticator{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			AEAD: aead, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			NonceGenerator: &ChunkNonceGenerator{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Nonce: append([]byte(nil), v.responseBodyIV...), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Nonce: append([]byte(nil), v.requestBodyIV...), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Size:  aead.NonceSize(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			AdditionalDataGenerator: crypto.NoOpBytesGenerator{}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -266,7 +266,7 @@ type ChunkNonceGenerator struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (v *ChunkNonceGenerator) Next() []byte { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	serial.Uint16ToBytes(v.count, v.Nonce[:2]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	serial.Uint16ToBytes(v.count, v.Nonce[:0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	v.count++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return v.Nonce[:v.Size] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |