1 /* rijndael-alg-fst.h --- Rijndael cipher implementation. 2 * Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc. 3 * 4 * This file is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License as 6 * published by the Free Software Foundation; either version 2.1 of the 7 * License, or (at your option) any later version. 8 * 9 * This file is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 * 17 */ 18 19 /* Adapted for gnulib by Simon Josefsson. */ 20 21 /** 22 * rijndael-alg-fst.h 23 * 24 * @version 3.0 (December 2000) 25 * 26 * Optimised ANSI C code for the Rijndael cipher (now AES) 27 * 28 * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be> 29 * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be> 30 * @author Paulo Barreto <paulo.barreto@terra.com.br> 31 * 32 * This code is hereby placed in the public domain. 33 * 34 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS 35 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 36 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 37 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE 38 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 39 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 40 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 41 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 42 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 43 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 44 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 45 */ 46 #ifndef __RIJNDAEL_ALG_FST_H 47 #define __RIJNDAEL_ALG_FST_H 48 49 #include <stdint.h> 50 #include <stddef.h> 51 52 #define RIJNDAEL_MAXKC (256/32) 53 #define RIJNDAEL_MAXKB (256/8) 54 #define RIJNDAEL_MAXNR 14 55 56 int rijndaelKeySetupEnc (uint32_t rk[ /*4*(Nr + 1) */ ], 57 const char cipherKey[], size_t keyBits); 58 int rijndaelKeySetupDec (uint32_t rk[ /*4*(Nr + 1) */ ], 59 const char cipherKey[], size_t keyBits); 60 void rijndaelEncrypt (const uint32_t rk[ /*4*(Nr + 1) */ ], size_t Nr, 61 const char pt[16], char ct[16]); 62 void rijndaelDecrypt (const uint32_t rk[ /*4*(Nr + 1) */ ], size_t Nr, 63 const char ct[16], char pt[16]); 64 65 #endif /* __RIJNDAEL_ALG_FST_H */