aboutsummaryrefslogtreecommitdiff
path: root/hotline
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-09 14:03:28 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-09 14:05:15 -0700
commit6699cff21c226aa900ed3517c0f7ef3d50cefc17 (patch)
tree7b1f5a26ec3a2c18997bfd13ac9dfb706faa9e27 /hotline
parent9cf66aeafbcbb9237fedc2efc97cc2856eb60f7f (diff)
Remove redundant text encoding func
Diffstat (limited to 'hotline')
-rw-r--r--hotline/transaction_handlers.go16
-rw-r--r--hotline/user.go9
-rw-r--r--hotline/user_test.go28
3 files changed, 8 insertions, 45 deletions
diff --git a/hotline/transaction_handlers.go b/hotline/transaction_handlers.go
index 4bb956a..ff23684 100644
--- a/hotline/transaction_handlers.go
+++ b/hotline/transaction_handlers.go
@@ -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
diff --git a/hotline/user.go b/hotline/user.go
index 7d6f851..e64bf84 100644
--- a/hotline/user.go
+++ b/hotline/user.go
@@ -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!
diff --git a/hotline/user_test.go b/hotline/user_test.go
index 6258316..c55e35d 100644
--- a/hotline/user_test.go
+++ b/hotline/user_test.go
@@ -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