Version 0.5.0 of tinydtls

Dependents:   tinydtls_test_cellular tinydtls_test_ethernet tiny-dtls

Committer:
ashleymills
Date:
Wed Feb 12 09:30:16 2014 +0000
Revision:
1:598a56fe116e
Parent:
0:ff9ebe0cf0e9
Explicitly removed something instead of relying on MACRO to disable it. Mbed can't use it.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 0:ff9ebe0cf0e9 1 /* $OpenBSD: rijndael.h,v 1.13 2008/06/09 07:49:45 djm Exp $ */
ashleymills 0:ff9ebe0cf0e9 2
ashleymills 0:ff9ebe0cf0e9 3 /**
ashleymills 0:ff9ebe0cf0e9 4 * rijndael-alg-fst.h
ashleymills 0:ff9ebe0cf0e9 5 *
ashleymills 0:ff9ebe0cf0e9 6 * @version 3.0 (December 2000)
ashleymills 0:ff9ebe0cf0e9 7 *
ashleymills 0:ff9ebe0cf0e9 8 * Optimised ANSI C code for the Rijndael cipher (now AES)
ashleymills 0:ff9ebe0cf0e9 9 *
ashleymills 0:ff9ebe0cf0e9 10 * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
ashleymills 0:ff9ebe0cf0e9 11 * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
ashleymills 0:ff9ebe0cf0e9 12 * @author Paulo Barreto <paulo.barreto@terra.com.br>
ashleymills 0:ff9ebe0cf0e9 13 *
ashleymills 0:ff9ebe0cf0e9 14 * This code is hereby placed in the public domain.
ashleymills 0:ff9ebe0cf0e9 15 *
ashleymills 0:ff9ebe0cf0e9 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
ashleymills 0:ff9ebe0cf0e9 17 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
ashleymills 0:ff9ebe0cf0e9 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ashleymills 0:ff9ebe0cf0e9 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
ashleymills 0:ff9ebe0cf0e9 20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
ashleymills 0:ff9ebe0cf0e9 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
ashleymills 0:ff9ebe0cf0e9 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
ashleymills 0:ff9ebe0cf0e9 23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
ashleymills 0:ff9ebe0cf0e9 24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
ashleymills 0:ff9ebe0cf0e9 25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
ashleymills 0:ff9ebe0cf0e9 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ashleymills 0:ff9ebe0cf0e9 27 */
ashleymills 0:ff9ebe0cf0e9 28 #ifndef __RIJNDAEL_H
ashleymills 0:ff9ebe0cf0e9 29 #define __RIJNDAEL_H
ashleymills 0:ff9ebe0cf0e9 30
ashleymills 0:ff9ebe0cf0e9 31 #define AES_MAXKEYBITS (256)
ashleymills 0:ff9ebe0cf0e9 32 #define AES_MAXKEYBYTES (AES_MAXKEYBITS/8)
ashleymills 0:ff9ebe0cf0e9 33 /* for 256-bit keys, fewer for less */
ashleymills 0:ff9ebe0cf0e9 34 #define AES_MAXROUNDS 14
ashleymills 0:ff9ebe0cf0e9 35
ashleymills 0:ff9ebe0cf0e9 36 /* bergmann: to avoid conflicts with typedefs from certain Contiki platforms,
ashleymills 0:ff9ebe0cf0e9 37 * the following type names have been prefixed with "aes_": */
ashleymills 0:ff9ebe0cf0e9 38 typedef unsigned char u_char;
ashleymills 0:ff9ebe0cf0e9 39 typedef unsigned char aes_u8;
ashleymills 0:ff9ebe0cf0e9 40 typedef unsigned short aes_u16;
ashleymills 0:ff9ebe0cf0e9 41 typedef unsigned int aes_u32;
ashleymills 0:ff9ebe0cf0e9 42
ashleymills 0:ff9ebe0cf0e9 43 /* The structure for key information */
ashleymills 0:ff9ebe0cf0e9 44 typedef struct {
ashleymills 0:ff9ebe0cf0e9 45 #ifdef WITH_AES_DECRYPT
ashleymills 0:ff9ebe0cf0e9 46 int enc_only; /* context contains only encrypt schedule */
ashleymills 0:ff9ebe0cf0e9 47 #endif
ashleymills 0:ff9ebe0cf0e9 48 int Nr; /* key-length-dependent number of rounds */
ashleymills 0:ff9ebe0cf0e9 49 aes_u32 ek[4*(AES_MAXROUNDS + 1)]; /* encrypt key schedule */
ashleymills 0:ff9ebe0cf0e9 50 #ifdef WITH_AES_DECRYPT
ashleymills 0:ff9ebe0cf0e9 51 aes_u32 dk[4*(AES_MAXROUNDS + 1)]; /* decrypt key schedule */
ashleymills 0:ff9ebe0cf0e9 52 #endif
ashleymills 0:ff9ebe0cf0e9 53 } rijndael_ctx;
ashleymills 0:ff9ebe0cf0e9 54
ashleymills 0:ff9ebe0cf0e9 55 int rijndael_set_key(rijndael_ctx *, const u_char *, int);
ashleymills 0:ff9ebe0cf0e9 56 int rijndael_set_key_enc_only(rijndael_ctx *, const u_char *, int);
ashleymills 0:ff9ebe0cf0e9 57 void rijndael_decrypt(rijndael_ctx *, const u_char *, u_char *);
ashleymills 0:ff9ebe0cf0e9 58 void rijndael_encrypt(rijndael_ctx *, const u_char *, u_char *);
ashleymills 0:ff9ebe0cf0e9 59
ashleymills 0:ff9ebe0cf0e9 60 int rijndaelKeySetupEnc(unsigned int [], const unsigned char [], int);
ashleymills 0:ff9ebe0cf0e9 61 int rijndaelKeySetupDec(unsigned int [], const unsigned char [], int);
ashleymills 0:ff9ebe0cf0e9 62 void rijndaelEncrypt(const unsigned int [], int, const unsigned char [],
ashleymills 0:ff9ebe0cf0e9 63 unsigned char []);
ashleymills 0:ff9ebe0cf0e9 64
ashleymills 0:ff9ebe0cf0e9 65 #endif /* __RIJNDAEL_H */