📄 debug.h
字号:
#ifdef DEBUG /* keep these macros common so they are same for both versions */CONST int debugCompile = 1;extern int debug;extern void DebugIO(CONST char *s); /* display the debug output */#define DebugDump(x,s,R,XOR,doRot,showT,needBswap) \ { if (debug) _Dump(x,s,R,XOR,doRot,showT,needBswap,t0,t1); }#define DebugDumpKey(key) { if (debug) _DumpKey(key); }#define IV_ROUND -100 void _Dump(CONST void *p,CONST char *s,int R,int XOR,int doRot,int showT,int needBswap, DWORD t0,DWORD t1) { char line[512]; /* build output here */ int i,n; DWORD q[4]; if (R == IV_ROUND) sprintf(line,"%sIV: ",s); else sprintf(line,"%sR[%2d]: ",s,R); for (n=0;line[n];n++) ; for (i=0;i<4;i++) { q[i]=((CONST DWORD *)p)[i^(XOR)]; if (needBswap) q[i]=Bswap(q[i]); } sprintf(line+n,"x= %08lX %08lX %08lX %08lX.", ROR(q[0],doRot*(R )/2), ROL(q[1],doRot*(R )/2), ROR(q[2],doRot*(R+1)/2), ROL(q[3],doRot*(R+1)/2)); for (;line[n];n++) ; if (showT) sprintf(line+n," t0=%08lX. t1=%08lX.",t0,t1); for (;line[n];n++) ; sprintf(line+n,"\n"); DebugIO(line); }void _DumpKey(CONST keyInstance *key) { char line[512]; int i; int k64Cnt=(key->keyLen+63)/64; /* round up to next multiple of 64 bits */ int subkeyCnt = ROUND_SUBKEYS + 2*key->numRounds; sprintf(line,";\n;makeKey: Input key --> S-box key [%s]\n", (key->direction == DIR_ENCRYPT) ? "Encrypt" : "Decrypt"); DebugIO(line); for (i=0;i<k64Cnt;i++) /* display in RS format */ { sprintf(line,";%12s %08lX %08lX --> %08lX\n","", key->key32[2*i+1],key->key32[2*i],key->sboxKeys[k64Cnt-1-i]); DebugIO(line); } sprintf(line,";%11sSubkeys\n",""); DebugIO(line); for (i=0;i<subkeyCnt/2;i++) { sprintf(line,";%12s %08lX %08lX%s\n","",key->subKeys[2*i],key->subKeys[2*i+1], (2*i == INPUT_WHITEN) ? " Input whiten" : (2*i == OUTPUT_WHITEN) ? " Output whiten" : (2*i == ROUND_SUBKEYS) ? " Round subkeys" : ""); DebugIO(line); } DebugIO(";\n"); }#elseCONST int debugCompile = 0;#define DebugDump(x,s,R,XOR,doRot,showT,needBswap)#define DebugDumpKey(key)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -