|
|
@@ -22,7 +22,7 @@ char guess_encryption_key_letter(const char ciphertext_hex[]) |
|
|
|
return max_score.letter; |
|
|
|
} |
|
|
|
|
|
|
|
void set1_challenge3_test() |
|
|
|
FUNC(set1_challenge3_test) |
|
|
|
{ |
|
|
|
static const char ciphertext[] = "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736"; |
|
|
|
unsigned char buf[2]; |
|
|
@@ -33,9 +33,10 @@ void set1_challenge3_test() |
|
|
|
sprintf((char*)buf, "%c", ret); |
|
|
|
check(ret == 'X', buf); |
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
|
|
|
|
void xor_char_finder_test() |
|
|
|
FUNC(xor_char_finder_test) |
|
|
|
{ |
|
|
|
// "This is my simple text." |
|
|
|
unsigned char buf[256]; |
|
|
@@ -62,8 +63,9 @@ void xor_char_finder_test() |
|
|
|
sprintf((char*)buf, "Returned: [%c]", got); |
|
|
|
check(got == 'M', buf); |
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
void set1_challange4_test() |
|
|
|
FUNC(set1_challange4_test) |
|
|
|
{ |
|
|
|
FILE* fp; |
|
|
|
char* line=NULL; |
|
|
@@ -115,8 +117,9 @@ void set1_challange4_test() |
|
|
|
} |
|
|
|
free(line); |
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
void set1_challenge_5_test() |
|
|
|
FUNC(set1_challenge_5_test) |
|
|
|
{ |
|
|
|
const unsigned char ch1[] = "Burning 'em, if you ain't quick and nimble\nI go crazy when I hear a cymbal"; |
|
|
|
const unsigned char xor_val[] = "ICE"; |
|
|
@@ -136,8 +139,9 @@ void set1_challenge_5_test() |
|
|
|
for(unsigned i=0; i<sizeof(expected)/sizeof(unsigned char); ++i) |
|
|
|
check( expected[i] == po_ch1[i] ); |
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
void set1_challenge_6_test() |
|
|
|
FUNC(set1_challenge_6_test) |
|
|
|
{ |
|
|
|
const unsigned max_block_size=200; |
|
|
|
|
|
|
@@ -157,16 +161,15 @@ void set1_challenge_6_test() |
|
|
|
int best_key_size = find_best_keysize(base64_buf, strlen(base64_buf)); |
|
|
|
check(best_key_size==29); |
|
|
|
best_key_size=crack_repeted_xor(base64_buf, out_buf, best_key_size); |
|
|
|
// sprintf((char*)error_buf, "Wrong keysize. Expected 5 got %d\n", best_key_size); |
|
|
|
// check(memcmp(expected_plaintext1, out_buf, sizeof(expected_plaintext1))==0, out_buf); |
|
|
|
printf("Key size: %d. Content:\n ", best_key_size); |
|
|
|
for(int i=0; i<len; ++i) |
|
|
|
printf("%c", out_buf[i]); |
|
|
|
//check(memcmp(expected_plaintext3, buf, sizeof(expected_plaintext3))==0, buf); |
|
|
|
|
|
|
|
// OZAPTF: to do, it works just need correct check |
|
|
|
// check(memcmp(expected_plaintext3, buf, sizeof(expected_plaintext3))==0, buf); |
|
|
|
|
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
void crack_repeted_xor_test() |
|
|
|
FUNC(crack_repeted_xor_test) |
|
|
|
{ |
|
|
|
|
|
|
|
unsigned char error_buf[256]; |
|
|
@@ -211,18 +214,10 @@ void crack_repeted_xor_test() |
|
|
|
sprintf((char*)error_buf, "Wrong keysize. Expected 20 got %d\n", best_key_size); |
|
|
|
check(best_key_size==20, error_buf); |
|
|
|
check(memcmp(expected_plaintext3, buf, sizeof(expected_plaintext3))==0, buf); |
|
|
|
|
|
|
|
/* this doesn't work |
|
|
|
memset(buf,0,sizeof(buf)); |
|
|
|
best_key_size = find_best_keysize(hex_str4, strlen(hex_str4)); |
|
|
|
crack_repeted_xor(hex_str4, buf, best_key_size); |
|
|
|
sprintf((char*)error_buf, "Wrong keysize. Expected 3 got %d\n", best_key_size); |
|
|
|
check(best_key_size==3, error_buf); |
|
|
|
check(memcmp(expected_plaintext4, buf, sizeof(expected_plaintext4))==0, buf); |
|
|
|
*/ |
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
void set1_challenge_7_test() |
|
|
|
FUNC(set1_challenge_7_test) |
|
|
|
{ |
|
|
|
const unsigned char pass[]="YELLOW SUBMARINE"; |
|
|
|
const char expected_first_line[] = "I'm back and I'm ringin' the bell"; |
|
|
@@ -237,8 +232,9 @@ void set1_challenge_7_test() |
|
|
|
ret = ecb_decrypt(hex, ret, pass, sizeof(pass), &buff[0]); |
|
|
|
check(memcmp(buff, expected_first_line, strlen(expected_first_line))==0); |
|
|
|
} |
|
|
|
FUNC_E |
|
|
|
|
|
|
|
void set1_challenge_8_test() |
|
|
|
FUNC(set1_challenge_8_test) |
|
|
|
{ |
|
|
|
FILE* fh=NULL; |
|
|
|
|
|
|
@@ -270,4 +266,5 @@ void set1_challenge_8_test() |
|
|
|
check(current_line==133); |
|
|
|
check(first==2); |
|
|
|
check(second==4); |
|
|
|
} |
|
|
|
} |
|
|
|
FUNC_E |