浏览代码

test case for anti reply attack

Darien Raymond 8 年之前
父节点
当前提交
10d26f2d7f
共有 1 个文件被更改,包括 8 次插入0 次删除
  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()
 }