⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gost.c

📁 arj source code
💻 C
字号:
/* * $Id: gost.c,v 1.2 2003/04/27 20:54:42 andrew_belov Exp $ * --------------------------------------------------------------------------- * This file  contains basic  GOST encryption-related initialization  data and * code. * */#include "arj.h"DEBUGHDR(__FILE__)                      /* Debug information block *//* Makes a 1024-byte pattern for encryption */void calc_gost_pattern(){ int i; for(i=0; i<256; i++) {  pattern[0][i]=(seed[0][i>>4]<<4)|(seed[1][i&0x0F]);  pattern[1][i]=(seed[2][i>>4]<<4)|(seed[3][i&0x0F]);  pattern[2][i]=(seed[4][i>>4]<<4)|(seed[5][i&0x0F]);  pattern[3][i]=(seed[6][i>>4]<<4)|(seed[7][i&0x0F]); }}/* Basic step of GOST encoding */#ifdef WORDS_BIGENDIAN#define _dptr(i) (dptr[3-(i)])#else#define _dptr(i) (dptr[  (i)])#endifunsigned long gost_term(unsigned long data){ unsigned char *dptr; unsigned short p1, p2; unsigned short hi, lo; dptr=(unsigned char *)&data; p1=(pattern[0][_dptr(3)]<<8)+pattern[1][_dptr(2)]; p2=(pattern[2][_dptr(1)]<<8)+pattern[3][_dptr(0)]; hi=(p1<<GSH_BITS)|(p2>>(16-GSH_BITS)); lo=(p2<<GSH_BITS)|(p1>>(16-GSH_BITS)); return(((unsigned long)hi<<16)+(unsigned long)lo);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -