Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Документация по криптоалгоритмам / GOST-28147-89 / GOST_A32 / GOST
.H/*----------------------------------------------------
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