CamelliaSubkeyR(24) = subr(24) ^ subr(23);
/* apply the inverse of the last half of P-function */
+ /* round 1 */
dw = CamelliaSubkeyL(2) ^ CamelliaSubkeyR(2),
- dw = CAMELLIA_RL8(dw);/* round 1 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(2) = CamelliaSubkeyL(2) ^ dw,
CamelliaSubkeyL(2) = dw;
+ /* round 2 */
dw = CamelliaSubkeyL(3) ^ CamelliaSubkeyR(3),
- dw = CAMELLIA_RL8(dw);/* round 2 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(3) = CamelliaSubkeyL(3) ^ dw,
CamelliaSubkeyL(3) = dw;
+ /* round 3 */
dw = CamelliaSubkeyL(4) ^ CamelliaSubkeyR(4),
- dw = CAMELLIA_RL8(dw);/* round 3 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(4) = CamelliaSubkeyL(4) ^ dw,
CamelliaSubkeyL(4) = dw;
+ /* round 4 */
dw = CamelliaSubkeyL(5) ^ CamelliaSubkeyR(5),
- dw = CAMELLIA_RL8(dw);/* round 4 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(5) = CamelliaSubkeyL(5) ^ dw,
CamelliaSubkeyL(5) = dw;
+ /* round 5 */
dw = CamelliaSubkeyL(6) ^ CamelliaSubkeyR(6),
- dw = CAMELLIA_RL8(dw);/* round 5 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(6) = CamelliaSubkeyL(6) ^ dw,
CamelliaSubkeyL(6) = dw;
+ /* round 6 */
dw = CamelliaSubkeyL(7) ^ CamelliaSubkeyR(7),
- dw = CAMELLIA_RL8(dw);/* round 6 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(7) = CamelliaSubkeyL(7) ^ dw,
CamelliaSubkeyL(7) = dw;
+ /* round 7 */
dw = CamelliaSubkeyL(10) ^ CamelliaSubkeyR(10),
- dw = CAMELLIA_RL8(dw);/* round 7 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(10) = CamelliaSubkeyL(10) ^ dw,
CamelliaSubkeyL(10) = dw;
+ /* round 8 */
dw = CamelliaSubkeyL(11) ^ CamelliaSubkeyR(11),
- dw = CAMELLIA_RL8(dw);/* round 8 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(11) = CamelliaSubkeyL(11) ^ dw,
CamelliaSubkeyL(11) = dw;
+ /* round 9 */
dw = CamelliaSubkeyL(12) ^ CamelliaSubkeyR(12),
- dw = CAMELLIA_RL8(dw);/* round 9 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(12) = CamelliaSubkeyL(12) ^ dw,
CamelliaSubkeyL(12) = dw;
+ /* round 10 */
dw = CamelliaSubkeyL(13) ^ CamelliaSubkeyR(13),
- dw = CAMELLIA_RL8(dw);/* round 10 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(13) = CamelliaSubkeyL(13) ^ dw,
CamelliaSubkeyL(13) = dw;
+ /* round 11 */
dw = CamelliaSubkeyL(14) ^ CamelliaSubkeyR(14),
- dw = CAMELLIA_RL8(dw);/* round 11 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(14) = CamelliaSubkeyL(14) ^ dw,
CamelliaSubkeyL(14) = dw;
+ /* round 12 */
dw = CamelliaSubkeyL(15) ^ CamelliaSubkeyR(15),
- dw = CAMELLIA_RL8(dw);/* round 12 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(15) = CamelliaSubkeyL(15) ^ dw,
CamelliaSubkeyL(15) = dw;
+ /* round 13 */
dw = CamelliaSubkeyL(18) ^ CamelliaSubkeyR(18),
- dw = CAMELLIA_RL8(dw);/* round 13 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(18) = CamelliaSubkeyL(18) ^ dw,
CamelliaSubkeyL(18) = dw;
+ /* round 14 */
dw = CamelliaSubkeyL(19) ^ CamelliaSubkeyR(19),
- dw = CAMELLIA_RL8(dw);/* round 14 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(19) = CamelliaSubkeyL(19) ^ dw,
CamelliaSubkeyL(19) = dw;
+ /* round 15 */
dw = CamelliaSubkeyL(20) ^ CamelliaSubkeyR(20),
- dw = CAMELLIA_RL8(dw);/* round 15 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(20) = CamelliaSubkeyL(20) ^ dw,
CamelliaSubkeyL(20) = dw;
+ /* round 16 */
dw = CamelliaSubkeyL(21) ^ CamelliaSubkeyR(21),
- dw = CAMELLIA_RL8(dw);/* round 16 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(21) = CamelliaSubkeyL(21) ^ dw,
CamelliaSubkeyL(21) = dw;
+ /* round 17 */
dw = CamelliaSubkeyL(22) ^ CamelliaSubkeyR(22),
- dw = CAMELLIA_RL8(dw);/* round 17 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(22) = CamelliaSubkeyL(22) ^ dw,
CamelliaSubkeyL(22) = dw;
+ /* round 18 */
dw = CamelliaSubkeyL(23) ^ CamelliaSubkeyR(23),
- dw = CAMELLIA_RL8(dw);/* round 18 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(23) = CamelliaSubkeyL(23) ^ dw,
CamelliaSubkeyL(23) = dw;
CamelliaSubkeyR(32) = subr(32) ^ subr(31);
/* apply the inverse of the last half of P-function */
+ /* round 1 */
dw = CamelliaSubkeyL(2) ^ CamelliaSubkeyR(2),
- dw = CAMELLIA_RL8(dw);/* round 1 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(2) = CamelliaSubkeyL(2) ^ dw,
CamelliaSubkeyL(2) = dw;
+ /* round 2 */
dw = CamelliaSubkeyL(3) ^ CamelliaSubkeyR(3),
- dw = CAMELLIA_RL8(dw);/* round 2 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(3) = CamelliaSubkeyL(3) ^ dw,
CamelliaSubkeyL(3) = dw;
+ /* round 3 */
dw = CamelliaSubkeyL(4) ^ CamelliaSubkeyR(4),
- dw = CAMELLIA_RL8(dw);/* round 3 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(4) = CamelliaSubkeyL(4) ^ dw,
CamelliaSubkeyL(4) = dw;
+ /* round 4 */
dw = CamelliaSubkeyL(5) ^ CamelliaSubkeyR(5),
- dw = CAMELLIA_RL8(dw);/* round 4 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(5) = CamelliaSubkeyL(5) ^ dw,
CamelliaSubkeyL(5) = dw;
+ /* round 5 */
dw = CamelliaSubkeyL(6) ^ CamelliaSubkeyR(6),
- dw = CAMELLIA_RL8(dw);/* round 5 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(6) = CamelliaSubkeyL(6) ^ dw,
CamelliaSubkeyL(6) = dw;
+ /* round 6 */
dw = CamelliaSubkeyL(7) ^ CamelliaSubkeyR(7),
- dw = CAMELLIA_RL8(dw);/* round 6 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(7) = CamelliaSubkeyL(7) ^ dw,
CamelliaSubkeyL(7) = dw;
+ /* round 7 */
dw = CamelliaSubkeyL(10) ^ CamelliaSubkeyR(10),
- dw = CAMELLIA_RL8(dw);/* round 7 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(10) = CamelliaSubkeyL(10) ^ dw,
CamelliaSubkeyL(10) = dw;
+ /* round 8 */
dw = CamelliaSubkeyL(11) ^ CamelliaSubkeyR(11),
- dw = CAMELLIA_RL8(dw);/* round 8 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(11) = CamelliaSubkeyL(11) ^ dw,
CamelliaSubkeyL(11) = dw;
+ /* round 9 */
dw = CamelliaSubkeyL(12) ^ CamelliaSubkeyR(12),
- dw = CAMELLIA_RL8(dw);/* round 9 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(12) = CamelliaSubkeyL(12) ^ dw,
CamelliaSubkeyL(12) = dw;
+ /* round 10 */
dw = CamelliaSubkeyL(13) ^ CamelliaSubkeyR(13),
- dw = CAMELLIA_RL8(dw);/* round 10 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(13) = CamelliaSubkeyL(13) ^ dw,
CamelliaSubkeyL(13) = dw;
+ /* round 11 */
dw = CamelliaSubkeyL(14) ^ CamelliaSubkeyR(14),
- dw = CAMELLIA_RL8(dw);/* round 11 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(14) = CamelliaSubkeyL(14) ^ dw,
CamelliaSubkeyL(14) = dw;
+ /* round 12 */
dw = CamelliaSubkeyL(15) ^ CamelliaSubkeyR(15),
- dw = CAMELLIA_RL8(dw);/* round 12 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(15) = CamelliaSubkeyL(15) ^ dw,
CamelliaSubkeyL(15) = dw;
+ /* round 13 */
dw = CamelliaSubkeyL(18) ^ CamelliaSubkeyR(18),
- dw = CAMELLIA_RL8(dw);/* round 13 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(18) = CamelliaSubkeyL(18) ^ dw,
CamelliaSubkeyL(18) = dw;
+ /* round 14 */
dw = CamelliaSubkeyL(19) ^ CamelliaSubkeyR(19),
- dw = CAMELLIA_RL8(dw);/* round 14 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(19) = CamelliaSubkeyL(19) ^ dw,
CamelliaSubkeyL(19) = dw;
+ /* round 15 */
dw = CamelliaSubkeyL(20) ^ CamelliaSubkeyR(20),
- dw = CAMELLIA_RL8(dw);/* round 15 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(20) = CamelliaSubkeyL(20) ^ dw,
CamelliaSubkeyL(20) = dw;
+ /* round 16 */
dw = CamelliaSubkeyL(21) ^ CamelliaSubkeyR(21),
- dw = CAMELLIA_RL8(dw);/* round 16 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(21) = CamelliaSubkeyL(21) ^ dw,
CamelliaSubkeyL(21) = dw;
+ /* round 17 */
dw = CamelliaSubkeyL(22) ^ CamelliaSubkeyR(22),
- dw = CAMELLIA_RL8(dw);/* round 17 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(22) = CamelliaSubkeyL(22) ^ dw,
CamelliaSubkeyL(22) = dw;
+ /* round 18 */
dw = CamelliaSubkeyL(23) ^ CamelliaSubkeyR(23),
- dw = CAMELLIA_RL8(dw);/* round 18 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(23) = CamelliaSubkeyL(23) ^ dw,
CamelliaSubkeyL(23) = dw;
+ /* round 19 */
dw = CamelliaSubkeyL(26) ^ CamelliaSubkeyR(26),
- dw = CAMELLIA_RL8(dw);/* round 19 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(26) = CamelliaSubkeyL(26) ^ dw,
CamelliaSubkeyL(26) = dw;
+ /* round 20 */
dw = CamelliaSubkeyL(27) ^ CamelliaSubkeyR(27),
- dw = CAMELLIA_RL8(dw);/* round 20 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(27) = CamelliaSubkeyL(27) ^ dw,
CamelliaSubkeyL(27) = dw;
+ /* round 21 */
dw = CamelliaSubkeyL(28) ^ CamelliaSubkeyR(28),
- dw = CAMELLIA_RL8(dw);/* round 21 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(28) = CamelliaSubkeyL(28) ^ dw,
CamelliaSubkeyL(28) = dw;
+ /* round 22 */
dw = CamelliaSubkeyL(29) ^ CamelliaSubkeyR(29),
- dw = CAMELLIA_RL8(dw);/* round 22 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(29) = CamelliaSubkeyL(29) ^ dw,
CamelliaSubkeyL(29) = dw;
+ /* round 23 */
dw = CamelliaSubkeyL(30) ^ CamelliaSubkeyR(30),
- dw = CAMELLIA_RL8(dw);/* round 23 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(30) = CamelliaSubkeyL(30) ^ dw,
CamelliaSubkeyL(30) = dw;
+ /* round 24 */
dw = CamelliaSubkeyL(31) ^ CamelliaSubkeyR(31),
- dw = CAMELLIA_RL8(dw);/* round 24 */
+ dw = CAMELLIA_RL8(dw);
CamelliaSubkeyR(31) = CamelliaSubkeyL(31) ^ dw,
CamelliaSubkeyL(31) = dw;