mirror of
https://github.com/WiiLink24/wfc-server.git
synced 2026-03-21 17:44:58 -05:00
common: Fix EncryptTypeX
This commit is contained in:
parent
70a1765a9f
commit
50fc53aa5c
|
|
@ -8,13 +8,11 @@ func EncryptTypeX(key []byte, challenge []byte, data []byte) []byte {
|
|||
returnData := make([]byte, 20)
|
||||
returnData = append(returnData, data...)
|
||||
|
||||
keyLen := len(key)
|
||||
challengeLen := len(challenge)
|
||||
rnd := time.Now().Unix()
|
||||
|
||||
for i := 0; i < 20; i++ {
|
||||
rnd = (rnd * 0x343FD) + 0x269EC3
|
||||
returnData[i] = byte(rnd ^ int64(key[i%keyLen]) ^ int64(challenge[i%challengeLen]))
|
||||
returnData[i] = byte(rnd ^ int64(key[i%len(key)]) ^ int64(challenge[i%len(challenge)]))
|
||||
}
|
||||
|
||||
headerLen := 7
|
||||
|
|
@ -36,18 +34,16 @@ func initEncrypt(encxkey, key, validate, data []byte) []byte {
|
|||
headerLen := (data[0] ^ 0xec) + 2
|
||||
dataStart := (data[headerLen-1] ^ 0xea)
|
||||
|
||||
data = enctypexFuncX(encxkey, key, validate, data[headerLen:])
|
||||
return data[dataStart:]
|
||||
enctypexFuncX(encxkey, key, validate, data[headerLen:headerLen+dataStart])
|
||||
return data[headerLen+dataStart:]
|
||||
}
|
||||
|
||||
func enctypexFuncX(encxkey, key, challenge, data []byte) []byte {
|
||||
keyLen := len(key)
|
||||
func enctypexFuncX(encxkey, key, challenge, data []byte) {
|
||||
for i := 0; i < len(data); i++ {
|
||||
challenge[(key[i%keyLen]*byte(i))&7] ^= challenge[i&7] ^ data[i]
|
||||
challenge[(int(key[i%len(key)])*i)&7] ^= challenge[i&7] ^ data[i]
|
||||
}
|
||||
|
||||
func4(encxkey, challenge, 8)
|
||||
return data
|
||||
}
|
||||
|
||||
func func4(encxkey, challenge []byte, challengeLen int) {
|
||||
|
|
|
|||
14
common/encryption_test.go
Normal file
14
common/encryption_test.go
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package common
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEncryption(t *testing.T) {
|
||||
encrypted := EncryptTypeX([]byte("key"), []byte("challenge"), []byte("data"))
|
||||
for i := 0; i < len(encrypted); i++ {
|
||||
fmt.Printf("%02x ", encrypted[i])
|
||||
}
|
||||
fmt.Printf("\n")
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user