4fa58b40eb77396cfab1225e6f08436bff5c97d7
[pintos-anon] / grading / vm / child-linear.c
1 #include <stdio.h>
2 #include <string.h>
3 #include "../lib/arc4.h"
4
5 #define SIZE (128 * 1024)
6
7 static char buf[SIZE];
8
9 int
10 main (int argc, char *argv[]) 
11 {
12   const char *key = argv[argc - 1];
13   struct arc4 arc4;
14   size_t i;
15
16   /* Encrypt zeros. */
17   arc4_init (&arc4, key, strlen (key));
18   arc4_crypt (&arc4, buf, SIZE);
19
20   /* Decrypt back to zeros. */
21   arc4_init (&arc4, key, strlen (key));
22   arc4_crypt (&arc4, buf, SIZE);
23
24   /* Check that it's all zeros. */
25   for (i = 0; i < SIZE; i++)
26     if (buf[i] != '\0')
27       {
28         printf ("(child-linear) byte %zu != 0\n", i);
29         return 1;
30       }
31
32   return 0x42;
33 }