1/* BEGIN_HEADER */ 2#include "mbedtls/xtea.h" 3/* END_HEADER */ 4 5/* BEGIN_DEPENDENCIES 6 * depends_on:MBEDTLS_XTEA_C 7 * END_DEPENDENCIES 8 */ 9 10/* BEGIN_CASE */ 11void xtea_encrypt_ecb(data_t *key_str, data_t *src_str, 12 data_t *dst) 13{ 14 unsigned char output[100]; 15 mbedtls_xtea_context ctx; 16 17 memset(output, 0x00, 100); 18 19 20 mbedtls_xtea_setup(&ctx, key_str->x); 21 TEST_ASSERT(mbedtls_xtea_crypt_ecb(&ctx, MBEDTLS_XTEA_ENCRYPT, src_str->x, output) == 0); 22 23 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0); 24} 25/* END_CASE */ 26 27/* BEGIN_CASE */ 28void xtea_decrypt_ecb(data_t *key_str, data_t *src_str, data_t *dst) 29{ 30 unsigned char output[100]; 31 mbedtls_xtea_context ctx; 32 33 memset(output, 0x00, 100); 34 35 36 mbedtls_xtea_setup(&ctx, key_str->x); 37 TEST_ASSERT(mbedtls_xtea_crypt_ecb(&ctx, MBEDTLS_XTEA_DECRYPT, src_str->x, output) == 0); 38 39 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0); 40} 41/* END_CASE */ 42 43/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ 44void xtea_encrypt_cbc(data_t *key_str, data_t *iv_str, 45 data_t *src_str, data_t *dst) 46{ 47 unsigned char output[100]; 48 mbedtls_xtea_context ctx; 49 50 memset(output, 0x00, 100); 51 52 53 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); 56 57 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 58 src_str->len, dst->len) == 0); 59} 60/* END_CASE */ 61 62/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ 63void xtea_decrypt_cbc(data_t *key_str, data_t *iv_str, 64 data_t *src_str, data_t *dst) 65{ 66 unsigned char output[100]; 67 mbedtls_xtea_context ctx; 68 69 memset(output, 0x00, 100); 70 71 72 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); 75 76 TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 77 src_str->len, dst->len) == 0); 78} 79/* END_CASE */ 80 81/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ 82void xtea_selftest() 83{ 84 TEST_ASSERT(mbedtls_xtea_self_test(1) == 0); 85} 86/* END_CASE */ 87