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

外挂编程

开发平台:

Windows_Unix

  1. #ifndef _TURTLE_H_
  2. #define _TURTLE_H_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*
  7.  * turtle/hare reference implementation
  8.  * Matt Blaze
  9.  * September, 1996
  10.  */
  11. #define TURTLEMAXN 16 /* max blocksize in TURTLEWORDs */
  12. /* these next three must be changed together */
  13. #define TURTLEBITS 8 /* word size in bits */
  14. #define NTURTLEWORDS 256 /* 2^TURTLEBITS */
  15. #define TURTLEWORD unsigned char /* unsigned data type with TURTLEBITS bits */
  16. /*
  17.  * basic turtle key data structure
  18.  */
  19. typedef struct {
  20.         int n; /* the blocksize (must be power of 2 and at least 2) */
  21.         int rr[4]; /* the outer round subkey indexes */
  22. TURTLEWORD sbox[TURTLEMAXN*TURTLEMAXN][NTURTLEWORDS]; /* key tables */
  23. } TK;
  24. /*
  25.  * basic hare key data structure
  26.  */
  27. typedef struct {
  28. TURTLEWORD r, l;/* current r and 1 counter state */
  29. int table;     /* current table (0 or 1) */
  30. TURTLEWORD sbox[2][4][NTURTLEWORDS];
  31. } HK;
  32. int turtle_key (TURTLEWORD *shortkey, int len, TK *key, int n);
  33. int turtle_encrypt (TURTLEWORD *blk, TK *key);
  34. int turtle_decrypt (TURTLEWORD *blk, TK *key);
  35. int hare_key (TURTLEWORD *shortkey, int len, HK *key);
  36. TURTLEWORD hare_stream(HK *key);
  37. #ifdef __cplusplus
  38. }
  39. #endif
  40. #endif /* _TURTLE_H_ */