Lines Matching refs:b

47 #define ROUND(b, i) do {                                                                         \  argument
48 b[0] = (safer_ebox[(b[0] ^ skey->saferp.K[i][0]) & 255] + skey->saferp.K[i+1][0]) & 255; \
49 b[1] = safer_lbox[(b[1] + skey->saferp.K[i][1]) & 255] ^ skey->saferp.K[i+1][1]; \
50 b[2] = safer_lbox[(b[2] + skey->saferp.K[i][2]) & 255] ^ skey->saferp.K[i+1][2]; \
51 b[3] = (safer_ebox[(b[3] ^ skey->saferp.K[i][3]) & 255] + skey->saferp.K[i+1][3]) & 255; \
52 b[4] = (safer_ebox[(b[4] ^ skey->saferp.K[i][4]) & 255] + skey->saferp.K[i+1][4]) & 255; \
53 b[5] = safer_lbox[(b[5] + skey->saferp.K[i][5]) & 255] ^ skey->saferp.K[i+1][5]; \
54 b[6] = safer_lbox[(b[6] + skey->saferp.K[i][6]) & 255] ^ skey->saferp.K[i+1][6]; \
55 b[7] = (safer_ebox[(b[7] ^ skey->saferp.K[i][7]) & 255] + skey->saferp.K[i+1][7]) & 255; \
56 b[8] = (safer_ebox[(b[8] ^ skey->saferp.K[i][8]) & 255] + skey->saferp.K[i+1][8]) & 255; \
57 b[9] = safer_lbox[(b[9] + skey->saferp.K[i][9]) & 255] ^ skey->saferp.K[i+1][9]; \
58 b[10] = safer_lbox[(b[10] + skey->saferp.K[i][10]) & 255] ^ skey->saferp.K[i+1][10]; \
59 b[11] = (safer_ebox[(b[11] ^ skey->saferp.K[i][11]) & 255] + skey->saferp.K[i+1][11]) & 255; \
60 b[12] = (safer_ebox[(b[12] ^ skey->saferp.K[i][12]) & 255] + skey->saferp.K[i+1][12]) & 255; \
61 b[13] = safer_lbox[(b[13] + skey->saferp.K[i][13]) & 255] ^ skey->saferp.K[i+1][13]; \
62 b[14] = safer_lbox[(b[14] + skey->saferp.K[i][14]) & 255] ^ skey->saferp.K[i+1][14]; \
63 b[15] = (safer_ebox[(b[15] ^ skey->saferp.K[i][15]) & 255] + skey->saferp.K[i+1][15]) & 255; \
67 #define iROUND(b, i) do { \ argument
68 b[0] = safer_lbox[(b[0] - skey->saferp.K[i+1][0]) & 255] ^ skey->saferp.K[i][0]; \
69 b[1] = (safer_ebox[(b[1] ^ skey->saferp.K[i+1][1]) & 255] - skey->saferp.K[i][1]) & 255; \
70 b[2] = (safer_ebox[(b[2] ^ skey->saferp.K[i+1][2]) & 255] - skey->saferp.K[i][2]) & 255; \
71 b[3] = safer_lbox[(b[3] - skey->saferp.K[i+1][3]) & 255] ^ skey->saferp.K[i][3]; \
72 b[4] = safer_lbox[(b[4] - skey->saferp.K[i+1][4]) & 255] ^ skey->saferp.K[i][4]; \
73 b[5] = (safer_ebox[(b[5] ^ skey->saferp.K[i+1][5]) & 255] - skey->saferp.K[i][5]) & 255; \
74 b[6] = (safer_ebox[(b[6] ^ skey->saferp.K[i+1][6]) & 255] - skey->saferp.K[i][6]) & 255; \
75 b[7] = safer_lbox[(b[7] - skey->saferp.K[i+1][7]) & 255] ^ skey->saferp.K[i][7]; \
76 b[8] = safer_lbox[(b[8] - skey->saferp.K[i+1][8]) & 255] ^ skey->saferp.K[i][8]; \
77 b[9] = (safer_ebox[(b[9] ^ skey->saferp.K[i+1][9]) & 255] - skey->saferp.K[i][9]) & 255; \
78 b[10] = (safer_ebox[(b[10] ^ skey->saferp.K[i+1][10]) & 255] - skey->saferp.K[i][10]) & 255; \
79 b[11] = safer_lbox[(b[11] - skey->saferp.K[i+1][11]) & 255] ^ skey->saferp.K[i][11]; \
80 b[12] = safer_lbox[(b[12] - skey->saferp.K[i+1][12]) & 255] ^ skey->saferp.K[i][12]; \
81 b[13] = (safer_ebox[(b[13] ^ skey->saferp.K[i+1][13]) & 255] - skey->saferp.K[i][13]) & 255; \
82 b[14] = (safer_ebox[(b[14] ^ skey->saferp.K[i+1][14]) & 255] - skey->saferp.K[i][14]) & 255; \
83 b[15] = safer_lbox[(b[15] - skey->saferp.K[i+1][15]) & 255] ^ skey->saferp.K[i][15]; \
87 #define PHT(b) do { \ argument
88 b[0] = (b[0] + (b[1] = (b[0] + b[1]) & 255)) & 255; \
89 b[2] = (b[2] + (b[3] = (b[3] + b[2]) & 255)) & 255; \
90 b[4] = (b[4] + (b[5] = (b[5] + b[4]) & 255)) & 255; \
91 b[6] = (b[6] + (b[7] = (b[7] + b[6]) & 255)) & 255; \
92 b[8] = (b[8] + (b[9] = (b[9] + b[8]) & 255)) & 255; \
93 b[10] = (b[10] + (b[11] = (b[11] + b[10]) & 255)) & 255; \
94 b[12] = (b[12] + (b[13] = (b[13] + b[12]) & 255)) & 255; \
95 b[14] = (b[14] + (b[15] = (b[15] + b[14]) & 255)) & 255; \
99 #define iPHT(b) do { \ argument
100 b[15] = (b[15] - (b[14] = (b[14] - b[15]) & 255)) & 255; \
101 b[13] = (b[13] - (b[12] = (b[12] - b[13]) & 255)) & 255; \
102 b[11] = (b[11] - (b[10] = (b[10] - b[11]) & 255)) & 255; \
103 b[9] = (b[9] - (b[8] = (b[8] - b[9]) & 255)) & 255; \
104 b[7] = (b[7] - (b[6] = (b[6] - b[7]) & 255)) & 255; \
105 b[5] = (b[5] - (b[4] = (b[4] - b[5]) & 255)) & 255; \
106 b[3] = (b[3] - (b[2] = (b[2] - b[3]) & 255)) & 255; \
107 b[1] = (b[1] - (b[0] = (b[0] - b[1]) & 255)) & 255; \
111 #define SHUF(b, b2) do { \ argument
112 b2[0] = b[8]; b2[1] = b[11]; b2[2] = b[12]; b2[3] = b[15]; \
113 b2[4] = b[2]; b2[5] = b[1]; b2[6] = b[6]; b2[7] = b[5]; \
114 b2[8] = b[10]; b2[9] = b[9]; b2[10] = b[14]; b2[11] = b[13]; \
115 b2[12] = b[0]; b2[13] = b[7]; b2[14] = b[4]; b2[15] = b[3]; \
119 #define iSHUF(b, b2) do { \ argument
120 b2[0] = b[12]; b2[1] = b[5]; b2[2] = b[4]; b2[3] = b[15]; \
121 b2[4] = b[14]; b2[5] = b[7]; b2[6] = b[6]; b2[7] = b[13]; \
122 b2[8] = b[0]; b2[9] = b[9]; b2[10] = b[8]; b2[11] = b[1]; \
123 b2[12] = b[2]; b2[13] = b[11]; b2[14] = b[10]; b2[15] = b[3]; \
130 #define LT(b, b2) do { \ argument
131 PHT(b); SHUF(b, b2); \
132 PHT(b2); SHUF(b2, b); \
133 PHT(b); SHUF(b, b2); \
138 #define iLT(b, b2) do { \ argument
139 iPHT(b); \
140 iSHUF(b, b2); iPHT(b2); \
141 iSHUF(b2, b); iPHT(b); \
142 iSHUF(b, b2); iPHT(b2); \
147 static void _round(unsigned char *b, int i, const symmetric_key *skey) in _round() argument
149 ROUND(b, i); in _round()
152 static void _iround(unsigned char *b, int i, const symmetric_key *skey) in _iround() argument
154 iROUND(b, i); in _iround()
157 static void _lt(unsigned char *b, unsigned char *b2) in _lt() argument
159 LT(b, b2); in _lt()
162 static void _ilt(unsigned char *b, unsigned char *b2) in _ilt() argument
164 iLT(b, b2); in _ilt()
168 #define ROUND(b, i) _round(b, i, skey) argument
171 #define iROUND(b, i) _iround(b, i, skey) argument
174 #define LT(b, b2) _lt(b, b2) argument
177 #define iLT(b, b2) _ilt(b, b2) argument
344 unsigned char b[16]; in saferp_ecb_encrypt() local
353 b[x] = pt[x]; in saferp_ecb_encrypt()
355 ROUND(b, 0); LT(b, ct); in saferp_ecb_encrypt()
356 ROUND(ct, 2); LT(ct, b); in saferp_ecb_encrypt()
357 ROUND(b, 4); LT(b, ct); in saferp_ecb_encrypt()
358 ROUND(ct, 6); LT(ct, b); in saferp_ecb_encrypt()
359 ROUND(b, 8); LT(b, ct); in saferp_ecb_encrypt()
360 ROUND(ct, 10); LT(ct, b); in saferp_ecb_encrypt()
361 ROUND(b, 12); LT(b, ct); in saferp_ecb_encrypt()
362 ROUND(ct, 14); LT(ct, b); in saferp_ecb_encrypt()
365 ROUND(b, 16); LT(b, ct); in saferp_ecb_encrypt()
366 ROUND(ct, 18); LT(ct, b); in saferp_ecb_encrypt()
367 ROUND(b, 20); LT(b, ct); in saferp_ecb_encrypt()
368 ROUND(ct, 22); LT(ct, b); in saferp_ecb_encrypt()
372 ROUND(b, 24); LT(b, ct); in saferp_ecb_encrypt()
373 ROUND(ct, 26); LT(ct, b); in saferp_ecb_encrypt()
374 ROUND(b, 28); LT(b, ct); in saferp_ecb_encrypt()
375 ROUND(ct, 30); LT(ct, b); in saferp_ecb_encrypt()
377 ct[0] = b[0] ^ skey->saferp.K[skey->saferp.rounds*2][0]; in saferp_ecb_encrypt()
378 ct[1] = (b[1] + skey->saferp.K[skey->saferp.rounds*2][1]) & 255; in saferp_ecb_encrypt()
379 ct[2] = (b[2] + skey->saferp.K[skey->saferp.rounds*2][2]) & 255; in saferp_ecb_encrypt()
380 ct[3] = b[3] ^ skey->saferp.K[skey->saferp.rounds*2][3]; in saferp_ecb_encrypt()
381 ct[4] = b[4] ^ skey->saferp.K[skey->saferp.rounds*2][4]; in saferp_ecb_encrypt()
382 ct[5] = (b[5] + skey->saferp.K[skey->saferp.rounds*2][5]) & 255; in saferp_ecb_encrypt()
383 ct[6] = (b[6] + skey->saferp.K[skey->saferp.rounds*2][6]) & 255; in saferp_ecb_encrypt()
384 ct[7] = b[7] ^ skey->saferp.K[skey->saferp.rounds*2][7]; in saferp_ecb_encrypt()
385 ct[8] = b[8] ^ skey->saferp.K[skey->saferp.rounds*2][8]; in saferp_ecb_encrypt()
386 ct[9] = (b[9] + skey->saferp.K[skey->saferp.rounds*2][9]) & 255; in saferp_ecb_encrypt()
387 ct[10] = (b[10] + skey->saferp.K[skey->saferp.rounds*2][10]) & 255; in saferp_ecb_encrypt()
388 ct[11] = b[11] ^ skey->saferp.K[skey->saferp.rounds*2][11]; in saferp_ecb_encrypt()
389 ct[12] = b[12] ^ skey->saferp.K[skey->saferp.rounds*2][12]; in saferp_ecb_encrypt()
390 ct[13] = (b[13] + skey->saferp.K[skey->saferp.rounds*2][13]) & 255; in saferp_ecb_encrypt()
391 ct[14] = (b[14] + skey->saferp.K[skey->saferp.rounds*2][14]) & 255; in saferp_ecb_encrypt()
392 ct[15] = b[15] ^ skey->saferp.K[skey->saferp.rounds*2][15]; in saferp_ecb_encrypt()
394 zeromem(b, sizeof(b)); in saferp_ecb_encrypt()
408 unsigned char b[16]; in saferp_ecb_decrypt() local
416 b[0] = ct[0] ^ skey->saferp.K[skey->saferp.rounds*2][0]; in saferp_ecb_decrypt()
417 b[1] = (ct[1] - skey->saferp.K[skey->saferp.rounds*2][1]) & 255; in saferp_ecb_decrypt()
418 b[2] = (ct[2] - skey->saferp.K[skey->saferp.rounds*2][2]) & 255; in saferp_ecb_decrypt()
419 b[3] = ct[3] ^ skey->saferp.K[skey->saferp.rounds*2][3]; in saferp_ecb_decrypt()
420 b[4] = ct[4] ^ skey->saferp.K[skey->saferp.rounds*2][4]; in saferp_ecb_decrypt()
421 b[5] = (ct[5] - skey->saferp.K[skey->saferp.rounds*2][5]) & 255; in saferp_ecb_decrypt()
422 b[6] = (ct[6] - skey->saferp.K[skey->saferp.rounds*2][6]) & 255; in saferp_ecb_decrypt()
423 b[7] = ct[7] ^ skey->saferp.K[skey->saferp.rounds*2][7]; in saferp_ecb_decrypt()
424 b[8] = ct[8] ^ skey->saferp.K[skey->saferp.rounds*2][8]; in saferp_ecb_decrypt()
425 b[9] = (ct[9] - skey->saferp.K[skey->saferp.rounds*2][9]) & 255; in saferp_ecb_decrypt()
426 b[10] = (ct[10] - skey->saferp.K[skey->saferp.rounds*2][10]) & 255; in saferp_ecb_decrypt()
427 b[11] = ct[11] ^ skey->saferp.K[skey->saferp.rounds*2][11]; in saferp_ecb_decrypt()
428 b[12] = ct[12] ^ skey->saferp.K[skey->saferp.rounds*2][12]; in saferp_ecb_decrypt()
429 b[13] = (ct[13] - skey->saferp.K[skey->saferp.rounds*2][13]) & 255; in saferp_ecb_decrypt()
430 b[14] = (ct[14] - skey->saferp.K[skey->saferp.rounds*2][14]) & 255; in saferp_ecb_decrypt()
431 b[15] = ct[15] ^ skey->saferp.K[skey->saferp.rounds*2][15]; in saferp_ecb_decrypt()
434 iLT(b, pt); iROUND(pt, 30); in saferp_ecb_decrypt()
435 iLT(pt, b); iROUND(b, 28); in saferp_ecb_decrypt()
436 iLT(b, pt); iROUND(pt, 26); in saferp_ecb_decrypt()
437 iLT(pt, b); iROUND(b, 24); in saferp_ecb_decrypt()
441 iLT(b, pt); iROUND(pt, 22); in saferp_ecb_decrypt()
442 iLT(pt, b); iROUND(b, 20); in saferp_ecb_decrypt()
443 iLT(b, pt); iROUND(pt, 18); in saferp_ecb_decrypt()
444 iLT(pt, b); iROUND(b, 16); in saferp_ecb_decrypt()
446 iLT(b, pt); iROUND(pt, 14); in saferp_ecb_decrypt()
447 iLT(pt, b); iROUND(b, 12); in saferp_ecb_decrypt()
448 iLT(b, pt); iROUND(pt,10); in saferp_ecb_decrypt()
449 iLT(pt, b); iROUND(b, 8); in saferp_ecb_decrypt()
450 iLT(b, pt); iROUND(pt,6); in saferp_ecb_decrypt()
451 iLT(pt, b); iROUND(b, 4); in saferp_ecb_decrypt()
452 iLT(b, pt); iROUND(pt,2); in saferp_ecb_decrypt()
453 iLT(pt, b); iROUND(b, 0); in saferp_ecb_decrypt()
455 pt[x] = b[x]; in saferp_ecb_decrypt()
458 zeromem(b, sizeof(b)); in saferp_ecb_decrypt()