diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-09-25 13:22:02 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2012-02-12 13:59:52 +0100 |
commit | e0fbfaa64239dd2611f1539173d0de3b053ac779 (patch) | |
tree | b321232a8097bdfb9e14161a462cc9dac9bc5f9b /src/ocb/rijndael-alg-fst.h | |
parent | 269297401c5b63f3f462a66b2e7652e726ad605a (diff) | |
download | cmumble-e0fbfaa64239dd2611f1539173d0de3b053ac779.tar.gz cmumble-e0fbfaa64239dd2611f1539173d0de3b053ac779.tar.bz2 cmumble-e0fbfaa64239dd2611f1539173d0de3b053ac779.zip |
Import ocb, needed for OCB-AES-128 encryption in UDP mode
The code is imported since there is no shared library available.
It can be retreived from:
http://www.cs.ucdavis.edu/~rogaway/ocb/ocb-code.htm
Diffstat (limited to 'src/ocb/rijndael-alg-fst.h')
-rw-r--r-- | src/ocb/rijndael-alg-fst.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/ocb/rijndael-alg-fst.h b/src/ocb/rijndael-alg-fst.h new file mode 100644 index 0000000..f093e5b --- /dev/null +++ b/src/ocb/rijndael-alg-fst.h @@ -0,0 +1,47 @@ +/** + * rijndael-alg-fst.h + * + * @version 3.0 (December 2000) + * + * Optimised ANSI C code for the Rijndael cipher (now AES) + * + * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be> + * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be> + * @author Paulo Barreto <paulo.barreto@terra.com.br> + * + * This code is hereby placed in the public domain. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef __RIJNDAEL_ALG_FST_H +#define __RIJNDAEL_ALG_FST_H + +#define MAXKC (256/32) +#define MAXKB (256/8) +#define MAXNR 14 + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned int u32; + +int rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits); +int rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits); +void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]); +void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 ct[16], u8 pt[16]); + +#ifdef INTERMEDIATE_VALUE_KAT +void rijndaelEncryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds); +void rijndaelDecryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds); +#endif /* INTERMEDIATE_VALUE_KAT */ + +#endif /* __RIJNDAEL_ALG_FST_H */ |