ReactOS 0.4.16-dev-122-g325d74c
aes.c File Reference
#include "tomcrypt.h"
Include dependency graph for aes.c:

Go to the source code of this file.

Macros

#define Te0(x)   TE0[x]
 
#define Te1(x)   TE1[x]
 
#define Te2(x)   TE2[x]
 
#define Te3(x)   TE3[x]
 
#define Td0(x)   TD0[x]
 
#define Td1(x)   TD1[x]
 
#define Td2(x)   TD2[x]
 
#define Td3(x)   TD3[x]
 

Functions

static ulong32 setup_mix (ulong32 temp)
 
int aes_setup (const unsigned char *key, int keylen, int rounds, aes_key *skey)
 
void aes_ecb_encrypt (const unsigned char *pt, unsigned char *ct, aes_key *skey)
 
void aes_ecb_decrypt (const unsigned char *ct, unsigned char *pt, aes_key *skey)
 

Variables

static const ulong32 TE0 [256]
 
static const ulong32 TD0 [256]
 
static const ulong32 Td4 [256]
 
static const ulong32 TE1 [256]
 
static const ulong32 TE2 [256]
 
static const ulong32 TE3 [256]
 
static const ulong32 Te4_0 []
 
static const ulong32 Te4_1 []
 
static const ulong32 Te4_2 []
 
static const ulong32 Te4_3 []
 
static const ulong32 TD1 [256]
 
static const ulong32 TD2 [256]
 
static const ulong32 TD3 [256]
 
static const ulong32 Tks0 []
 
static const ulong32 Tks1 []
 
static const ulong32 Tks2 []
 
static const ulong32 Tks3 []
 
static const ulong32 rcon []
 

Macro Definition Documentation

◆ Td0

#define Td0 (   x)    TD0[x]

Definition at line 239 of file aes.c.

◆ Td1

#define Td1 (   x)    TD1[x]

Definition at line 240 of file aes.c.

◆ Td2

#define Td2 (   x)    TD2[x]

Definition at line 241 of file aes.c.

◆ Td3

#define Td3 (   x)    TD3[x]

Definition at line 242 of file aes.c.

◆ Te0

#define Te0 (   x)    TE0[x]

Definition at line 234 of file aes.c.

◆ Te1

#define Te1 (   x)    TE1[x]

Definition at line 235 of file aes.c.

◆ Te2

#define Te2 (   x)    TE2[x]

Definition at line 236 of file aes.c.

◆ Te3

#define Te3 (   x)    TE3[x]

Definition at line 237 of file aes.c.

Function Documentation

◆ aes_ecb_decrypt()

void aes_ecb_decrypt ( const unsigned char ct,
unsigned char pt,
aes_key skey 
)

Definition at line 1165 of file aes.c.

