Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
16.04.2013
Размер:
4.25 Кб
Скачать
/*----------------------------------------------------
  gost.h -- ®ЇЁб ­Ёп ¤ ­­ле Ё  Їа®в®вЁЇл дг­ЄжЁ© иЁд-
	    а®ў ­Ёп Ї® ѓЋ‘’ 28147-89.
  ----------------------------------------------------
  ‚ҐабЁп 2.01 ®в 05.07.98, (c)1994,1998 ‚Ё­®Єга®ў Ђ.ћ.
  ----------------------------------------------------
  ‚ аЁ ­вл Є®¬ЇЁ«пжЁЁ:
  ‘Ё¬ў®« VarKey:
  - Ґб«Ё ­Ґ ®ЇаҐ¤Ґ«Ґ­, ¤«Ё­  Є«оз  ў дг­ЄжЁпе иЁда®-
    ў ­Ёп дЁЄбЁа®ў ­  Ё ­Ґ ЇҐаҐ¤ Ґвбп Є Є Ї а ¬Ґва;
  - Ґб«Ё ®ЇаҐ¤Ґ«Ґ­, ¤«Ё­  Є«оз  ЇҐаҐ¤ Ґвбп Є Є Ї а -
    ¬Ґва ў дг­ЄжЁЁ иЁда®ў ­Ёп;
  ‘Ё¬ў®« CryptoImport:
  - Ґб«Ё ®ЇаҐ¤Ґ«Ґ­, ЄаЁЇв®дг­ЄжЁЁ ®ЇЁблў овбп Є Є
    __import - дг­ЄжЁЁ.
  ----------------------------------------------------
*/
// Њ Єа®бл ¤«п б®ў¬ҐбвЁ¬®бвЁ б ЇаҐ¤л¤гйЁ¬Ё ўҐабЁп¬Ё
#define ExpKey31(s,t)  ExpandKey(s,t,8,4,8)
#define ExpKey33(s,t)  ExpandKey(s,t,8,6,56)
#define ExpKey13(s,t)  ExpandKey(s,t,8,4,14)

#ifdef _WIN32
  #define near
  #define far
  #define _cdecl_ __cdecl
  typedef unsigned long _word_; // бв ­¤ ав­®Ґ б«®ў®
#else
  #define _cdecl_
  typedef unsigned short _word_;// бв ­¤ ав­®Ґ б«®ў®
#endif

#ifdef CryptoImport
  #define _IMPORT_ __import
#else
  #define _IMPORT_
#endif

typedef unsigned long  Item;	// н«Ґ¬Ґ­в ¤ ­­ле

typedef struct			// ЄаЁЇв®Ў«®Є
{
  Item low,high;
} CrBlock;

