• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* test the ciphers and hashes using their built-in self-tests */
2 
3 #include <tomcrypt_test.h>
4 
cipher_hash_test(void)5 int cipher_hash_test(void)
6 {
7    int           x;
8    unsigned char buf[4096];
9    unsigned long n;
10    prng_state    nprng;
11 
12    /* test ciphers */
13    for (x = 0; cipher_descriptor[x].name != NULL; x++) {
14       DO(cipher_descriptor[x].test());
15    }
16 
17    /* test hashes */
18    for (x = 0; hash_descriptor[x].name != NULL; x++) {
19       DO(hash_descriptor[x].test());
20    }
21 
22    /* test prngs (test, import/export */
23    for (x = 0; prng_descriptor[x].name != NULL; x++) {
24       DO(prng_descriptor[x].test());
25       DO(prng_descriptor[x].start(&nprng));
26       DO(prng_descriptor[x].add_entropy((unsigned char *)"helloworld12", 12, &nprng));
27       DO(prng_descriptor[x].ready(&nprng));
28       n = sizeof(buf);
29       DO(prng_descriptor[x].pexport(buf, &n, &nprng));
30       prng_descriptor[x].done(&nprng);
31       DO(prng_descriptor[x].pimport(buf, n, &nprng));
32       DO(prng_descriptor[x].ready(&nprng));
33       if (prng_descriptor[x].read(buf, 100, &nprng) != 100) {
34          fprintf(stderr, "Error reading from imported PRNG!\n");
35          exit(EXIT_FAILURE);
36       }
37       prng_descriptor[x].done(&nprng);
38    }
39 
40    return 0;
41 }
42 
43 /* $Source: /cvs/libtom/libtomcrypt/testprof/cipher_hash_test.c,v $ */
44 /* $Revision: 1.3 $ */
45 /* $Date: 2005/05/05 14:35:59 $ */
46