1166{
1167 ulong32 s0, s1, s2, s3, t0, t1, t2, t3, *rk;
1168 int Nr, r;
1169
1170 Nr = skey->Nr;
1171 rk = skey->dK;
1172
1173 LOAD32H(s0, ct ); s0 ^= rk[0];
1174 LOAD32H(s1, ct + 4); s1 ^= rk[1];
1175 LOAD32H(s2, ct + 8); s2 ^= rk[2];
1176 LOAD32H(s3, ct + 12); s3 ^= rk[3];
1177
1178 r = Nr >> 1;
1179 for (;;) {
1180
1181 t0 =
1182 Td0(byte(s0, 3)) ^
1183 Td1(byte(s3, 2)) ^
1184 Td2(byte(s2, 1)) ^
1185 Td3(byte(s1, 0)) ^
1186 rk[4];
1187 t1 =
1188 Td0(byte(s1, 3)) ^
1189 Td1(byte(s0, 2)) ^
1190 Td2(byte(s3, 1)) ^
1191 Td3(byte(s2, 0)) ^
1192 rk[5];
1193 t2 =
1194 Td0(byte(s2, 3)) ^
1195 Td1(byte(s1, 2)) ^
1196 Td2(byte(s0, 1)) ^
1197 Td3(byte(s3, 0)) ^
1198 rk[6];
1199 t3 =
1200 Td0(byte(s3, 3)) ^
1201 Td1(byte(s2, 2)) ^
1202 Td2(byte(s1, 1)) ^
1203 Td3(byte(s0, 0)) ^
1204 rk[7];
1205
1206 rk += 8;
1207 if (--r == 0) {
1208 break;
1209 }
1210
1211
1212 s0 =
1213 Td0(byte(t0, 3)) ^
1214 Td1(byte(t3, 2)) ^
1215 Td2(byte(t2, 1)) ^
1216 Td3(byte(t1, 0)) ^
1217 rk[0];
1218 s1 =
1219 Td0(byte(t1, 3)) ^
1220 Td1(byte(t0, 2)) ^
1221 Td2(byte(t3, 1)) ^
1222 Td3(byte(t2, 0)) ^
1223 rk[1];
1224 s2 =
1225 Td0(byte(t2, 3)) ^
1226 Td1(byte(t1, 2)) ^
1227 Td2(byte(t0, 1)) ^
1228 Td3(byte(t3, 0)) ^
1229 rk[2];
1230 s3 =
1231 Td0(byte(t3, 3)) ^
1232 Td1(byte(t2, 2)) ^
1233 Td2(byte(t1, 1)) ^
1234 Td3(byte(t0, 0)) ^
1235 rk[3];
1236 }
1237
1238 s0 =
1239 (Td4[byte(t0, 3)] & 0xff000000) ^
1240 (Td4[byte(t3, 2)] & 0x00ff0000) ^
1241 (Td4[byte(t2, 1)] & 0x0000ff00) ^
1242 (Td4[byte(t1, 0)] & 0x000000ff) ^
1243 rk[0];
1244 STORE32H(s0, pt);
1245 s1 =
1246 (Td4[byte(t1, 3)] & 0xff000000) ^
1247 (Td4[byte(t0, 2)] & 0x00ff0000) ^
1248 (Td4[byte(t3, 1)] & 0x0000ff00) ^
1249 (Td4[byte(t2, 0)] & 0x000000ff) ^
1250 rk[1];
1251 STORE32H(s1, pt+4);
1252 s2 =
1253 (Td4[byte(t2, 3)] & 0xff000000) ^
1254 (Td4[byte(t1, 2)] & 0x00ff0000) ^
1255 (Td4[byte(t0, 1)] & 0x0000ff00) ^
1256 (Td4[byte(t3, 0)] & 0x000000ff) ^
1257 rk[2];
1258 STORE32H(s2, pt+8);
1259 s3 =
1260 (Td4[byte(t3, 3)] & 0xff000000) ^
1261 (Td4[byte(t2, 2)] & 0x00ff0000) ^
1262 (Td4[byte(t1, 1)] & 0x0000ff00) ^
1263 (Td4[byte(t0, 0)] & 0x000000ff) ^
1264 rk[3];
1265 STORE32H(s3, pt+12);
1266}
#define Td1(x)
Definition: aes.c:240
#define Td2(x)
Definition: aes.c:241
#define Td3(x)
Definition: aes.c:242
static const ulong32 Td4[256]
Definition: aes.c:167
#define Td0(x)
Definition: aes.c:239
#define STORE32H(x, y)
Definition: tomcrypt.h:87
ULONG32 ulong32
Definition: tomcrypt.h:84
#define byte(x, n)
Definition: tomcrypt.h:118
#define LOAD32H(x, y)
Definition: tomcrypt.h:91
#define pt(x, y)
Definition: drawing.c:79
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
struct S1 s1
struct S2 s2
ulong32 dK[64]
Definition: tomcrypt.h:133

Referenced by encrypt_block_impl(), and KsecDecryptMemoryAes().

◆ aes_ecb_encrypt()

void aes_ecb_encrypt ( const unsigned char pt,
unsigned char ct,
aes_key skey 
)

Definition at line 1064 of file aes.c.

