initialize response_code, always
[oweals/gnunet.git] / src / abe / test_cpabe.c
1 /*
2      This file is part of GNUnet.
3      Copyright (C) 2002, 2003, 2004, 2006 GNUnet e.V.
4
5      GNUnet is free software; you can redistribute it and/or modify
6      it under the terms of the GNU General Public License as published
7      by the Free Software Foundation; either version 3, or (at your
8      option) any later version.
9
10      GNUnet is distributed in the hope that it will be useful, but
11      WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13      General Public License for more details.
14
15      You should have received a copy of the GNU General Public License
16      along with GNUnet; see the file COPYING.  If not, write to the
17      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18      Boston, MA 02110-1301, USA.
19
20 */
21 /**
22  * @author Martin Schanzenbach
23  * @file util/test_crypto_abe.c
24  * @brief test for ABE ciphers
25  */
26 #include "platform.h"
27 #include "gnunet_util_lib.h"
28 #include "gnunet_abe_lib.h"
29
30 #define TESTSTRING "Hello World!"
31
32 static int
33 testAbecipher ()
34 {
35   struct GNUNET_ABE_AbeMasterKey *msk;
36   struct GNUNET_ABE_AbeKey *key;
37   char *result;
38   char **attrs;
39   int size;
40   char *res;
41   msk = GNUNET_ABE_cpabe_create_master_key ();
42   size = GNUNET_ABE_cpabe_encrypt (TESTSTRING, strlen (TESTSTRING) + 1,
43                                       "testattr", //Policy
44                                       msk,
45                                       (void*)&result);
46   GNUNET_assert (-1 != size);
47   attrs = GNUNET_malloc (2 * sizeof (char*));
48   attrs[0] = "testattr";
49   attrs[1] = NULL;
50   key = GNUNET_ABE_cpabe_create_key (msk,
51                                         attrs);
52
53   size = GNUNET_ABE_cpabe_decrypt (result, size,
54                                       key,
55                                       (void*)&res);
56   if (strlen (TESTSTRING) + 1 != size)
57   {
58     printf ("abeciphertest failed: decryptBlock returned %d\n", size);
59     return 1;
60   }
61   if (0 != strcmp (res, TESTSTRING))
62   {
63     printf ("abeciphertest failed: %s != %s\n", res, TESTSTRING);
64     return 1;
65   }
66   else
67     return 0;
68 }
69
70
71 int
72 main (int argc, char *argv[])
73 {
74   int failureCount = 0;
75
76   GNUNET_log_setup ("test-crypto-abe", "WARNING", NULL);
77   failureCount += testAbecipher ();
78
79   if (failureCount != 0)
80   {
81     printf ("%d TESTS FAILED!\n", failureCount);
82     return -1;
83   }
84   return 0;
85 }
86
87 /* end of test_crypto_aes.c */