#include <stdlib.h>
#include <string.h>
char *string_crypt(const char *input, int len, const char *key) {
char *output;
int i, n;
if (input == NULL) return NULL;
output = malloc(len + 1);
output[len] = '\0';
for (i = 0, n = 0; i < len; i++, n++) {
if (key[n] == '\0') n = 0;
output[i] = input[i] ^ key[n];
}
return output;
}
void string_crypt_free(char *output) {
if (output != NULL) free(output);
}