rijndael-alg-fst.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:2k
源码类别:

DVD

开发平台:

Others

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