Просмотр исходного кода

Clean up use of non-standard base64 encoding

Rod Hynes 6 лет назад
Родитель
Сommit
708e8596ff
3 измененных файлов с 6 добавлено и 3 удалено
  1. 1 1
      psiphon/common/prng/prng.go
  2. 1 1
      psiphon/server/config.go
  3. 4 1
      psiphon/server/meek.go

+ 1 - 1
psiphon/common/prng/prng.go

@@ -320,7 +320,7 @@ func (p *PRNG) HexString(byteLength int) string {
 // Base64String returns a base64 encoded random string.
 // byteLength specifies the pre-encoded data length.
 func (p *PRNG) Base64String(byteLength int) string {
-	return base64.RawURLEncoding.EncodeToString(p.Bytes(byteLength))
+	return base64.StdEncoding.EncodeToString(p.Bytes(byteLength))
 }
 
 var p *PRNG

+ 1 - 1
psiphon/server/config.go

@@ -678,7 +678,7 @@ func GenerateConfig(params *GenerateConfigParams) ([]byte, []byte, []byte, []byt
 	if err != nil {
 		return nil, nil, nil, nil, nil, common.ContextError(err)
 	}
-	discoveryValueHMACKey := base64.RawURLEncoding.EncodeToString(discoveryValueHMACKeyBytes)
+	discoveryValueHMACKey := base64.StdEncoding.EncodeToString(discoveryValueHMACKeyBytes)
 
 	// Assemble configs and server entry
 

+ 4 - 1
psiphon/server/meek.go

@@ -1088,7 +1088,10 @@ func makeMeekSessionID() (string, error) {
 		return "", common.ContextError(err)
 	}
 
-	return base64.RawURLEncoding.EncodeToString(sessionID), nil
+	// Omit padding to maximize variable size space. To the client, the session
+	// ID is an opaque string cookie value.
+
+	return base64.RawStdEncoding.EncodeToString(sessionID), nil
 }
 
 // meekConn implements the net.Conn interface and is to be used as a client