package conf

import "github.com/xtls/xray-core/proxy/amnezia"

type AmneziaParams struct {
	JunkCount int32 `json:"jc"`
	JunkMin   int32 `json:"jmin"`
	JunkMax   int32 `json:"jmax"`

	InitPadding      int32 `json:"s1"`
	ResponsePadding  int32 `json:"s2"`
	CookiePadding    int32 `json:"s3"`
	TransportPadding int32 `json:"s4"`

	InitHeader      string `json:"h1"`
	ResponseHeader  string `json:"h2"`
	CookieHeader    string `json:"h3"`
	TransportHeader string `json:"h4"`

	Signature1 string `json:"i1"`
	Signature2 string `json:"i2"`
	Signature3 string `json:"i3"`
	Signature4 string `json:"i4"`
	Signature5 string `json:"i5"`
}

func (p *AmneziaParams) apply(config *amnezia.DeviceConfig) {
	config.Jc = p.JunkCount
	config.JMin = p.JunkMin
	config.JMax = p.JunkMax

	config.S1 = p.InitPadding
	config.S2 = p.ResponsePadding
	config.S3 = p.CookiePadding
	config.S4 = p.TransportPadding

	config.H1 = p.InitHeader
	config.H2 = p.ResponseHeader
	config.H3 = p.CookieHeader
	config.H4 = p.TransportHeader

	config.I1 = p.Signature1
	config.I2 = p.Signature2
	config.I3 = p.Signature3
	config.I4 = p.Signature4
	config.I5 = p.Signature5
}
