diff --git a/set1/src/fixed-xor.c b/set1/src/fixed-xor.c new file mode 100644 index 0000000..46368cd --- /dev/null +++ b/set1/src/fixed-xor.c @@ -0,0 +1,38 @@ +#include +#include +#include + +/* +void fixed_xor_stream(uint8_t *key, size_t key_len) +{ + // +} +*/ + +void fixed_xor(const uint8_t *data, const size_t data_len, + const uint8_t key) +{ + uint8_t c; + size_t i; + + for (i = 0; i < data_len; ++i) { + c = data[i] ^ key; + putchar(c); + } +} + +int main() +{ + uint8_t data[] = "\x1c\x01\x11\x00\x1f\x01\x01\x00\x06\x1a\x02\x4b\x53" + "\x53\x50\x09\x18\x1c\x00\x00\x00\x00\x00\x00\x00"; + /* // above array XOR'd by 0x41 + uint8_t data[] = "\x5d\x40\x50\x41\x5e\x40\x40\x41\x47\x5b\x43\x0a\x12" + "\x12\x11\x48\x59\x5d\x41\x41\x41\x41\x41\x41\x41"; + */ + uint8_t key = 0x41; + + fixed_xor(data, sizeof(data)-1, key); + + return EXIT_SUCCESS; +} +