From 602197a248f3d6ffe5125d5fbaf9c8f87df3c6c5 Mon Sep 17 00:00:00 2001 From: Benedict Date: Tue, 1 Mar 2016 20:17:25 +0100 Subject: set 1, challenge 2 finished --- task1_hex_to_base64.c | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/task1_hex_to_base64.c b/task1_hex_to_base64.c index 53b98e3..9871055 100644 --- a/task1_hex_to_base64.c +++ b/task1_hex_to_base64.c @@ -168,29 +168,32 @@ int convert_to_base64(char *encode, char *result) } -void xor_string(char *str1, char* str2, char *result) { - int length = strlen(str1); +void xor_string(char *str1, char* str2, char *result, int length) { int i; + for(i=0;i> 4; - result[i] = hex_encode[tmp]; + result[i*2] = hex_encode[tmp]; tmp = str1[i] & 0x0F; - result[i+1] = hex_encode[tmp]; + result[(i*2)+1] = hex_encode[tmp]; } + + result[i*2] = '\0'; } int main(int argc, char **argv) @@ -204,14 +207,23 @@ int main(int argc, char **argv) char *back_hex = malloc(length); int i = convert_hex_string_to_binary(argv[1], tmp); int j = convert_hex_string_to_binary(argv[2], tmp2); - xor_string(tmp, tmp2, __xor_string); - hex_binary_to_string(tmp2, back_hex); + xor_string(tmp, tmp2, __xor_string, strlen(argv[2])); + // convert the __xor_string to printable charaters + hex_binary_to_string(tmp2, back_hex, strlen(argv[2])); + printf("input string 1:\n"); + printf("%s\n", argv[1]); + printf("input string 2:\n"); + printf("%s\n", argv[2]); + /* + printf("char string of arg 1:\n"); printf("%s\n", tmp); + printf("char string of arg 2:\n"); printf("%s\n", tmp2); - printf("%s\n", argv[2]); + */ + printf("string 2 from hex back to printable charaters:\n"); + printf("%s\n", back_hex); + printf("xor string:\n"); + hex_binary_to_string(__xor_string, back_hex, strlen(argv[2])); printf("%s\n", back_hex); - printf("%s\n", __xor_string); - convert_to_base64(tmp, base64); - //printf("%s\n", base64); } } -- cgit v1.2.3-70-g09d2