From e285c8aa4a03b4f96b1ab36a0fd4b1a6e810ec4b Mon Sep 17 00:00:00 2001 From: siddharth Date: Sat, 19 Jun 2021 10:04:46 -0400 Subject: lib: update RepeatingXOR - Change input type to []byte. - Change retur type to []byte. - Update RepeatingXOR calls in challenge 5 an 6. --- lib/xor.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'lib/xor.go') diff --git a/lib/xor.go b/lib/xor.go index 7b57d82..31a4b8b 100644 --- a/lib/xor.go +++ b/lib/xor.go @@ -35,29 +35,23 @@ func FixedXORBytes(as, bs []byte) []byte { } // Both 'data' and 'key' need to be plain ascii string. -func RepeatingXOR(data, key string) string { - xs := "" +func RepeatingXOR(data, key []byte) []byte { + xs := make([]byte, 0) if len(data) < 1 || len(key) < 1 { return xs } - // data in bytes - db := []byte(data) - - // key in bytes - dk := []byte(key) - lk := len(key) - for i, ki := 0, 0; i < len(db); i++ { + for i, ki := 0, 0; i < len(data); i++ { if ki == lk { ki = 0 } // xor a byte - eb := db[i] ^ dk[ki] + eb := data[i] ^ key[ki] // append to result - xs += string(eb) + xs = append(xs, eb) ki += 1 } -- cgit v1.2.3