1 /* test the ciphers and hashes using their built-in self-tests */ 2 3 #include <tomcrypt_test.h> 4 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