#ifdef _cplusplus
extern "C" {
#endif

void _cdecl_ _IMPORT_ ExpCht (   // ђ биЁаҐ­ЁҐ в Ў«Ёжл § ¬Ґ­
  Item far *source,     //   ®Ў« бвм Ёб室­®© ’‡
  Item far *target);    //   ®Ў« бвм а биЁаҐ­­®© ’‡

void _cdecl_ _IMPORT_ ExpandKey (// ‹оЎ®Ґ а биЁаҐ­ЁҐ Є«оз 
  Item far *source,     //   ®Ў« бвм Ёб室­®Ј® Є«оз 
  Item far *target,     //   ®Ў« бвм а биЁаҐ­. Є«оз 
  _word_   KeyLength,	//   а §¬Ґа Є«оз 
  _word_   KeyRepeat,   //   зЁб«® Ї®ўв®аҐ­Ё© Є«оз 
  _word_   ReapeatMask,
                   ...);//   ¬ бЄ  Ї®ўв®аҐ­Ё© Є«оз 

void _cdecl_ _IMPORT_ gamma (    // ѓ ¬¬Ёа®ў ­ЁҐ ¤ ­­ле
  Item far *key,        //    ¤аҐб Є«оз 
  Item far *synchro,    //    ¤аҐб бЁ­еа®Ї®бл«ЄЁ
  void far *xcht,	//    ¤аҐб в Ў«Ёжл § ¬Ґ­
  void far *data,       //    ¤аҐб Ј ¬¬Ёа㥬ле ¤ ­­ле
  _word_   blocks       //   зЁб«® иЁда㥬ле Ў«®Є®ў
#ifdef VarKey
 ,_word_   keylen       //   ¤«Ё­  Є«оз  ў н«Ґ¬Ґ­в е
#endif
  );

void _cdecl_ _IMPORT_ gamme  (   // ‚ла Ў®вЄ  Ј ¬¬л
  Item far *key,        //    ¤аҐб Є«оз 
  Item far *synchro,    //    ¤аҐб бЁ­еа®Ї®бл«ЄЁ
  void far *xcht,	//    ¤аҐб в Ў«Ёжл § ¬Ґ­
  void far *data,       //    ¤аҐб Ј ¬¬Ёа㥬ле ¤ ­­ле
  _word_   blocks       //   зЁб«® иЁда㥬ле Ў«®Є®ў
#ifdef VarKey
 ,_word_   keylen       //   ¤«Ё­  Є«оз  ў н«Ґ¬Ґ­в е
#endif
  );

void _cdecl_ _IMPORT_ gammaLE(   // ‡ иЁда®ў ­ЁҐ-Ј ¬¬Ёа. б Ћ‘
  Item far *key,        //    ¤аҐб Є«оз 
  Item far *synchro,    //    ¤аҐб бЁ­еа®Ї®бл«ЄЁ
  void far *xcht,	//    ¤аҐб в Ў«Ёжл § ¬Ґ­
  void far *data,       //    ¤аҐб Ј ¬¬Ёа㥬ле ¤ ­­ле
  _word_   blocks       //   зЁб«® иЁда㥬ле Ў«®Є®ў
#ifdef VarKey
 ,_word_   keylen       //   ¤«Ё­  Є«оз  ў н«Ґ¬Ґ­в е
#endif
  );

void _cdecl_ _IMPORT_ gammaLD(   // ђ биЁда®ў ­ЁҐ-Ј ¬¬Ёа. б Ћ‘
  Item far *key,        //    ¤аҐб Є«оз 
  Item far *synchro,    //    ¤аҐб бЁ­еа®Ї®бл«ЄЁ
  void far *xcht,	//    ¤аҐб в Ў«Ёжл § ¬Ґ­
  void far *data,       //    ¤аҐбЈ ¬¬Ёа㥬ле ¤ ­­ле
  _word_   blocks       //   зЁб«® иЁда㥬ле Ў«®Є®ў
#ifdef VarKey
 ,_word_   keylen       //   ¤«Ё­  Є«оз  ў н«Ґ¬Ґ­в е
#endif
  );

void _cdecl_ _IMPORT_ simple(    // Ёда®ў ­ЁҐ Їа®бв®© § ¬Ґ­®©
  Item far *key,        //    ¤аҐб Є«оз 
  void far *data,       //    ¤аҐб иЁда㥬ле ¤ ­­ле
  void far *xcht,	//    ¤аҐб в Ў«Ёжл § ¬Ґ­
  _word_   blocks       //   зЁб«® иЁда㥬ле Ў«®Є®ў
#ifdef VarKey
 ,_word_   keylen       //   ¤«Ё­  Є«оз  ў н«Ґ¬Ґ­в е
#endif
  );

Item _cdecl_ _IMPORT_ imito  (   // ‚лзЁб«Ґ­ЁҐ Ё¬Ёв®ЇаЁбв ўЄЁ
  Item far *key,        //    ¤аҐб Є«оз 
  Item far *combine,    //    ¤аҐб ­ з «м­®© Є®¬ЎЁ­ жЁЁ
  void far *xcht,	//    ¤аҐб в Ў«Ёжл § ¬Ґ­
  void far *data,       //    ¤аҐб Ј ¬¬Ёа㥬ле ¤ ­­ле
  _word_   blocks       //   зЁб«® Ў«®Є®ў
#ifdef VarKey
 ,_word_   keylen       //   ¤«Ё­  Є«оз  ў н«Ґ¬Ґ­в е
#endif
  );
#ifdef _cplusplus
}  
#endif


//#ifdef _WIN32
//  #undef near
//  #undef far
//#endif
Соседние файлы в папке GOST_A32
  • #
    16.04.20132.58 Кб25EXPCHT_.ASM
  • #
    16.04.20132.34 Кб25EXPKEY_.ASM
  • #
    16.04.20134.21 Кб25GAMMALD_.ASM
  • #
    16.04.20134.52 Кб25GAMMALE_.ASM
  • #
    16.04.20134.4 Кб25GAMMA_.ASM
  • #
    16.04.20134.25 Кб27GOST.H
  • #
    16.04.2013121 б26GOST32.DEF
  • #
    16.04.20133.07 Кб26GOST32.DLL
  • #
    16.04.20135.01 Кб25GOST32.LIB
  • #
    16.04.20131.47 Кб25GOST32.MAK
  • #
    16.04.2013691 б25GOST32D.MAK