|
@@ -232,6 +232,7 @@ const (
|
|
|
ReplayHostname = "ReplayHostname"
|
|
ReplayHostname = "ReplayHostname"
|
|
|
ReplayQUICVersion = "ReplayQUICVersion"
|
|
ReplayQUICVersion = "ReplayQUICVersion"
|
|
|
ReplayObfuscatedQUIC = "ReplayObfuscatedQUIC"
|
|
ReplayObfuscatedQUIC = "ReplayObfuscatedQUIC"
|
|
|
|
|
+ ReplayObfuscatedQUICNonceTransformer = "ReplayObfuscatedQUICNonceTransformer"
|
|
|
ReplayConjureRegistration = "ReplayConjureRegistration"
|
|
ReplayConjureRegistration = "ReplayConjureRegistration"
|
|
|
ReplayConjureTransport = "ReplayConjureTransport"
|
|
ReplayConjureTransport = "ReplayConjureTransport"
|
|
|
ReplayLivenessTest = "ReplayLivenessTest"
|
|
ReplayLivenessTest = "ReplayLivenessTest"
|
|
@@ -240,6 +241,7 @@ const (
|
|
|
ReplayHoldOffTunnel = "ReplayHoldOffTunnel"
|
|
ReplayHoldOffTunnel = "ReplayHoldOffTunnel"
|
|
|
ReplayResolveParameters = "ReplayResolveParameters"
|
|
ReplayResolveParameters = "ReplayResolveParameters"
|
|
|
ReplayHTTPTransformerParameters = "ReplayHTTPTransformerParameters"
|
|
ReplayHTTPTransformerParameters = "ReplayHTTPTransformerParameters"
|
|
|
|
|
+ ReplayOSSHSeedTransformerParameters = "ReplayOSSHSeedTransformerParameters"
|
|
|
APIRequestUpstreamPaddingMinBytes = "APIRequestUpstreamPaddingMinBytes"
|
|
APIRequestUpstreamPaddingMinBytes = "APIRequestUpstreamPaddingMinBytes"
|
|
|
APIRequestUpstreamPaddingMaxBytes = "APIRequestUpstreamPaddingMaxBytes"
|
|
APIRequestUpstreamPaddingMaxBytes = "APIRequestUpstreamPaddingMaxBytes"
|
|
|
APIRequestDownstreamPaddingMinBytes = "APIRequestDownstreamPaddingMinBytes"
|
|
APIRequestDownstreamPaddingMinBytes = "APIRequestDownstreamPaddingMinBytes"
|
|
@@ -328,6 +330,12 @@ const (
|
|
|
FrontedHTTPProtocolTransformSpecs = "FrontedHTTPProtocolTransformSpecs"
|
|
FrontedHTTPProtocolTransformSpecs = "FrontedHTTPProtocolTransformSpecs"
|
|
|
FrontedHTTPProtocolTransformScopedSpecNames = "FrontedHTTPProtocolTransformScopedSpecNames"
|
|
FrontedHTTPProtocolTransformScopedSpecNames = "FrontedHTTPProtocolTransformScopedSpecNames"
|
|
|
FrontedHTTPProtocolTransformProbability = "FrontedHTTPProtocolTransformProbability"
|
|
FrontedHTTPProtocolTransformProbability = "FrontedHTTPProtocolTransformProbability"
|
|
|
|
|
+ OSSHObfuscatorSeedTransformSpecs = "OSSHObfuscatorSeedTransformSpecs"
|
|
|
|
|
+ OSSHObfuscatorSeedTransformScopedSpecNames = "OSSHObfuscatorSeedTransformScopedSpecNames"
|
|
|
|
|
+ OSSHObfuscatorSeedTransformProbability = "OSSHObfuscatorSeedTransformProbability"
|
|
|
|
|
+ ObfuscatedQUICNonceTransformSpecs = "ObfuscatedQUICNonceTransformSpecs"
|
|
|
|
|
+ ObfuscatedQUICNonceTransformScopedSpecNames = "ObfuscatedQUICNonceTransformScopedSpecNames"
|
|
|
|
|
+ ObfuscatedQUICNonceTransformProbability = "ObfuscatedQUICNonceTransformProbability"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
const (
|
|
@@ -575,6 +583,7 @@ var defaultParameters = map[string]struct {
|
|
|
ReplayHostname: {value: true},
|
|
ReplayHostname: {value: true},
|
|
|
ReplayQUICVersion: {value: true},
|
|
ReplayQUICVersion: {value: true},
|
|
|
ReplayObfuscatedQUIC: {value: true},
|
|
ReplayObfuscatedQUIC: {value: true},
|
|
|
|
|
+ ReplayObfuscatedQUICNonceTransformer: {value: true},
|
|
|
ReplayConjureRegistration: {value: true},
|
|
ReplayConjureRegistration: {value: true},
|
|
|
ReplayConjureTransport: {value: true},
|
|
ReplayConjureTransport: {value: true},
|
|
|
ReplayLivenessTest: {value: true},
|
|
ReplayLivenessTest: {value: true},
|
|
@@ -583,6 +592,7 @@ var defaultParameters = map[string]struct {
|
|
|
ReplayHoldOffTunnel: {value: true},
|
|
ReplayHoldOffTunnel: {value: true},
|
|
|
ReplayResolveParameters: {value: true},
|
|
ReplayResolveParameters: {value: true},
|
|
|
ReplayHTTPTransformerParameters: {value: true},
|
|
ReplayHTTPTransformerParameters: {value: true},
|
|
|
|
|
+ ReplayOSSHSeedTransformerParameters: {value: true},
|
|
|
|
|
|
|
|
APIRequestUpstreamPaddingMinBytes: {value: 0, minimum: 0},
|
|
APIRequestUpstreamPaddingMinBytes: {value: 0, minimum: 0},
|
|
|
APIRequestUpstreamPaddingMaxBytes: {value: 1024, minimum: 0},
|
|
APIRequestUpstreamPaddingMaxBytes: {value: 1024, minimum: 0},
|
|
@@ -693,6 +703,14 @@ var defaultParameters = map[string]struct {
|
|
|
FrontedHTTPProtocolTransformSpecs: {value: transforms.Specs{}},
|
|
FrontedHTTPProtocolTransformSpecs: {value: transforms.Specs{}},
|
|
|
FrontedHTTPProtocolTransformScopedSpecNames: {value: transforms.ScopedSpecNames{}},
|
|
FrontedHTTPProtocolTransformScopedSpecNames: {value: transforms.ScopedSpecNames{}},
|
|
|
FrontedHTTPProtocolTransformProbability: {value: 0.0, minimum: 0.0},
|
|
FrontedHTTPProtocolTransformProbability: {value: 0.0, minimum: 0.0},
|
|
|
|
|
+
|
|
|
|
|
+ OSSHObfuscatorSeedTransformSpecs: {value: transforms.Specs{}},
|
|
|
|
|
+ OSSHObfuscatorSeedTransformScopedSpecNames: {value: transforms.ScopedSpecNames{}},
|
|
|
|
|
+ OSSHObfuscatorSeedTransformProbability: {value: 0.0, minimum: 0.0},
|
|
|
|
|
+
|
|
|
|
|
+ ObfuscatedQUICNonceTransformSpecs: {value: transforms.Specs{}},
|
|
|
|
|
+ ObfuscatedQUICNonceTransformScopedSpecNames: {value: transforms.ScopedSpecNames{}},
|
|
|
|
|
+ ObfuscatedQUICNonceTransformProbability: {value: 0.0, minimum: 0.0},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// IsServerSideOnly indicates if the parameter specified by name is used
|
|
// IsServerSideOnly indicates if the parameter specified by name is used
|
|
@@ -890,6 +908,22 @@ func (p *Parameters) Set(
|
|
|
frontedHttpProtocolTransformSpecs, _ :=
|
|
frontedHttpProtocolTransformSpecs, _ :=
|
|
|
frontedHttpProtocolTransformSpecsValue.(transforms.Specs)
|
|
frontedHttpProtocolTransformSpecsValue.(transforms.Specs)
|
|
|
|
|
|
|
|
|
|
+ osshObfuscatorSeedTransformSpecsValue, err := getAppliedValue(
|
|
|
|
|
+ OSSHObfuscatorSeedTransformSpecs, parameters, applyParameters)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, errors.Trace(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ osshObfuscatorSeedTransformSpecs, _ :=
|
|
|
|
|
+ osshObfuscatorSeedTransformSpecsValue.(transforms.Specs)
|
|
|
|
|
+
|
|
|
|
|
+ obfuscatedQuicNonceTransformSpecsValue, err := getAppliedValue(
|
|
|
|
|
+ ObfuscatedQUICNonceTransformSpecs, parameters, applyParameters)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, errors.Trace(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ obfuscatedQuicNonceTransformSpecs, _ :=
|
|
|
|
|
+ obfuscatedQuicNonceTransformSpecsValue.(transforms.Specs)
|
|
|
|
|
+
|
|
|
for i := 0; i < len(applyParameters); i++ {
|
|
for i := 0; i < len(applyParameters); i++ {
|
|
|
|
|
|
|
|
count := 0
|
|
count := 0
|
|
@@ -1078,6 +1112,10 @@ func (p *Parameters) Set(
|
|
|
specs = directHttpProtocolTransformSpecs
|
|
specs = directHttpProtocolTransformSpecs
|
|
|
} else if name == FrontedHTTPProtocolTransformScopedSpecNames {
|
|
} else if name == FrontedHTTPProtocolTransformScopedSpecNames {
|
|
|
specs = frontedHttpProtocolTransformSpecs
|
|
specs = frontedHttpProtocolTransformSpecs
|
|
|
|
|
+ } else if name == OSSHObfuscatorSeedTransformScopedSpecNames {
|
|
|
|
|
+ specs = osshObfuscatorSeedTransformSpecs
|
|
|
|
|
+ } else if name == ObfuscatedQUICNonceTransformScopedSpecNames {
|
|
|
|
|
+ specs = obfuscatedQuicNonceTransformSpecs
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
err := v.Validate(specs)
|
|
err := v.Validate(specs)
|