Forráskód Böngészése

REALITY config: Allow `mldsa65` fields to be empty (#4924)

风扇滑翔翼 10 hónapja
szülő
commit
955a569181
1 módosított fájl, 11 hozzáadás és 7 törlés
  1. 11 7
      infra/conf/transport_internet.go

+ 11 - 7
infra/conf/transport_internet.go

@@ -613,11 +613,13 @@ func (c *REALITYConfig) Build() (proto.Message, error) {
 		config.ServerNames = c.ServerNames
 		config.MaxTimeDiff = c.MaxTimeDiff
 
-		if mldsa65Seed, err := base64.RawURLEncoding.DecodeString(c.Mldsa65Seed); err != nil || len(mldsa65Seed) != 32 {
-			return nil, errors.New(`invalid "mldsa65Seed": `, c.Mldsa65Seed)
-		} else {
-			_, key := mldsa65.NewKeyFromSeed((*[32]byte)(mldsa65Seed))
-			config.Mldsa65Key = key.Bytes()
+		if c.Mldsa65Seed != "" {
+			if mldsa65Seed, err := base64.RawURLEncoding.DecodeString(c.Mldsa65Seed); err != nil || len(mldsa65Seed) != 32 {
+				return nil, errors.New(`invalid "mldsa65Seed": `, c.Mldsa65Seed)
+			} else {
+				_, key := mldsa65.NewKeyFromSeed((*[32]byte)(mldsa65Seed))
+				config.Mldsa65Key = key.Bytes()
+			}
 		}
 
 		config.LimitFallbackUpload = new(reality.LimitFallback)
@@ -655,8 +657,10 @@ func (c *REALITYConfig) Build() (proto.Message, error) {
 		if _, err = hex.Decode(config.ShortId, []byte(c.ShortId)); err != nil {
 			return nil, errors.New(`invalid "shortId": `, c.ShortId)
 		}
-		if config.Mldsa65Verify, err = base64.RawURLEncoding.DecodeString(c.Mldsa65Verify); err != nil || len(config.Mldsa65Verify) != 1952 {
-			return nil, errors.New(`invalid "mldsa65Verify": `, c.Mldsa65Verify)
+		if c.Mldsa65Verify != "" {
+			if config.Mldsa65Verify, err = base64.RawURLEncoding.DecodeString(c.Mldsa65Verify); err != nil || len(config.Mldsa65Verify) != 1952 {
+				return nil, errors.New(`invalid "mldsa65Verify": `, c.Mldsa65Verify)
+			}
 		}
 		if c.SpiderX == "" {
 			c.SpiderX = "/"