mbed TLS v1.3.14
Data Structures | Macros | Functions
xtea.h File Reference

XTEA block cipher (32-bit) More...

#include "config.h"
#include <stddef.h>
#include <inttypes.h>
Include dependency graph for xtea.h:

Go to the source code of this file.

Data Structures

struct  xtea_context
 XTEA context structure. More...
 

Macros

#define XTEA_ENCRYPT   1
 
#define XTEA_DECRYPT   0
 
#define POLARSSL_ERR_XTEA_INVALID_INPUT_LENGTH   -0x0028
 The data input has an invalid length. More...
 

Functions

void xtea_init (xtea_context *ctx)
 Initialize XTEA context. More...
 
void xtea_free (xtea_context *ctx)
 Clear XTEA context. More...
 
void xtea_setup (xtea_context *ctx, const unsigned char key[16])
 XTEA key schedule. More...
 
int xtea_crypt_ecb (xtea_context *ctx, int mode, const unsigned char input[8], unsigned char output[8])
 XTEA cipher function. More...
 
int xtea_crypt_cbc (xtea_context *ctx, int mode, size_t length, unsigned char iv[8], const unsigned char *input, unsigned char *output)
 XTEA CBC cipher function. More...
 
int xtea_self_test (int verbose)
 Checkup routine. More...
 

Detailed Description

XTEA block cipher (32-bit)

Copyright (C) 2006-2013, ARM Limited, All Rights Reserved

This file is part of mbed TLS (https://tls.mbed.org)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file xtea.h.

Macro Definition Documentation

#define POLARSSL_ERR_XTEA_INVALID_INPUT_LENGTH   -0x0028

The data input has an invalid length.

Definition at line 45 of file xtea.h.

#define XTEA_DECRYPT   0

Definition at line 43 of file xtea.h.

#define XTEA_ENCRYPT   1

Definition at line 42 of file xtea.h.

Function Documentation

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

XTEA CBC cipher function.

Parameters
ctxXTEA context
modeXTEA_ENCRYPT or XTEA_DECRYPT
lengththe length of input, multiple of 8
ivinitialization vector for CBC mode
inputinput block
outputoutput block
Returns
0 if successful, POLARSSL_ERR_XTEA_INVALID_INPUT_LENGTH if the length % 8 != 0
int xtea_crypt_ecb ( xtea_context ctx,
int  mode,
const unsigned char  input[8],
unsigned char  output[8] 
)

XTEA cipher function.

Parameters
ctxXTEA context
modeXTEA_ENCRYPT or XTEA_DECRYPT
input8-byte input block
output8-byte output block
Returns
0 if successful
void xtea_free ( xtea_context ctx)

Clear XTEA context.

Parameters
ctxXTEA context to be cleared
void xtea_init ( xtea_context ctx)

Initialize XTEA context.

Parameters
ctxXTEA context to be initialized
int xtea_self_test ( int  verbose)

Checkup routine.

Returns
0 if successful, or 1 if the test failed
void xtea_setup ( xtea_context ctx,
const unsigned char  key[16] 
)

XTEA key schedule.

Parameters
ctxXTEA context to be initialized
keythe secret key