H A D | camellia_glue.c | 816 static void camellia_setup_tail(u64 *subkey, u64 *subRL, int max) camellia_setup_tail() argument 823 subRL[3] ^= subRL[1]; camellia_setup_tail() 825 subRL[5] ^= subRL[1]; camellia_setup_tail() 827 subRL[7] ^= subRL[1]; camellia_setup_tail() 829 subRL[1] ^= (subRL[1] & ~subRL[9]) << 32; camellia_setup_tail() 831 dw = (subRL[1] & subRL[9]) >> 32; camellia_setup_tail() 832 subRL[1] ^= rol32(dw, 1); camellia_setup_tail() 835 subRL[11] ^= subRL[1]; camellia_setup_tail() 837 subRL[13] ^= subRL[1]; camellia_setup_tail() 839 subRL[15] ^= subRL[1]; camellia_setup_tail() 841 subRL[1] ^= (subRL[1] & ~subRL[17]) << 32; camellia_setup_tail() 843 dw = (subRL[1] & subRL[17]) >> 32; camellia_setup_tail() 844 subRL[1] ^= rol32(dw, 1); camellia_setup_tail() 847 subRL[19] ^= subRL[1]; camellia_setup_tail() 849 subRL[21] ^= subRL[1]; camellia_setup_tail() 851 subRL[23] ^= subRL[1]; camellia_setup_tail() 855 subRL[24] ^= subRL[1]; camellia_setup_tail() 858 kw4 = subRL[25]; camellia_setup_tail() 860 subRL[1] ^= (subRL[1] & ~subRL[25]) << 32; camellia_setup_tail() 862 dw = (subRL[1] & subRL[25]) >> 32; camellia_setup_tail() 863 subRL[1] ^= rol32(dw, 1); camellia_setup_tail() 866 subRL[27] ^= subRL[1]; camellia_setup_tail() 868 subRL[29] ^= subRL[1]; camellia_setup_tail() 870 subRL[31] ^= subRL[1]; camellia_setup_tail() 872 subRL[32] ^= subRL[1]; camellia_setup_tail() 875 kw4 = subRL[33]; camellia_setup_tail() 877 subRL[30] ^= kw4; camellia_setup_tail() 879 subRL[28] ^= kw4; camellia_setup_tail() 881 subRL[26] ^= kw4; camellia_setup_tail() 883 kw4 ^= (kw4 & ~subRL[24]) << 32; camellia_setup_tail() 885 dw = (kw4 & subRL[24]) >> 32; camellia_setup_tail() 890 subRL[22] ^= kw4; camellia_setup_tail() 892 subRL[20] ^= kw4; camellia_setup_tail() 894 subRL[18] ^= kw4; camellia_setup_tail() 896 kw4 ^= (kw4 & ~subRL[16]) << 32; camellia_setup_tail() 898 dw = (kw4 & subRL[16]) >> 32; camellia_setup_tail() 902 subRL[14] ^= kw4; camellia_setup_tail() 904 subRL[12] ^= kw4; camellia_setup_tail() 906 subRL[10] ^= kw4; camellia_setup_tail() 908 kw4 ^= (kw4 & ~subRL[8]) << 32; camellia_setup_tail() 910 dw = (kw4 & subRL[8]) >> 32; camellia_setup_tail() 914 subRL[6] ^= kw4; camellia_setup_tail() 916 subRL[4] ^= kw4; camellia_setup_tail() 918 subRL[2] ^= kw4; camellia_setup_tail() 920 subRL[0] ^= kw4; camellia_setup_tail() 923 SET_SUBKEY_LR(0, subRL[0] ^ subRL[2]); /* kw1 */ camellia_setup_tail() 924 SET_SUBKEY_LR(2, subRL[3]); /* round 1 */ camellia_setup_tail() 925 SET_SUBKEY_LR(3, subRL[2] ^ subRL[4]); /* round 2 */ camellia_setup_tail() 926 SET_SUBKEY_LR(4, subRL[3] ^ subRL[5]); /* round 3 */ camellia_setup_tail() 927 SET_SUBKEY_LR(5, subRL[4] ^ subRL[6]); /* round 4 */ camellia_setup_tail() 928 SET_SUBKEY_LR(6, subRL[5] ^ subRL[7]); /* round 5 */ camellia_setup_tail() 930 tl = (subRL[10] >> 32) ^ (subRL[10] & ~subRL[8]); camellia_setup_tail() 931 dw = tl & (subRL[8] >> 32); /* FL(kl1) */ camellia_setup_tail() 932 tr = subRL[10] ^ rol32(dw, 1); camellia_setup_tail() 935 SET_SUBKEY_LR(7, subRL[6] ^ tt); /* round 6 */ camellia_setup_tail() 936 SET_SUBKEY_LR(8, subRL[8]); /* FL(kl1) */ camellia_setup_tail() 937 SET_SUBKEY_LR(9, subRL[9]); /* FLinv(kl2) */ camellia_setup_tail() 939 tl = (subRL[7] >> 32) ^ (subRL[7] & ~subRL[9]); camellia_setup_tail() 940 dw = tl & (subRL[9] >> 32); /* FLinv(kl2) */ camellia_setup_tail() 941 tr = subRL[7] ^ rol32(dw, 1); camellia_setup_tail() 944 SET_SUBKEY_LR(10, subRL[11] ^ tt); /* round 7 */ camellia_setup_tail() 945 SET_SUBKEY_LR(11, subRL[10] ^ subRL[12]); /* round 8 */ camellia_setup_tail() 946 SET_SUBKEY_LR(12, subRL[11] ^ subRL[13]); /* round 9 */ camellia_setup_tail() 947 SET_SUBKEY_LR(13, subRL[12] ^ subRL[14]); /* round 10 */ camellia_setup_tail() 948 SET_SUBKEY_LR(14, subRL[13] ^ subRL[15]); /* round 11 */ camellia_setup_tail() 950 tl = (subRL[18] >> 32) ^ (subRL[18] & ~subRL[16]); camellia_setup_tail() 951 dw = tl & (subRL[16] >> 32); /* FL(kl3) */ camellia_setup_tail() 952 tr = subRL[18] ^ rol32(dw, 1); camellia_setup_tail() 955 SET_SUBKEY_LR(15, subRL[14] ^ tt); /* round 12 */ camellia_setup_tail() 956 SET_SUBKEY_LR(16, subRL[16]); /* FL(kl3) */ camellia_setup_tail() 957 SET_SUBKEY_LR(17, subRL[17]); /* FLinv(kl4) */ camellia_setup_tail() 959 tl = (subRL[15] >> 32) ^ (subRL[15] & ~subRL[17]); camellia_setup_tail() 960 dw = tl & (subRL[17] >> 32); /* FLinv(kl4) */ camellia_setup_tail() 961 tr = subRL[15] ^ rol32(dw, 1); camellia_setup_tail() 964 SET_SUBKEY_LR(18, subRL[19] ^ tt); /* round 13 */ camellia_setup_tail() 965 SET_SUBKEY_LR(19, subRL[18] ^ subRL[20]); /* round 14 */ camellia_setup_tail() 966 SET_SUBKEY_LR(20, subRL[19] ^ subRL[21]); /* round 15 */ camellia_setup_tail() 967 SET_SUBKEY_LR(21, subRL[20] ^ subRL[22]); /* round 16 */ camellia_setup_tail() 968 SET_SUBKEY_LR(22, subRL[21] ^ subRL[23]); /* round 17 */ camellia_setup_tail() 971 SET_SUBKEY_LR(23, subRL[22]); /* round 18 */ camellia_setup_tail() 972 SET_SUBKEY_LR(24, subRL[24] ^ subRL[23]); /* kw3 */ camellia_setup_tail() 974 tl = (subRL[26] >> 32) ^ (subRL[26] & ~subRL[24]); camellia_setup_tail() 975 dw = tl & (subRL[24] >> 32); /* FL(kl5) */ camellia_setup_tail() 976 tr = subRL[26] ^ rol32(dw, 1); camellia_setup_tail() 979 SET_SUBKEY_LR(23, subRL[22] ^ tt); /* round 18 */ camellia_setup_tail() 980 SET_SUBKEY_LR(24, subRL[24]); /* FL(kl5) */ camellia_setup_tail() 981 SET_SUBKEY_LR(25, subRL[25]); /* FLinv(kl6) */ camellia_setup_tail() 983 tl = (subRL[23] >> 32) ^ (subRL[23] & ~subRL[25]); camellia_setup_tail() 984 dw = tl & (subRL[25] >> 32); /* FLinv(kl6) */ camellia_setup_tail() 985 tr = subRL[23] ^ rol32(dw, 1); camellia_setup_tail() 988 SET_SUBKEY_LR(26, subRL[27] ^ tt); /* round 19 */ camellia_setup_tail() 989 SET_SUBKEY_LR(27, subRL[26] ^ subRL[28]); /* round 20 */ camellia_setup_tail() 990 SET_SUBKEY_LR(28, subRL[27] ^ subRL[29]); /* round 21 */ camellia_setup_tail() 991 SET_SUBKEY_LR(29, subRL[28] ^ subRL[30]); /* round 22 */ camellia_setup_tail() 992 SET_SUBKEY_LR(30, subRL[29] ^ subRL[31]); /* round 23 */ camellia_setup_tail() 993 SET_SUBKEY_LR(31, subRL[30]); /* round 24 */ camellia_setup_tail() 994 SET_SUBKEY_LR(32, subRL[32] ^ subRL[31]); /* kw3 */ camellia_setup_tail() 1001 u64 subRL[26]; camellia_setup128() local 1011 subRL[0] = kl; camellia_setup128() 1013 subRL[1] = kr; camellia_setup128() 1019 subRL[4] = kl; camellia_setup128() 1021 subRL[5] = kr; camellia_setup128() 1027 subRL[10] = kl; camellia_setup128() 1029 subRL[11] = kr; camellia_setup128() 1035 subRL[13] = kr; camellia_setup128() 1040 subRL[16] = kl; camellia_setup128() 1042 subRL[17] = kr; camellia_setup128() 1048 subRL[18] = kl; camellia_setup128() 1050 subRL[19] = kr; camellia_setup128() 1056 subRL[22] = kl; camellia_setup128() 1058 subRL[23] = kr; camellia_setup128() 1061 kl = subRL[0]; camellia_setup128() 1062 kr = subRL[1]; camellia_setup128() 1075 subRL[2] = kl; camellia_setup128() 1076 subRL[3] = kr; camellia_setup128() 1079 subRL[6] = kl; camellia_setup128() 1080 subRL[7] = kr; camellia_setup128() 1083 subRL[8] = kl; camellia_setup128() 1084 subRL[9] = kr; camellia_setup128() 1087 subRL[12] = kl; camellia_setup128() 1090 subRL[14] = kl; camellia_setup128() 1091 subRL[15] = kr; camellia_setup128() 1094 subRL[20] = kl; camellia_setup128() 1095 subRL[21] = kr; camellia_setup128() 1098 subRL[24] = kl; camellia_setup128() 1099 subRL[25] = kr; camellia_setup128() 1101 camellia_setup_tail(subkey, subRL, 24); camellia_setup128() 1109 u64 subRL[34]; camellia_setup256() local 1121 subRL[0] = kl; camellia_setup256() 1123 subRL[1] = kr; camellia_setup256() 1126 subRL[12] = kl; camellia_setup256() 1128 subRL[13] = kr; camellia_setup256() 1131 subRL[16] = kl; camellia_setup256() 1133 subRL[17] = kr; camellia_setup256() 1136 subRL[22] = kl; camellia_setup256() 1138 subRL[23] = kr; camellia_setup256() 1141 subRL[30] = kl; camellia_setup256() 1143 subRL[31] = kr; camellia_setup256() 1148 subRL[4] = krl; camellia_setup256() 1150 subRL[5] = krr; camellia_setup256() 1153 subRL[8] = krl; camellia_setup256() 1155 subRL[9] = krr; camellia_setup256() 1158 subRL[18] = krl; camellia_setup256() 1160 subRL[19] = krr; camellia_setup256() 1163 subRL[26] = krl; camellia_setup256() 1165 subRL[27] = krr; camellia_setup256() 1169 kl = subRL[0] ^ krl; camellia_setup256() 1170 kr = subRL[1] ^ krr; camellia_setup256() 1192 subRL[6] = kl; camellia_setup256() 1194 subRL[7] = kr; camellia_setup256() 1197 subRL[14] = kl; camellia_setup256() 1199 subRL[15] = kr; camellia_setup256() 1203 subRL[24] = kl; camellia_setup256() 1205 subRL[25] = kr; camellia_setup256() 1209 subRL[28] = kl; camellia_setup256() 1211 subRL[29] = kr; camellia_setup256() 1215 subRL[2] = krl; camellia_setup256() 1217 subRL[3] = krr; camellia_setup256() 1220 subRL[10] = krl; camellia_setup256() 1222 subRL[11] = krr; camellia_setup256() 1225 subRL[20] = krl; camellia_setup256() 1227 subRL[21] = krr; camellia_setup256() 1230 subRL[32] = krl; camellia_setup256() 1232 subRL[33] = krr; camellia_setup256() 1234 camellia_setup_tail(subkey, subRL, 32); camellia_setup256()
|