1065{
1066 ulong32 s0, s1, s2, s3, t0, t1, t2, t3, *rk;
1067 int Nr, r;
1068
1069 Nr = skey->Nr;
1070 rk = skey->eK;
1071
1072 LOAD32H(s0, pt ); s0 ^= rk[0];
1073 LOAD32H(s1, pt + 4); s1 ^= rk[1];
1074 LOAD32H(s2, pt + 8); s2 ^= rk[2];
1075 LOAD32H(s3, pt + 12); s3 ^= rk[3];
1076
1077 r = Nr >> 1;
1078 for (;;) {
1079 t0 =
1080 Te0(byte(s0, 3)) ^
1081 Te1(byte(s1, 2)) ^
1082 Te2(byte(s2, 1)) ^
1083 Te3(byte(s3, 0)) ^
1084 rk[4];
1085 t1 =
1086 Te0(byte(s1, 3)) ^
1087 Te1(byte(s2, 2)) ^
1088 Te2(byte(s3, 1)) ^
1089 Te3(byte(s0, 0)) ^
1090 rk[5];
1091 t2 =
1092 Te0(byte(s2, 3)) ^
1093 Te1(byte(s3, 2)) ^
1094 Te2(byte(s0, 1)) ^
1095 Te3(byte(s1, 0)) ^
1096 rk[6];
1097 t3 =
1098 Te0(byte(s3, 3)) ^
1099 Te1(byte(s0, 2)) ^
1100 Te2(byte(s1, 1)) ^
1101 Te3(byte(s2, 0)) ^
1102 rk[7];
1103
1104 rk += 8;
1105 if (--r == 0) {
1106 break;
1107 }
1108
1109 s0 =
1110 Te0(byte(t0, 3)) ^
1111 Te1(byte(t1, 2)) ^
1112 Te2(byte(t2, 1)) ^
1113 Te3(byte(t3, 0)) ^
1114 rk[0];
1115 s1 =
1116 Te0(byte(t1, 3)) ^
1117 Te1(byte(t2, 2)) ^
1118 Te2(byte(t3, 1)) ^
1119 Te3(byte(t0, 0)) ^
1120 rk[1];
1121 s2 =
1122 Te0(byte(t2, 3)) ^
1123 Te1(byte(t3, 2)) ^
1124 Te2(byte(t0, 1)) ^
1125 Te3(byte(t1, 0)) ^
1126 rk[2];
1127 s3 =
1128 Te0(byte(t3, 3)) ^
1129 Te1(byte(t0, 2)) ^
1130 Te2(byte(t1, 1)) ^
1131 Te3(byte(t2, 0)) ^
1132 rk[3];
1133 }
1134
1135 s0 =
1136 (Te4_3[byte(t0, 3)]) ^
1137 (Te4_2[byte(t1, 2)]) ^
1138 (Te4_1[byte(t2, 1)]) ^
1139 (Te4_0[byte(t3, 0)]) ^
1140 rk[0];
1141 STORE32H(s0, ct);
1142 s1 =
1143 (Te4_3[byte(t1, 3)]) ^
1144 (Te4_2[byte(t2, 2)]) ^
1145 (Te4_1[byte(t3, 1)]) ^
1146 (Te4_0[byte(t0, 0)]) ^
1147 rk[1];
1148 STORE32H(s1, ct+4);
1149 s2 =
1150 (Te4_3[byte(t2, 3)]) ^
1151 (Te4_2[byte(t3, 2)]) ^
1152 (Te4_1[byte(t0, 1)]) ^
1153 (Te4_0[byte(t1, 0)]) ^
1154 rk[2];
1155 STORE32H(s2, ct+8);
1156 s3 =
1157 (Te4_3[byte(t3, 3)]) ^
1158 (Te4_2[byte(t0, 2)]) ^
1159 (Te4_1[byte(t1, 1)]) ^
1160 (Te4_0[byte(t2, 0)]) ^
1161 rk[3];
1162 STORE32H(s3, ct+12);
1163}
static const ulong32 Te4_2[]
Definition: aes.c:514
static const ulong32 Te4_0[]
Definition: aes.c:444
#define Te2(x)
Definition: aes.c:236
static const ulong32 Te4_1[]
Definition: aes.c:479
static const ulong32 Te4_3[]
Definition: aes.c:549
#define Te0(x)
Definition: aes.c:234
#define Te3(x)
Definition: aes.c:237
#define Te1(x)
Definition: aes.c:235
ulong32 eK[64]
Definition: tomcrypt.h:133

Referenced by encrypt_block_impl(), and KsecEncryptMemoryAes().

◆ aes_setup()

int aes_setup ( const unsigned char key,
int  keylen,
int  rounds,
aes_key skey 
)

Definition at line 937 of file aes.c.

