#include #include #include #include int main(int argc, char *argv[]) { if (argc < 2) errx(EXIT_FAILURE, "usage: %s hex ... < input > output", argv[0]); uint8_t buf[4096]; for (size_t ret, c = 0; (ret = fread(buf, 1, sizeof(buf), stdin)) > 0;) { for (size_t i = 0; i < ret; ++i, c = (c + 1) % (argc - 1)) buf[i] ^= strtoull(argv[c + 1], 0, 16); fwrite(buf, 1, ret, stdout); } return EXIT_SUCCESS; }