Add test for single-char xor
This commit is contained in:
parent
cb30d47479
commit
099bb473ba
1 changed files with 25 additions and 0 deletions
25
tests/main.c
25
tests/main.c
|
@ -90,6 +90,29 @@ static MunitResult test_hamming(const MunitParameter params[], void *data) {
|
||||||
return MUNIT_OK;
|
return MUNIT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static MunitResult test_single_char_xor(const MunitParameter params[],
|
||||||
|
void *data) {
|
||||||
|
// This is actually challenge 3.
|
||||||
|
(void)params;
|
||||||
|
(void)data;
|
||||||
|
|
||||||
|
const char *in =
|
||||||
|
"1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736";
|
||||||
|
unsigned char buf[512] = {0};
|
||||||
|
size_t len = hex_to_bytes(buf, in);
|
||||||
|
|
||||||
|
char key = best_single_char_xor_key(len, buf);
|
||||||
|
|
||||||
|
assert_char(key, ==, 'X');
|
||||||
|
char cleartext[512] = {'\0'};
|
||||||
|
for (size_t i = 0; i < len; ++i) {
|
||||||
|
cleartext[i] = buf[i] ^ key;
|
||||||
|
}
|
||||||
|
assert_string_equal(cleartext, "Cooking MC's like a pound of bacon");
|
||||||
|
|
||||||
|
return MUNIT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
static MunitTest test_suite_tests[] = {
|
static MunitTest test_suite_tests[] = {
|
||||||
{"/hex_to_byte", test_hex_to_byte, NULL, NULL, MUNIT_TEST_OPTION_NONE,
|
{"/hex_to_byte", test_hex_to_byte, NULL, NULL, MUNIT_TEST_OPTION_NONE,
|
||||||
NULL},
|
NULL},
|
||||||
|
@ -100,6 +123,8 @@ static MunitTest test_suite_tests[] = {
|
||||||
{"/frequency_score", test_frequency_score, NULL, NULL,
|
{"/frequency_score", test_frequency_score, NULL, NULL,
|
||||||
MUNIT_TEST_OPTION_NONE, NULL},
|
MUNIT_TEST_OPTION_NONE, NULL},
|
||||||
{"/hamming", test_hamming, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
|
{"/hamming", test_hamming, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
|
||||||
|
{"/single_char_xor", test_single_char_xor, NULL, NULL,
|
||||||
|
MUNIT_TEST_OPTION_NONE, NULL},
|
||||||
{NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL}};
|
{NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL}};
|
||||||
|
|
||||||
static const MunitSuite test_suite = {(char *)"", test_suite_tests, NULL, 1,
|
static const MunitSuite test_suite = {(char *)"", test_suite_tests, NULL, 1,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue