|
@@ -26,20 +26,12 @@ func TestVMessSerialization(t *testing.T) {
|
|
|
request.Version = byte(0x01)
|
|
request.Version = byte(0x01)
|
|
|
request.UserId = userId
|
|
request.UserId = userId
|
|
|
|
|
|
|
|
- _, err = rand.Read(request.RequestIV[:])
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatal(err)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- _, err = rand.Read(request.RequestKey[:])
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatal(err)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- _, err = rand.Read(request.ResponseHeader[:])
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatal(err)
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ randBytes := make([]byte, 36)
|
|
|
|
|
+ _, err = rand.Read(randBytes)
|
|
|
|
|
+ assert.Error(err).IsNil()
|
|
|
|
|
+ request.RequestIV = randBytes[:16]
|
|
|
|
|
+ request.RequestKey = randBytes[16:32]
|
|
|
|
|
+ request.ResponseHeader = randBytes[32:]
|
|
|
|
|
|
|
|
request.Command = byte(0x01)
|
|
request.Command = byte(0x01)
|
|
|
request.Address = v2net.DomainAddress("v2ray.com", 80)
|
|
request.Address = v2net.DomainAddress("v2ray.com", 80)
|
|
@@ -61,9 +53,9 @@ func TestVMessSerialization(t *testing.T) {
|
|
|
|
|
|
|
|
assert.Byte(actualRequest.Version).Named("Version").Equals(byte(0x01))
|
|
assert.Byte(actualRequest.Version).Named("Version").Equals(byte(0x01))
|
|
|
assert.String(actualRequest.UserId.String).Named("UserId").Equals(request.UserId.String)
|
|
assert.String(actualRequest.UserId.String).Named("UserId").Equals(request.UserId.String)
|
|
|
- assert.Bytes(actualRequest.RequestIV[:]).Named("RequestIV").Equals(request.RequestIV[:])
|
|
|
|
|
- assert.Bytes(actualRequest.RequestKey[:]).Named("RequestKey").Equals(request.RequestKey[:])
|
|
|
|
|
- assert.Bytes(actualRequest.ResponseHeader[:]).Named("ResponseHeader").Equals(request.ResponseHeader[:])
|
|
|
|
|
|
|
+ assert.Bytes(actualRequest.RequestIV).Named("RequestIV").Equals(request.RequestIV[:])
|
|
|
|
|
+ assert.Bytes(actualRequest.RequestKey).Named("RequestKey").Equals(request.RequestKey[:])
|
|
|
|
|
+ assert.Bytes(actualRequest.ResponseHeader).Named("ResponseHeader").Equals(request.ResponseHeader[:])
|
|
|
assert.Byte(actualRequest.Command).Named("Command").Equals(request.Command)
|
|
assert.Byte(actualRequest.Command).Named("Command").Equals(request.Command)
|
|
|
assert.String(actualRequest.Address.String()).Named("Address").Equals(request.Address.String())
|
|
assert.String(actualRequest.Address.String()).Named("Address").Equals(request.Address.String())
|
|
|
}
|
|
}
|
|
@@ -77,9 +69,11 @@ func BenchmarkVMessRequestWriting(b *testing.B) {
|
|
|
request.Version = byte(0x01)
|
|
request.Version = byte(0x01)
|
|
|
request.UserId = userId
|
|
request.UserId = userId
|
|
|
|
|
|
|
|
- rand.Read(request.RequestIV[:])
|
|
|
|
|
- rand.Read(request.RequestKey[:])
|
|
|
|
|
- rand.Read(request.ResponseHeader[:])
|
|
|
|
|
|
|
+ randBytes := make([]byte, 36)
|
|
|
|
|
+ rand.Read(randBytes)
|
|
|
|
|
+ request.RequestIV = randBytes[:16]
|
|
|
|
|
+ request.RequestKey = randBytes[16:32]
|
|
|
|
|
+ request.ResponseHeader = randBytes[32:]
|
|
|
|
|
|
|
|
request.Command = byte(0x01)
|
|
request.Command = byte(0x01)
|
|
|
request.Address = v2net.DomainAddress("v2ray.com", 80)
|
|
request.Address = v2net.DomainAddress("v2ray.com", 80)
|