1// Rijndael tables 2 3#include "pch.h" 4 5#ifndef CRYPTOPP_IMPORTS 6 7#include "rijndael.h" 8 9// VC60 workaround: gives a C4786 warning without this function 10// when runtime lib is set to multithread debug DLL 11// even though warning 4786 is disabled! 12void Rijndael_VC60Workaround() 13{ 14} 15 16NAMESPACE_BEGIN(CryptoPP) 17 18/* 19Te0[x] = S [x].[02, 01, 01, 03]; 20Te1[x] = S [x].[03, 02, 01, 01]; 21Te2[x] = S [x].[01, 03, 02, 01]; 22Te3[x] = S [x].[01, 01, 03, 02]; 23 24Td0[x] = Si[x].[0e, 09, 0d, 0b]; 25Td1[x] = Si[x].[0b, 0e, 09, 0d]; 26Td2[x] = Si[x].[0d, 0b, 0e, 09]; 27Td3[x] = Si[x].[09, 0d, 0b, 0e]; 28*/ 29 30const byte Rijndael::Base::Se[256] = { 31 0x63, 0x7c, 0x77, 0x7b, 32 0xf2, 0x6b, 0x6f, 0xc5, 33 0x30, 0x01, 0x67, 0x2b, 34 0xfe, 0xd7, 0xab, 0x76, 35 0xca, 0x82, 0xc9, 0x7d, 36 0xfa, 0x59, 0x47, 0xf0, 37 0xad, 0xd4, 0xa2, 0xaf, 38 0x9c, 0xa4, 0x72, 0xc0, 39 0xb7, 0xfd, 0x93, 0x26, 40 0x36, 0x3f, 0xf7, 0xcc, 41 0x34, 0xa5, 0xe5, 0xf1, 42 0x71, 0xd8, 0x31, 0x15, 43 0x04, 0xc7, 0x23, 0xc3, 44 0x18, 0x96, 0x05, 0x9a, 45 0x07, 0x12, 0x80, 0xe2, 46 0xeb, 0x27, 0xb2, 0x75, 47 0x09, 0x83, 0x2c, 0x1a, 48 0x1b, 0x6e, 0x5a, 0xa0, 49 0x52, 0x3b, 0xd6, 0xb3, 50 0x29, 0xe3, 0x2f, 0x84, 51 0x53, 0xd1, 0x00, 0xed, 52 0x20, 0xfc, 0xb1, 0x5b, 53 0x6a, 0xcb, 0xbe, 0x39, 54 0x4a, 0x4c, 0x58, 0xcf, 55 0xd0, 0xef, 0xaa, 0xfb, 56 0x43, 0x4d, 0x33, 0x85, 57 0x45, 0xf9, 0x02, 0x7f, 58 0x50, 0x3c, 0x9f, 0xa8, 59 0x51, 0xa3, 0x40, 0x8f, 60 0x92, 0x9d, 0x38, 0xf5, 61 0xbc, 0xb6, 0xda, 0x21, 62 0x10, 0xff, 0xf3, 0xd2, 63 0xcd, 0x0c, 0x13, 0xec, 64 0x5f, 0x97, 0x44, 0x17, 65 0xc4, 0xa7, 0x7e, 0x3d, 66 0x64, 0x5d, 0x19, 0x73, 67 0x60, 0x81, 0x4f, 0xdc, 68 0x22, 0x2a, 0x90, 0x88, 69 0x46, 0xee, 0xb8, 0x14, 70 0xde, 0x5e, 0x0b, 0xdb, 71 0xe0, 0x32, 0x3a, 0x0a, 72 0x49, 0x06, 0x24, 0x5c, 73 0xc2, 0xd3, 0xac, 0x62, 74 0x91, 0x95, 0xe4, 0x79, 75 0xe7, 0xc8, 0x37, 0x6d, 76 0x8d, 0xd5, 0x4e, 0xa9, 77 0x6c, 0x56, 0xf4, 0xea, 78 0x65, 0x7a, 0xae, 0x08, 79 0xba, 0x78, 0x25, 0x2e, 80 0x1c, 0xa6, 0xb4, 0xc6, 81 0xe8, 0xdd, 0x74, 0x1f, 82 0x4b, 0xbd, 0x8b, 0x8a, 83 0x70, 0x3e, 0xb5, 0x66, 84 0x48, 0x03, 0xf6, 0x0e, 85 0x61, 0x35, 0x57, 0xb9, 86 0x86, 0xc1, 0x1d, 0x9e, 87 0xe1, 0xf8, 0x98, 0x11, 88 0x69, 0xd9, 0x8e, 0x94, 89 0x9b, 0x1e, 0x87, 0xe9, 90 0xce, 0x55, 0x28, 0xdf, 91 0x8c, 0xa1, 0x89, 0x0d, 92 0xbf, 0xe6, 0x42, 0x68, 93 0x41, 0x99, 0x2d, 0x0f, 94 0xb0, 0x54, 0xbb, 0x16, 95}; 96 97const byte Rijndael::Base::Sd[256] = { 98 0x52, 0x09, 0x6a, 0xd5, 99 0x30, 0x36, 0xa5, 0x38, 100 0xbf, 0x40, 0xa3, 0x9e, 101 0x81, 0xf3, 0xd7, 0xfb, 102 0x7c, 0xe3, 0x39, 0x82, 103 0x9b, 0x2f, 0xff, 0x87, 104 0x34, 0x8e, 0x43, 0x44, 105 0xc4, 0xde, 0xe9, 0xcb, 106 0x54, 0x7b, 0x94, 0x32, 107 0xa6, 0xc2, 0x23, 0x3d, 108 0xee, 0x4c, 0x95, 0x0b, 109 0x42, 0xfa, 0xc3, 0x4e, 110 0x08, 0x2e, 0xa1, 0x66, 111 0x28, 0xd9, 0x24, 0xb2, 112 0x76, 0x5b, 0xa2, 0x49, 113 0x6d, 0x8b, 0xd1, 0x25, 114 0x72, 0xf8, 0xf6, 0x64, 115 0x86, 0x68, 0x98, 0x16, 116 0xd4, 0xa4, 0x5c, 0xcc, 117 0x5d, 0x65, 0xb6, 0x92, 118 0x6c, 0x70, 0x48, 0x50, 119 0xfd, 0xed, 0xb9, 0xda, 120 0x5e, 0x15, 0x46, 0x57, 121 0xa7, 0x8d, 0x9d, 0x84, 122 0x90, 0xd8, 0xab, 0x00, 123 0x8c, 0xbc, 0xd3, 0x0a, 124 0xf7, 0xe4, 0x58, 0x05, 125 0xb8, 0xb3, 0x45, 0x06, 126 0xd0, 0x2c, 0x1e, 0x8f, 127 0xca, 0x3f, 0x0f, 0x02, 128 0xc1, 0xaf, 0xbd, 0x03, 129 0x01, 0x13, 0x8a, 0x6b, 130 0x3a, 0x91, 0x11, 0x41, 131 0x4f, 0x67, 0xdc, 0xea, 132 0x97, 0xf2, 0xcf, 0xce, 133 0xf0, 0xb4, 0xe6, 0x73, 134 0x96, 0xac, 0x74, 0x22, 135 0xe7, 0xad, 0x35, 0x85, 136 0xe2, 0xf9, 0x37, 0xe8, 137 0x1c, 0x75, 0xdf, 0x6e, 138 0x47, 0xf1, 0x1a, 0x71, 139 0x1d, 0x29, 0xc5, 0x89, 140 0x6f, 0xb7, 0x62, 0x0e, 141 0xaa, 0x18, 0xbe, 0x1b, 142 0xfc, 0x56, 0x3e, 0x4b, 143 0xc6, 0xd2, 0x79, 0x20, 144 0x9a, 0xdb, 0xc0, 0xfe, 145 0x78, 0xcd, 0x5a, 0xf4, 146 0x1f, 0xdd, 0xa8, 0x33, 147 0x88, 0x07, 0xc7, 0x31, 148 0xb1, 0x12, 0x10, 0x59, 149 0x27, 0x80, 0xec, 0x5f, 150 0x60, 0x51, 0x7f, 0xa9, 151 0x19, 0xb5, 0x4a, 0x0d, 152 0x2d, 0xe5, 0x7a, 0x9f, 153 0x93, 0xc9, 0x9c, 0xef, 154 0xa0, 0xe0, 0x3b, 0x4d, 155 0xae, 0x2a, 0xf5, 0xb0, 156 0xc8, 0xeb, 0xbb, 0x3c, 157 0x83, 0x53, 0x99, 0x61, 158 0x17, 0x2b, 0x04, 0x7e, 159 0xba, 0x77, 0xd6, 0x26, 160 0xe1, 0x69, 0x14, 0x63, 161 0x55, 0x21, 0x0c, 0x7d, 162}; 163 164const word32 Rijndael::Base::rcon[] = { 165 0x01000000, 0x02000000, 0x04000000, 0x08000000, 166 0x10000000, 0x20000000, 0x40000000, 0x80000000, 167 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ 168}; 169 170NAMESPACE_END 171 172#endif 173