From 14e3b0e4f801f6fdbd6be941a2022e4e665d88eb Mon Sep 17 00:00:00 2001 From: Benedict Date: Fri, 4 Mar 2016 12:45:40 +0100 Subject: fxied api change in other tasks --- task6.c | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'task6.c') diff --git a/task6.c b/task6.c index d807b69..aff1d39 100644 --- a/task6.c +++ b/task6.c @@ -2,20 +2,50 @@ void main() { - FILE *fp; + /*FILE *fp; int keysize; + char *file_content, *chipertext, *block1, *block2; + int file_size = 61; + int min_hamming_distance; + fp = fopen("6.txt", "r"); - // data come on stdin (base64 decoded already) + if (fp == NULL) { + printf("Error open file\n"); + exit(1); + } + + file_content = malloc(file_size); + + // read data and decode it from base64 + // result is not a hex strin or? + + while (fscanf(fp, "%60c", file_content) != EOF) { + file_size += 61; + file_content = realloc(file_content, file_size); + } + + ciphertext = malloc(file_size); + decode_base64(file_content, ciphertext); + block1 = malloc(41); + block2 = malloc(41); + + // split ciphertext in blocks of size 2 to 40 for(keysize=2; keysize < 40; keysize++) { - char *string1 = malloc(keysize+1); - char *string2 = malloc(keysize+1); - - //while(fscanf(fp, "%n" + strncpy(block1, ciphertext, keysize); + strncpy(block2, &ciphertext[keysize+1], keysize); - free(string1); - free(string2); + tmp = hamming_distance(block1, block2); + tmp = tmp / keysize; + if (tmp < min_hamming_distance) + min_hamming_distance = tmp; } + + printf("keysize: %i\n", min_hamming_distance); + + + // transpose the blocks +*/ } -- cgit v1.2.3-70-g09d2