protocol/encryptor_xor.go

32 lines
540 B
Go

package protocol
var xorEncryptorEnabled = false
var xorKey []byte
var xorKeyLen int
func SetEncryptorXorKey(key []byte) {
xorKey = key
xorKeyLen = len(key)
xorEncryptorEnabled = true
}
func (p *protocolPackage) xorEncrypt() {
if !xorEncryptorEnabled {
return
}
for i := range p.body {
p.body[i] ^= xorKey[i%xorKeyLen]
}
p.encryptor = EncryptorXor
}
func (p *protocolPackage) xorDecrypt() {
if !xorEncryptorEnabled {
return
}
for i := range p.body {
p.body[i] ^= xorKey[i%xorKeyLen]
}
p.encryptor = EncryptorNone
}