DES3.H
上传用户:bjghjy
上传日期:2007-01-07
资源大小:379k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. #ifndef _MODULE_DES3_H_
  2. #define _MODULE_DES3_H_
  3. /*
  4.  *             des3 - NBS Data Encryption Standard Library
  5.  *
  6.  *         Copyright (c) 1992,93,94 by SWS. All Rights Reserved.
  7.  *       Stefan Wolf Software; Gartenstr 22; D-61449 Steinbach/Ts.
  8.  *           FAX: +49 (0) 6171 980483; CI$ Email: 100111,140
  9.  *
  10.  *    Synopsis: desinit(key)
  11.  * Description: intializes all arrays and permutation tables for 
  12.  *              single DES
  13.  *       Input: key -  64-bit DES key
  14.  *      Output: 0 if OK; >0 if a (semi) weak was selected
  15.  *
  16.  *    Synopsis: des3init(key)
  17.  * Description: intializes all arrays and permutation tables for
  18.  *              triple DES
  19.  *       Input: key -  128-bit DES key
  20.  *      Output: 0 if OK; >0 if a (semi) weak was selected
  21.  *
  22.  *    Synopsis: ecbXcode(inblock,outblock)
  23.  * Description: encrypts (X=en) or decrypts (X=de) 64-bit inblock to
  24.  *              64-bit outblock using single DES in ECB mode
  25.  *       Input: inblock  - pointer to 64-bit buffer of input data
  26.  *              outblock - pointer to 64-bit buffer for output data
  27.  *      Output: 0 if OK                                        
  28.  *
  29.  *    Synopsis: ecb3Xcode(inblock,outblock)
  30.  * Description: encrypts (X=en) or decrypts (X=de) 64-bit inblock to
  31.  *              64-bit outblock using triple DES in ECB mode
  32.  *       Input: inblock  - pointer to 64-bit buffer of input data
  33.  *              outblock - pointer to 64-bit buffer for output data
  34.  *      Output: 0 if OK
  35.  *
  36.  *    Synopsis: cbcXcode(inblock,outblock,ivec)
  37.  * Description: encrypts (X=en) or decrypts (X=de) 64-bit inblock to
  38.  *              64-bit outblock using single DES in CBC mode
  39.  *       Input: inblock  - pointer to 64-bit buffer of input data
  40.  *              outblock - pointer to 64-bit buffer for output data
  41.  *              ivec     - pointer to 64-bit initilization vector
  42.  *      Output: 0 if OK
  43.  *
  44.  *    Synopsis: cbc3Xcode(inblock,outblock,ivec)
  45.  * Description: encrypts (X=en) or decrypts (X=de) 64-bit inblock to
  46.  *              64-bit outblock using triple DES in CBC mode
  47.  *       Input: inblock  - pointer to 64-bit buffer of input data
  48.  *              outblock - pointer to 64-bit buffer for output data
  49.  *              ivec     - pointer to 64-bit initilization vector
  50.  *      Output: 0 if OK
  51.  *
  52.  */
  53. typedef unsigned char uchar;
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif /* __cplusplus */
  57. #if defined(WIN16)
  58. #define DECL int far pascal
  59. #define UCHAR uchar far
  60. #endif /* WIN16 */
  61. #if defined(WIN32)
  62. /* remove pascal for MS VC */
  63. /*#define DECL  __declspec( dllimport ) int */
  64. #define DECL  int pascal
  65. /*#define DECL  int*/
  66. #define UCHAR uchar
  67. #endif /* WIN32 */
  68. #if !defined(WIN16) && !defined(WIN32)
  69. #define DECL int
  70. #define UCHAR uchar
  71. #endif /* !WIN16 && !WIN32 */
  72. DECL desinit(UCHAR *key1);
  73. DECL ecbencode(UCHAR *inblock, UCHAR *outblock);
  74. DECL ecbdecode(UCHAR *inblock, UCHAR *outblock);
  75. DECL cbcencode(UCHAR *inblock, UCHAR *outblock, UCHAR *ivec);
  76. DECL cbcdecode(UCHAR *inblock, UCHAR *outblock, UCHAR *ivec);
  77. DECL des3init(UCHAR *key3);
  78. DECL ecb3encode(UCHAR *inblock, UCHAR *outblock);          
  79. DECL ecb3decode(UCHAR *inblock, UCHAR *outblock);
  80. DECL cbc3encode(UCHAR *inblock, UCHAR *outblock, UCHAR *ivec);
  81. DECL cbc3decode(UCHAR *inblock, UCHAR *outblock, UCHAR *ivec);
  82. #ifdef __cplusplus
  83. }
  84. #endif /* __cplusplus */
  85. #endif /* _MODULE_DES3_H_ */
  86.