libtomcrypt/demos/multi.c

114 lines
4.2 KiB
C
Raw Normal View History

2004-12-30 23:55:53 +00:00
/* test the multi helpers... */
#include <tomcrypt.h>
int main(void)
{
unsigned char key[16], buf[2][MAXBLOCKSIZE];
unsigned long len, len2;
/* register algos */
register_hash(&sha256_desc);
register_cipher(&aes_desc);
/* HASH testing */
len = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hash_memory(find_hash("sha256"), (unsigned char*)"hello", 5, buf[0], &len);
2004-12-30 23:55:53 +00:00
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hash_memory_multi(find_hash("sha256"), buf[1], &len2, (unsigned char*)"hello", 5, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hash_memory_multi(find_hash("sha256"), buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL, 0);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hash_memory_multi(find_hash("sha256"), buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
2007-07-20 17:48:02 +00:00
/* LTC_HMAC */
2004-12-30 23:55:53 +00:00
len = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hmac_memory(find_hash("sha256"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
2004-12-30 23:55:53 +00:00
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, (unsigned char*)"hello", 5UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
2007-07-20 17:48:02 +00:00
/* LTC_OMAC */
#ifdef LTC_OMAC
2004-12-30 23:55:53 +00:00
len = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
omac_memory(find_cipher("aes"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
2004-12-30 23:55:53 +00:00
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"hello", 5UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
#endif
2004-12-30 23:55:53 +00:00
/* PMAC */
#ifdef LTC_PMAC
2004-12-30 23:55:53 +00:00
len = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
pmac_memory(find_cipher("aes"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
2004-12-30 23:55:53 +00:00
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"hello", 5, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
len2 = sizeof(buf[0]);
2006-06-18 01:37:50 +00:00
pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
2004-12-30 23:55:53 +00:00
if (len != len2 || memcmp(buf[0], buf[1], len)) {
printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
return EXIT_FAILURE;
}
#endif
2004-12-30 23:55:53 +00:00
printf("All passed\n");
return EXIT_SUCCESS;
}
2005-06-09 00:08:13 +00:00
/* $Source$ */
/* $Revision$ */
/* $Date$ */