File xtea.h

XTEA block cipher (32-bit)

Defines

MBEDTLS_XTEA_ENCRYPT
MBEDTLS_XTEA_DECRYPT
MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH

The data input has an invalid length.

MBEDTLS_ERR_XTEA_HW_ACCEL_FAILED

XTEA hardware accelerator failed.

Functions

void mbedtls_xtea_init(mbedtls_xtea_context *ctx)

Initialize XTEA context.

Parameters

ctx – XTEA context to be initialized

void mbedtls_xtea_free(mbedtls_xtea_context *ctx)

Clear XTEA context.

Parameters

ctx – XTEA context to be cleared

void mbedtls_xtea_setup(mbedtls_xtea_context *ctx, const unsigned char key[16])

XTEA key schedule.

Parameters
  • ctx – XTEA context to be initialized

  • key – the secret key

int mbedtls_xtea_crypt_ecb(mbedtls_xtea_context *ctx, int mode, const unsigned char input[8], unsigned char output[8])

XTEA cipher function.

Parameters
  • ctx – XTEA context

  • mode – MBEDTLS_XTEA_ENCRYPT or MBEDTLS_XTEA_DECRYPT

  • input – 8-byte input block

  • output – 8-byte output block

Returns

0 if successful

int mbedtls_xtea_crypt_cbc(mbedtls_xtea_context *ctx, int mode, size_t length, unsigned char iv[8], const unsigned char *input, unsigned char *output)

XTEA CBC cipher function.

Parameters
  • ctx – XTEA context

  • mode – MBEDTLS_XTEA_ENCRYPT or MBEDTLS_XTEA_DECRYPT

  • length – the length of input, multiple of 8

  • iv – initialization vector for CBC mode

  • input – input block

  • output – output block

Returns

0 if successful, MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH if the length % 8 != 0

int mbedtls_xtea_self_test(int verbose)

Checkup routine.

Returns

0 if successful, or 1 if the test failed