/* Child process of page-parallel. Encrypts 1 MB of zeros, then decrypts it, and ensures that the zeros are back. */ #include #include "tests/arc4.h" #include "tests/lib.h" #include "tests/main.h" const char *test_name = "child-linear"; #define SIZE (1024 * 1024) static char buf[SIZE]; int main (int argc, char *argv[]) { const char *key = argv[argc - 1]; struct arc4 arc4; size_t i; /* Encrypt zeros. */ arc4_init (&arc4, key, strlen (key)); arc4_crypt (&arc4, buf, SIZE); /* Decrypt back to zeros. */ arc4_init (&arc4, key, strlen (key)); arc4_crypt (&arc4, buf, SIZE); /* Check that it's all zeros. */ for (i = 0; i < SIZE; i++) if (buf[i] != '\0') fail ("byte %zu != 0", i); return 0x42; }