938{
939 int i, j;
940 ulong32 temp, *rk;
941 ulong32 *rrk;
942
943 if (keylen != 16 && keylen != 24 && keylen != 32) {
945 }
946
947 if (rounds != 0 && rounds != (10 + ((keylen/8)-2)*2)) {
949 }
950
951 skey->Nr = 10 + ((keylen/8)-2)*2;
952
953 /* setup the forward key */
954 i = 0;
955 rk = skey->eK;
956 LOAD32H(rk[0], key );
957 LOAD32H(rk[1], key + 4);
958 LOAD32H(rk[2], key + 8);
959 LOAD32H(rk[3], key + 12);
960 if (keylen == 16) {
961 j = 44;
962 for (;;) {
963 temp = rk[3];
964 rk[4] = rk[0] ^ setup_mix(temp) ^ rcon[i];
965 rk[5] = rk[1] ^ rk[4];
966 rk[6] = rk[2] ^ rk[5];
967 rk[7] = rk[3] ^ rk[6];
968 if (++i == 10) {
969 break;
970 }
971 rk += 4;
972 }
973 } else if (keylen == 24) {
974 j = 52;
975 LOAD32H(rk[4], key + 16);
976 LOAD32H(rk[5], key + 20);
977 for (;;) {
978 temp = rk[5];
979 rk[ 6] = rk[ 0] ^ setup_mix(temp) ^ rcon[i];
980 rk[ 7] = rk[ 1] ^ rk[ 6];
981 rk[ 8] = rk[ 2] ^ rk[ 7];
982 rk[ 9] = rk[ 3] ^ rk[ 8];
983 if (++i == 8) {
984 break;
985 }
986 rk[10] = rk[ 4] ^ rk[ 9];
987 rk[11] = rk[ 5] ^ rk[10];
988 rk += 6;
989 }
990 } else if (keylen == 32) {
991 j = 60;
992 LOAD32H(rk[4], key + 16);
993 LOAD32H(rk[5], key + 20);
994 LOAD32H(rk[6], key + 24);
995 LOAD32H(rk[7], key + 28);
996 for (;;) {
997 temp = rk[7];
998 rk[ 8] = rk[ 0] ^ setup_mix(temp) ^ rcon[i];
999 rk[ 9] = rk[ 1] ^ rk[ 8];
1000 rk[10] = rk[ 2] ^ rk[ 9];
1001 rk[11] = rk[ 3] ^ rk[10];
1002 if (++i == 7) {
1003 break;
1004 }
1005 temp = rk[11];
1006 rk[12] = rk[ 4] ^ setup_mix(ROR(temp, 8));
1007 rk[13] = rk[ 5] ^ rk[12];
1008 rk[14] = rk[ 6] ^ rk[13];
1009 rk[15] = rk[ 7] ^ rk[14];
1010 rk += 8;
1011 }
1012 } else {
1013 j = 4;
1014 }
1015
1016 rk = skey->dK;
1017 rrk = skey->eK + j - 4;
1018
1019 *rk++ = *rrk++;
1020 *rk++ = *rrk++;
1021 *rk++ = *rrk++;
1022 *rk = *rrk;
1023 rk -= 3; rrk -= 3;
1024
1025 for (i = 1; i < skey->Nr; i++) {
1026 rrk -= 4;
1027 rk += 4;
1028 temp = rrk[0];
1029 rk[0] =
1030 Tks0[byte(temp, 3)] ^
1031 Tks1[byte(temp, 2)] ^
1032 Tks2[byte(temp, 1)] ^
1033 Tks3[byte(temp, 0)];
1034 temp = rrk[1];
1035 rk[1] =
1036 Tks0[byte(temp, 3)] ^
1037 Tks1[byte(temp, 2)] ^
1038 Tks2[byte(temp, 1)] ^
1039 Tks3[byte(temp, 0)];
1040 temp = rrk[2];
1041 rk[2] =
1042 Tks0[byte(temp, 3)] ^
1043 Tks1[byte(temp, 2)] ^
1044 Tks2[byte(temp, 1)] ^
1045 Tks3[byte(temp, 0)];
1046 temp = rrk[3];
1047 rk[3] =
1048 Tks0[byte(temp, 3)] ^
1049 Tks1[byte(temp, 2)] ^
1050 Tks2[byte(temp, 1)] ^
1051 Tks3[byte(temp, 0)];
1052 }
1053
1054 rrk -= 4;
1055 rk += 4;
1056 *rk++ = *rrk++;
1057 *rk++ = *rrk++;
1058 *rk++ = *rrk++;
1059 *rk = *rrk;
1060
1061 return CRYPT_OK;
1062}
static ulong32 setup_mix(ulong32 temp)
Definition: aes.c:929
static const ulong32 Tks1[]
Definition: aes.c:818
static const ulong32 Tks0[]
Definition: aes.c:783
static const ulong32 Tks2[]
Definition: aes.c:853
static const ulong32 Tks3[]
Definition: aes.c:888
static const ulong32 rcon[]
Definition: aes.c:923
#define ROR(x, y)
Definition: tomcrypt.h:110
@ CRYPT_INVALID_ROUNDS
Definition: tomcrypt.h:48
@ CRYPT_INVALID_KEYSIZE
Definition: tomcrypt.h:47
@ CRYPT_OK
Definition: tomcrypt.h:43
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
static calc_node_t temp
Definition: rpn_ieee.c:38
Definition: copy.c:22

