Browse Source

test case for anti reply attack

Darien Raymond 8 năm trước cách đây
mục cha
commit
10d26f2d7f
1 tập tin đã thay đổi với 8 bổ sung0 xóa
  1. 8 0
      proxy/vmess/encoding/encoding_test.go

+ 8 - 0
proxy/vmess/encoding/encoding_test.go

@@ -41,6 +41,9 @@ func TestRequestSerialization(t *testing.T) {
 	client := NewClientSession(protocol.DefaultIDHash)
 	client.EncodeRequestHeader(expectedRequest, buffer)
 
+	buffer2 := buf.New()
+	buffer2.Append(buffer.Bytes())
+
 	ctx, cancel := context.WithCancel(context.Background())
 	userValidator := vmess.NewTimedUserValidator(ctx, protocol.DefaultIDHash)
 	userValidator.Add(user)
@@ -55,5 +58,10 @@ func TestRequestSerialization(t *testing.T) {
 	assert.Address(expectedRequest.Address).Equals(actualRequest.Address)
 	assert.Port(expectedRequest.Port).Equals(actualRequest.Port)
 	assert.Byte(byte(expectedRequest.Security)).Equals(byte(actualRequest.Security))
+
+	_, err = server.DecodeRequestHeader(buffer2)
+	// anti reply attack
+	assert.Error(err).IsNotNil()
+
 	cancel()
 }