]> git.r.bdr.sh - rbdr/mobius/commitdiff
Remove redundant text encoding func
authorJeff Halter <redacted>
Sun, 9 Jun 2024 21:03:28 +0000 (14:03 -0700)
committerJeff Halter <redacted>
Sun, 9 Jun 2024 21:05:15 +0000 (14:05 -0700)
hotline/transaction_handlers.go
hotline/user.go
hotline/user_test.go

index 4bb956aabbc1cdcf5aa948b5bd742edd026ed34b..ff23684b21eda1c678e37148a81faa5869b33f0a 100644 (file)
@@ -658,7 +658,7 @@ func HandleSetUser(cc *ClientConn, t *Transaction) (res []Transaction, err error
                return res, err
        }
 
-       login := decodeString(t.GetField(FieldUserLogin).Data)
+       login := string(encodeString(t.GetField(FieldUserLogin).Data))
        userName := string(t.GetField(FieldUserName).Data)
 
        newAccessLvl := t.GetField(FieldUserAccess).Data
@@ -783,7 +783,7 @@ func HandleUpdateUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                                return res, err
                        }
 
-                       login := decodeString(getField(FieldData, &subFields).Data)
+                       login := string(encodeString(getField(FieldData, &subFields).Data))
                        cc.logger.Infow("DeleteUser", "login", login)
 
                        if err := cc.Server.DeleteUser(login); err != nil {
@@ -798,9 +798,9 @@ func HandleUpdateUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                // If FieldData is included, this is a rename operation where FieldData contains the login of the existing
                // account and FieldUserLogin contains the new login.
                if getField(FieldData, &subFields) != nil {
-                       loginToRename = decodeString(getField(FieldData, &subFields).Data)
+                       loginToRename = string(encodeString(getField(FieldData, &subFields).Data))
                }
-               userLogin := decodeString(getField(FieldUserLogin, &subFields).Data)
+               userLogin := string(encodeString(getField(FieldUserLogin, &subFields).Data))
                if loginToRename != "" {
                        accountToUpdate = loginToRename
                } else {
@@ -842,8 +842,8 @@ func HandleUpdateUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                        }
 
                        err = cc.Server.UpdateUser(
-                               decodeString(getField(FieldData, &subFields).Data),
-                               decodeString(getField(FieldUserLogin, &subFields).Data),
+                               string(encodeString(getField(FieldData, &subFields).Data)),
+                               string(encodeString(getField(FieldUserLogin, &subFields).Data)),
                                string(getField(FieldUserName, &subFields).Data),
                                acc.Password,
                                acc.Access,
@@ -889,7 +889,7 @@ func HandleNewUser(cc *ClientConn, t *Transaction) (res []Transaction, err error
                return res, err
        }
 
-       login := decodeString(t.GetField(FieldUserLogin).Data)
+       login := string(encodeString(t.GetField(FieldUserLogin).Data))
 
        // If the account already dataFile, reply with an error
        if _, ok := cc.Server.Accounts[login]; ok {
@@ -925,7 +925,7 @@ func HandleDeleteUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                return res, nil
        }
 
-       login := decodeString(t.GetField(FieldUserLogin).Data)
+       login := string(encodeString(t.GetField(FieldUserLogin).Data))
 
        if err := cc.Server.DeleteUser(login); err != nil {
                return res, err
index 7d6f85118d5b06e154cb4c73e14de0f2338179f5..e64bf8486e04909be9544d20ab470ebe561cb19a 100644 (file)
@@ -64,15 +64,6 @@ func (u *User) Write(p []byte) (int, error) {
        return 8 + namelen, nil
 }
 
-// decodeString decodes an obfuscated user string from a client
-// e.g. 98 8a 9a 8c 8b => "guest"
-func decodeString(obfuText []byte) (clearText string) {
-       for _, char := range obfuText {
-               clearText += string(rune(255 - uint(char)))
-       }
-       return clearText
-}
-
 // encodeString takes []byte s containing cleartext and rotates by 255 into obfuscated cleartext.
 // The Hotline protocol uses this format for sending passwords over network.
 // Not secure, but hey, it was the 90s!
index 6258316f94d5f3186baa696008009d82d4e14acb..c55e35dfffb075295d74be2f65af2b40b096b419 100644 (file)
@@ -57,34 +57,6 @@ func TestReadUser(t *testing.T) {
        }
 }
 
-func TestDecodeUserString(t *testing.T) {
-       type args struct {
-               encodedString []byte
-       }
-       tests := []struct {
-               name              string
-               args              args
-               wantDecodedString string
-       }{
-               {
-                       name: "decodes bytes to guest",
-                       args: args{
-                               encodedString: []byte{
-                                       0x98, 0x8a, 0x9a, 0x8c, 0x8b,
-                               },
-                       },
-                       wantDecodedString: "guest",
-               },
-       }
-       for _, tt := range tests {
-               t.Run(tt.name, func(t *testing.T) {
-                       if gotDecodedString := decodeString(tt.args.encodedString); gotDecodedString != tt.wantDecodedString {
-                               t.Errorf("decodeString() = %v, want %v", gotDecodedString, tt.wantDecodedString)
-                       }
-               })
-       }
-}
-
 func TestNegatedUserString(t *testing.T) {
        type args struct {
                encodedString []byte