rijndael-alg-fst.h
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. /**
  2.  * rijndael-alg-fst.h
  3.  * You're probably looking for aes-cfb.h, which is easier to use.
  4.  *
  5.  * @version 3.0 (December 2000)
  6.  *
  7.  * Optimised ANSI C code for the Rijndael cipher (now AES)
  8.  *
  9.  * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
  10.  * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
  11.  * @author Paulo Barreto <paulo.barreto@terra.com.br>
  12.  *
  13.  * This code is hereby placed in the public domain.
  14.  *
  15.  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
  16.  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  17.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
  19.  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  20.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  21.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  22.  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  23.  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  24.  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  25.  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  26.  */
  27. #ifndef __RIJNDAEL_ALG_FST_H
  28. #define __RIJNDAEL_ALG_FST_H
  29. #define MAXKC (256/32)
  30. #define MAXKB (256/8)
  31. #define MAXNR 14
  32. typedef unsigned char u8;
  33. typedef unsigned short u16;
  34. typedef unsigned int u32;
  35. int rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits);
  36. int rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits);
  37. void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]);
  38. void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 ct[16], u8 pt[16]);
  39. #ifdef INTERMEDIATE_VALUE_KAT
  40. void rijndaelEncryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds);
  41. void rijndaelDecryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds);
  42. #endif /* INTERMEDIATE_VALUE_KAT */
  43. #endif /* __RIJNDAEL_ALG_FST_H */