Referenced by KsecGetAesKey(), KsecInitializeEncryptionSupport(), and setup_key_impl().

◆ setup_mix()

static ulong32 setup_mix ( ulong32  temp)
static

Definition at line 929 of file aes.c.

930{
931 return (Te4_3[byte(temp, 2)]) ^
932 (Te4_2[byte(temp, 1)]) ^
933 (Te4_1[byte(temp, 0)]) ^
934 (Te4_0[byte(temp, 3)]);
935}

Referenced by aes_setup().

Variable Documentation

◆ rcon

const ulong32 rcon[]
static
Initial value:
= {
0x01000000UL, 0x02000000UL, 0x04000000UL, 0x08000000UL,
0x10000000UL, 0x20000000UL, 0x40000000UL, 0x80000000UL,
0x1B000000UL, 0x36000000UL
}

Definition at line 923 of file aes.c.

Referenced by aes_setup(), and rijndaelKeySched().

◆ TD0

const ulong32 TD0[256]
static

Definition at line 100 of file aes.c.

◆ TD1

const ulong32 TD1[256]
static

Definition at line 584 of file aes.c.

◆ TD2

const ulong32 TD2[256]
static

Definition at line 650 of file aes.c.

◆ TD3

const ulong32 TD3[256]
static

Definition at line 716 of file aes.c.

◆ Td4

const ulong32 Td4[256]
static

Definition at line 167 of file aes.c.

Referenced by aes_ecb_decrypt().

◆ TE0

const ulong32 TE0[256]
static

Definition at line 33 of file aes.c.

◆ TE1

const ulong32 TE1[256]
static

Definition at line 244 of file aes.c.

◆ TE2

const ulong32 TE2[256]
static

Definition at line 310 of file aes.c.

◆ TE3

const ulong32 TE3[256]
static

Definition at line 376 of file aes.c.

◆ Te4_0

const ulong32 Te4_0[]
static

Definition at line 444 of file aes.c.

Referenced by aes_ecb_encrypt(), and setup_mix().

◆ Te4_1

const ulong32 Te4_1[]
static

Definition at line 479 of file aes.c.

Referenced by aes_ecb_encrypt(), and setup_mix().

◆ Te4_2

const ulong32 Te4_2[]
static

Definition at line 514 of file aes.c.

Referenced by aes_ecb_encrypt(), and setup_mix().

◆ Te4_3

const ulong32 Te4_3[]
static

Definition at line 549 of file aes.c.

Referenced by aes_ecb_encrypt(), and setup_mix().

◆ Tks0

const ulong32 Tks0[]
static

Definition at line 783 of file aes.c.

Referenced by aes_setup().

◆ Tks1

const ulong32 Tks1[]
static

Definition at line 818 of file aes.c.

Referenced by aes_setup().

◆ Tks2

const ulong32 Tks2[]
static

Definition at line 853 of file aes.c.

Referenced by aes_setup().

◆ Tks3

const ulong32 Tks3[]
static

Definition at line 888 of file aes.c.

Referenced by aes_setup().