blob: 7e06e309e2332d8dba6d059e6c962f06922a10c3 [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Manuel Pégourié-Gonnard7f809972015-03-09 17:05:11 +00002#include "mbedtls/xtea.h"
Paul Bakker33b43f12013-08-20 11:48:36 +02003/* END_HEADER */
Paul Bakkerf725a882009-07-08 06:43:10 +00004
Paul Bakker33b43f12013-08-20 11:48:36 +02005/* BEGIN_DEPENDENCIES
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +02006 * depends_on:MBEDTLS_XTEA_C
Paul Bakker33b43f12013-08-20 11:48:36 +02007 * END_DEPENDENCIES
8 */
Paul Bakker5690efc2011-05-26 13:16:06 +00009
Paul Bakker33b43f12013-08-20 11:48:36 +020010/* BEGIN_CASE */
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010011void xtea_encrypt_ecb(data_t *key_str, data_t *src_str,
12 data_t *dst)
Paul Bakkerf725a882009-07-08 06:43:10 +000013{
Paul Bakkerf725a882009-07-08 06:43:10 +000014 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020015 mbedtls_xtea_context ctx;
Paul Bakkerf725a882009-07-08 06:43:10 +000016
Paul Bakkerf725a882009-07-08 06:43:10 +000017 memset(output, 0x00, 100);
18
Paul Bakkerf725a882009-07-08 06:43:10 +000019
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010020 mbedtls_xtea_setup(&ctx, key_str->x);
21 TEST_ASSERT(mbedtls_xtea_crypt_ecb(&ctx, MBEDTLS_XTEA_ENCRYPT, src_str->x, output) == 0);
Paul Bakkerf725a882009-07-08 06:43:10 +000022
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010023 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0);
Paul Bakkerf725a882009-07-08 06:43:10 +000024}
Paul Bakker33b43f12013-08-20 11:48:36 +020025/* END_CASE */
Paul Bakkerf725a882009-07-08 06:43:10 +000026
Paul Bakker33b43f12013-08-20 11:48:36 +020027/* BEGIN_CASE */
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010028void xtea_decrypt_ecb(data_t *key_str, data_t *src_str, data_t *dst)
Paul Bakkerf725a882009-07-08 06:43:10 +000029{
Paul Bakkerf725a882009-07-08 06:43:10 +000030 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020031 mbedtls_xtea_context ctx;
Paul Bakkerf725a882009-07-08 06:43:10 +000032
Paul Bakkerf725a882009-07-08 06:43:10 +000033 memset(output, 0x00, 100);
34
Paul Bakkerf725a882009-07-08 06:43:10 +000035
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010036 mbedtls_xtea_setup(&ctx, key_str->x);
37 TEST_ASSERT(mbedtls_xtea_crypt_ecb(&ctx, MBEDTLS_XTEA_DECRYPT, src_str->x, output) == 0);
Paul Bakkerf725a882009-07-08 06:43:10 +000038
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010039 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0);
Paul Bakkerf725a882009-07-08 06:43:10 +000040}
Paul Bakker33b43f12013-08-20 11:48:36 +020041/* END_CASE */
Paul Bakkerf725a882009-07-08 06:43:10 +000042
Simon Butcher02c4a382016-06-23 02:41:31 +010043/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010044void xtea_encrypt_cbc(data_t *key_str, data_t *iv_str,
45 data_t *src_str, data_t *dst)
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020046{
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020047 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020048 mbedtls_xtea_context ctx;
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020049
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020050 memset(output, 0x00, 100);
51
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020052
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010053 mbedtls_xtea_setup(&ctx, key_str->x);
54 TEST_ASSERT(mbedtls_xtea_crypt_cbc(&ctx, MBEDTLS_XTEA_ENCRYPT, src_str->len, iv_str->x,
55 src_str->x, output) == 0);
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020056
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010057 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x,
58 src_str->len, dst->len) == 0);
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020059}
60/* END_CASE */
61
Simon Butcher02c4a382016-06-23 02:41:31 +010062/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010063void xtea_decrypt_cbc(data_t *key_str, data_t *iv_str,
64 data_t *src_str, data_t *dst)
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020065{
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020066 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020067 mbedtls_xtea_context ctx;
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020068
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020069 memset(output, 0x00, 100);
70
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020071
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010072 mbedtls_xtea_setup(&ctx, key_str->x);
73 TEST_ASSERT(mbedtls_xtea_crypt_cbc(&ctx, MBEDTLS_XTEA_DECRYPT, src_str->len, iv_str->x,
74 src_str->x, output) == 0);
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020075
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010076 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x,
77 src_str->len, dst->len) == 0);
Manuel Pégourié-Gonnard7b4919c2014-05-29 18:26:53 +020078}
79/* END_CASE */
80
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020081/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010082void xtea_selftest()
Paul Bakkerf725a882009-07-08 06:43:10 +000083{
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010084 TEST_ASSERT(mbedtls_xtea_self_test(1) == 0);
Paul Bakkerf725a882009-07-08 06:43:10 +000085}
Paul Bakker33b43f12013-08-20 11:48:36 +020086/* END_CASE */