1 /**************************************************************************/ 2 /* */ 3 /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 /* */ 5 /* This software is licensed under the Microsoft Software License */ 6 /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 /* and in the root directory of this software. */ 9 /* */ 10 /**************************************************************************/ 11 12 13 /**************************************************************************/ 14 /**************************************************************************/ 15 /** */ 16 /** NetX Crypto Component */ 17 /** */ 18 /** Elliptical Curve Cryptography */ 19 /** */ 20 /**************************************************************************/ 21 /**************************************************************************/ 22 23 #include "nx_crypto_ec.h" 24 static NX_CRYPTO_CONST HN_UBASE secp521r1_fixed_points_data[][68 >> HN_SIZE_SHIFT] = 25 { 26 27 /* 2G.x */ 28 { 29 HN_ULONG_TO_UBASE(0x876B33AC), HN_ULONG_TO_UBASE(0x45D90CF8), 30 HN_ULONG_TO_UBASE(0x3ED58F0B), HN_ULONG_TO_UBASE(0xE53E1A99), 31 HN_ULONG_TO_UBASE(0x49D916B3), HN_ULONG_TO_UBASE(0xD5D181F5), 32 HN_ULONG_TO_UBASE(0x2EC09BE2), HN_ULONG_TO_UBASE(0x1B1EF040), 33 HN_ULONG_TO_UBASE(0xB2113B57), HN_ULONG_TO_UBASE(0xE5787176), 34 HN_ULONG_TO_UBASE(0x8073044E), HN_ULONG_TO_UBASE(0x11D02E70), 35 HN_ULONG_TO_UBASE(0xA2AE38DD), HN_ULONG_TO_UBASE(0x9D1C19E7), 36 HN_ULONG_TO_UBASE(0x3634F6FA), HN_ULONG_TO_UBASE(0x2662D494), 37 HN_ULONG_TO_UBASE(0x00000130) 38 }, 39 40 /* 2G.y */ 41 { 42 HN_ULONG_TO_UBASE(0x6BD6208E), HN_ULONG_TO_UBASE(0x454C8A73), 43 HN_ULONG_TO_UBASE(0xAE37911A), HN_ULONG_TO_UBASE(0xD2447CEF), 44 HN_ULONG_TO_UBASE(0x69B8C5AE), HN_ULONG_TO_UBASE(0x56AC592E), 45 HN_ULONG_TO_UBASE(0x9B615BFC), HN_ULONG_TO_UBASE(0xE7F56483), 46 HN_ULONG_TO_UBASE(0xBBE7FE62), HN_ULONG_TO_UBASE(0xFAC066E1), 47 HN_ULONG_TO_UBASE(0xB7777B32), HN_ULONG_TO_UBASE(0xB2AC3EE1), 48 HN_ULONG_TO_UBASE(0x15114ADA), HN_ULONG_TO_UBASE(0x55F86533), 49 HN_ULONG_TO_UBASE(0x46497CC9), HN_ULONG_TO_UBASE(0x15CBA83E), 50 HN_ULONG_TO_UBASE(0x000001EF) 51 }, 52 53 /* 3G.x */ 54 { 55 HN_ULONG_TO_UBASE(0xE371375D), HN_ULONG_TO_UBASE(0x863B3ADB), 56 HN_ULONG_TO_UBASE(0x89CF187B), HN_ULONG_TO_UBASE(0xF2DDD842), 57 HN_ULONG_TO_UBASE(0x6AB24B10), HN_ULONG_TO_UBASE(0x80CF70E7), 58 HN_ULONG_TO_UBASE(0x57D81A93), HN_ULONG_TO_UBASE(0x78063AE6), 59 HN_ULONG_TO_UBASE(0xC87491C5), HN_ULONG_TO_UBASE(0x88AEB0B1), 60 HN_ULONG_TO_UBASE(0x2E17FBF9), HN_ULONG_TO_UBASE(0x5EBE733A), 61 HN_ULONG_TO_UBASE(0x52AD31BA), HN_ULONG_TO_UBASE(0xC205CBCD), 62 HN_ULONG_TO_UBASE(0xED66A7F8), HN_ULONG_TO_UBASE(0xA13230F9), 63 HN_ULONG_TO_UBASE(0x00000117) 64 }, 65 66 /* 3G.y */ 67 { 68 HN_ULONG_TO_UBASE(0x03A6EC5D), HN_ULONG_TO_UBASE(0x224D9A3B), 69 HN_ULONG_TO_UBASE(0xBE627BE3), HN_ULONG_TO_UBASE(0xE1EFCA41), 70 HN_ULONG_TO_UBASE(0x22ABCA89), HN_ULONG_TO_UBASE(0x34DF229C), 71 HN_ULONG_TO_UBASE(0x8153B848), HN_ULONG_TO_UBASE(0x11C526A0), 72 HN_ULONG_TO_UBASE(0xCBB59E96), HN_ULONG_TO_UBASE(0x26879BD9), 73 HN_ULONG_TO_UBASE(0x8D1298ED), HN_ULONG_TO_UBASE(0x77ECCC36), 74 HN_ULONG_TO_UBASE(0xD6560F21), HN_ULONG_TO_UBASE(0xAF68677B), 75 HN_ULONG_TO_UBASE(0x242B365B), HN_ULONG_TO_UBASE(0xE5DDC615), 76 HN_ULONG_TO_UBASE(0x0000017F) 77 }, 78 79 /* 4G.x */ 80 { 81 HN_ULONG_TO_UBASE(0x155C337B), HN_ULONG_TO_UBASE(0x7EAEFE12), 82 HN_ULONG_TO_UBASE(0xC7186596), HN_ULONG_TO_UBASE(0x357F27CE), 83 HN_ULONG_TO_UBASE(0x654DBBEB), HN_ULONG_TO_UBASE(0x90C26C69), 84 HN_ULONG_TO_UBASE(0xA1B63A6A), HN_ULONG_TO_UBASE(0x6BCCA278), 85 HN_ULONG_TO_UBASE(0x8EDD9123), HN_ULONG_TO_UBASE(0x776B7A92), 86 HN_ULONG_TO_UBASE(0x6C6DA5E9), HN_ULONG_TO_UBASE(0xB2BEF507), 87 HN_ULONG_TO_UBASE(0x0E3C747B), HN_ULONG_TO_UBASE(0x805ED3AA), 88 HN_ULONG_TO_UBASE(0x659DF2EF), HN_ULONG_TO_UBASE(0x298EF458), 89 HN_ULONG_TO_UBASE(0x00000098) 90 }, 91 92 /* 4G.y */ 93 { 94 HN_ULONG_TO_UBASE(0x35A79F8D), HN_ULONG_TO_UBASE(0xE3DD8939), 95 HN_ULONG_TO_UBASE(0xA1972C6B), HN_ULONG_TO_UBASE(0x672B109C), 96 HN_ULONG_TO_UBASE(0x07953A4D), HN_ULONG_TO_UBASE(0xAD41CBAE), 97 HN_ULONG_TO_UBASE(0xD206DE77), HN_ULONG_TO_UBASE(0xDE07527F), 98 HN_ULONG_TO_UBASE(0xB61D9811), HN_ULONG_TO_UBASE(0x1F55A4C0), 99 HN_ULONG_TO_UBASE(0x7A75360E), HN_ULONG_TO_UBASE(0x929D56D5), 100 HN_ULONG_TO_UBASE(0x5032EFE6), HN_ULONG_TO_UBASE(0x9F2BECFF), 101 HN_ULONG_TO_UBASE(0x60F0622C), HN_ULONG_TO_UBASE(0x0DE654C7), 102 HN_ULONG_TO_UBASE(0x00000018) 103 }, 104 105 /* 5G.x */ 106 { 107 HN_ULONG_TO_UBASE(0x8445216B), HN_ULONG_TO_UBASE(0xD9E465AF), 108 HN_ULONG_TO_UBASE(0xC57AE51B), HN_ULONG_TO_UBASE(0x7D12C12B), 109 HN_ULONG_TO_UBASE(0xAB01F4D2), HN_ULONG_TO_UBASE(0xAF65FD9B), 110 HN_ULONG_TO_UBASE(0xB3C1D722), HN_ULONG_TO_UBASE(0xF2FD8A84), 111 HN_ULONG_TO_UBASE(0xF5123832), HN_ULONG_TO_UBASE(0x8870DC27), 112 HN_ULONG_TO_UBASE(0x8C85325E), HN_ULONG_TO_UBASE(0xE8B51D16), 113 HN_ULONG_TO_UBASE(0x92E31759), HN_ULONG_TO_UBASE(0x1A03D5DF), 114 HN_ULONG_TO_UBASE(0xEFDB49C3), HN_ULONG_TO_UBASE(0x7B5E6C46), 115 HN_ULONG_TO_UBASE(0x0000005E) 116 }, 117 118 /* 5G.y */ 119 { 120 HN_ULONG_TO_UBASE(0x137A651A), HN_ULONG_TO_UBASE(0xB427174D), 121 HN_ULONG_TO_UBASE(0x256229CB), HN_ULONG_TO_UBASE(0xF9E661D4), 122 HN_ULONG_TO_UBASE(0xED3AEB3F), HN_ULONG_TO_UBASE(0xBBD04D0F), 123 HN_ULONG_TO_UBASE(0x5BB3FAE1), HN_ULONG_TO_UBASE(0xC31EEF45), 124 HN_ULONG_TO_UBASE(0x07A35089), HN_ULONG_TO_UBASE(0x52DF99E4), 125 HN_ULONG_TO_UBASE(0xED429E1A), HN_ULONG_TO_UBASE(0x6514B9BD), 126 HN_ULONG_TO_UBASE(0x67ECBD97), HN_ULONG_TO_UBASE(0x757977BF), 127 HN_ULONG_TO_UBASE(0xB2725C6D), HN_ULONG_TO_UBASE(0x70A2B55F), 128 HN_ULONG_TO_UBASE(0x000000A7) 129 }, 130 131 /* 6G.x */ 132 { 133 HN_ULONG_TO_UBASE(0x8913355A), HN_ULONG_TO_UBASE(0xDD2CD8AE), 134 HN_ULONG_TO_UBASE(0xBA2F3522), HN_ULONG_TO_UBASE(0x02114BFC), 135 HN_ULONG_TO_UBASE(0x22446ABF), HN_ULONG_TO_UBASE(0xE62184F5), 136 HN_ULONG_TO_UBASE(0x68E6D0C5), HN_ULONG_TO_UBASE(0xE8D75651), 137 HN_ULONG_TO_UBASE(0x19AD9EBC), HN_ULONG_TO_UBASE(0x580F6C03), 138 HN_ULONG_TO_UBASE(0xC2953557), HN_ULONG_TO_UBASE(0x8B9D5D55), 139 HN_ULONG_TO_UBASE(0x618534DF), HN_ULONG_TO_UBASE(0x234640A5), 140 HN_ULONG_TO_UBASE(0xFED9E6B6), HN_ULONG_TO_UBASE(0xF452A772), 141 HN_ULONG_TO_UBASE(0x000001B7) 142 }, 143 144 /* 6G.y */ 145 { 146 HN_ULONG_TO_UBASE(0x16211BB5), HN_ULONG_TO_UBASE(0x0952E477), 147 HN_ULONG_TO_UBASE(0x5CEDF594), HN_ULONG_TO_UBASE(0xD3D874AE), 148 HN_ULONG_TO_UBASE(0x85328765), HN_ULONG_TO_UBASE(0x2C21A7BD), 149 HN_ULONG_TO_UBASE(0xEC333D98), HN_ULONG_TO_UBASE(0x44B3033C), 150 HN_ULONG_TO_UBASE(0x3C587CD5), HN_ULONG_TO_UBASE(0x0474258D), 151 HN_ULONG_TO_UBASE(0x4962E19E), HN_ULONG_TO_UBASE(0x527C162F), 152 HN_ULONG_TO_UBASE(0x5B356DD3), HN_ULONG_TO_UBASE(0x0DBF0F7A), 153 HN_ULONG_TO_UBASE(0x95BBFC9B), HN_ULONG_TO_UBASE(0x8D683B71), 154 HN_ULONG_TO_UBASE(0x000001BC) 155 }, 156 157 /* 7G.x */ 158 { 159 HN_ULONG_TO_UBASE(0x94BB174C), HN_ULONG_TO_UBASE(0xFF99F7CD), 160 HN_ULONG_TO_UBASE(0x96566E5E), HN_ULONG_TO_UBASE(0x905B42BD), 161 HN_ULONG_TO_UBASE(0xEBAE3BAA), HN_ULONG_TO_UBASE(0xDA1ABF35), 162 HN_ULONG_TO_UBASE(0x7644CE21), HN_ULONG_TO_UBASE(0x15DDF71B), 163 HN_ULONG_TO_UBASE(0x50E83A0C), HN_ULONG_TO_UBASE(0x2920C1C0), 164 HN_ULONG_TO_UBASE(0x0F7B1973), HN_ULONG_TO_UBASE(0x237776ED), 165 HN_ULONG_TO_UBASE(0x57ADF3A6), HN_ULONG_TO_UBASE(0x7E393449), 166 HN_ULONG_TO_UBASE(0x9160EAD0), HN_ULONG_TO_UBASE(0xD9E08CF9), 167 HN_ULONG_TO_UBASE(0x00000100) 168 }, 169 170 /* 7G.y */ 171 { 172 HN_ULONG_TO_UBASE(0x675707DA), HN_ULONG_TO_UBASE(0x54F0135E), 173 HN_ULONG_TO_UBASE(0x2E5596B0), HN_ULONG_TO_UBASE(0x5976788E), 174 HN_ULONG_TO_UBASE(0xF3AC4001), HN_ULONG_TO_UBASE(0x73DD4B88), 175 HN_ULONG_TO_UBASE(0xFBACBFE7), HN_ULONG_TO_UBASE(0x7F5453E3), 176 HN_ULONG_TO_UBASE(0x426B2080), HN_ULONG_TO_UBASE(0x551DC249), 177 HN_ULONG_TO_UBASE(0xE33F8F92), HN_ULONG_TO_UBASE(0x528FF571), 178 HN_ULONG_TO_UBASE(0x95834F88), HN_ULONG_TO_UBASE(0xD78D1E40), 179 HN_ULONG_TO_UBASE(0x7D07A77C), HN_ULONG_TO_UBASE(0x20405C91), 180 HN_ULONG_TO_UBASE(0x00000114) 181 }, 182 183 /* 8G.x */ 184 { 185 HN_ULONG_TO_UBASE(0xEC3D1383), HN_ULONG_TO_UBASE(0xD1CE126E), 186 HN_ULONG_TO_UBASE(0x4805B18E), HN_ULONG_TO_UBASE(0x0C7F980A), 187 HN_ULONG_TO_UBASE(0xFC1B1F4E), HN_ULONG_TO_UBASE(0x65945086), 188 HN_ULONG_TO_UBASE(0x092E0CA0), HN_ULONG_TO_UBASE(0xAC1703AE), 189 HN_ULONG_TO_UBASE(0x8B5EE5C0), HN_ULONG_TO_UBASE(0x834C77F9), 190 HN_ULONG_TO_UBASE(0x6D19FBB5), HN_ULONG_TO_UBASE(0x3E722F57), 191 HN_ULONG_TO_UBASE(0xF6770BD1), HN_ULONG_TO_UBASE(0xAE8A944A), 192 HN_ULONG_TO_UBASE(0x2A7C7101), HN_ULONG_TO_UBASE(0xE1D11050), 193 HN_ULONG_TO_UBASE(0x000000D7) 194 }, 195 196 /* 8G.y */ 197 { 198 HN_ULONG_TO_UBASE(0xCA303000), HN_ULONG_TO_UBASE(0x62029FD2), 199 HN_ULONG_TO_UBASE(0xACB52ECD), HN_ULONG_TO_UBASE(0x366C72C9), 200 HN_ULONG_TO_UBASE(0xCC8DD8A2), HN_ULONG_TO_UBASE(0xCF89C1AA), 201 HN_ULONG_TO_UBASE(0x5D1B984D), HN_ULONG_TO_UBASE(0x95C235BF), 202 HN_ULONG_TO_UBASE(0xD1A80D52), HN_ULONG_TO_UBASE(0x3434D10D), 203 HN_ULONG_TO_UBASE(0x77E95ADD), HN_ULONG_TO_UBASE(0x094D0A8F), 204 HN_ULONG_TO_UBASE(0xD1203660), HN_ULONG_TO_UBASE(0x03890027), 205 HN_ULONG_TO_UBASE(0x29791AB3), HN_ULONG_TO_UBASE(0x32FAF273), 206 HN_ULONG_TO_UBASE(0x00000075) 207 }, 208 209 /* 9G.x */ 210 { 211 HN_ULONG_TO_UBASE(0x075A4208), HN_ULONG_TO_UBASE(0x9281B5C1), 212 HN_ULONG_TO_UBASE(0x471C7FCC), HN_ULONG_TO_UBASE(0xAFC5E0E5), 213 HN_ULONG_TO_UBASE(0xC8704F00), HN_ULONG_TO_UBASE(0x9A6E82F3), 214 HN_ULONG_TO_UBASE(0x62960946), HN_ULONG_TO_UBASE(0x4320C31A), 215 HN_ULONG_TO_UBASE(0x513C571F), HN_ULONG_TO_UBASE(0xE673B4BD), 216 HN_ULONG_TO_UBASE(0x3DC4D8FB), HN_ULONG_TO_UBASE(0x9B68532A), 217 HN_ULONG_TO_UBASE(0x2C95DBE9), HN_ULONG_TO_UBASE(0xA8CBE344), 218 HN_ULONG_TO_UBASE(0x229C47B7), HN_ULONG_TO_UBASE(0x0F6AC257), 219 HN_ULONG_TO_UBASE(0x0000014A) 220 }, 221 222 /* 9G.y */ 223 { 224 HN_ULONG_TO_UBASE(0xC1411542), HN_ULONG_TO_UBASE(0x1B4C092D), 225 HN_ULONG_TO_UBASE(0x7747BEAF), HN_ULONG_TO_UBASE(0xC4BB45D6), 226 HN_ULONG_TO_UBASE(0x8D55735E), HN_ULONG_TO_UBASE(0x685C4BE4), 227 HN_ULONG_TO_UBASE(0x6383FD44), HN_ULONG_TO_UBASE(0x9E72FCC8), 228 HN_ULONG_TO_UBASE(0x203FF740), HN_ULONG_TO_UBASE(0x615BDC52), 229 HN_ULONG_TO_UBASE(0x5B1A64AD), HN_ULONG_TO_UBASE(0xCC19DAFB), 230 HN_ULONG_TO_UBASE(0x2B782E96), HN_ULONG_TO_UBASE(0x28EF0D34), 231 HN_ULONG_TO_UBASE(0x05E3AE87), HN_ULONG_TO_UBASE(0x21D84532), 232 HN_ULONG_TO_UBASE(0x00000052) 233 }, 234 235 /* 10G.x */ 236 { 237 HN_ULONG_TO_UBASE(0x72656971), HN_ULONG_TO_UBASE(0x6A884570), 238 HN_ULONG_TO_UBASE(0xA7F20EFE), HN_ULONG_TO_UBASE(0xDC4FCB92), 239 HN_ULONG_TO_UBASE(0xDC31417C), HN_ULONG_TO_UBASE(0x759DB4FF), 240 HN_ULONG_TO_UBASE(0xF95DC14F), HN_ULONG_TO_UBASE(0xF1BF0345), 241 HN_ULONG_TO_UBASE(0x0FD656F0), HN_ULONG_TO_UBASE(0x0686BD5B), 242 HN_ULONG_TO_UBASE(0x6F4440F7), HN_ULONG_TO_UBASE(0x9C5EA036), 243 HN_ULONG_TO_UBASE(0x3887F6E1), HN_ULONG_TO_UBASE(0x207619CE), 244 HN_ULONG_TO_UBASE(0xA211DE2D), HN_ULONG_TO_UBASE(0xA9EF8D60), 245 HN_ULONG_TO_UBASE(0x0000007D) 246 }, 247 248 /* 10G.y */ 249 { 250 HN_ULONG_TO_UBASE(0x8E5A6C11), HN_ULONG_TO_UBASE(0xD0BCE7F9), 251 HN_ULONG_TO_UBASE(0xEDC82B6C), HN_ULONG_TO_UBASE(0xAB338406), 252 HN_ULONG_TO_UBASE(0x7CB589B2), HN_ULONG_TO_UBASE(0x36726A50), 253 HN_ULONG_TO_UBASE(0x02CC7EB7), HN_ULONG_TO_UBASE(0x887B6CFC), 254 HN_ULONG_TO_UBASE(0x28ACE2AB), HN_ULONG_TO_UBASE(0x651F7903), 255 HN_ULONG_TO_UBASE(0x06BA6057), HN_ULONG_TO_UBASE(0x8E7F8436), 256 HN_ULONG_TO_UBASE(0xBFF72AFE), HN_ULONG_TO_UBASE(0xD103B1B2), 257 HN_ULONG_TO_UBASE(0x46959145), HN_ULONG_TO_UBASE(0x942CF0C6), 258 HN_ULONG_TO_UBASE(0x00000033) 259 }, 260 261 /* 11G.x */ 262 { 263 HN_ULONG_TO_UBASE(0x5805D03E), HN_ULONG_TO_UBASE(0x204B0833), 264 HN_ULONG_TO_UBASE(0x5A1AB8CF), HN_ULONG_TO_UBASE(0x3C03AE7A), 265 HN_ULONG_TO_UBASE(0xEAD6F888), HN_ULONG_TO_UBASE(0x3376E27B), 266 HN_ULONG_TO_UBASE(0x94A53E60), HN_ULONG_TO_UBASE(0xB0E6713A), 267 HN_ULONG_TO_UBASE(0x3F0B8EE9), HN_ULONG_TO_UBASE(0x790F9E81), 268 HN_ULONG_TO_UBASE(0x4B4896E3), HN_ULONG_TO_UBASE(0x21B2AC27), 269 HN_ULONG_TO_UBASE(0xE7FAFECC), HN_ULONG_TO_UBASE(0xCE7C291B), 270 HN_ULONG_TO_UBASE(0x1C1049CA), HN_ULONG_TO_UBASE(0x10FE14A2), 271 HN_ULONG_TO_UBASE(0x0000004D) 272 }, 273 274 /* 11G.y */ 275 { 276 HN_ULONG_TO_UBASE(0xD2130D68), HN_ULONG_TO_UBASE(0x95BB30A7), 277 HN_ULONG_TO_UBASE(0x4C891468), HN_ULONG_TO_UBASE(0xC2A8F2A5), 278 HN_ULONG_TO_UBASE(0xB1608A4A), HN_ULONG_TO_UBASE(0x5236AE15), 279 HN_ULONG_TO_UBASE(0xC50F2485), HN_ULONG_TO_UBASE(0xBD832829), 280 HN_ULONG_TO_UBASE(0x435254ED), HN_ULONG_TO_UBASE(0xC87AF748), 281 HN_ULONG_TO_UBASE(0x3A80DC29), HN_ULONG_TO_UBASE(0xC76D7DF6), 282 HN_ULONG_TO_UBASE(0x5D881936), HN_ULONG_TO_UBASE(0x7CE57B49), 283 HN_ULONG_TO_UBASE(0xC0AEAA0D), HN_ULONG_TO_UBASE(0x8E95CB82), 284 HN_ULONG_TO_UBASE(0x0000017F) 285 }, 286 287 /* 12G.x */ 288 { 289 HN_ULONG_TO_UBASE(0x829A40A3), HN_ULONG_TO_UBASE(0x21A193C7), 290 HN_ULONG_TO_UBASE(0x05F32F41), HN_ULONG_TO_UBASE(0x87B759A9), 291 HN_ULONG_TO_UBASE(0x6E143537), HN_ULONG_TO_UBASE(0xBA154763), 292 HN_ULONG_TO_UBASE(0x6B5A6433), HN_ULONG_TO_UBASE(0xFB951864), 293 HN_ULONG_TO_UBASE(0xD8E9BE43), HN_ULONG_TO_UBASE(0x81C1DADF), 294 HN_ULONG_TO_UBASE(0xB5173D47), HN_ULONG_TO_UBASE(0x3145A42C), 295 HN_ULONG_TO_UBASE(0xE5C9B799), HN_ULONG_TO_UBASE(0x22D5EF4B), 296 HN_ULONG_TO_UBASE(0xFFE36EE4), HN_ULONG_TO_UBASE(0x0BDE5942), 297 HN_ULONG_TO_UBASE(0x0000010A) 298 }, 299 300 /* 12G.y */ 301 { 302 HN_ULONG_TO_UBASE(0xF4BC58E5), HN_ULONG_TO_UBASE(0xAFC83BA5), 303 HN_ULONG_TO_UBASE(0xD58698E3), HN_ULONG_TO_UBASE(0xB418E478), 304 HN_ULONG_TO_UBASE(0x1726D889), HN_ULONG_TO_UBASE(0x1F60371A), 305 HN_ULONG_TO_UBASE(0x2F0A291A), HN_ULONG_TO_UBASE(0xA5A58B57), 306 HN_ULONG_TO_UBASE(0xFD356626), HN_ULONG_TO_UBASE(0x0E44DA0A), 307 HN_ULONG_TO_UBASE(0x2D89342F), HN_ULONG_TO_UBASE(0xA3E9BE34), 308 HN_ULONG_TO_UBASE(0xC3C1B4A2), HN_ULONG_TO_UBASE(0x9195921B), 309 HN_ULONG_TO_UBASE(0x25E4191E), HN_ULONG_TO_UBASE(0xBCB21228), 310 HN_ULONG_TO_UBASE(0x00000135) 311 }, 312 313 /* 13G.x */ 314 { 315 HN_ULONG_TO_UBASE(0x0EBA209A), HN_ULONG_TO_UBASE(0xA1B5F88D), 316 HN_ULONG_TO_UBASE(0x3C5E2880), HN_ULONG_TO_UBASE(0x04B54668), 317 HN_ULONG_TO_UBASE(0xEFBB25F1), HN_ULONG_TO_UBASE(0xE93591A0), 318 HN_ULONG_TO_UBASE(0xE9729982), HN_ULONG_TO_UBASE(0x1678D5F7), 319 HN_ULONG_TO_UBASE(0x7D430831), HN_ULONG_TO_UBASE(0x6EB992DA), 320 HN_ULONG_TO_UBASE(0x0B7C198F), HN_ULONG_TO_UBASE(0x1A4A91F7), 321 HN_ULONG_TO_UBASE(0x6ED1FF3E), HN_ULONG_TO_UBASE(0x3A679847), 322 HN_ULONG_TO_UBASE(0x5465E131), HN_ULONG_TO_UBASE(0x18A5E132), 323 HN_ULONG_TO_UBASE(0x00000042) 324 }, 325 326 /* 13G.y */ 327 { 328 HN_ULONG_TO_UBASE(0x59486FC8), HN_ULONG_TO_UBASE(0xAF8471EB), 329 HN_ULONG_TO_UBASE(0x9B6AB9E2), HN_ULONG_TO_UBASE(0x397D8CAB), 330 HN_ULONG_TO_UBASE(0x10C0F9EA), HN_ULONG_TO_UBASE(0x942279C2), 331 HN_ULONG_TO_UBASE(0xDDDF11B9), HN_ULONG_TO_UBASE(0xB3186547), 332 HN_ULONG_TO_UBASE(0x7E0E49B0), HN_ULONG_TO_UBASE(0x2910861A), 333 HN_ULONG_TO_UBASE(0x4C374108), HN_ULONG_TO_UBASE(0x0AC066AB), 334 HN_ULONG_TO_UBASE(0x9C34F007), HN_ULONG_TO_UBASE(0x67C76F4C), 335 HN_ULONG_TO_UBASE(0x6A9E031F), HN_ULONG_TO_UBASE(0x3635EDBE), 336 HN_ULONG_TO_UBASE(0x000000F7) 337 }, 338 339 /* 14G.x */ 340 { 341 HN_ULONG_TO_UBASE(0x4CCFA596), HN_ULONG_TO_UBASE(0x2E91929F), 342 HN_ULONG_TO_UBASE(0x844098CF), HN_ULONG_TO_UBASE(0x3B168733), 343 HN_ULONG_TO_UBASE(0x616A36DF), HN_ULONG_TO_UBASE(0x0FEA437E), 344 HN_ULONG_TO_UBASE(0xE0DC39AE), HN_ULONG_TO_UBASE(0xBEA5755D), 345 HN_ULONG_TO_UBASE(0xCA20C73A), HN_ULONG_TO_UBASE(0x721050E6), 346 HN_ULONG_TO_UBASE(0xA6534DE2), HN_ULONG_TO_UBASE(0x5D86BB64), 347 HN_ULONG_TO_UBASE(0xAF758AEF), HN_ULONG_TO_UBASE(0x0C65FF4F), 348 HN_ULONG_TO_UBASE(0x33832CCA), HN_ULONG_TO_UBASE(0x38D7BD4D), 349 HN_ULONG_TO_UBASE(0x00000127) 350 }, 351 352 /* 14G.y */ 353 { 354 HN_ULONG_TO_UBASE(0xF7B22FC2), HN_ULONG_TO_UBASE(0xAABE7E25), 355 HN_ULONG_TO_UBASE(0x138537BE), HN_ULONG_TO_UBASE(0x44EC7B6E), 356 HN_ULONG_TO_UBASE(0x5AD7C324), HN_ULONG_TO_UBASE(0x33CD05C9), 357 HN_ULONG_TO_UBASE(0xC1602459), HN_ULONG_TO_UBASE(0x28A6115C), 358 HN_ULONG_TO_UBASE(0xDF229461), HN_ULONG_TO_UBASE(0x05C1AA34), 359 HN_ULONG_TO_UBASE(0xBDB1D24D), HN_ULONG_TO_UBASE(0x39FC35D8), 360 HN_ULONG_TO_UBASE(0x4B5F6223), HN_ULONG_TO_UBASE(0x536AA0D5), 361 HN_ULONG_TO_UBASE(0x703BD0F3), HN_ULONG_TO_UBASE(0x1D5287E3), 362 HN_ULONG_TO_UBASE(0x00000186) 363 }, 364 365 /* 15G.x */ 366 { 367 HN_ULONG_TO_UBASE(0x5E6A7807), HN_ULONG_TO_UBASE(0x9F9A072D), 368 HN_ULONG_TO_UBASE(0x39EEB105), HN_ULONG_TO_UBASE(0xF9A38A83), 369 HN_ULONG_TO_UBASE(0x17DDB1B4), HN_ULONG_TO_UBASE(0x1503495F), 370 HN_ULONG_TO_UBASE(0x732310B4), HN_ULONG_TO_UBASE(0xDA780A6C), 371 HN_ULONG_TO_UBASE(0x403A5D57), HN_ULONG_TO_UBASE(0x7B287813), 372 HN_ULONG_TO_UBASE(0xE7C481E7), HN_ULONG_TO_UBASE(0x6BB08815), 373 HN_ULONG_TO_UBASE(0x574C23E2), HN_ULONG_TO_UBASE(0x1198C8A4), 374 HN_ULONG_TO_UBASE(0x673DFC44), HN_ULONG_TO_UBASE(0xA8DA92A4), 375 HN_ULONG_TO_UBASE(0x0000002A) 376 }, 377 378 /* 15G.y */ 379 { 380 HN_ULONG_TO_UBASE(0xBFB7CE31), HN_ULONG_TO_UBASE(0x92DF33AE), 381 HN_ULONG_TO_UBASE(0x4A686F13), HN_ULONG_TO_UBASE(0x1648E528), 382 HN_ULONG_TO_UBASE(0xE45BA7F2), HN_ULONG_TO_UBASE(0x4429B3AF), 383 HN_ULONG_TO_UBASE(0x397C1D83), HN_ULONG_TO_UBASE(0x216C5137), 384 HN_ULONG_TO_UBASE(0xC8C8EE26), HN_ULONG_TO_UBASE(0xCAC9D3C3), 385 HN_ULONG_TO_UBASE(0x40C73424), HN_ULONG_TO_UBASE(0x0711605E), 386 HN_ULONG_TO_UBASE(0x219C8C3F), HN_ULONG_TO_UBASE(0x008B93A5), 387 HN_ULONG_TO_UBASE(0xC6F10BB3), HN_ULONG_TO_UBASE(0xAB1EE7B8), 388 HN_ULONG_TO_UBASE(0x000000E0) 389 }, 390 391 /* 16G.x */ 392 { 393 HN_ULONG_TO_UBASE(0x10A8C4FB), HN_ULONG_TO_UBASE(0x73A6BA38), 394 HN_ULONG_TO_UBASE(0xECC93E5D), HN_ULONG_TO_UBASE(0x5153D959), 395 HN_ULONG_TO_UBASE(0xB59E9871), HN_ULONG_TO_UBASE(0x7CA58012), 396 HN_ULONG_TO_UBASE(0xAFD442F1), HN_ULONG_TO_UBASE(0xEDC0DBEF), 397 HN_ULONG_TO_UBASE(0xB9CF7691), HN_ULONG_TO_UBASE(0xB9050A22), 398 HN_ULONG_TO_UBASE(0x464D017D), HN_ULONG_TO_UBASE(0x3D1E96FE), 399 HN_ULONG_TO_UBASE(0x82074DCA), HN_ULONG_TO_UBASE(0x541781A4), 400 HN_ULONG_TO_UBASE(0x8B355413), HN_ULONG_TO_UBASE(0xEDCE0DB3), 401 HN_ULONG_TO_UBASE(0x0000006B) 402 }, 403 404 /* 16G.y */ 405 { 406 HN_ULONG_TO_UBASE(0xAE2B39C2), HN_ULONG_TO_UBASE(0x1A13E3EE), 407 HN_ULONG_TO_UBASE(0x3C218179), HN_ULONG_TO_UBASE(0xC431081D), 408 HN_ULONG_TO_UBASE(0xAE68B7C6), HN_ULONG_TO_UBASE(0x5CBC14C1), 409 HN_ULONG_TO_UBASE(0x9005A304), HN_ULONG_TO_UBASE(0xCF2559BB), 410 HN_ULONG_TO_UBASE(0x2EC7AED5), HN_ULONG_TO_UBASE(0x14D7C1E9), 411 HN_ULONG_TO_UBASE(0x1E2E2F0D), HN_ULONG_TO_UBASE(0x5C379BFE), 412 HN_ULONG_TO_UBASE(0x886F0CF9), HN_ULONG_TO_UBASE(0xFC33E4D2), 413 HN_ULONG_TO_UBASE(0xAC4E1D17), HN_ULONG_TO_UBASE(0x2F14E7D0), 414 HN_ULONG_TO_UBASE(0x00000071) 415 }, 416 417 /* 17G.x */ 418 { 419 HN_ULONG_TO_UBASE(0xEDDE488A), HN_ULONG_TO_UBASE(0x2F1F1497), 420 HN_ULONG_TO_UBASE(0x31EE698E), HN_ULONG_TO_UBASE(0x3D0364B2), 421 HN_ULONG_TO_UBASE(0xA47E048E), HN_ULONG_TO_UBASE(0x88A32C39), 422 HN_ULONG_TO_UBASE(0x86DA37C4), HN_ULONG_TO_UBASE(0x80ABD8DE), 423 HN_ULONG_TO_UBASE(0x07895C9C), HN_ULONG_TO_UBASE(0x6608EED9), 424 HN_ULONG_TO_UBASE(0xD18A7081), HN_ULONG_TO_UBASE(0xCCA6B9E6), 425 HN_ULONG_TO_UBASE(0x0CA87303), HN_ULONG_TO_UBASE(0x44F63AA9), 426 HN_ULONG_TO_UBASE(0x094F9789), HN_ULONG_TO_UBASE(0x84281EED), 427 HN_ULONG_TO_UBASE(0x0000017F) 428 }, 429 430 /* 17G.y */ 431 { 432 HN_ULONG_TO_UBASE(0x6AA5F7A3), HN_ULONG_TO_UBASE(0x5703727D), 433 HN_ULONG_TO_UBASE(0x09DA94A2), HN_ULONG_TO_UBASE(0xD9C33512), 434 HN_ULONG_TO_UBASE(0xADDCCFD6), HN_ULONG_TO_UBASE(0x80572F9E), 435 HN_ULONG_TO_UBASE(0x45FEBCC1), HN_ULONG_TO_UBASE(0xF95BF8B0), 436 HN_ULONG_TO_UBASE(0x30A48DAC), HN_ULONG_TO_UBASE(0x4BCD4B12), 437 HN_ULONG_TO_UBASE(0xF00F8619), HN_ULONG_TO_UBASE(0x32A16A21), 438 HN_ULONG_TO_UBASE(0x1BCAD341), HN_ULONG_TO_UBASE(0x612D82B9), 439 HN_ULONG_TO_UBASE(0xE2BABC4A), HN_ULONG_TO_UBASE(0xF42138DA), 440 HN_ULONG_TO_UBASE(0x0000014B) 441 }, 442 443 /* 18G.x */ 444 { 445 HN_ULONG_TO_UBASE(0x1510E086), HN_ULONG_TO_UBASE(0x7E9364EA), 446 HN_ULONG_TO_UBASE(0x31D0F679), HN_ULONG_TO_UBASE(0x524B63B1), 447 HN_ULONG_TO_UBASE(0x9AEAE146), HN_ULONG_TO_UBASE(0xF8F3CC52), 448 HN_ULONG_TO_UBASE(0x36F90818), HN_ULONG_TO_UBASE(0x8C05C88D), 449 HN_ULONG_TO_UBASE(0x80D7DAB5), HN_ULONG_TO_UBASE(0x16ED75E5), 450 HN_ULONG_TO_UBASE(0x54000C49), HN_ULONG_TO_UBASE(0x8F872700), 451 HN_ULONG_TO_UBASE(0x843C5F7A), HN_ULONG_TO_UBASE(0x9740A2A1), 452 HN_ULONG_TO_UBASE(0x6E680411), HN_ULONG_TO_UBASE(0x8DC46AC5), 453 HN_ULONG_TO_UBASE(0x000000D8) 454 }, 455 456 /* 18G.y */ 457 { 458 HN_ULONG_TO_UBASE(0xBAC1FCBC), HN_ULONG_TO_UBASE(0x9492A1D6), 459 HN_ULONG_TO_UBASE(0x8A9CA207), HN_ULONG_TO_UBASE(0xCD7CD811), 460 HN_ULONG_TO_UBASE(0xCDED0753), HN_ULONG_TO_UBASE(0xD61403A1), 461 HN_ULONG_TO_UBASE(0x6702B3FA), HN_ULONG_TO_UBASE(0x2D232E49), 462 HN_ULONG_TO_UBASE(0x83E33229), HN_ULONG_TO_UBASE(0x5BD01FC9), 463 HN_ULONG_TO_UBASE(0x4DBE98F9), HN_ULONG_TO_UBASE(0x157C427C), 464 HN_ULONG_TO_UBASE(0x1C5B4229), HN_ULONG_TO_UBASE(0xD2594A9F), 465 HN_ULONG_TO_UBASE(0xE6318047), HN_ULONG_TO_UBASE(0xE0207B85), 466 HN_ULONG_TO_UBASE(0x000001F5) 467 }, 468 469 /* 19G.x */ 470 { 471 HN_ULONG_TO_UBASE(0x71AAEF75), HN_ULONG_TO_UBASE(0x6BF98381), 472 HN_ULONG_TO_UBASE(0xC14B076A), HN_ULONG_TO_UBASE(0x479CC2A8), 473 HN_ULONG_TO_UBASE(0xCC783DC5), HN_ULONG_TO_UBASE(0xC0466EC4), 474 HN_ULONG_TO_UBASE(0x682E48F9), HN_ULONG_TO_UBASE(0x7F120DA2), 475 HN_ULONG_TO_UBASE(0x4A4ED12F), HN_ULONG_TO_UBASE(0xE02258AC), 476 HN_ULONG_TO_UBASE(0x83DA05ED), HN_ULONG_TO_UBASE(0x8D8AB9B9), 477 HN_ULONG_TO_UBASE(0x394701B0), HN_ULONG_TO_UBASE(0xB1B1EC54), 478 HN_ULONG_TO_UBASE(0x82D2C76E), HN_ULONG_TO_UBASE(0x8FC99926), 479 HN_ULONG_TO_UBASE(0x00000079) 480 }, 481 482 /* 19G.y */ 483 { 484 HN_ULONG_TO_UBASE(0x96C5465A), HN_ULONG_TO_UBASE(0x0A611BF4), 485 HN_ULONG_TO_UBASE(0x74F20F8F), HN_ULONG_TO_UBASE(0xD0A6B210), 486 HN_ULONG_TO_UBASE(0xB7200111), HN_ULONG_TO_UBASE(0x2178F283), 487 HN_ULONG_TO_UBASE(0x48705A27), HN_ULONG_TO_UBASE(0xBD71855C), 488 HN_ULONG_TO_UBASE(0xE797AA46), HN_ULONG_TO_UBASE(0x204B17EB), 489 HN_ULONG_TO_UBASE(0x1A418C95), HN_ULONG_TO_UBASE(0x8200553C), 490 HN_ULONG_TO_UBASE(0x7C5363E9), HN_ULONG_TO_UBASE(0x0AC39A6A), 491 HN_ULONG_TO_UBASE(0x38E587EC), HN_ULONG_TO_UBASE(0x41E58BA1), 492 HN_ULONG_TO_UBASE(0x00000092) 493 }, 494 495 /* 20G.x */ 496 { 497 HN_ULONG_TO_UBASE(0xD580C2BF), HN_ULONG_TO_UBASE(0x7A1128D3), 498 HN_ULONG_TO_UBASE(0x33CB48FF), HN_ULONG_TO_UBASE(0x54CB80B9), 499 HN_ULONG_TO_UBASE(0x124988A8), HN_ULONG_TO_UBASE(0x12E00E24), 500 HN_ULONG_TO_UBASE(0x8973B0B6), HN_ULONG_TO_UBASE(0x2E41BD3E), 501 HN_ULONG_TO_UBASE(0x0729F811), HN_ULONG_TO_UBASE(0x81F9B249), 502 HN_ULONG_TO_UBASE(0x0B26F7D0), HN_ULONG_TO_UBASE(0x82B1E837), 503 HN_ULONG_TO_UBASE(0x453D977E), HN_ULONG_TO_UBASE(0x66102520), 504 HN_ULONG_TO_UBASE(0x76AF2FF3), HN_ULONG_TO_UBASE(0x86404FBF), 505 HN_ULONG_TO_UBASE(0x00000122) 506 }, 507 508 /* 20G.y */ 509 { 510 HN_ULONG_TO_UBASE(0xDA706520), HN_ULONG_TO_UBASE(0x935EED87), 511 HN_ULONG_TO_UBASE(0x72990FDC), HN_ULONG_TO_UBASE(0x35AEFF20), 512 HN_ULONG_TO_UBASE(0x75F99B1D), HN_ULONG_TO_UBASE(0xF65CFB16), 513 HN_ULONG_TO_UBASE(0x8369D686), HN_ULONG_TO_UBASE(0x0E6D254D), 514 HN_ULONG_TO_UBASE(0x0882827E), HN_ULONG_TO_UBASE(0xC3493C5E), 515 HN_ULONG_TO_UBASE(0x4F166119), HN_ULONG_TO_UBASE(0xA0EDF2DA), 516 HN_ULONG_TO_UBASE(0x59363A25), HN_ULONG_TO_UBASE(0x7638D201), 517 HN_ULONG_TO_UBASE(0x76088E6B), HN_ULONG_TO_UBASE(0xECE18042), 518 HN_ULONG_TO_UBASE(0x00000138) 519 }, 520 521 /* 21G.x */ 522 { 523 HN_ULONG_TO_UBASE(0xF8913CC2), HN_ULONG_TO_UBASE(0x02FB999B), 524 HN_ULONG_TO_UBASE(0xC961F4D7), HN_ULONG_TO_UBASE(0x81688347), 525 HN_ULONG_TO_UBASE(0x8D0435C3), HN_ULONG_TO_UBASE(0xD54C91F7), 526 HN_ULONG_TO_UBASE(0x990E6AB3), HN_ULONG_TO_UBASE(0xCBD0BCCA), 527 HN_ULONG_TO_UBASE(0xD848398A), HN_ULONG_TO_UBASE(0x3C8BCE08), 528 HN_ULONG_TO_UBASE(0xD5370ED6), HN_ULONG_TO_UBASE(0x83F3F979), 529 HN_ULONG_TO_UBASE(0x74FD3AC3), HN_ULONG_TO_UBASE(0x7449BBD2), 530 HN_ULONG_TO_UBASE(0x4E73CFAA), HN_ULONG_TO_UBASE(0xE6145DB8), 531 HN_ULONG_TO_UBASE(0x0000015E) 532 }, 533 534 /* 21G.y */ 535 { 536 HN_ULONG_TO_UBASE(0x58044777), HN_ULONG_TO_UBASE(0x8A435E24), 537 HN_ULONG_TO_UBASE(0x937E7687), HN_ULONG_TO_UBASE(0x29B9D279), 538 HN_ULONG_TO_UBASE(0xE44D2874), HN_ULONG_TO_UBASE(0x42C2E303), 539 HN_ULONG_TO_UBASE(0x9845F55F), HN_ULONG_TO_UBASE(0xFDE623CA), 540 HN_ULONG_TO_UBASE(0x2FA1BC3E), HN_ULONG_TO_UBASE(0x752C258F), 541 HN_ULONG_TO_UBASE(0xCE8A096A), HN_ULONG_TO_UBASE(0x198DB2B3), 542 HN_ULONG_TO_UBASE(0x6F2EC50F), HN_ULONG_TO_UBASE(0x59B5361B), 543 HN_ULONG_TO_UBASE(0x1A2AA43F), HN_ULONG_TO_UBASE(0x5A4F209C), 544 HN_ULONG_TO_UBASE(0x0000014A) 545 }, 546 547 /* 22G.x */ 548 { 549 HN_ULONG_TO_UBASE(0x4F005DA0), HN_ULONG_TO_UBASE(0xFCBB48B5), 550 HN_ULONG_TO_UBASE(0x50CBC0C5), HN_ULONG_TO_UBASE(0x2A8D3120), 551 HN_ULONG_TO_UBASE(0xE9AC811D), HN_ULONG_TO_UBASE(0xB33C1526), 552 HN_ULONG_TO_UBASE(0x586013F2), HN_ULONG_TO_UBASE(0x91E493CE), 553 HN_ULONG_TO_UBASE(0x488D1688), HN_ULONG_TO_UBASE(0x99412264), 554 HN_ULONG_TO_UBASE(0x875C45E1), HN_ULONG_TO_UBASE(0x7966C1C1), 555 HN_ULONG_TO_UBASE(0xBE0D5B72), HN_ULONG_TO_UBASE(0x9DBC86D2), 556 HN_ULONG_TO_UBASE(0x1553D029), HN_ULONG_TO_UBASE(0x63A83498), 557 HN_ULONG_TO_UBASE(0x00000068) 558 }, 559 560 /* 22G.y */ 561 { 562 HN_ULONG_TO_UBASE(0x9D44055B), HN_ULONG_TO_UBASE(0x184F3300), 563 HN_ULONG_TO_UBASE(0xD232A2F5), HN_ULONG_TO_UBASE(0xADBEC2BB), 564 HN_ULONG_TO_UBASE(0x5A2A5EB5), HN_ULONG_TO_UBASE(0x4E0B32A8), 565 HN_ULONG_TO_UBASE(0xE3535F4C), HN_ULONG_TO_UBASE(0x938D776C), 566 HN_ULONG_TO_UBASE(0x0F169CF8), HN_ULONG_TO_UBASE(0xD2591A1A), 567 HN_ULONG_TO_UBASE(0xE7A2093D), HN_ULONG_TO_UBASE(0x8DCA29F4), 568 HN_ULONG_TO_UBASE(0x145F902B), HN_ULONG_TO_UBASE(0xB8746330), 569 HN_ULONG_TO_UBASE(0xFE2CEBEC), HN_ULONG_TO_UBASE(0x816D6F86), 570 HN_ULONG_TO_UBASE(0x00000068) 571 }, 572 573 /* 23G.x */ 574 { 575 HN_ULONG_TO_UBASE(0x2A7FABD6), HN_ULONG_TO_UBASE(0x5B774088), 576 HN_ULONG_TO_UBASE(0x826F236E), HN_ULONG_TO_UBASE(0x0911E7F0), 577 HN_ULONG_TO_UBASE(0x84F0BBD3), HN_ULONG_TO_UBASE(0xBC4D014C), 578 HN_ULONG_TO_UBASE(0x2E000C1A), HN_ULONG_TO_UBASE(0x0B8BCD8F), 579 HN_ULONG_TO_UBASE(0x2DDEB721), HN_ULONG_TO_UBASE(0xD5FF7778), 580 HN_ULONG_TO_UBASE(0x7EF826A9), HN_ULONG_TO_UBASE(0x0F7A76F9), 581 HN_ULONG_TO_UBASE(0x644D2F94), HN_ULONG_TO_UBASE(0x031CE26F), 582 HN_ULONG_TO_UBASE(0x78FDC7ED), HN_ULONG_TO_UBASE(0x1EAFDC82), 583 HN_ULONG_TO_UBASE(0x000001E2) 584 }, 585 586 /* 23G.y */ 587 { 588 HN_ULONG_TO_UBASE(0xA60BC2A1), HN_ULONG_TO_UBASE(0x16BF1952), 589 HN_ULONG_TO_UBASE(0x3DD7DCD5), HN_ULONG_TO_UBASE(0x2CE4110C), 590 HN_ULONG_TO_UBASE(0x78E260C3), HN_ULONG_TO_UBASE(0x3DF02BF1), 591 HN_ULONG_TO_UBASE(0x3944B29C), HN_ULONG_TO_UBASE(0x132208C2), 592 HN_ULONG_TO_UBASE(0x59682E01), HN_ULONG_TO_UBASE(0x13ADD246), 593 HN_ULONG_TO_UBASE(0x133B08C5), HN_ULONG_TO_UBASE(0x87922B46), 594 HN_ULONG_TO_UBASE(0x51C7AEA4), HN_ULONG_TO_UBASE(0x5B3E4932), 595 HN_ULONG_TO_UBASE(0x9380BDFF), HN_ULONG_TO_UBASE(0x9E77C83B), 596 HN_ULONG_TO_UBASE(0x000000E0) 597 }, 598 599 /* 24G.x */ 600 { 601 HN_ULONG_TO_UBASE(0x54746586), HN_ULONG_TO_UBASE(0x3CE44040), 602 HN_ULONG_TO_UBASE(0x31E2CB31), HN_ULONG_TO_UBASE(0x5260F1BE), 603 HN_ULONG_TO_UBASE(0x1C0A1DC6), HN_ULONG_TO_UBASE(0x802E6890), 604 HN_ULONG_TO_UBASE(0xF84363BB), HN_ULONG_TO_UBASE(0x5E9AAEA8), 605 HN_ULONG_TO_UBASE(0x4CCCCA39), HN_ULONG_TO_UBASE(0xFFD8A962), 606 HN_ULONG_TO_UBASE(0xFA9EF6E4), HN_ULONG_TO_UBASE(0xE12A8BE6), 607 HN_ULONG_TO_UBASE(0x31BE868F), HN_ULONG_TO_UBASE(0x85338185), 608 HN_ULONG_TO_UBASE(0xA23A3B36), HN_ULONG_TO_UBASE(0x25878406), 609 HN_ULONG_TO_UBASE(0x0000003C) 610 }, 611 612 /* 24G.y */ 613 { 614 HN_ULONG_TO_UBASE(0x96E54499), HN_ULONG_TO_UBASE(0x14827414), 615 HN_ULONG_TO_UBASE(0x8E050034), HN_ULONG_TO_UBASE(0xA0732F96), 616 HN_ULONG_TO_UBASE(0x467CADC7), HN_ULONG_TO_UBASE(0x1C6FA676), 617 HN_ULONG_TO_UBASE(0x98D6927C), HN_ULONG_TO_UBASE(0xA63BA10C), 618 HN_ULONG_TO_UBASE(0xDCC2500F), HN_ULONG_TO_UBASE(0x58CB6F96), 619 HN_ULONG_TO_UBASE(0xEA4FD9C5), HN_ULONG_TO_UBASE(0xACCB76D6), 620 HN_ULONG_TO_UBASE(0x30786990), HN_ULONG_TO_UBASE(0xE2A2F59B), 621 HN_ULONG_TO_UBASE(0xD224CCFE), HN_ULONG_TO_UBASE(0xD8B24679), 622 HN_ULONG_TO_UBASE(0x000001B2) 623 }, 624 625 /* 25G.x */ 626 { 627 HN_ULONG_TO_UBASE(0xA84D476C), HN_ULONG_TO_UBASE(0xDBE7BC43), 628 HN_ULONG_TO_UBASE(0x0DF0F82F), HN_ULONG_TO_UBASE(0x80C66135), 629 HN_ULONG_TO_UBASE(0x7996B3DD), HN_ULONG_TO_UBASE(0xFDA3915E), 630 HN_ULONG_TO_UBASE(0x5460B6A5), HN_ULONG_TO_UBASE(0xD309856F), 631 HN_ULONG_TO_UBASE(0xFB5F2A03), HN_ULONG_TO_UBASE(0xDA60ECFB), 632 HN_ULONG_TO_UBASE(0x87F5C81E), HN_ULONG_TO_UBASE(0xB45421CC), 633 HN_ULONG_TO_UBASE(0x93297E69), HN_ULONG_TO_UBASE(0xE78F50B7), 634 HN_ULONG_TO_UBASE(0x92B7AB1B), HN_ULONG_TO_UBASE(0xB57EF6E0), 635 HN_ULONG_TO_UBASE(0x00000020) 636 }, 637 638 /* 25G.y */ 639 { 640 HN_ULONG_TO_UBASE(0xD5A7E947), HN_ULONG_TO_UBASE(0x2FAC246B), 641 HN_ULONG_TO_UBASE(0x3C2C0E9E), HN_ULONG_TO_UBASE(0xA3560F17), 642 HN_ULONG_TO_UBASE(0x99A15EDC), HN_ULONG_TO_UBASE(0x36F3BEA7), 643 HN_ULONG_TO_UBASE(0xF6DF7626), HN_ULONG_TO_UBASE(0x51E0953F), 644 HN_ULONG_TO_UBASE(0xE181410F), HN_ULONG_TO_UBASE(0x791FB8F1), 645 HN_ULONG_TO_UBASE(0x065B1CD7), HN_ULONG_TO_UBASE(0x9E592427), 646 HN_ULONG_TO_UBASE(0x6E9A54B5), HN_ULONG_TO_UBASE(0x492C7736), 647 HN_ULONG_TO_UBASE(0xF664EAD5), HN_ULONG_TO_UBASE(0x8F186347), 648 HN_ULONG_TO_UBASE(0x000001DE) 649 }, 650 651 /* 26G.x */ 652 { 653 HN_ULONG_TO_UBASE(0xCC9F295B), HN_ULONG_TO_UBASE(0xF8B25DE3), 654 HN_ULONG_TO_UBASE(0xD481F758), HN_ULONG_TO_UBASE(0x6A3A6AFD), 655 HN_ULONG_TO_UBASE(0xD7194DD7), HN_ULONG_TO_UBASE(0x0F362D65), 656 HN_ULONG_TO_UBASE(0x72839C8B), HN_ULONG_TO_UBASE(0xD0706B14), 657 HN_ULONG_TO_UBASE(0x86E79D73), HN_ULONG_TO_UBASE(0x863FC677), 658 HN_ULONG_TO_UBASE(0xBD51AA66), HN_ULONG_TO_UBASE(0x7A312DD4), 659 HN_ULONG_TO_UBASE(0xE2FB1520), HN_ULONG_TO_UBASE(0x4F54148B), 660 HN_ULONG_TO_UBASE(0xD3FAFAA8), HN_ULONG_TO_UBASE(0xF819350E), 661 HN_ULONG_TO_UBASE(0x000000A5) 662 }, 663 664 /* 26G.y */ 665 { 666 HN_ULONG_TO_UBASE(0xD0BA1319), HN_ULONG_TO_UBASE(0xDADE2B22), 667 HN_ULONG_TO_UBASE(0x0E128DE4), HN_ULONG_TO_UBASE(0xEC0DF712), 668 HN_ULONG_TO_UBASE(0xA47D34B8), HN_ULONG_TO_UBASE(0xBFBB4A30), 669 HN_ULONG_TO_UBASE(0x6C0FE4B4), HN_ULONG_TO_UBASE(0x27A996FE), 670 HN_ULONG_TO_UBASE(0xFC390C4C), HN_ULONG_TO_UBASE(0xF37AC376), 671 HN_ULONG_TO_UBASE(0x8F1D9559), HN_ULONG_TO_UBASE(0xA28F1992), 672 HN_ULONG_TO_UBASE(0x7917FB9E), HN_ULONG_TO_UBASE(0x59A81149), 673 HN_ULONG_TO_UBASE(0x24E5BB5E), HN_ULONG_TO_UBASE(0x5658B74F), 674 HN_ULONG_TO_UBASE(0x000001C1) 675 }, 676 677 /* 27G.x */ 678 { 679 HN_ULONG_TO_UBASE(0xE090CB47), HN_ULONG_TO_UBASE(0x0B8C54ED), 680 HN_ULONG_TO_UBASE(0xABACC4B9), HN_ULONG_TO_UBASE(0xDDCEF543), 681 HN_ULONG_TO_UBASE(0x6F45D144), HN_ULONG_TO_UBASE(0xAA5D9F95), 682 HN_ULONG_TO_UBASE(0x6D5B0B7D), HN_ULONG_TO_UBASE(0x5829EA88), 683 HN_ULONG_TO_UBASE(0x5D9B5A9B), HN_ULONG_TO_UBASE(0xA08415C0), 684 HN_ULONG_TO_UBASE(0x9D469207), HN_ULONG_TO_UBASE(0x0DCDD858), 685 HN_ULONG_TO_UBASE(0xAD47D576), HN_ULONG_TO_UBASE(0x91EF5090), 686 HN_ULONG_TO_UBASE(0xFC9C5403), HN_ULONG_TO_UBASE(0x286B59F7), 687 HN_ULONG_TO_UBASE(0x000000A4) 688 }, 689 690 /* 27G.y */ 691 { 692 HN_ULONG_TO_UBASE(0x681A6033), HN_ULONG_TO_UBASE(0x51F28B4E), 693 HN_ULONG_TO_UBASE(0x5586A02D), HN_ULONG_TO_UBASE(0x92C8812F), 694 HN_ULONG_TO_UBASE(0x37F75BE9), HN_ULONG_TO_UBASE(0x65497752), 695 HN_ULONG_TO_UBASE(0xE465AC3D), HN_ULONG_TO_UBASE(0x39ED9C48), 696 HN_ULONG_TO_UBASE(0xEA5746A3), HN_ULONG_TO_UBASE(0x52B0558D), 697 HN_ULONG_TO_UBASE(0x2281BF57), HN_ULONG_TO_UBASE(0xB1AD72EA), 698 HN_ULONG_TO_UBASE(0xC29BC5BA), HN_ULONG_TO_UBASE(0xFA48BE23), 699 HN_ULONG_TO_UBASE(0xB11E0B1A), HN_ULONG_TO_UBASE(0x5DDD7E6B), 700 HN_ULONG_TO_UBASE(0x00000144) 701 }, 702 703 /* 28G.x */ 704 { 705 HN_ULONG_TO_UBASE(0xDFBF1C5D), HN_ULONG_TO_UBASE(0x6B91BD8F), 706 HN_ULONG_TO_UBASE(0x35CBBE74), HN_ULONG_TO_UBASE(0x29CBC8C5), 707 HN_ULONG_TO_UBASE(0xECA1F1E8), HN_ULONG_TO_UBASE(0xF2BF1BF0), 708 HN_ULONG_TO_UBASE(0x8B74129C), HN_ULONG_TO_UBASE(0x64BC1B61), 709 HN_ULONG_TO_UBASE(0xA26DB0BA), HN_ULONG_TO_UBASE(0x5701D92D), 710 HN_ULONG_TO_UBASE(0x629C49B0), HN_ULONG_TO_UBASE(0x3BBBDA1D), 711 HN_ULONG_TO_UBASE(0x628F9CF9), HN_ULONG_TO_UBASE(0x77932B00), 712 HN_ULONG_TO_UBASE(0xE3B93FD6), HN_ULONG_TO_UBASE(0xF4DD2F98), 713 HN_ULONG_TO_UBASE(0x0000004E) 714 }, 715 716 /* 28G.y */ 717 { 718 HN_ULONG_TO_UBASE(0xE84D1AA9), HN_ULONG_TO_UBASE(0x50D3F239), 719 HN_ULONG_TO_UBASE(0x80BE7733), HN_ULONG_TO_UBASE(0x76243D29), 720 HN_ULONG_TO_UBASE(0x5F3A7F3E), HN_ULONG_TO_UBASE(0x8F1F1050), 721 HN_ULONG_TO_UBASE(0xFCEF3C41), HN_ULONG_TO_UBASE(0x5B49D4A6), 722 HN_ULONG_TO_UBASE(0x15608CF3), HN_ULONG_TO_UBASE(0x97025D37), 723 HN_ULONG_TO_UBASE(0x0ADCFFE2), HN_ULONG_TO_UBASE(0x8CE7FBDA), 724 HN_ULONG_TO_UBASE(0xF8EFC79A), HN_ULONG_TO_UBASE(0xDB4849EC), 725 HN_ULONG_TO_UBASE(0x67855D5B), HN_ULONG_TO_UBASE(0xFE454312), 726 HN_ULONG_TO_UBASE(0x00000087) 727 }, 728 729 /* 29G.x */ 730 { 731 HN_ULONG_TO_UBASE(0x643FA4EF), HN_ULONG_TO_UBASE(0xC6D4508A), 732 HN_ULONG_TO_UBASE(0x2F666F82), HN_ULONG_TO_UBASE(0xA54E8CC0), 733 HN_ULONG_TO_UBASE(0x2DC798A4), HN_ULONG_TO_UBASE(0x34A01969), 734 HN_ULONG_TO_UBASE(0x111EBEC5), HN_ULONG_TO_UBASE(0x3B92FC56), 735 HN_ULONG_TO_UBASE(0xCE2FEDD7), HN_ULONG_TO_UBASE(0x8F6BDC34), 736 HN_ULONG_TO_UBASE(0x57CC1DC0), HN_ULONG_TO_UBASE(0x9D5D1B75), 737 HN_ULONG_TO_UBASE(0xB8FEF3F8), HN_ULONG_TO_UBASE(0x8019D044), 738 HN_ULONG_TO_UBASE(0xA5F3C3DA), HN_ULONG_TO_UBASE(0x8CB35753), 739 HN_ULONG_TO_UBASE(0x00000091) 740 }, 741 742 /* 29G.y */ 743 { 744 HN_ULONG_TO_UBASE(0x1D608111), HN_ULONG_TO_UBASE(0x81975CB9), 745 HN_ULONG_TO_UBASE(0x6D5131E8), HN_ULONG_TO_UBASE(0x423B14C7), 746 HN_ULONG_TO_UBASE(0x9822E028), HN_ULONG_TO_UBASE(0xCD872107), 747 HN_ULONG_TO_UBASE(0x55997E16), HN_ULONG_TO_UBASE(0x3B325E7E), 748 HN_ULONG_TO_UBASE(0x77CB3C94), HN_ULONG_TO_UBASE(0x076A9D7A), 749 HN_ULONG_TO_UBASE(0xA0038852), HN_ULONG_TO_UBASE(0xBC1550AA), 750 HN_ULONG_TO_UBASE(0xF47B925F), HN_ULONG_TO_UBASE(0x4F0E3B8E), 751 HN_ULONG_TO_UBASE(0xDAA979F8), HN_ULONG_TO_UBASE(0xEFD3DA16), 752 HN_ULONG_TO_UBASE(0x00000117) 753 }, 754 755 /* 30G.x */ 756 { 757 HN_ULONG_TO_UBASE(0x8D320182), HN_ULONG_TO_UBASE(0x39D27F3B), 758 HN_ULONG_TO_UBASE(0x57F13AD2), HN_ULONG_TO_UBASE(0xAF725A25), 759 HN_ULONG_TO_UBASE(0x21F64D54), HN_ULONG_TO_UBASE(0x776680A4), 760 HN_ULONG_TO_UBASE(0x346AD04E), HN_ULONG_TO_UBASE(0x8C76F109), 761 HN_ULONG_TO_UBASE(0x02313957), HN_ULONG_TO_UBASE(0x1C57732C), 762 HN_ULONG_TO_UBASE(0x0026D082), HN_ULONG_TO_UBASE(0xD610C412), 763 HN_ULONG_TO_UBASE(0x9F070119), HN_ULONG_TO_UBASE(0xBF2AFD03), 764 HN_ULONG_TO_UBASE(0x0FE119E2), HN_ULONG_TO_UBASE(0xB78AB112), 765 HN_ULONG_TO_UBASE(0x00000195) 766 }, 767 768 /* 30G.y */ 769 { 770 HN_ULONG_TO_UBASE(0xDE80E59F), HN_ULONG_TO_UBASE(0x6759CF0F), 771 HN_ULONG_TO_UBASE(0x1C569A55), HN_ULONG_TO_UBASE(0xBC9C518D), 772 HN_ULONG_TO_UBASE(0x6CCC33E7), HN_ULONG_TO_UBASE(0x9EF3AFB2), 773 HN_ULONG_TO_UBASE(0x3B2B65A2), HN_ULONG_TO_UBASE(0x54CD7E1C), 774 HN_ULONG_TO_UBASE(0x89020840), HN_ULONG_TO_UBASE(0x056D2549), 775 HN_ULONG_TO_UBASE(0xEA20691F), HN_ULONG_TO_UBASE(0x2B8C3C49), 776 HN_ULONG_TO_UBASE(0xECF9ED3D), HN_ULONG_TO_UBASE(0xDD6F6CAD), 777 HN_ULONG_TO_UBASE(0xCD81C6B2), HN_ULONG_TO_UBASE(0x0287ED9E), 778 HN_ULONG_TO_UBASE(0x000001AA) 779 }, 780 781 /* 31G.x */ 782 { 783 HN_ULONG_TO_UBASE(0x0886FCE5), HN_ULONG_TO_UBASE(0x0932A85E), 784 HN_ULONG_TO_UBASE(0x539E0749), HN_ULONG_TO_UBASE(0xF22990FC), 785 HN_ULONG_TO_UBASE(0x9622B480), HN_ULONG_TO_UBASE(0x0900525D), 786 HN_ULONG_TO_UBASE(0x2322A79E), HN_ULONG_TO_UBASE(0xF8159FB8), 787 HN_ULONG_TO_UBASE(0x52225E4A), HN_ULONG_TO_UBASE(0x16BC8FBA), 788 HN_ULONG_TO_UBASE(0x3A8B6083), HN_ULONG_TO_UBASE(0x80AED84F), 789 HN_ULONG_TO_UBASE(0x7C8B52D4), HN_ULONG_TO_UBASE(0x0EC2EA9E), 790 HN_ULONG_TO_UBASE(0x8C474025), HN_ULONG_TO_UBASE(0x88586280), 791 HN_ULONG_TO_UBASE(0x00000122) 792 }, 793 794 /* 31G.y */ 795 { 796 HN_ULONG_TO_UBASE(0x1FA537FC), HN_ULONG_TO_UBASE(0x7E82B98A), 797 HN_ULONG_TO_UBASE(0xB07AEE91), HN_ULONG_TO_UBASE(0x06814D94), 798 HN_ULONG_TO_UBASE(0x39BBF49E), HN_ULONG_TO_UBASE(0x2ACE89A4), 799 HN_ULONG_TO_UBASE(0x572F35DE), HN_ULONG_TO_UBASE(0x4272B632), 800 HN_ULONG_TO_UBASE(0xA6132D49), HN_ULONG_TO_UBASE(0x4AA5EC9C), 801 HN_ULONG_TO_UBASE(0x0AC0CC3E), HN_ULONG_TO_UBASE(0x6DA8505B), 802 HN_ULONG_TO_UBASE(0xF0B72ACE), HN_ULONG_TO_UBASE(0xE50B950F), 803 HN_ULONG_TO_UBASE(0xEB7A6DCB), HN_ULONG_TO_UBASE(0x38D4E07D), 804 HN_ULONG_TO_UBASE(0x000000BB) 805 } 806 }; 807 static NX_CRYPTO_CONST HN_UBASE secp521r1_fixed_points_2e_data[][68 >> HN_SIZE_SHIFT] = 808 { 809 810 /* 2^e * 1G.x */ 811 { 812 HN_ULONG_TO_UBASE(0x676A875A), HN_ULONG_TO_UBASE(0xB19A5828), 813 HN_ULONG_TO_UBASE(0xC83A4911), HN_ULONG_TO_UBASE(0x40729F28), 814 HN_ULONG_TO_UBASE(0xC6DCE05B), HN_ULONG_TO_UBASE(0x511949B1), 815 HN_ULONG_TO_UBASE(0x3FCF0490), HN_ULONG_TO_UBASE(0x25914C8C), 816 HN_ULONG_TO_UBASE(0x0C6C2742), HN_ULONG_TO_UBASE(0xC49490DE), 817 HN_ULONG_TO_UBASE(0xDF6CD770), HN_ULONG_TO_UBASE(0x3B21FEEF), 818 HN_ULONG_TO_UBASE(0xDD1A82A2), HN_ULONG_TO_UBASE(0x012D2802), 819 HN_ULONG_TO_UBASE(0x6453439D), HN_ULONG_TO_UBASE(0x72F5A0B7), 820 HN_ULONG_TO_UBASE(0x00000020) 821 }, 822 823 /* 2^e * 1G.y */ 824 { 825 HN_ULONG_TO_UBASE(0x9B58E26D), HN_ULONG_TO_UBASE(0x3E85D07D), 826 HN_ULONG_TO_UBASE(0x1C50AF24), HN_ULONG_TO_UBASE(0x56527BDD), 827 HN_ULONG_TO_UBASE(0x7DF377D0), HN_ULONG_TO_UBASE(0x564B5658), 828 HN_ULONG_TO_UBASE(0x65E97A30), HN_ULONG_TO_UBASE(0xF5B03358), 829 HN_ULONG_TO_UBASE(0x6B31BC52), HN_ULONG_TO_UBASE(0x2B22D6E9), 830 HN_ULONG_TO_UBASE(0xCCCD4BBA), HN_ULONG_TO_UBASE(0x8AD449AB), 831 HN_ULONG_TO_UBASE(0xF7C162A2), HN_ULONG_TO_UBASE(0x84B8B888), 832 HN_ULONG_TO_UBASE(0x4D56F29B), HN_ULONG_TO_UBASE(0x3B647F0E), 833 HN_ULONG_TO_UBASE(0x000001FB) 834 }, 835 836 /* 2^e * 2G.x */ 837 { 838 HN_ULONG_TO_UBASE(0x9CAFE97E), HN_ULONG_TO_UBASE(0x686698E8), 839 HN_ULONG_TO_UBASE(0xB6891510), HN_ULONG_TO_UBASE(0x3F2A465D), 840 HN_ULONG_TO_UBASE(0xC9AAD498), HN_ULONG_TO_UBASE(0xA99BCD91), 841 HN_ULONG_TO_UBASE(0xA47C770B), HN_ULONG_TO_UBASE(0x0C7AE217), 842 HN_ULONG_TO_UBASE(0x6A5E6F06), HN_ULONG_TO_UBASE(0x95067A8B), 843 HN_ULONG_TO_UBASE(0x25A11429), HN_ULONG_TO_UBASE(0x0B55DA40), 844 HN_ULONG_TO_UBASE(0x997CABFF), HN_ULONG_TO_UBASE(0x5372B805), 845 HN_ULONG_TO_UBASE(0x963D233F), HN_ULONG_TO_UBASE(0x1E8BF414), 846 HN_ULONG_TO_UBASE(0x0000002B) 847 }, 848 849 /* 2^e * 2G.y */ 850 { 851 HN_ULONG_TO_UBASE(0xAB613409), HN_ULONG_TO_UBASE(0x1343EBE6), 852 HN_ULONG_TO_UBASE(0xAC96CD26), HN_ULONG_TO_UBASE(0x7AAB5A01), 853 HN_ULONG_TO_UBASE(0x112C0B65), HN_ULONG_TO_UBASE(0x243758AF), 854 HN_ULONG_TO_UBASE(0xB236CAD6), HN_ULONG_TO_UBASE(0xD276E441), 855 HN_ULONG_TO_UBASE(0x557111DA), HN_ULONG_TO_UBASE(0x88A7D43F), 856 HN_ULONG_TO_UBASE(0xA0F46068), HN_ULONG_TO_UBASE(0xC6DACE8B), 857 HN_ULONG_TO_UBASE(0xCF4A5CEB), HN_ULONG_TO_UBASE(0x866C31EF), 858 HN_ULONG_TO_UBASE(0x9554F30C), HN_ULONG_TO_UBASE(0x6DD991B8), 859 HN_ULONG_TO_UBASE(0x00000066) 860 }, 861 862 /* 2^e * 3G.x */ 863 { 864 HN_ULONG_TO_UBASE(0xD3E5BCDA), HN_ULONG_TO_UBASE(0x542A7180), 865 HN_ULONG_TO_UBASE(0x7A94EFCB), HN_ULONG_TO_UBASE(0x4AF33286), 866 HN_ULONG_TO_UBASE(0x17AB6AE0), HN_ULONG_TO_UBASE(0x7B9B88E1), 867 HN_ULONG_TO_UBASE(0x040672E3), HN_ULONG_TO_UBASE(0x39D62FAB), 868 HN_ULONG_TO_UBASE(0x32FEB463), HN_ULONG_TO_UBASE(0x41F41B8A), 869 HN_ULONG_TO_UBASE(0x0A699C83), HN_ULONG_TO_UBASE(0x0268C13E), 870 HN_ULONG_TO_UBASE(0x3B3B6CD8), HN_ULONG_TO_UBASE(0x111976EA), 871 HN_ULONG_TO_UBASE(0x404660C9), HN_ULONG_TO_UBASE(0x5CFB4C1D), 872 HN_ULONG_TO_UBASE(0x000000FB) 873 }, 874 875 /* 2^e * 3G.y */ 876 { 877 HN_ULONG_TO_UBASE(0x6810A938), HN_ULONG_TO_UBASE(0x87E514CE), 878 HN_ULONG_TO_UBASE(0x48BA41A4), HN_ULONG_TO_UBASE(0x65A8EA95), 879 HN_ULONG_TO_UBASE(0x3B052CBF), HN_ULONG_TO_UBASE(0xAAE6A840), 880 HN_ULONG_TO_UBASE(0x7DEB11C0), HN_ULONG_TO_UBASE(0xD470CDFF), 881 HN_ULONG_TO_UBASE(0x822A18AF), HN_ULONG_TO_UBASE(0xC3531E99), 882 HN_ULONG_TO_UBASE(0x1428CB49), HN_ULONG_TO_UBASE(0xD53F05C1), 883 HN_ULONG_TO_UBASE(0xB6E4EDA7), HN_ULONG_TO_UBASE(0xF2217457), 884 HN_ULONG_TO_UBASE(0x4561F140), HN_ULONG_TO_UBASE(0x92F3A027), 885 HN_ULONG_TO_UBASE(0x000000A8) 886 }, 887 888 /* 2^e * 4G.x */ 889 { 890 HN_ULONG_TO_UBASE(0x4876BAB8), HN_ULONG_TO_UBASE(0xC68052C9), 891 HN_ULONG_TO_UBASE(0xF84C2E38), HN_ULONG_TO_UBASE(0x81F704BA), 892 HN_ULONG_TO_UBASE(0xF2CF9927), HN_ULONG_TO_UBASE(0x28BB9436), 893 HN_ULONG_TO_UBASE(0xD06C972C), HN_ULONG_TO_UBASE(0xB89BBFA0), 894 HN_ULONG_TO_UBASE(0xB7A78E76), HN_ULONG_TO_UBASE(0x00FE1DD8), 895 HN_ULONG_TO_UBASE(0xF7F1E1AA), HN_ULONG_TO_UBASE(0x3ADFB05A), 896 HN_ULONG_TO_UBASE(0xB7278EEE), HN_ULONG_TO_UBASE(0x45321E42), 897 HN_ULONG_TO_UBASE(0xA528EBE4), HN_ULONG_TO_UBASE(0x13D850E0), 898 HN_ULONG_TO_UBASE(0x0000006F) 899 }, 900 901 /* 2^e * 4G.y */ 902 { 903 HN_ULONG_TO_UBASE(0x1934143A), HN_ULONG_TO_UBASE(0x6B724C68), 904 HN_ULONG_TO_UBASE(0xB657D809), HN_ULONG_TO_UBASE(0x2F944AFD), 905 HN_ULONG_TO_UBASE(0xABA2FA08), HN_ULONG_TO_UBASE(0x38E501DF), 906 HN_ULONG_TO_UBASE(0xBE66E568), HN_ULONG_TO_UBASE(0x9285ECE1), 907 HN_ULONG_TO_UBASE(0xF9DF3327), HN_ULONG_TO_UBASE(0x7AF221F7), 908 HN_ULONG_TO_UBASE(0xDE74AEFC), HN_ULONG_TO_UBASE(0x00B8A86F), 909 HN_ULONG_TO_UBASE(0x9A992072), HN_ULONG_TO_UBASE(0x19D67518), 910 HN_ULONG_TO_UBASE(0xD9DDBBB6), HN_ULONG_TO_UBASE(0x806D1C88), 911 HN_ULONG_TO_UBASE(0x0000009B) 912 }, 913 914 /* 2^e * 5G.x */ 915 { 916 HN_ULONG_TO_UBASE(0x69223216), HN_ULONG_TO_UBASE(0x903F9E4D), 917 HN_ULONG_TO_UBASE(0x605F145F), HN_ULONG_TO_UBASE(0x27CA08BA), 918 HN_ULONG_TO_UBASE(0xCE206603), HN_ULONG_TO_UBASE(0xA7806921), 919 HN_ULONG_TO_UBASE(0xE613A7B5), HN_ULONG_TO_UBASE(0x605F63EA), 920 HN_ULONG_TO_UBASE(0xAEE0B687), HN_ULONG_TO_UBASE(0xC9522A1A), 921 HN_ULONG_TO_UBASE(0xA0B479D4), HN_ULONG_TO_UBASE(0xA3FEBB3F), 922 HN_ULONG_TO_UBASE(0x63C1DC7E), HN_ULONG_TO_UBASE(0x4E4C7434), 923 HN_ULONG_TO_UBASE(0x3BE76DB6), HN_ULONG_TO_UBASE(0xF25C30D1), 924 HN_ULONG_TO_UBASE(0x0000011B) 925 }, 926 927 /* 2^e * 5G.y */ 928 { 929 HN_ULONG_TO_UBASE(0x34782D9F), HN_ULONG_TO_UBASE(0x0C5E62AF), 930 HN_ULONG_TO_UBASE(0xD72C5FF7), HN_ULONG_TO_UBASE(0xD7820151), 931 HN_ULONG_TO_UBASE(0x6803C198), HN_ULONG_TO_UBASE(0xD373F830), 932 HN_ULONG_TO_UBASE(0x4A7D6949), HN_ULONG_TO_UBASE(0x0130F180), 933 HN_ULONG_TO_UBASE(0x45F00A89), HN_ULONG_TO_UBASE(0x3D1806E1), 934 HN_ULONG_TO_UBASE(0x9141560F), HN_ULONG_TO_UBASE(0x34452841), 935 HN_ULONG_TO_UBASE(0x1202463D), HN_ULONG_TO_UBASE(0xEC6077CF), 936 HN_ULONG_TO_UBASE(0x78B546B9), HN_ULONG_TO_UBASE(0xC8FECC41), 937 HN_ULONG_TO_UBASE(0x0000009D) 938 }, 939 940 /* 2^e * 6G.x */ 941 { 942 HN_ULONG_TO_UBASE(0x5CBA8E1C), HN_ULONG_TO_UBASE(0x1C8C8F82), 943 HN_ULONG_TO_UBASE(0xD444D2D8), HN_ULONG_TO_UBASE(0xA591AB99), 944 HN_ULONG_TO_UBASE(0xD33871C0), HN_ULONG_TO_UBASE(0xA61764E5), 945 HN_ULONG_TO_UBASE(0x3DF6159A), HN_ULONG_TO_UBASE(0x53C89BEC), 946 HN_ULONG_TO_UBASE(0x43E938E7), HN_ULONG_TO_UBASE(0x27B258B6), 947 HN_ULONG_TO_UBASE(0xDCAB4FDB), HN_ULONG_TO_UBASE(0x82AE0C0A), 948 HN_ULONG_TO_UBASE(0xE5690F75), HN_ULONG_TO_UBASE(0x7265C1A3), 949 HN_ULONG_TO_UBASE(0x9D05D099), HN_ULONG_TO_UBASE(0xAEFDF1FC), 950 HN_ULONG_TO_UBASE(0x00000084) 951 }, 952 953 /* 2^e * 6G.y */ 954 { 955 HN_ULONG_TO_UBASE(0xA25FE19D), HN_ULONG_TO_UBASE(0x1D3A011F), 956 HN_ULONG_TO_UBASE(0x56E437F8), HN_ULONG_TO_UBASE(0x6173D09C), 957 HN_ULONG_TO_UBASE(0x17C1F149), HN_ULONG_TO_UBASE(0x139B51BB), 958 HN_ULONG_TO_UBASE(0x610A2561), HN_ULONG_TO_UBASE(0x15F39F5A), 959 HN_ULONG_TO_UBASE(0x9C5FFCF7), HN_ULONG_TO_UBASE(0x83860303), 960 HN_ULONG_TO_UBASE(0xADACF2EE), HN_ULONG_TO_UBASE(0x1D7B83D0), 961 HN_ULONG_TO_UBASE(0xEFB9E833), HN_ULONG_TO_UBASE(0xC947072C), 962 HN_ULONG_TO_UBASE(0x9E785B57), HN_ULONG_TO_UBASE(0xDCFAB8C0), 963 HN_ULONG_TO_UBASE(0x00000028) 964 }, 965 966 /* 2^e * 7G.x */ 967 { 968 HN_ULONG_TO_UBASE(0xA14A0C3B), HN_ULONG_TO_UBASE(0xC8AE34DA), 969 HN_ULONG_TO_UBASE(0x360B4741), HN_ULONG_TO_UBASE(0xBF6251D0), 970 HN_ULONG_TO_UBASE(0x3AA611C7), HN_ULONG_TO_UBASE(0x4DA0E31F), 971 HN_ULONG_TO_UBASE(0x043332E7), HN_ULONG_TO_UBASE(0xCED6DAB0), 972 HN_ULONG_TO_UBASE(0xA7202A78), HN_ULONG_TO_UBASE(0x6EA39A17), 973 HN_ULONG_TO_UBASE(0x72A1A2A0), HN_ULONG_TO_UBASE(0x8166A916), 974 HN_ULONG_TO_UBASE(0x9E01EFA7), HN_ULONG_TO_UBASE(0x885466C5), 975 HN_ULONG_TO_UBASE(0x2F36F714), HN_ULONG_TO_UBASE(0x86F2D088), 976 HN_ULONG_TO_UBASE(0x00000048) 977 }, 978 979 /* 2^e * 7G.y */ 980 { 981 HN_ULONG_TO_UBASE(0x0B9C62F8), HN_ULONG_TO_UBASE(0x10A8AB6A), 982 HN_ULONG_TO_UBASE(0x9F1A0FCA), HN_ULONG_TO_UBASE(0xE2DC4728), 983 HN_ULONG_TO_UBASE(0x131F3E96), HN_ULONG_TO_UBASE(0x6D685928), 984 HN_ULONG_TO_UBASE(0x5EF9C6BE), HN_ULONG_TO_UBASE(0x5593F3DE), 985 HN_ULONG_TO_UBASE(0xFDA508D5), HN_ULONG_TO_UBASE(0x28A1C653), 986 HN_ULONG_TO_UBASE(0xEEF18BF0), HN_ULONG_TO_UBASE(0x8D202E40), 987 HN_ULONG_TO_UBASE(0xEB6017C8), HN_ULONG_TO_UBASE(0xA67A3238), 988 HN_ULONG_TO_UBASE(0x302DECD2), HN_ULONG_TO_UBASE(0xDAAF32B6), 989 HN_ULONG_TO_UBASE(0x000000C0) 990 }, 991 992 /* 2^e * 8G.x */ 993 { 994 HN_ULONG_TO_UBASE(0x75804DA9), HN_ULONG_TO_UBASE(0x2A7E8AC1), 995 HN_ULONG_TO_UBASE(0x8D50BDC6), HN_ULONG_TO_UBASE(0x0B41F611), 996 HN_ULONG_TO_UBASE(0xD8FAFB1C), HN_ULONG_TO_UBASE(0xCFA0A757), 997 HN_ULONG_TO_UBASE(0xD231A6B0), HN_ULONG_TO_UBASE(0x75540D94), 998 HN_ULONG_TO_UBASE(0x0C4FE03D), HN_ULONG_TO_UBASE(0x524440FB), 999 HN_ULONG_TO_UBASE(0xCE9738DD), HN_ULONG_TO_UBASE(0xB8665FBF), 1000 HN_ULONG_TO_UBASE(0x8F1BD64F), HN_ULONG_TO_UBASE(0xBB74F6A8), 1001 HN_ULONG_TO_UBASE(0xBB8D6C67), HN_ULONG_TO_UBASE(0x063AFA3C), 1002 HN_ULONG_TO_UBASE(0x00000189) 1003 }, 1004 1005 /* 2^e * 8G.y */ 1006 { 1007 HN_ULONG_TO_UBASE(0xA864385F), HN_ULONG_TO_UBASE(0x259B9DA4), 1008 HN_ULONG_TO_UBASE(0x17C2597B), HN_ULONG_TO_UBASE(0xDBAFC55C), 1009 HN_ULONG_TO_UBASE(0x56BF5D23), HN_ULONG_TO_UBASE(0xDE890ACB), 1010 HN_ULONG_TO_UBASE(0xF8455B59), HN_ULONG_TO_UBASE(0xE51182C0), 1011 HN_ULONG_TO_UBASE(0xC456E1C7), HN_ULONG_TO_UBASE(0x75D51A03), 1012 HN_ULONG_TO_UBASE(0xB318E747), HN_ULONG_TO_UBASE(0x9C7929C6), 1013 HN_ULONG_TO_UBASE(0x39B3ED84), HN_ULONG_TO_UBASE(0xAF23A7F1), 1014 HN_ULONG_TO_UBASE(0x910F4AB2), HN_ULONG_TO_UBASE(0xEE136A2B), 1015 HN_ULONG_TO_UBASE(0x000001AC) 1016 }, 1017 1018 /* 2^e * 9G.x */ 1019 { 1020 HN_ULONG_TO_UBASE(0x10EDB455), HN_ULONG_TO_UBASE(0x5A846285), 1021 HN_ULONG_TO_UBASE(0x7CB3C393), HN_ULONG_TO_UBASE(0x492D3EE0), 1022 HN_ULONG_TO_UBASE(0x49F1C83D), HN_ULONG_TO_UBASE(0x779FD159), 1023 HN_ULONG_TO_UBASE(0x0C164C56), HN_ULONG_TO_UBASE(0x70F2BD93), 1024 HN_ULONG_TO_UBASE(0x87270536), HN_ULONG_TO_UBASE(0xF11541B1), 1025 HN_ULONG_TO_UBASE(0x001F110D), HN_ULONG_TO_UBASE(0x9A1D03EC), 1026 HN_ULONG_TO_UBASE(0x2CD19157), HN_ULONG_TO_UBASE(0x9A9CD471), 1027 HN_ULONG_TO_UBASE(0x16F2F4E9), HN_ULONG_TO_UBASE(0x692625ED), 1028 HN_ULONG_TO_UBASE(0x00000113) 1029 }, 1030 1031 /* 2^e * 9G.y */ 1032 { 1033 HN_ULONG_TO_UBASE(0xA2375E46), HN_ULONG_TO_UBASE(0xADF5832B), 1034 HN_ULONG_TO_UBASE(0x4E45C385), HN_ULONG_TO_UBASE(0x9B5B3203), 1035 HN_ULONG_TO_UBASE(0xD7314FC0), HN_ULONG_TO_UBASE(0xCEE366FB), 1036 HN_ULONG_TO_UBASE(0x9FB9F8DF), HN_ULONG_TO_UBASE(0x83E59B17), 1037 HN_ULONG_TO_UBASE(0x7616255D), HN_ULONG_TO_UBASE(0xE5B74F6A), 1038 HN_ULONG_TO_UBASE(0x3A87EC4B), HN_ULONG_TO_UBASE(0xBB827578), 1039 HN_ULONG_TO_UBASE(0x7C844501), HN_ULONG_TO_UBASE(0x4E0A3BA8), 1040 HN_ULONG_TO_UBASE(0x406C10EA), HN_ULONG_TO_UBASE(0x26B9131F), 1041 HN_ULONG_TO_UBASE(0x00000072) 1042 }, 1043 1044 /* 2^e * 10G.x */ 1045 { 1046 HN_ULONG_TO_UBASE(0x1B2224AE), HN_ULONG_TO_UBASE(0x8102F95D), 1047 HN_ULONG_TO_UBASE(0x02003EE8), HN_ULONG_TO_UBASE(0xC8D99E6E), 1048 HN_ULONG_TO_UBASE(0x6769CA9A), HN_ULONG_TO_UBASE(0x62C2B5FE), 1049 HN_ULONG_TO_UBASE(0x21539A2F), HN_ULONG_TO_UBASE(0x33F46864), 1050 HN_ULONG_TO_UBASE(0x65BAE93C), HN_ULONG_TO_UBASE(0xBA60DDBC), 1051 HN_ULONG_TO_UBASE(0x6607E20B), HN_ULONG_TO_UBASE(0xC7DA4B45), 1052 HN_ULONG_TO_UBASE(0xED92F4A7), HN_ULONG_TO_UBASE(0xE2AEEE9E), 1053 HN_ULONG_TO_UBASE(0x0E2758C0), HN_ULONG_TO_UBASE(0x0B441AD0), 1054 HN_ULONG_TO_UBASE(0x00000062) 1055 }, 1056 1057 /* 2^e * 10G.y */ 1058 { 1059 HN_ULONG_TO_UBASE(0xDF3933D0), HN_ULONG_TO_UBASE(0x83D72850), 1060 HN_ULONG_TO_UBASE(0x4A60FCCD), HN_ULONG_TO_UBASE(0x12A095B3), 1061 HN_ULONG_TO_UBASE(0xBD945946), HN_ULONG_TO_UBASE(0xC738C99A), 1062 HN_ULONG_TO_UBASE(0x1C3701C9), HN_ULONG_TO_UBASE(0xF24672E8), 1063 HN_ULONG_TO_UBASE(0xC32B64B2), HN_ULONG_TO_UBASE(0xDD434498), 1064 HN_ULONG_TO_UBASE(0xAFE1CB1B), HN_ULONG_TO_UBASE(0x186CCDD9), 1065 HN_ULONG_TO_UBASE(0x9231BE0D), HN_ULONG_TO_UBASE(0x08AB7CA2), 1066 HN_ULONG_TO_UBASE(0xD9725EB2), HN_ULONG_TO_UBASE(0x2138E749), 1067 HN_ULONG_TO_UBASE(0x0000008F) 1068 }, 1069 1070 /* 2^e * 11G.x */ 1071 { 1072 HN_ULONG_TO_UBASE(0x8D8E4201), HN_ULONG_TO_UBASE(0x380B390D), 1073 HN_ULONG_TO_UBASE(0x2D998419), HN_ULONG_TO_UBASE(0xE5EA50D0), 1074 HN_ULONG_TO_UBASE(0xBEE95A0D), HN_ULONG_TO_UBASE(0x8A2EF170), 1075 HN_ULONG_TO_UBASE(0xF0E0DC21), HN_ULONG_TO_UBASE(0xF66AC193), 1076 HN_ULONG_TO_UBASE(0x5E7BBC57), HN_ULONG_TO_UBASE(0x95D0F8EF), 1077 HN_ULONG_TO_UBASE(0x2077303D), HN_ULONG_TO_UBASE(0x4BE62601), 1078 HN_ULONG_TO_UBASE(0xA11052F9), HN_ULONG_TO_UBASE(0x2CDDE57F), 1079 HN_ULONG_TO_UBASE(0x10E34694), HN_ULONG_TO_UBASE(0xB61494A5), 1080 HN_ULONG_TO_UBASE(0x0000005D) 1081 }, 1082 1083 /* 2^e * 11G.y */ 1084 { 1085 HN_ULONG_TO_UBASE(0x33371EAD), HN_ULONG_TO_UBASE(0x66DB89E1), 1086 HN_ULONG_TO_UBASE(0x2FF6715D), HN_ULONG_TO_UBASE(0x4D0E181E), 1087 HN_ULONG_TO_UBASE(0x35DFB301), HN_ULONG_TO_UBASE(0x7E12B26D), 1088 HN_ULONG_TO_UBASE(0x861468AC), HN_ULONG_TO_UBASE(0x7CD336DE), 1089 HN_ULONG_TO_UBASE(0xB83B16B5), HN_ULONG_TO_UBASE(0x7813A4DA), 1090 HN_ULONG_TO_UBASE(0xCACD41AD), HN_ULONG_TO_UBASE(0x589C9008), 1091 HN_ULONG_TO_UBASE(0xF3E6D2BC), HN_ULONG_TO_UBASE(0x36FBC288), 1092 HN_ULONG_TO_UBASE(0x09BBA03F), HN_ULONG_TO_UBASE(0xCD479ED2), 1093 HN_ULONG_TO_UBASE(0x000001E9) 1094 }, 1095 1096 /* 2^e * 12G.x */ 1097 { 1098 HN_ULONG_TO_UBASE(0x91489C53), HN_ULONG_TO_UBASE(0x25066A08), 1099 HN_ULONG_TO_UBASE(0x05082881), HN_ULONG_TO_UBASE(0x15A59222), 1100 HN_ULONG_TO_UBASE(0x2773DE00), HN_ULONG_TO_UBASE(0x5A74DBF6), 1101 HN_ULONG_TO_UBASE(0x5ABB1822), HN_ULONG_TO_UBASE(0x4004EA8A), 1102 HN_ULONG_TO_UBASE(0x44446ABA), HN_ULONG_TO_UBASE(0x7234A193), 1103 HN_ULONG_TO_UBASE(0xF80F21BA), HN_ULONG_TO_UBASE(0xC8039867), 1104 HN_ULONG_TO_UBASE(0x0B0277C1), HN_ULONG_TO_UBASE(0x57B09BF9), 1105 HN_ULONG_TO_UBASE(0x07FBAA90), HN_ULONG_TO_UBASE(0x90F47A5D), 1106 HN_ULONG_TO_UBASE(0x000001A6) 1107 }, 1108 1109 /* 2^e * 12G.y */ 1110 { 1111 HN_ULONG_TO_UBASE(0x66A9943A), HN_ULONG_TO_UBASE(0x863B8C68), 1112 HN_ULONG_TO_UBASE(0xB3ECB8F1), HN_ULONG_TO_UBASE(0x1EB77A2A), 1113 HN_ULONG_TO_UBASE(0x5F0CF86A), HN_ULONG_TO_UBASE(0xC5BF5AD4), 1114 HN_ULONG_TO_UBASE(0x492A65D3), HN_ULONG_TO_UBASE(0x54F6D638), 1115 HN_ULONG_TO_UBASE(0xBB2FF375), HN_ULONG_TO_UBASE(0x74758E9C), 1116 HN_ULONG_TO_UBASE(0xEEF24C47), HN_ULONG_TO_UBASE(0x8E2A6AAC), 1117 HN_ULONG_TO_UBASE(0x5108A526), HN_ULONG_TO_UBASE(0x7D5F8E0D), 1118 HN_ULONG_TO_UBASE(0x0DF1CC2F), HN_ULONG_TO_UBASE(0xAC8D6017), 1119 HN_ULONG_TO_UBASE(0x000001E3) 1120 }, 1121 1122 /* 2^e * 13G.x */ 1123 { 1124 HN_ULONG_TO_UBASE(0xCF2F551A), HN_ULONG_TO_UBASE(0x601ED1E8), 1125 HN_ULONG_TO_UBASE(0xAF8168FE), HN_ULONG_TO_UBASE(0x39EF8675), 1126 HN_ULONG_TO_UBASE(0xE3134C4E), HN_ULONG_TO_UBASE(0x9AF97216), 1127 HN_ULONG_TO_UBASE(0x6EE59F26), HN_ULONG_TO_UBASE(0x66D9AF36), 1128 HN_ULONG_TO_UBASE(0xB88A023F), HN_ULONG_TO_UBASE(0x2E6550E0), 1129 HN_ULONG_TO_UBASE(0x43858CE3), HN_ULONG_TO_UBASE(0x7CB91B61), 1130 HN_ULONG_TO_UBASE(0x57909965), HN_ULONG_TO_UBASE(0x75692C88), 1131 HN_ULONG_TO_UBASE(0x9075D0F2), HN_ULONG_TO_UBASE(0x04504573), 1132 HN_ULONG_TO_UBASE(0x000000E4) 1133 }, 1134 1135 /* 2^e * 13G.y */ 1136 { 1137 HN_ULONG_TO_UBASE(0x85B9A86D), HN_ULONG_TO_UBASE(0x448ABDD4), 1138 HN_ULONG_TO_UBASE(0x5741BB99), HN_ULONG_TO_UBASE(0x7D30A2D6), 1139 HN_ULONG_TO_UBASE(0xB94CD1AA), HN_ULONG_TO_UBASE(0x11CCF882), 1140 HN_ULONG_TO_UBASE(0xE6FE3CB5), HN_ULONG_TO_UBASE(0x3E4DD048), 1141 HN_ULONG_TO_UBASE(0x35D6DA36), HN_ULONG_TO_UBASE(0x6B23A98E), 1142 HN_ULONG_TO_UBASE(0x10F12633), HN_ULONG_TO_UBASE(0xCCCC9D1F), 1143 HN_ULONG_TO_UBASE(0xE6D04EE8), HN_ULONG_TO_UBASE(0xA8A67168), 1144 HN_ULONG_TO_UBASE(0x9F38E9BA), HN_ULONG_TO_UBASE(0x7B0E18CB), 1145 HN_ULONG_TO_UBASE(0x00000174) 1146 }, 1147 1148 /* 2^e * 14G.x */ 1149 { 1150 HN_ULONG_TO_UBASE(0xC47DA14D), HN_ULONG_TO_UBASE(0x76599B16), 1151 HN_ULONG_TO_UBASE(0xECCD8EB8), HN_ULONG_TO_UBASE(0x5CBD674E), 1152 HN_ULONG_TO_UBASE(0x31B1CE8C), HN_ULONG_TO_UBASE(0x0381C1BE), 1153 HN_ULONG_TO_UBASE(0xD9787586), HN_ULONG_TO_UBASE(0x1A4CC8A7), 1154 HN_ULONG_TO_UBASE(0x82D6647A), HN_ULONG_TO_UBASE(0x1E14E554), 1155 HN_ULONG_TO_UBASE(0xB5276105), HN_ULONG_TO_UBASE(0x0C9D21B8), 1156 HN_ULONG_TO_UBASE(0x555BBF90), HN_ULONG_TO_UBASE(0x01C81C60), 1157 HN_ULONG_TO_UBASE(0x441FD043), HN_ULONG_TO_UBASE(0xD30E5BDF), 1158 HN_ULONG_TO_UBASE(0x0000017F) 1159 }, 1160 1161 /* 2^e * 14G.y */ 1162 { 1163 HN_ULONG_TO_UBASE(0xF2A11F1D), HN_ULONG_TO_UBASE(0x56FF1478), 1164 HN_ULONG_TO_UBASE(0x26BF7BFF), HN_ULONG_TO_UBASE(0x5EEFD30E), 1165 HN_ULONG_TO_UBASE(0xAEBEEBC0), HN_ULONG_TO_UBASE(0x91DF30F6), 1166 HN_ULONG_TO_UBASE(0xD467164E), HN_ULONG_TO_UBASE(0x6FA9CF72), 1167 HN_ULONG_TO_UBASE(0xFC9F6B8C), HN_ULONG_TO_UBASE(0xDF3EB9DE), 1168 HN_ULONG_TO_UBASE(0x7EB6A7AD), HN_ULONG_TO_UBASE(0x466C3ED2), 1169 HN_ULONG_TO_UBASE(0x39DACF99), HN_ULONG_TO_UBASE(0x9DF5BBB3), 1170 HN_ULONG_TO_UBASE(0x6ED70A2D), HN_ULONG_TO_UBASE(0xAAEF2093), 1171 HN_ULONG_TO_UBASE(0x0000009F) 1172 }, 1173 1174 /* 2^e * 15G.x */ 1175 { 1176 HN_ULONG_TO_UBASE(0x2F0213E3), HN_ULONG_TO_UBASE(0x05E0CF26), 1177 HN_ULONG_TO_UBASE(0xC41F8B29), HN_ULONG_TO_UBASE(0x0E2C764A), 1178 HN_ULONG_TO_UBASE(0x2FD6407D), HN_ULONG_TO_UBASE(0x17E7DE66), 1179 HN_ULONG_TO_UBASE(0xE44FD06E), HN_ULONG_TO_UBASE(0xEF95AADA), 1180 HN_ULONG_TO_UBASE(0xE561D1BE), HN_ULONG_TO_UBASE(0x1BC6FEE3), 1181 HN_ULONG_TO_UBASE(0x892B2FD5), HN_ULONG_TO_UBASE(0x04BACC8C), 1182 HN_ULONG_TO_UBASE(0x2FC3DEF6), HN_ULONG_TO_UBASE(0xE2BE924E), 1183 HN_ULONG_TO_UBASE(0x137AEBFD), HN_ULONG_TO_UBASE(0xCD6EBB93), 1184 HN_ULONG_TO_UBASE(0x00000000) 1185 }, 1186 1187 /* 2^e * 15G.y */ 1188 { 1189 HN_ULONG_TO_UBASE(0xEDF2B39B), HN_ULONG_TO_UBASE(0xE9CFE98F), 1190 HN_ULONG_TO_UBASE(0x4CD2BE13), HN_ULONG_TO_UBASE(0x6B57B776), 1191 HN_ULONG_TO_UBASE(0xDC33EC78), HN_ULONG_TO_UBASE(0x942BC3AB), 1192 HN_ULONG_TO_UBASE(0x45E081CE), HN_ULONG_TO_UBASE(0x99E931E8), 1193 HN_ULONG_TO_UBASE(0x5E55B855), HN_ULONG_TO_UBASE(0x595E70C7), 1194 HN_ULONG_TO_UBASE(0x163FB2D6), HN_ULONG_TO_UBASE(0x8D58B2C5), 1195 HN_ULONG_TO_UBASE(0x1EA48357), HN_ULONG_TO_UBASE(0x69BD6665), 1196 HN_ULONG_TO_UBASE(0xD1DB8EE7), HN_ULONG_TO_UBASE(0x79F54D5A), 1197 HN_ULONG_TO_UBASE(0x0000010F) 1198 }, 1199 1200 /* 2^e * 16G.x */ 1201 { 1202 HN_ULONG_TO_UBASE(0x18E71DD8), HN_ULONG_TO_UBASE(0xCB300761), 1203 HN_ULONG_TO_UBASE(0x04886B27), HN_ULONG_TO_UBASE(0x01D26846), 1204 HN_ULONG_TO_UBASE(0x7CC1D69E), HN_ULONG_TO_UBASE(0x22871D7B), 1205 HN_ULONG_TO_UBASE(0xD0B3CAF9), HN_ULONG_TO_UBASE(0x1D138A47), 1206 HN_ULONG_TO_UBASE(0x00A7C0B0), HN_ULONG_TO_UBASE(0x53AEB974), 1207 HN_ULONG_TO_UBASE(0x262F9366), HN_ULONG_TO_UBASE(0x712AA1A2), 1208 HN_ULONG_TO_UBASE(0x6BCAE07A), HN_ULONG_TO_UBASE(0x58C84DA4), 1209 HN_ULONG_TO_UBASE(0xAE8708B5), HN_ULONG_TO_UBASE(0x521B7DBC), 1210 HN_ULONG_TO_UBASE(0x00000045) 1211 }, 1212 1213 /* 2^e * 16G.y */ 1214 { 1215 HN_ULONG_TO_UBASE(0x8D3CD884), HN_ULONG_TO_UBASE(0x03BD3643), 1216 HN_ULONG_TO_UBASE(0x1D62A335), HN_ULONG_TO_UBASE(0x20A737EE), 1217 HN_ULONG_TO_UBASE(0x904F5C53), HN_ULONG_TO_UBASE(0x37E1775F), 1218 HN_ULONG_TO_UBASE(0x3BAA91FD), HN_ULONG_TO_UBASE(0xB76783DD), 1219 HN_ULONG_TO_UBASE(0x9A84E971), HN_ULONG_TO_UBASE(0x7C552118), 1220 HN_ULONG_TO_UBASE(0x4488EDE7), HN_ULONG_TO_UBASE(0xD085796E), 1221 HN_ULONG_TO_UBASE(0x5068D6DC), HN_ULONG_TO_UBASE(0xB418E708), 1222 HN_ULONG_TO_UBASE(0xE5275A73), HN_ULONG_TO_UBASE(0x4417E81A), 1223 HN_ULONG_TO_UBASE(0x000000D2) 1224 }, 1225 1226 /* 2^e * 17G.x */ 1227 { 1228 HN_ULONG_TO_UBASE(0x214D97FA), HN_ULONG_TO_UBASE(0x706CD750), 1229 HN_ULONG_TO_UBASE(0x5F780C94), HN_ULONG_TO_UBASE(0x08FE7535), 1230 HN_ULONG_TO_UBASE(0xF6E319D3), HN_ULONG_TO_UBASE(0x1E0CD31C), 1231 HN_ULONG_TO_UBASE(0x40EE8186), HN_ULONG_TO_UBASE(0x6876C4B2), 1232 HN_ULONG_TO_UBASE(0xDC35B5F2), HN_ULONG_TO_UBASE(0x3576B7A1), 1233 HN_ULONG_TO_UBASE(0xDC7BC4FE), HN_ULONG_TO_UBASE(0xA547E6A6), 1234 HN_ULONG_TO_UBASE(0xD6BB9E84), HN_ULONG_TO_UBASE(0x48C9AF44), 1235 HN_ULONG_TO_UBASE(0x0296E1D8), HN_ULONG_TO_UBASE(0x603902C9), 1236 HN_ULONG_TO_UBASE(0x000000B2) 1237 }, 1238 1239 /* 2^e * 17G.y */ 1240 { 1241 HN_ULONG_TO_UBASE(0xD841AC3B), HN_ULONG_TO_UBASE(0x2A879081), 1242 HN_ULONG_TO_UBASE(0x67931CEB), HN_ULONG_TO_UBASE(0x068D9BB6), 1243 HN_ULONG_TO_UBASE(0x33A82324), HN_ULONG_TO_UBASE(0x53B9F2E2), 1244 HN_ULONG_TO_UBASE(0xF906B735), HN_ULONG_TO_UBASE(0xEE92294F), 1245 HN_ULONG_TO_UBASE(0xEBF90917), HN_ULONG_TO_UBASE(0x69828276), 1246 HN_ULONG_TO_UBASE(0x2A62D98A), HN_ULONG_TO_UBASE(0x63F2689E), 1247 HN_ULONG_TO_UBASE(0xBC4ECE10), HN_ULONG_TO_UBASE(0x04B43AAF), 1248 HN_ULONG_TO_UBASE(0x5FA73616), HN_ULONG_TO_UBASE(0x0CFA03A9), 1249 HN_ULONG_TO_UBASE(0x00000195) 1250 }, 1251 1252 /* 2^e * 18G.x */ 1253 { 1254 HN_ULONG_TO_UBASE(0xF3A411D3), HN_ULONG_TO_UBASE(0x73FEA98E), 1255 HN_ULONG_TO_UBASE(0x98E5CBCE), HN_ULONG_TO_UBASE(0x7C97905C), 1256 HN_ULONG_TO_UBASE(0xAF1D3F28), HN_ULONG_TO_UBASE(0x1C7610EE), 1257 HN_ULONG_TO_UBASE(0xD6727BA7), HN_ULONG_TO_UBASE(0xCEF371EA), 1258 HN_ULONG_TO_UBASE(0xAF8DD567), HN_ULONG_TO_UBASE(0xBD54FC4D), 1259 HN_ULONG_TO_UBASE(0xF5240B46), HN_ULONG_TO_UBASE(0x95E69AD2), 1260 HN_ULONG_TO_UBASE(0x999679DD), HN_ULONG_TO_UBASE(0xFAA49AB7), 1261 HN_ULONG_TO_UBASE(0x39FF5965), HN_ULONG_TO_UBASE(0x882E7907), 1262 HN_ULONG_TO_UBASE(0x000000AA) 1263 }, 1264 1265 /* 2^e * 18G.y */ 1266 { 1267 HN_ULONG_TO_UBASE(0x038E2424), HN_ULONG_TO_UBASE(0x357CE2C8), 1268 HN_ULONG_TO_UBASE(0x694CE848), HN_ULONG_TO_UBASE(0x6E1A67BC), 1269 HN_ULONG_TO_UBASE(0x6F7FA9BC), HN_ULONG_TO_UBASE(0xF12A4334), 1270 HN_ULONG_TO_UBASE(0x83527993), HN_ULONG_TO_UBASE(0xA81D9CC6), 1271 HN_ULONG_TO_UBASE(0x25F39419), HN_ULONG_TO_UBASE(0xD0BBAB07), 1272 HN_ULONG_TO_UBASE(0xD0C3DEFD), HN_ULONG_TO_UBASE(0xAC7E3CF3), 1273 HN_ULONG_TO_UBASE(0x2759E25D), HN_ULONG_TO_UBASE(0x240F29B9), 1274 HN_ULONG_TO_UBASE(0xDA828381), HN_ULONG_TO_UBASE(0x93D17A45), 1275 HN_ULONG_TO_UBASE(0x0000008C) 1276 }, 1277 1278 /* 2^e * 19G.x */ 1279 { 1280 HN_ULONG_TO_UBASE(0x02FCB910), HN_ULONG_TO_UBASE(0x902C8A08), 1281 HN_ULONG_TO_UBASE(0xF531DECF), HN_ULONG_TO_UBASE(0xCAFB63DF), 1282 HN_ULONG_TO_UBASE(0xF3FC2396), HN_ULONG_TO_UBASE(0xDAD73D20), 1283 HN_ULONG_TO_UBASE(0x0845A72D), HN_ULONG_TO_UBASE(0x5746F263), 1284 HN_ULONG_TO_UBASE(0xB7454756), HN_ULONG_TO_UBASE(0x8755F372), 1285 HN_ULONG_TO_UBASE(0x44992953), HN_ULONG_TO_UBASE(0xFFFDDC68), 1286 HN_ULONG_TO_UBASE(0x90DE6DBE), HN_ULONG_TO_UBASE(0xC8C2089B), 1287 HN_ULONG_TO_UBASE(0x12CBE3D3), HN_ULONG_TO_UBASE(0x9C892E45), 1288 HN_ULONG_TO_UBASE(0x000001FA) 1289 }, 1290 1291 /* 2^e * 19G.y */ 1292 { 1293 HN_ULONG_TO_UBASE(0xBE470471), HN_ULONG_TO_UBASE(0xCA6AE03B), 1294 HN_ULONG_TO_UBASE(0xE0385EA3), HN_ULONG_TO_UBASE(0x00FFFC9D), 1295 HN_ULONG_TO_UBASE(0x419AAFD3), HN_ULONG_TO_UBASE(0x13F7B1C7), 1296 HN_ULONG_TO_UBASE(0x67B74CA1), HN_ULONG_TO_UBASE(0x8C78C5CB), 1297 HN_ULONG_TO_UBASE(0xFD93FD1A), HN_ULONG_TO_UBASE(0x9CBB84EA), 1298 HN_ULONG_TO_UBASE(0x4CA23F38), HN_ULONG_TO_UBASE(0x3A2B3037), 1299 HN_ULONG_TO_UBASE(0xDCA7C63D), HN_ULONG_TO_UBASE(0x6B8CEE16), 1300 HN_ULONG_TO_UBASE(0x77B5E211), HN_ULONG_TO_UBASE(0x676AB915), 1301 HN_ULONG_TO_UBASE(0x0000006A) 1302 }, 1303 1304 /* 2^e * 20G.x */ 1305 { 1306 HN_ULONG_TO_UBASE(0xFF27B0B5), HN_ULONG_TO_UBASE(0x3D26B7E5), 1307 HN_ULONG_TO_UBASE(0x29B02F17), HN_ULONG_TO_UBASE(0x1136AA18), 1308 HN_ULONG_TO_UBASE(0x445A2D18), HN_ULONG_TO_UBASE(0xABA2EABB), 1309 HN_ULONG_TO_UBASE(0x1F49A650), HN_ULONG_TO_UBASE(0x142D8D3E), 1310 HN_ULONG_TO_UBASE(0xF552BAAB), HN_ULONG_TO_UBASE(0x78D632C0), 1311 HN_ULONG_TO_UBASE(0xA8D7A91F), HN_ULONG_TO_UBASE(0xCADCD51C), 1312 HN_ULONG_TO_UBASE(0x487EFFC9), HN_ULONG_TO_UBASE(0xF10758B0), 1313 HN_ULONG_TO_UBASE(0x80F399AC), HN_ULONG_TO_UBASE(0x7A17FD89), 1314 HN_ULONG_TO_UBASE(0x00000125) 1315 }, 1316 1317 /* 2^e * 20G.y */ 1318 { 1319 HN_ULONG_TO_UBASE(0xF5F4FF7A), HN_ULONG_TO_UBASE(0xFC5E19FF), 1320 HN_ULONG_TO_UBASE(0xA7F0AE54), HN_ULONG_TO_UBASE(0x0CD69AC0), 1321 HN_ULONG_TO_UBASE(0x69F05E26), HN_ULONG_TO_UBASE(0xDF1ECA97), 1322 HN_ULONG_TO_UBASE(0xE2D705A9), HN_ULONG_TO_UBASE(0xAE28D46F), 1323 HN_ULONG_TO_UBASE(0x612E1D65), HN_ULONG_TO_UBASE(0x8F8E9912), 1324 HN_ULONG_TO_UBASE(0x34923A11), HN_ULONG_TO_UBASE(0x771F5FDF), 1325 HN_ULONG_TO_UBASE(0xC332DF8F), HN_ULONG_TO_UBASE(0xC06E39CE), 1326 HN_ULONG_TO_UBASE(0x4F10FFD1), HN_ULONG_TO_UBASE(0x6CCBE123), 1327 HN_ULONG_TO_UBASE(0x000000EA) 1328 }, 1329 1330 /* 2^e * 21G.x */ 1331 { 1332 HN_ULONG_TO_UBASE(0x5A415FC9), HN_ULONG_TO_UBASE(0xEAFEA65F), 1333 HN_ULONG_TO_UBASE(0xB6524111), HN_ULONG_TO_UBASE(0xE6067847), 1334 HN_ULONG_TO_UBASE(0x1A1A21A6), HN_ULONG_TO_UBASE(0xB071AC62), 1335 HN_ULONG_TO_UBASE(0xC5EA21B1), HN_ULONG_TO_UBASE(0x7BBE62D4), 1336 HN_ULONG_TO_UBASE(0x302E2445), HN_ULONG_TO_UBASE(0x4BFFA5D4), 1337 HN_ULONG_TO_UBASE(0x65364381), HN_ULONG_TO_UBASE(0x7740EB41), 1338 HN_ULONG_TO_UBASE(0xA6D79B3A), HN_ULONG_TO_UBASE(0x94649FB7), 1339 HN_ULONG_TO_UBASE(0x67C37F98), HN_ULONG_TO_UBASE(0xC7F325B4), 1340 HN_ULONG_TO_UBASE(0x0000010C) 1341 }, 1342 1343 /* 2^e * 21G.y */ 1344 { 1345 HN_ULONG_TO_UBASE(0x37577713), HN_ULONG_TO_UBASE(0xC872C98C), 1346 HN_ULONG_TO_UBASE(0xAD79810C), HN_ULONG_TO_UBASE(0xFD73F990), 1347 HN_ULONG_TO_UBASE(0xE12D0640), HN_ULONG_TO_UBASE(0x7E85646D), 1348 HN_ULONG_TO_UBASE(0xDC0CD5EE), HN_ULONG_TO_UBASE(0xEB850FEC), 1349 HN_ULONG_TO_UBASE(0x3109AD42), HN_ULONG_TO_UBASE(0xFD8A4FAD), 1350 HN_ULONG_TO_UBASE(0xC15EBE5E), HN_ULONG_TO_UBASE(0xE43B24AF), 1351 HN_ULONG_TO_UBASE(0xE65EBC48), HN_ULONG_TO_UBASE(0xC0F0D5CB), 1352 HN_ULONG_TO_UBASE(0xBCEF2AE2), HN_ULONG_TO_UBASE(0x0CB90F23), 1353 HN_ULONG_TO_UBASE(0x00000135) 1354 }, 1355 1356 /* 2^e * 22G.x */ 1357 { 1358 HN_ULONG_TO_UBASE(0xDD9AB07E), HN_ULONG_TO_UBASE(0x51AB0502), 1359 HN_ULONG_TO_UBASE(0x31639329), HN_ULONG_TO_UBASE(0xFFE752C0), 1360 HN_ULONG_TO_UBASE(0x777D9243), HN_ULONG_TO_UBASE(0x59558384), 1361 HN_ULONG_TO_UBASE(0xE8CD61AC), HN_ULONG_TO_UBASE(0xCF5F9D1D), 1362 HN_ULONG_TO_UBASE(0x00BAD307), HN_ULONG_TO_UBASE(0xC9091087), 1363 HN_ULONG_TO_UBASE(0xEB9C6441), HN_ULONG_TO_UBASE(0x176ADF78), 1364 HN_ULONG_TO_UBASE(0xBD1ABEBC), HN_ULONG_TO_UBASE(0x6B678E90), 1365 HN_ULONG_TO_UBASE(0x562561AB), HN_ULONG_TO_UBASE(0xC4DD06B2), 1366 HN_ULONG_TO_UBASE(0x000001A7) 1367 }, 1368 1369 /* 2^e * 22G.y */ 1370 { 1371 HN_ULONG_TO_UBASE(0xB826F85D), HN_ULONG_TO_UBASE(0xA9AB9A04), 1372 HN_ULONG_TO_UBASE(0x420A802D), HN_ULONG_TO_UBASE(0x3B12FBDC), 1373 HN_ULONG_TO_UBASE(0x631BFCA8), HN_ULONG_TO_UBASE(0x5F0E4787), 1374 HN_ULONG_TO_UBASE(0x9C4D5DFC), HN_ULONG_TO_UBASE(0xA39795EE), 1375 HN_ULONG_TO_UBASE(0x8778DB79), HN_ULONG_TO_UBASE(0x381180A0), 1376 HN_ULONG_TO_UBASE(0x31B42781), HN_ULONG_TO_UBASE(0x0602DD54), 1377 HN_ULONG_TO_UBASE(0x785A9AE2), HN_ULONG_TO_UBASE(0x27BEADC3), 1378 HN_ULONG_TO_UBASE(0xD0CDBC7B), HN_ULONG_TO_UBASE(0xEF3B5C3B), 1379 HN_ULONG_TO_UBASE(0x000001B2) 1380 }, 1381 1382 /* 2^e * 23G.x */ 1383 { 1384 HN_ULONG_TO_UBASE(0x74589440), HN_ULONG_TO_UBASE(0xA179FDDD), 1385 HN_ULONG_TO_UBASE(0x234C300C), HN_ULONG_TO_UBASE(0xEC2B04AB), 1386 HN_ULONG_TO_UBASE(0x9DE7BE76), HN_ULONG_TO_UBASE(0xDBFEE84D), 1387 HN_ULONG_TO_UBASE(0x4BC3DB87), HN_ULONG_TO_UBASE(0xD1AA9274), 1388 HN_ULONG_TO_UBASE(0xE102DA93), HN_ULONG_TO_UBASE(0xE27F52F9), 1389 HN_ULONG_TO_UBASE(0x398C324F), HN_ULONG_TO_UBASE(0xC9827581), 1390 HN_ULONG_TO_UBASE(0x0B9CAF80), HN_ULONG_TO_UBASE(0xFC80D771), 1391 HN_ULONG_TO_UBASE(0x3C9F77E2), HN_ULONG_TO_UBASE(0x22AA1ADA), 1392 HN_ULONG_TO_UBASE(0x000000C8) 1393 }, 1394 1395 /* 2^e * 23G.y */ 1396 { 1397 HN_ULONG_TO_UBASE(0xD731ABC2), HN_ULONG_TO_UBASE(0x80583409), 1398 HN_ULONG_TO_UBASE(0xE46D97A9), HN_ULONG_TO_UBASE(0xCF611182), 1399 HN_ULONG_TO_UBASE(0x4F1C3B28), HN_ULONG_TO_UBASE(0x2CD5C0EB), 1400 HN_ULONG_TO_UBASE(0x8F363E1A), HN_ULONG_TO_UBASE(0x4C776C78), 1401 HN_ULONG_TO_UBASE(0x8F3385B8), HN_ULONG_TO_UBASE(0xF4D60732), 1402 HN_ULONG_TO_UBASE(0xDAB5D18D), HN_ULONG_TO_UBASE(0x9A409F59), 1403 HN_ULONG_TO_UBASE(0x2D053736), HN_ULONG_TO_UBASE(0x51DF0AEB), 1404 HN_ULONG_TO_UBASE(0x5E6C9B06), HN_ULONG_TO_UBASE(0xB4A66CE7), 1405 HN_ULONG_TO_UBASE(0x000001B3) 1406 }, 1407 1408 /* 2^e * 24G.x */ 1409 { 1410 HN_ULONG_TO_UBASE(0xA1AF2987), HN_ULONG_TO_UBASE(0x1F0491D7), 1411 HN_ULONG_TO_UBASE(0xF5EE72FA), HN_ULONG_TO_UBASE(0xEFB019B3), 1412 HN_ULONG_TO_UBASE(0x4B8FF71C), HN_ULONG_TO_UBASE(0x73232D69), 1413 HN_ULONG_TO_UBASE(0xAB4A9C53), HN_ULONG_TO_UBASE(0x9E9BD679), 1414 HN_ULONG_TO_UBASE(0x95869A29), HN_ULONG_TO_UBASE(0xF52CB78F), 1415 HN_ULONG_TO_UBASE(0xEBA82541), HN_ULONG_TO_UBASE(0xD9792C42), 1416 HN_ULONG_TO_UBASE(0x8E842BBB), HN_ULONG_TO_UBASE(0x023B2307), 1417 HN_ULONG_TO_UBASE(0x377703F8), HN_ULONG_TO_UBASE(0x5EF5276B), 1418 HN_ULONG_TO_UBASE(0x0000001C) 1419 }, 1420 1421 /* 2^e * 24G.y */ 1422 { 1423 HN_ULONG_TO_UBASE(0xCA31A9CC), HN_ULONG_TO_UBASE(0x640352D4), 1424 HN_ULONG_TO_UBASE(0xAEA459C0), HN_ULONG_TO_UBASE(0x9FD01575), 1425 HN_ULONG_TO_UBASE(0x8BEAB4A2), HN_ULONG_TO_UBASE(0xC4358ECE), 1426 HN_ULONG_TO_UBASE(0x96AA4B07), HN_ULONG_TO_UBASE(0x3A184D17), 1427 HN_ULONG_TO_UBASE(0xCF60BD74), HN_ULONG_TO_UBASE(0x59DE560F), 1428 HN_ULONG_TO_UBASE(0xF40E4EF7), HN_ULONG_TO_UBASE(0x7A9DC454), 1429 HN_ULONG_TO_UBASE(0xB826C890), HN_ULONG_TO_UBASE(0xCB3035F3), 1430 HN_ULONG_TO_UBASE(0x9B117280), HN_ULONG_TO_UBASE(0x020FB726), 1431 HN_ULONG_TO_UBASE(0x0000007D) 1432 }, 1433 1434 /* 2^e * 25G.x */ 1435 { 1436 HN_ULONG_TO_UBASE(0xDEFB874E), HN_ULONG_TO_UBASE(0xEF878600), 1437 HN_ULONG_TO_UBASE(0xC14A8051), HN_ULONG_TO_UBASE(0xE9B94A26), 1438 HN_ULONG_TO_UBASE(0x7D77C97F), HN_ULONG_TO_UBASE(0x0F81A278), 1439 HN_ULONG_TO_UBASE(0xA3E681EE), HN_ULONG_TO_UBASE(0x06965AC4), 1440 HN_ULONG_TO_UBASE(0x71379B8C), HN_ULONG_TO_UBASE(0x9AEED4F7), 1441 HN_ULONG_TO_UBASE(0xA37AC136), HN_ULONG_TO_UBASE(0xDB705990), 1442 HN_ULONG_TO_UBASE(0xD5823BC0), HN_ULONG_TO_UBASE(0x389A5D5D), 1443 HN_ULONG_TO_UBASE(0x1B4EE4E2), HN_ULONG_TO_UBASE(0x57D40581), 1444 HN_ULONG_TO_UBASE(0x00000135) 1445 }, 1446 1447 /* 2^e * 25G.y */ 1448 { 1449 HN_ULONG_TO_UBASE(0xC7AF700E), HN_ULONG_TO_UBASE(0x636CE1BA), 1450 HN_ULONG_TO_UBASE(0x8B0C0D67), HN_ULONG_TO_UBASE(0xB2F9306F), 1451 HN_ULONG_TO_UBASE(0xE20A95C7), HN_ULONG_TO_UBASE(0xA9BD916E), 1452 HN_ULONG_TO_UBASE(0x497B8831), HN_ULONG_TO_UBASE(0x4837218B), 1453 HN_ULONG_TO_UBASE(0x86B6BC7B), HN_ULONG_TO_UBASE(0xBAF8C4D3), 1454 HN_ULONG_TO_UBASE(0x69E3739D), HN_ULONG_TO_UBASE(0x4F0A86B9), 1455 HN_ULONG_TO_UBASE(0x726613CF), HN_ULONG_TO_UBASE(0x38ED636B), 1456 HN_ULONG_TO_UBASE(0x75F12296), HN_ULONG_TO_UBASE(0xB8A65251), 1457 HN_ULONG_TO_UBASE(0x0000014B) 1458 }, 1459 1460 /* 2^e * 26G.x */ 1461 { 1462 HN_ULONG_TO_UBASE(0x2BEFB3A0), HN_ULONG_TO_UBASE(0x4A18B81E), 1463 HN_ULONG_TO_UBASE(0xB4A83956), HN_ULONG_TO_UBASE(0x6F08D7D4), 1464 HN_ULONG_TO_UBASE(0xA3A6B4EB), HN_ULONG_TO_UBASE(0xA90EC94F), 1465 HN_ULONG_TO_UBASE(0xD108D6E7), HN_ULONG_TO_UBASE(0x747A02ED), 1466 HN_ULONG_TO_UBASE(0xF9119265), HN_ULONG_TO_UBASE(0x6062D725), 1467 HN_ULONG_TO_UBASE(0xB7A0EDF7), HN_ULONG_TO_UBASE(0x4943F52C), 1468 HN_ULONG_TO_UBASE(0xF06FA9D7), HN_ULONG_TO_UBASE(0x6E3EA682), 1469 HN_ULONG_TO_UBASE(0xBF39C61E), HN_ULONG_TO_UBASE(0x515D756E), 1470 HN_ULONG_TO_UBASE(0x000001A3) 1471 }, 1472 1473 /* 2^e * 26G.y */ 1474 { 1475 HN_ULONG_TO_UBASE(0x40922050), HN_ULONG_TO_UBASE(0x39688D76), 1476 HN_ULONG_TO_UBASE(0x4BACED4B), HN_ULONG_TO_UBASE(0x8C32ABBD), 1477 HN_ULONG_TO_UBASE(0x8902374F), HN_ULONG_TO_UBASE(0xA3C8F88D), 1478 HN_ULONG_TO_UBASE(0x549E30B0), HN_ULONG_TO_UBASE(0x12BE74D4), 1479 HN_ULONG_TO_UBASE(0x7D821EDF), HN_ULONG_TO_UBASE(0xB2728CE5), 1480 HN_ULONG_TO_UBASE(0xF37EBB0E), HN_ULONG_TO_UBASE(0xB09FA111), 1481 HN_ULONG_TO_UBASE(0x6EA18A93), HN_ULONG_TO_UBASE(0xAC5742C9), 1482 HN_ULONG_TO_UBASE(0xE0781A61), HN_ULONG_TO_UBASE(0x98D97597), 1483 HN_ULONG_TO_UBASE(0x000001E8) 1484 }, 1485 1486 /* 2^e * 27G.x */ 1487 { 1488 HN_ULONG_TO_UBASE(0xC206D597), HN_ULONG_TO_UBASE(0x43FED51D), 1489 HN_ULONG_TO_UBASE(0x15901BE6), HN_ULONG_TO_UBASE(0x783AD4CD), 1490 HN_ULONG_TO_UBASE(0x27BFFF4E), HN_ULONG_TO_UBASE(0xEFE0FDDF), 1491 HN_ULONG_TO_UBASE(0x7B15B710), HN_ULONG_TO_UBASE(0x5967E2B4), 1492 HN_ULONG_TO_UBASE(0x6BDF98CC), HN_ULONG_TO_UBASE(0x16FED041), 1493 HN_ULONG_TO_UBASE(0x459328C3), HN_ULONG_TO_UBASE(0xB51401B3), 1494 HN_ULONG_TO_UBASE(0x960F3C2A), HN_ULONG_TO_UBASE(0x852B90EC), 1495 HN_ULONG_TO_UBASE(0x5B7E0576), HN_ULONG_TO_UBASE(0x1125A3B5), 1496 HN_ULONG_TO_UBASE(0x0000013B) 1497 }, 1498 1499 /* 2^e * 27G.y */ 1500 { 1501 HN_ULONG_TO_UBASE(0xE8E0082E), HN_ULONG_TO_UBASE(0x0841E7A6), 1502 HN_ULONG_TO_UBASE(0xD29794CB), HN_ULONG_TO_UBASE(0x35781EA4), 1503 HN_ULONG_TO_UBASE(0x3C7AC894), HN_ULONG_TO_UBASE(0xD6428158), 1504 HN_ULONG_TO_UBASE(0xA42C2608), HN_ULONG_TO_UBASE(0x6B1F1B60), 1505 HN_ULONG_TO_UBASE(0x9115C670), HN_ULONG_TO_UBASE(0x54140A82), 1506 HN_ULONG_TO_UBASE(0x4B600B19), HN_ULONG_TO_UBASE(0x13391329), 1507 HN_ULONG_TO_UBASE(0x3FA27D38), HN_ULONG_TO_UBASE(0x88B5AE42), 1508 HN_ULONG_TO_UBASE(0x91056425), HN_ULONG_TO_UBASE(0x8D7B88C0), 1509 HN_ULONG_TO_UBASE(0x0000010A) 1510 }, 1511 1512 /* 2^e * 28G.x */ 1513 { 1514 HN_ULONG_TO_UBASE(0x8B46D3F8), HN_ULONG_TO_UBASE(0x0A2F3F39), 1515 HN_ULONG_TO_UBASE(0x7EA5E9F5), HN_ULONG_TO_UBASE(0x74609CC4), 1516 HN_ULONG_TO_UBASE(0x90BADF07), HN_ULONG_TO_UBASE(0x799C1034), 1517 HN_ULONG_TO_UBASE(0xE0B233EA), HN_ULONG_TO_UBASE(0x164A4076), 1518 HN_ULONG_TO_UBASE(0x2E774B0B), HN_ULONG_TO_UBASE(0xB520A9B3), 1519 HN_ULONG_TO_UBASE(0x29470BD1), HN_ULONG_TO_UBASE(0xBA5A091C), 1520 HN_ULONG_TO_UBASE(0xDCC3BF73), HN_ULONG_TO_UBASE(0xE2C865C4), 1521 HN_ULONG_TO_UBASE(0x681CFF26), HN_ULONG_TO_UBASE(0xF4282B04), 1522 HN_ULONG_TO_UBASE(0x000000D2) 1523 }, 1524 1525 /* 2^e * 28G.y */ 1526 { 1527 HN_ULONG_TO_UBASE(0x24998F7C), HN_ULONG_TO_UBASE(0xE5969A11), 1528 HN_ULONG_TO_UBASE(0x363B0729), HN_ULONG_TO_UBASE(0xEDCE074B), 1529 HN_ULONG_TO_UBASE(0xD890DA94), HN_ULONG_TO_UBASE(0x4440C60D), 1530 HN_ULONG_TO_UBASE(0x03EAA158), HN_ULONG_TO_UBASE(0x77689A18), 1531 HN_ULONG_TO_UBASE(0x18FD5E39), HN_ULONG_TO_UBASE(0xAC028859), 1532 HN_ULONG_TO_UBASE(0x48312251), HN_ULONG_TO_UBASE(0xA7AB91E1), 1533 HN_ULONG_TO_UBASE(0x9837DE51), HN_ULONG_TO_UBASE(0x3174DDB9), 1534 HN_ULONG_TO_UBASE(0xB6896BAF), HN_ULONG_TO_UBASE(0x2E36BC78), 1535 HN_ULONG_TO_UBASE(0x0000000F) 1536 }, 1537 1538 /* 2^e * 29G.x */ 1539 { 1540 HN_ULONG_TO_UBASE(0x5D17A876), HN_ULONG_TO_UBASE(0x8D44E247), 1541 HN_ULONG_TO_UBASE(0x18F46528), HN_ULONG_TO_UBASE(0x5B2865A2), 1542 HN_ULONG_TO_UBASE(0xB8C23140), HN_ULONG_TO_UBASE(0x320E0884), 1543 HN_ULONG_TO_UBASE(0x81FAF3B6), HN_ULONG_TO_UBASE(0xE73006F1), 1544 HN_ULONG_TO_UBASE(0x0D762D20), HN_ULONG_TO_UBASE(0x56DC5142), 1545 HN_ULONG_TO_UBASE(0xC2C03220), HN_ULONG_TO_UBASE(0x8F8A3B56), 1546 HN_ULONG_TO_UBASE(0x3FF0CA07), HN_ULONG_TO_UBASE(0x977E34D1), 1547 HN_ULONG_TO_UBASE(0xDB7AF041), HN_ULONG_TO_UBASE(0x3FD45603), 1548 HN_ULONG_TO_UBASE(0x000000C0) 1549 }, 1550 1551 /* 2^e * 29G.y */ 1552 { 1553 HN_ULONG_TO_UBASE(0xFE79F342), HN_ULONG_TO_UBASE(0x6E5519A9), 1554 HN_ULONG_TO_UBASE(0x05DE7057), HN_ULONG_TO_UBASE(0xAA3980BA), 1555 HN_ULONG_TO_UBASE(0x9C0D4E81), HN_ULONG_TO_UBASE(0xCE830928), 1556 HN_ULONG_TO_UBASE(0x3CDEA8F5), HN_ULONG_TO_UBASE(0x6009A11C), 1557 HN_ULONG_TO_UBASE(0xBB30ACE9), HN_ULONG_TO_UBASE(0xE89D7A25), 1558 HN_ULONG_TO_UBASE(0x359FCD76), HN_ULONG_TO_UBASE(0x118E7ABB), 1559 HN_ULONG_TO_UBASE(0x4815E518), HN_ULONG_TO_UBASE(0xD0871F6D), 1560 HN_ULONG_TO_UBASE(0x6AA2EA4D), HN_ULONG_TO_UBASE(0xA4CE655C), 1561 HN_ULONG_TO_UBASE(0x000000AF) 1562 }, 1563 1564 /* 2^e * 30G.x */ 1565 { 1566 HN_ULONG_TO_UBASE(0x6C500737), HN_ULONG_TO_UBASE(0x3EB3BE81), 1567 HN_ULONG_TO_UBASE(0x1587CBBF), HN_ULONG_TO_UBASE(0x89F48224), 1568 HN_ULONG_TO_UBASE(0xCD261D7F), HN_ULONG_TO_UBASE(0x3F9877E4), 1569 HN_ULONG_TO_UBASE(0xADFD4F51), HN_ULONG_TO_UBASE(0xF2AE780D), 1570 HN_ULONG_TO_UBASE(0xC8BA1966), HN_ULONG_TO_UBASE(0xE15E5259), 1571 HN_ULONG_TO_UBASE(0x840D4515), HN_ULONG_TO_UBASE(0xCD413B47), 1572 HN_ULONG_TO_UBASE(0xC7699653), HN_ULONG_TO_UBASE(0x4EE5EFA5), 1573 HN_ULONG_TO_UBASE(0x2B609955), HN_ULONG_TO_UBASE(0xEA69BB2C), 1574 HN_ULONG_TO_UBASE(0x00000162) 1575 }, 1576 1577 /* 2^e * 30G.y */ 1578 { 1579 HN_ULONG_TO_UBASE(0x292A38F0), HN_ULONG_TO_UBASE(0x6DDD0387), 1580 HN_ULONG_TO_UBASE(0xD69B1C6A), HN_ULONG_TO_UBASE(0x8BECFF5E), 1581 HN_ULONG_TO_UBASE(0x058B203D), HN_ULONG_TO_UBASE(0x215F27D6), 1582 HN_ULONG_TO_UBASE(0x7BB1B254), HN_ULONG_TO_UBASE(0x06FB452B), 1583 HN_ULONG_TO_UBASE(0xEA41B3F2), HN_ULONG_TO_UBASE(0x36986BCF), 1584 HN_ULONG_TO_UBASE(0x82095E84), HN_ULONG_TO_UBASE(0x9265CEF9), 1585 HN_ULONG_TO_UBASE(0xAA24D352), HN_ULONG_TO_UBASE(0xE7F26B92), 1586 HN_ULONG_TO_UBASE(0x885501EF), HN_ULONG_TO_UBASE(0x8B248B76), 1587 HN_ULONG_TO_UBASE(0x00000023) 1588 }, 1589 1590 /* 2^e * 31G.x */ 1591 { 1592 HN_ULONG_TO_UBASE(0x5E95556E), HN_ULONG_TO_UBASE(0x4DE9BE95), 1593 HN_ULONG_TO_UBASE(0x2AA302F0), HN_ULONG_TO_UBASE(0x8E35493E), 1594 HN_ULONG_TO_UBASE(0x75652B59), HN_ULONG_TO_UBASE(0x01F4511D), 1595 HN_ULONG_TO_UBASE(0xA6D539C0), HN_ULONG_TO_UBASE(0xDF602ACC), 1596 HN_ULONG_TO_UBASE(0xA4843060), HN_ULONG_TO_UBASE(0xB29FC167), 1597 HN_ULONG_TO_UBASE(0x0D79514B), HN_ULONG_TO_UBASE(0x908C3E41), 1598 HN_ULONG_TO_UBASE(0xF91DC68B), HN_ULONG_TO_UBASE(0x47482920), 1599 HN_ULONG_TO_UBASE(0xB0716173), HN_ULONG_TO_UBASE(0x1251AF48), 1600 HN_ULONG_TO_UBASE(0x00000178) 1601 }, 1602 1603 /* 2^e * 31G.y */ 1604 { 1605 HN_ULONG_TO_UBASE(0x6C3214B1), HN_ULONG_TO_UBASE(0x0FF3F326), 1606 HN_ULONG_TO_UBASE(0x6326BF28), HN_ULONG_TO_UBASE(0x78B040CD), 1607 HN_ULONG_TO_UBASE(0x0E0518B4), HN_ULONG_TO_UBASE(0x8DDEEC33), 1608 HN_ULONG_TO_UBASE(0x6F02F5C9), HN_ULONG_TO_UBASE(0x1CD3CE74), 1609 HN_ULONG_TO_UBASE(0x87A46169), HN_ULONG_TO_UBASE(0x407B3F21), 1610 HN_ULONG_TO_UBASE(0x9FE3E626), HN_ULONG_TO_UBASE(0x48203860), 1611 HN_ULONG_TO_UBASE(0xCCFA97C2), HN_ULONG_TO_UBASE(0xC0DF1ECF), 1612 HN_ULONG_TO_UBASE(0xFB2CBDC6), HN_ULONG_TO_UBASE(0x18772C40), 1613 HN_ULONG_TO_UBASE(0x0000008E) 1614 } 1615 }; 1616 static NX_CRYPTO_CONST NX_CRYPTO_EC_POINT secp521r1_fixed_points_array[] = 1617 { 1618 1619 /* 2G */ 1620 { 1621 NX_CRYPTO_EC_POINT_AFFINE, 1622 { 1623 (HN_UBASE *)&secp521r1_fixed_points_data[0], 1624 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1625 }, 1626 { 1627 (HN_UBASE *)&secp521r1_fixed_points_data[1], 1628 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1629 }, 1630 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1631 }, 1632 1633 /* 3G */ 1634 { 1635 NX_CRYPTO_EC_POINT_AFFINE, 1636 { 1637 (HN_UBASE *)&secp521r1_fixed_points_data[2], 1638 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1639 }, 1640 { 1641 (HN_UBASE *)&secp521r1_fixed_points_data[3], 1642 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1643 }, 1644 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1645 }, 1646 1647 /* 4G */ 1648 { 1649 NX_CRYPTO_EC_POINT_AFFINE, 1650 { 1651 (HN_UBASE *)&secp521r1_fixed_points_data[4], 1652 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1653 }, 1654 { 1655 (HN_UBASE *)&secp521r1_fixed_points_data[5], 1656 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1657 }, 1658 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1659 }, 1660 1661 /* 5G */ 1662 { 1663 NX_CRYPTO_EC_POINT_AFFINE, 1664 { 1665 (HN_UBASE *)&secp521r1_fixed_points_data[6], 1666 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1667 }, 1668 { 1669 (HN_UBASE *)&secp521r1_fixed_points_data[7], 1670 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1671 }, 1672 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1673 }, 1674 1675 /* 6G */ 1676 { 1677 NX_CRYPTO_EC_POINT_AFFINE, 1678 { 1679 (HN_UBASE *)&secp521r1_fixed_points_data[8], 1680 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1681 }, 1682 { 1683 (HN_UBASE *)&secp521r1_fixed_points_data[9], 1684 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1685 }, 1686 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1687 }, 1688 1689 /* 7G */ 1690 { 1691 NX_CRYPTO_EC_POINT_AFFINE, 1692 { 1693 (HN_UBASE *)&secp521r1_fixed_points_data[10], 1694 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1695 }, 1696 { 1697 (HN_UBASE *)&secp521r1_fixed_points_data[11], 1698 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1699 }, 1700 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1701 }, 1702 1703 /* 8G */ 1704 { 1705 NX_CRYPTO_EC_POINT_AFFINE, 1706 { 1707 (HN_UBASE *)&secp521r1_fixed_points_data[12], 1708 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1709 }, 1710 { 1711 (HN_UBASE *)&secp521r1_fixed_points_data[13], 1712 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1713 }, 1714 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1715 }, 1716 1717 /* 9G */ 1718 { 1719 NX_CRYPTO_EC_POINT_AFFINE, 1720 { 1721 (HN_UBASE *)&secp521r1_fixed_points_data[14], 1722 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1723 }, 1724 { 1725 (HN_UBASE *)&secp521r1_fixed_points_data[15], 1726 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1727 }, 1728 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1729 }, 1730 1731 /* 10G */ 1732 { 1733 NX_CRYPTO_EC_POINT_AFFINE, 1734 { 1735 (HN_UBASE *)&secp521r1_fixed_points_data[16], 1736 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1737 }, 1738 { 1739 (HN_UBASE *)&secp521r1_fixed_points_data[17], 1740 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1741 }, 1742 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1743 }, 1744 1745 /* 11G */ 1746 { 1747 NX_CRYPTO_EC_POINT_AFFINE, 1748 { 1749 (HN_UBASE *)&secp521r1_fixed_points_data[18], 1750 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1751 }, 1752 { 1753 (HN_UBASE *)&secp521r1_fixed_points_data[19], 1754 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1755 }, 1756 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1757 }, 1758 1759 /* 12G */ 1760 { 1761 NX_CRYPTO_EC_POINT_AFFINE, 1762 { 1763 (HN_UBASE *)&secp521r1_fixed_points_data[20], 1764 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1765 }, 1766 { 1767 (HN_UBASE *)&secp521r1_fixed_points_data[21], 1768 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1769 }, 1770 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1771 }, 1772 1773 /* 13G */ 1774 { 1775 NX_CRYPTO_EC_POINT_AFFINE, 1776 { 1777 (HN_UBASE *)&secp521r1_fixed_points_data[22], 1778 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1779 }, 1780 { 1781 (HN_UBASE *)&secp521r1_fixed_points_data[23], 1782 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1783 }, 1784 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1785 }, 1786 1787 /* 14G */ 1788 { 1789 NX_CRYPTO_EC_POINT_AFFINE, 1790 { 1791 (HN_UBASE *)&secp521r1_fixed_points_data[24], 1792 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1793 }, 1794 { 1795 (HN_UBASE *)&secp521r1_fixed_points_data[25], 1796 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1797 }, 1798 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1799 }, 1800 1801 /* 15G */ 1802 { 1803 NX_CRYPTO_EC_POINT_AFFINE, 1804 { 1805 (HN_UBASE *)&secp521r1_fixed_points_data[26], 1806 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1807 }, 1808 { 1809 (HN_UBASE *)&secp521r1_fixed_points_data[27], 1810 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1811 }, 1812 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1813 }, 1814 1815 /* 16G */ 1816 { 1817 NX_CRYPTO_EC_POINT_AFFINE, 1818 { 1819 (HN_UBASE *)&secp521r1_fixed_points_data[28], 1820 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1821 }, 1822 { 1823 (HN_UBASE *)&secp521r1_fixed_points_data[29], 1824 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1825 }, 1826 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1827 }, 1828 1829 /* 17G */ 1830 { 1831 NX_CRYPTO_EC_POINT_AFFINE, 1832 { 1833 (HN_UBASE *)&secp521r1_fixed_points_data[30], 1834 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1835 }, 1836 { 1837 (HN_UBASE *)&secp521r1_fixed_points_data[31], 1838 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1839 }, 1840 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1841 }, 1842 1843 /* 18G */ 1844 { 1845 NX_CRYPTO_EC_POINT_AFFINE, 1846 { 1847 (HN_UBASE *)&secp521r1_fixed_points_data[32], 1848 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1849 }, 1850 { 1851 (HN_UBASE *)&secp521r1_fixed_points_data[33], 1852 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1853 }, 1854 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1855 }, 1856 1857 /* 19G */ 1858 { 1859 NX_CRYPTO_EC_POINT_AFFINE, 1860 { 1861 (HN_UBASE *)&secp521r1_fixed_points_data[34], 1862 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1863 }, 1864 { 1865 (HN_UBASE *)&secp521r1_fixed_points_data[35], 1866 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1867 }, 1868 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1869 }, 1870 1871 /* 20G */ 1872 { 1873 NX_CRYPTO_EC_POINT_AFFINE, 1874 { 1875 (HN_UBASE *)&secp521r1_fixed_points_data[36], 1876 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1877 }, 1878 { 1879 (HN_UBASE *)&secp521r1_fixed_points_data[37], 1880 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1881 }, 1882 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1883 }, 1884 1885 /* 21G */ 1886 { 1887 NX_CRYPTO_EC_POINT_AFFINE, 1888 { 1889 (HN_UBASE *)&secp521r1_fixed_points_data[38], 1890 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1891 }, 1892 { 1893 (HN_UBASE *)&secp521r1_fixed_points_data[39], 1894 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1895 }, 1896 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1897 }, 1898 1899 /* 22G */ 1900 { 1901 NX_CRYPTO_EC_POINT_AFFINE, 1902 { 1903 (HN_UBASE *)&secp521r1_fixed_points_data[40], 1904 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1905 }, 1906 { 1907 (HN_UBASE *)&secp521r1_fixed_points_data[41], 1908 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1909 }, 1910 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1911 }, 1912 1913 /* 23G */ 1914 { 1915 NX_CRYPTO_EC_POINT_AFFINE, 1916 { 1917 (HN_UBASE *)&secp521r1_fixed_points_data[42], 1918 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1919 }, 1920 { 1921 (HN_UBASE *)&secp521r1_fixed_points_data[43], 1922 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1923 }, 1924 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1925 }, 1926 1927 /* 24G */ 1928 { 1929 NX_CRYPTO_EC_POINT_AFFINE, 1930 { 1931 (HN_UBASE *)&secp521r1_fixed_points_data[44], 1932 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1933 }, 1934 { 1935 (HN_UBASE *)&secp521r1_fixed_points_data[45], 1936 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1937 }, 1938 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1939 }, 1940 1941 /* 25G */ 1942 { 1943 NX_CRYPTO_EC_POINT_AFFINE, 1944 { 1945 (HN_UBASE *)&secp521r1_fixed_points_data[46], 1946 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1947 }, 1948 { 1949 (HN_UBASE *)&secp521r1_fixed_points_data[47], 1950 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1951 }, 1952 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1953 }, 1954 1955 /* 26G */ 1956 { 1957 NX_CRYPTO_EC_POINT_AFFINE, 1958 { 1959 (HN_UBASE *)&secp521r1_fixed_points_data[48], 1960 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1961 }, 1962 { 1963 (HN_UBASE *)&secp521r1_fixed_points_data[49], 1964 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1965 }, 1966 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1967 }, 1968 1969 /* 27G */ 1970 { 1971 NX_CRYPTO_EC_POINT_AFFINE, 1972 { 1973 (HN_UBASE *)&secp521r1_fixed_points_data[50], 1974 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1975 }, 1976 { 1977 (HN_UBASE *)&secp521r1_fixed_points_data[51], 1978 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1979 }, 1980 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1981 }, 1982 1983 /* 28G */ 1984 { 1985 NX_CRYPTO_EC_POINT_AFFINE, 1986 { 1987 (HN_UBASE *)&secp521r1_fixed_points_data[52], 1988 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1989 }, 1990 { 1991 (HN_UBASE *)&secp521r1_fixed_points_data[53], 1992 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 1993 }, 1994 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1995 }, 1996 1997 /* 29G */ 1998 { 1999 NX_CRYPTO_EC_POINT_AFFINE, 2000 { 2001 (HN_UBASE *)&secp521r1_fixed_points_data[54], 2002 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2003 }, 2004 { 2005 (HN_UBASE *)&secp521r1_fixed_points_data[55], 2006 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2007 }, 2008 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2009 }, 2010 2011 /* 30G */ 2012 { 2013 NX_CRYPTO_EC_POINT_AFFINE, 2014 { 2015 (HN_UBASE *)&secp521r1_fixed_points_data[56], 2016 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2017 }, 2018 { 2019 (HN_UBASE *)&secp521r1_fixed_points_data[57], 2020 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2021 }, 2022 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2023 }, 2024 2025 /* 31G */ 2026 { 2027 NX_CRYPTO_EC_POINT_AFFINE, 2028 { 2029 (HN_UBASE *)&secp521r1_fixed_points_data[58], 2030 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2031 }, 2032 { 2033 (HN_UBASE *)&secp521r1_fixed_points_data[59], 2034 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2035 }, 2036 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2037 } 2038 }; 2039 static NX_CRYPTO_CONST NX_CRYPTO_EC_POINT secp521r1_fixed_points_2e_array[] = 2040 { 2041 2042 /* 2^e * 1G */ 2043 { 2044 NX_CRYPTO_EC_POINT_AFFINE, 2045 { 2046 (HN_UBASE *)&secp521r1_fixed_points_2e_data[0], 2047 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2048 }, 2049 { 2050 (HN_UBASE *)&secp521r1_fixed_points_2e_data[1], 2051 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2052 }, 2053 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2054 }, 2055 2056 /* 2^e * 2G */ 2057 { 2058 NX_CRYPTO_EC_POINT_AFFINE, 2059 { 2060 (HN_UBASE *)&secp521r1_fixed_points_2e_data[2], 2061 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2062 }, 2063 { 2064 (HN_UBASE *)&secp521r1_fixed_points_2e_data[3], 2065 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2066 }, 2067 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2068 }, 2069 2070 /* 2^e * 3G */ 2071 { 2072 NX_CRYPTO_EC_POINT_AFFINE, 2073 { 2074 (HN_UBASE *)&secp521r1_fixed_points_2e_data[4], 2075 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2076 }, 2077 { 2078 (HN_UBASE *)&secp521r1_fixed_points_2e_data[5], 2079 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2080 }, 2081 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2082 }, 2083 2084 /* 2^e * 4G */ 2085 { 2086 NX_CRYPTO_EC_POINT_AFFINE, 2087 { 2088 (HN_UBASE *)&secp521r1_fixed_points_2e_data[6], 2089 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2090 }, 2091 { 2092 (HN_UBASE *)&secp521r1_fixed_points_2e_data[7], 2093 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2094 }, 2095 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2096 }, 2097 2098 /* 2^e * 5G */ 2099 { 2100 NX_CRYPTO_EC_POINT_AFFINE, 2101 { 2102 (HN_UBASE *)&secp521r1_fixed_points_2e_data[8], 2103 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2104 }, 2105 { 2106 (HN_UBASE *)&secp521r1_fixed_points_2e_data[9], 2107 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2108 }, 2109 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2110 }, 2111 2112 /* 2^e * 6G */ 2113 { 2114 NX_CRYPTO_EC_POINT_AFFINE, 2115 { 2116 (HN_UBASE *)&secp521r1_fixed_points_2e_data[10], 2117 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2118 }, 2119 { 2120 (HN_UBASE *)&secp521r1_fixed_points_2e_data[11], 2121 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2122 }, 2123 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2124 }, 2125 2126 /* 2^e * 7G */ 2127 { 2128 NX_CRYPTO_EC_POINT_AFFINE, 2129 { 2130 (HN_UBASE *)&secp521r1_fixed_points_2e_data[12], 2131 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2132 }, 2133 { 2134 (HN_UBASE *)&secp521r1_fixed_points_2e_data[13], 2135 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2136 }, 2137 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2138 }, 2139 2140 /* 2^e * 8G */ 2141 { 2142 NX_CRYPTO_EC_POINT_AFFINE, 2143 { 2144 (HN_UBASE *)&secp521r1_fixed_points_2e_data[14], 2145 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2146 }, 2147 { 2148 (HN_UBASE *)&secp521r1_fixed_points_2e_data[15], 2149 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2150 }, 2151 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2152 }, 2153 2154 /* 2^e * 9G */ 2155 { 2156 NX_CRYPTO_EC_POINT_AFFINE, 2157 { 2158 (HN_UBASE *)&secp521r1_fixed_points_2e_data[16], 2159 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2160 }, 2161 { 2162 (HN_UBASE *)&secp521r1_fixed_points_2e_data[17], 2163 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2164 }, 2165 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2166 }, 2167 2168 /* 2^e * 10G */ 2169 { 2170 NX_CRYPTO_EC_POINT_AFFINE, 2171 { 2172 (HN_UBASE *)&secp521r1_fixed_points_2e_data[18], 2173 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2174 }, 2175 { 2176 (HN_UBASE *)&secp521r1_fixed_points_2e_data[19], 2177 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2178 }, 2179 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2180 }, 2181 2182 /* 2^e * 11G */ 2183 { 2184 NX_CRYPTO_EC_POINT_AFFINE, 2185 { 2186 (HN_UBASE *)&secp521r1_fixed_points_2e_data[20], 2187 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2188 }, 2189 { 2190 (HN_UBASE *)&secp521r1_fixed_points_2e_data[21], 2191 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2192 }, 2193 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2194 }, 2195 2196 /* 2^e * 12G */ 2197 { 2198 NX_CRYPTO_EC_POINT_AFFINE, 2199 { 2200 (HN_UBASE *)&secp521r1_fixed_points_2e_data[22], 2201 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2202 }, 2203 { 2204 (HN_UBASE *)&secp521r1_fixed_points_2e_data[23], 2205 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2206 }, 2207 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2208 }, 2209 2210 /* 2^e * 13G */ 2211 { 2212 NX_CRYPTO_EC_POINT_AFFINE, 2213 { 2214 (HN_UBASE *)&secp521r1_fixed_points_2e_data[24], 2215 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2216 }, 2217 { 2218 (HN_UBASE *)&secp521r1_fixed_points_2e_data[25], 2219 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2220 }, 2221 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2222 }, 2223 2224 /* 2^e * 14G */ 2225 { 2226 NX_CRYPTO_EC_POINT_AFFINE, 2227 { 2228 (HN_UBASE *)&secp521r1_fixed_points_2e_data[26], 2229 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2230 }, 2231 { 2232 (HN_UBASE *)&secp521r1_fixed_points_2e_data[27], 2233 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2234 }, 2235 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2236 }, 2237 2238 /* 2^e * 15G */ 2239 { 2240 NX_CRYPTO_EC_POINT_AFFINE, 2241 { 2242 (HN_UBASE *)&secp521r1_fixed_points_2e_data[28], 2243 64 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2244 }, 2245 { 2246 (HN_UBASE *)&secp521r1_fixed_points_2e_data[29], 2247 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2248 }, 2249 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2250 }, 2251 2252 /* 2^e * 16G */ 2253 { 2254 NX_CRYPTO_EC_POINT_AFFINE, 2255 { 2256 (HN_UBASE *)&secp521r1_fixed_points_2e_data[30], 2257 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2258 }, 2259 { 2260 (HN_UBASE *)&secp521r1_fixed_points_2e_data[31], 2261 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2262 }, 2263 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2264 }, 2265 2266 /* 2^e * 17G */ 2267 { 2268 NX_CRYPTO_EC_POINT_AFFINE, 2269 { 2270 (HN_UBASE *)&secp521r1_fixed_points_2e_data[32], 2271 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2272 }, 2273 { 2274 (HN_UBASE *)&secp521r1_fixed_points_2e_data[33], 2275 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2276 }, 2277 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2278 }, 2279 2280 /* 2^e * 18G */ 2281 { 2282 NX_CRYPTO_EC_POINT_AFFINE, 2283 { 2284 (HN_UBASE *)&secp521r1_fixed_points_2e_data[34], 2285 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2286 }, 2287 { 2288 (HN_UBASE *)&secp521r1_fixed_points_2e_data[35], 2289 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2290 }, 2291 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2292 }, 2293 2294 /* 2^e * 19G */ 2295 { 2296 NX_CRYPTO_EC_POINT_AFFINE, 2297 { 2298 (HN_UBASE *)&secp521r1_fixed_points_2e_data[36], 2299 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2300 }, 2301 { 2302 (HN_UBASE *)&secp521r1_fixed_points_2e_data[37], 2303 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2304 }, 2305 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2306 }, 2307 2308 /* 2^e * 20G */ 2309 { 2310 NX_CRYPTO_EC_POINT_AFFINE, 2311 { 2312 (HN_UBASE *)&secp521r1_fixed_points_2e_data[38], 2313 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2314 }, 2315 { 2316 (HN_UBASE *)&secp521r1_fixed_points_2e_data[39], 2317 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2318 }, 2319 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2320 }, 2321 2322 /* 2^e * 21G */ 2323 { 2324 NX_CRYPTO_EC_POINT_AFFINE, 2325 { 2326 (HN_UBASE *)&secp521r1_fixed_points_2e_data[40], 2327 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2328 }, 2329 { 2330 (HN_UBASE *)&secp521r1_fixed_points_2e_data[41], 2331 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2332 }, 2333 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2334 }, 2335 2336 /* 2^e * 22G */ 2337 { 2338 NX_CRYPTO_EC_POINT_AFFINE, 2339 { 2340 (HN_UBASE *)&secp521r1_fixed_points_2e_data[42], 2341 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2342 }, 2343 { 2344 (HN_UBASE *)&secp521r1_fixed_points_2e_data[43], 2345 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2346 }, 2347 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2348 }, 2349 2350 /* 2^e * 23G */ 2351 { 2352 NX_CRYPTO_EC_POINT_AFFINE, 2353 { 2354 (HN_UBASE *)&secp521r1_fixed_points_2e_data[44], 2355 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2356 }, 2357 { 2358 (HN_UBASE *)&secp521r1_fixed_points_2e_data[45], 2359 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2360 }, 2361 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2362 }, 2363 2364 /* 2^e * 24G */ 2365 { 2366 NX_CRYPTO_EC_POINT_AFFINE, 2367 { 2368 (HN_UBASE *)&secp521r1_fixed_points_2e_data[46], 2369 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2370 }, 2371 { 2372 (HN_UBASE *)&secp521r1_fixed_points_2e_data[47], 2373 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2374 }, 2375 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2376 }, 2377 2378 /* 2^e * 25G */ 2379 { 2380 NX_CRYPTO_EC_POINT_AFFINE, 2381 { 2382 (HN_UBASE *)&secp521r1_fixed_points_2e_data[48], 2383 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2384 }, 2385 { 2386 (HN_UBASE *)&secp521r1_fixed_points_2e_data[49], 2387 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2388 }, 2389 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2390 }, 2391 2392 /* 2^e * 26G */ 2393 { 2394 NX_CRYPTO_EC_POINT_AFFINE, 2395 { 2396 (HN_UBASE *)&secp521r1_fixed_points_2e_data[50], 2397 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2398 }, 2399 { 2400 (HN_UBASE *)&secp521r1_fixed_points_2e_data[51], 2401 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2402 }, 2403 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2404 }, 2405 2406 /* 2^e * 27G */ 2407 { 2408 NX_CRYPTO_EC_POINT_AFFINE, 2409 { 2410 (HN_UBASE *)&secp521r1_fixed_points_2e_data[52], 2411 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2412 }, 2413 { 2414 (HN_UBASE *)&secp521r1_fixed_points_2e_data[53], 2415 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2416 }, 2417 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2418 }, 2419 2420 /* 2^e * 28G */ 2421 { 2422 NX_CRYPTO_EC_POINT_AFFINE, 2423 { 2424 (HN_UBASE *)&secp521r1_fixed_points_2e_data[54], 2425 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2426 }, 2427 { 2428 (HN_UBASE *)&secp521r1_fixed_points_2e_data[55], 2429 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2430 }, 2431 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2432 }, 2433 2434 /* 2^e * 29G */ 2435 { 2436 NX_CRYPTO_EC_POINT_AFFINE, 2437 { 2438 (HN_UBASE *)&secp521r1_fixed_points_2e_data[56], 2439 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2440 }, 2441 { 2442 (HN_UBASE *)&secp521r1_fixed_points_2e_data[57], 2443 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2444 }, 2445 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2446 }, 2447 2448 /* 2^e * 30G */ 2449 { 2450 NX_CRYPTO_EC_POINT_AFFINE, 2451 { 2452 (HN_UBASE *)&secp521r1_fixed_points_2e_data[58], 2453 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2454 }, 2455 { 2456 (HN_UBASE *)&secp521r1_fixed_points_2e_data[59], 2457 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2458 }, 2459 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2460 }, 2461 2462 /* 2^e * 31G */ 2463 { 2464 NX_CRYPTO_EC_POINT_AFFINE, 2465 { 2466 (HN_UBASE *)&secp521r1_fixed_points_2e_data[60], 2467 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2468 }, 2469 { 2470 (HN_UBASE *)&secp521r1_fixed_points_2e_data[61], 2471 68 >> HN_SIZE_SHIFT, 68, (UINT)NX_CRYPTO_FALSE 2472 }, 2473 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2474 } 2475 }; 2476 2477 2478 NX_CRYPTO_CONST NX_CRYPTO_EC_FIXED_POINTS _nx_crypto_ec_secp521r1_fixed_points = 2479 { 2480 5u, 521u, 105u, 53u, 2481 (NX_CRYPTO_EC_POINT *)secp521r1_fixed_points_array, 2482 (NX_CRYPTO_EC_POINT *)secp521r1_fixed_points_2e_array 2483 }; 2484 2485