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 24 #include "nx_crypto_ec.h" 25 static NX_CRYPTO_CONST HN_UBASE secp384r1_fixed_points_data[][48 >> HN_SIZE_SHIFT] = 26 { 27 28 /* 2G.x */ 29 { 30 HN_ULONG_TO_UBASE(0x574A2D7A), HN_ULONG_TO_UBASE(0x214A5541), 31 HN_ULONG_TO_UBASE(0x0BAFF67E), HN_ULONG_TO_UBASE(0x8BB26B1F), 32 HN_ULONG_TO_UBASE(0x685CB49E), HN_ULONG_TO_UBASE(0xE8E8A314), 33 HN_ULONG_TO_UBASE(0x05F1DBE9), HN_ULONG_TO_UBASE(0x6AD56435), 34 HN_ULONG_TO_UBASE(0x415B4393), HN_ULONG_TO_UBASE(0xB2128765), 35 HN_ULONG_TO_UBASE(0xE52E83A1), HN_ULONG_TO_UBASE(0xFDFF5D78) 36 }, 37 38 /* 2G.y */ 39 { 40 HN_ULONG_TO_UBASE(0x978E2B11), HN_ULONG_TO_UBASE(0xE715E976), 41 HN_ULONG_TO_UBASE(0xD4D391B8), HN_ULONG_TO_UBASE(0xDCC72E10), 42 HN_ULONG_TO_UBASE(0xDD2D7EC4), HN_ULONG_TO_UBASE(0xEF01A9D8), 43 HN_ULONG_TO_UBASE(0x5963C951), HN_ULONG_TO_UBASE(0x00377F99), 44 HN_ULONG_TO_UBASE(0xF10B944A), HN_ULONG_TO_UBASE(0x13F5D41F), 45 HN_ULONG_TO_UBASE(0x7857AA4C), HN_ULONG_TO_UBASE(0x4DB0BC42) 46 }, 47 48 /* 3G.x */ 49 { 50 HN_ULONG_TO_UBASE(0x8E8CF6BD), HN_ULONG_TO_UBASE(0x4DF624DB), 51 HN_ULONG_TO_UBASE(0x8547E6B6), HN_ULONG_TO_UBASE(0x8244132B), 52 HN_ULONG_TO_UBASE(0xEAAC9420), HN_ULONG_TO_UBASE(0xA9D5E399), 53 HN_ULONG_TO_UBASE(0x21AD8066), HN_ULONG_TO_UBASE(0x0A9B91BD), 54 HN_ULONG_TO_UBASE(0x3EEE915B), HN_ULONG_TO_UBASE(0x492ECEBD), 55 HN_ULONG_TO_UBASE(0x0FDD804E), HN_ULONG_TO_UBASE(0x5E54D953) 56 }, 57 58 /* 3G.y */ 59 { 60 HN_ULONG_TO_UBASE(0xCC5A43B2), HN_ULONG_TO_UBASE(0x44288C00), 61 HN_ULONG_TO_UBASE(0x42727FD7), HN_ULONG_TO_UBASE(0xF66D7125), 62 HN_ULONG_TO_UBASE(0x89A66C33), HN_ULONG_TO_UBASE(0x6F98B352), 63 HN_ULONG_TO_UBASE(0x95821B09), HN_ULONG_TO_UBASE(0x5009A4B4), 64 HN_ULONG_TO_UBASE(0x0E8131D0), HN_ULONG_TO_UBASE(0xB5E534AC), 65 HN_ULONG_TO_UBASE(0x4BA24BC0), HN_ULONG_TO_UBASE(0x4A3D7763) 66 }, 67 68 /* 4G.x */ 69 { 70 HN_ULONG_TO_UBASE(0xE0BDE8C2), HN_ULONG_TO_UBASE(0xD490B021), 71 HN_ULONG_TO_UBASE(0xCA52B096), HN_ULONG_TO_UBASE(0x6CC28A6C), 72 HN_ULONG_TO_UBASE(0xC30BD659), HN_ULONG_TO_UBASE(0xCF1DF4FD), 73 HN_ULONG_TO_UBASE(0x50FEAF12), HN_ULONG_TO_UBASE(0x0E63F460), 74 HN_ULONG_TO_UBASE(0x7F52C6E5), HN_ULONG_TO_UBASE(0xCD958F85), 75 HN_ULONG_TO_UBASE(0x34CB8FA1), HN_ULONG_TO_UBASE(0x2913D4EB) 76 }, 77 78 /* 4G.y */ 79 { 80 HN_ULONG_TO_UBASE(0xB083DCB0), HN_ULONG_TO_UBASE(0xCBF987E9), 81 HN_ULONG_TO_UBASE(0xB1A874D8), HN_ULONG_TO_UBASE(0xB47F863A), 82 HN_ULONG_TO_UBASE(0xB3BB7DA7), HN_ULONG_TO_UBASE(0x2D48722E), 83 HN_ULONG_TO_UBASE(0x7603FD5F), HN_ULONG_TO_UBASE(0x27855D53), 84 HN_ULONG_TO_UBASE(0x7765A132), HN_ULONG_TO_UBASE(0xA5CCE5A0), 85 HN_ULONG_TO_UBASE(0x5A14FFB1), HN_ULONG_TO_UBASE(0x047B885F) 86 }, 87 88 /* 5G.x */ 89 { 90 HN_ULONG_TO_UBASE(0x931694D6), HN_ULONG_TO_UBASE(0x3311EC54), 91 HN_ULONG_TO_UBASE(0xD26C55B2), HN_ULONG_TO_UBASE(0x66004EC3), 92 HN_ULONG_TO_UBASE(0x1F2CCD66), HN_ULONG_TO_UBASE(0xD50A0AC4), 93 HN_ULONG_TO_UBASE(0x4B047385), HN_ULONG_TO_UBASE(0x274E6260), 94 HN_ULONG_TO_UBASE(0xB7FD6664), HN_ULONG_TO_UBASE(0xD96204E4), 95 HN_ULONG_TO_UBASE(0x6AA71294), HN_ULONG_TO_UBASE(0xD23B746B) 96 }, 97 98 /* 5G.y */ 99 { 100 HN_ULONG_TO_UBASE(0x46B64ADD), HN_ULONG_TO_UBASE(0x9A7231A7), 101 HN_ULONG_TO_UBASE(0xBE780847), HN_ULONG_TO_UBASE(0x47709B8E), 102 HN_ULONG_TO_UBASE(0xAA3AEC73), HN_ULONG_TO_UBASE(0xC5BE101D), 103 HN_ULONG_TO_UBASE(0xB89D3090), HN_ULONG_TO_UBASE(0x2786BD19), 104 HN_ULONG_TO_UBASE(0x09A71BA8), HN_ULONG_TO_UBASE(0x5F348F1D), 105 HN_ULONG_TO_UBASE(0x0169076A), HN_ULONG_TO_UBASE(0xE2F2CDA7) 106 }, 107 108 /* 6G.x */ 109 { 110 HN_ULONG_TO_UBASE(0x12D256E1), HN_ULONG_TO_UBASE(0x0DB699E4), 111 HN_ULONG_TO_UBASE(0xA526F3F5), HN_ULONG_TO_UBASE(0xCC589514), 112 HN_ULONG_TO_UBASE(0xB6F8C073), HN_ULONG_TO_UBASE(0xE7EA29A0), 113 HN_ULONG_TO_UBASE(0xADBA7324), HN_ULONG_TO_UBASE(0x50359755), 114 HN_ULONG_TO_UBASE(0xE672C579), HN_ULONG_TO_UBASE(0x0FD7FC38), 115 HN_ULONG_TO_UBASE(0xF5D93F24), HN_ULONG_TO_UBASE(0xE9FB6A4D) 116 }, 117 118 /* 6G.y */ 119 { 120 HN_ULONG_TO_UBASE(0x910A0FB5), HN_ULONG_TO_UBASE(0x9103B778), 121 HN_ULONG_TO_UBASE(0x1DE052BE), HN_ULONG_TO_UBASE(0x6E7107BD), 122 HN_ULONG_TO_UBASE(0xDBDBAE3D), HN_ULONG_TO_UBASE(0x6C24C094), 123 HN_ULONG_TO_UBASE(0x66F0CD5A), HN_ULONG_TO_UBASE(0x6F5424A9), 124 HN_ULONG_TO_UBASE(0xD171104B), HN_ULONG_TO_UBASE(0xEAB70FFA), 125 HN_ULONG_TO_UBASE(0xE51210F9), HN_ULONG_TO_UBASE(0x52AD7C38) 126 }, 127 128 /* 7G.x */ 129 { 130 HN_ULONG_TO_UBASE(0x1A465EE0), HN_ULONG_TO_UBASE(0x70CB8A4C), 131 HN_ULONG_TO_UBASE(0xF8EE3F37), HN_ULONG_TO_UBASE(0xF04BA246), 132 HN_ULONG_TO_UBASE(0xC81EE126), HN_ULONG_TO_UBASE(0xD6BEAEB6), 133 HN_ULONG_TO_UBASE(0xDC50393C), HN_ULONG_TO_UBASE(0x5FC113E8), 134 HN_ULONG_TO_UBASE(0xD094B6A7), HN_ULONG_TO_UBASE(0xD0472DD3), 135 HN_ULONG_TO_UBASE(0xDA1C1669), HN_ULONG_TO_UBASE(0xB769B0BE) 136 }, 137 138 /* 7G.y */ 139 { 140 HN_ULONG_TO_UBASE(0x4157BCA1), HN_ULONG_TO_UBASE(0x772481FA), 141 HN_ULONG_TO_UBASE(0x96BEEEC6), HN_ULONG_TO_UBASE(0xDE0AED5E), 142 HN_ULONG_TO_UBASE(0x284569C0), HN_ULONG_TO_UBASE(0xB9C04F16), 143 HN_ULONG_TO_UBASE(0x8B36D601), HN_ULONG_TO_UBASE(0xA2415911), 144 HN_ULONG_TO_UBASE(0xD415E1CA), HN_ULONG_TO_UBASE(0x81D51B7F), 145 HN_ULONG_TO_UBASE(0xEBAAD0A2), HN_ULONG_TO_UBASE(0x4FE542B9) 146 }, 147 148 /* 8G.x */ 149 { 150 HN_ULONG_TO_UBASE(0xA93C10A7), HN_ULONG_TO_UBASE(0xCB610182), 151 HN_ULONG_TO_UBASE(0x036AFB3B), HN_ULONG_TO_UBASE(0xBD5059C9), 152 HN_ULONG_TO_UBASE(0xFAAC375A), HN_ULONG_TO_UBASE(0xCB538303), 153 HN_ULONG_TO_UBASE(0xAC1B02F4), HN_ULONG_TO_UBASE(0xC35A94E6), 154 HN_ULONG_TO_UBASE(0x8AE7D58B), HN_ULONG_TO_UBASE(0x8B5D4209), 155 HN_ULONG_TO_UBASE(0x004241BD), HN_ULONG_TO_UBASE(0xA8EB2114) 156 }, 157 158 /* 8G.y */ 159 { 160 HN_ULONG_TO_UBASE(0x262FAC2C), HN_ULONG_TO_UBASE(0xAA3C554A), 161 HN_ULONG_TO_UBASE(0x31306B48), HN_ULONG_TO_UBASE(0xC6D2BCDF), 162 HN_ULONG_TO_UBASE(0xFAB6BE4D), HN_ULONG_TO_UBASE(0x0ADAE8A9), 163 HN_ULONG_TO_UBASE(0x0EA77D12), HN_ULONG_TO_UBASE(0x89B18AED), 164 HN_ULONG_TO_UBASE(0xA2675D24), HN_ULONG_TO_UBASE(0x2C4382FF), 165 HN_ULONG_TO_UBASE(0x105529BA), HN_ULONG_TO_UBASE(0xABB60CE6) 166 }, 167 168 /* 9G.x */ 169 { 170 HN_ULONG_TO_UBASE(0xEDF8C996), HN_ULONG_TO_UBASE(0x7FFAF718), 171 HN_ULONG_TO_UBASE(0xC58B999A), HN_ULONG_TO_UBASE(0x4EE49986), 172 HN_ULONG_TO_UBASE(0xBA5328E9), HN_ULONG_TO_UBASE(0x5FDC0C0F), 173 HN_ULONG_TO_UBASE(0x4DE7B0B3), HN_ULONG_TO_UBASE(0x22BB9F3B), 174 HN_ULONG_TO_UBASE(0x79A8B5AB), HN_ULONG_TO_UBASE(0x59BDB661), 175 HN_ULONG_TO_UBASE(0x5B46960B), HN_ULONG_TO_UBASE(0xA41CEB96) 176 }, 177 178 /* 9G.y */ 179 { 180 HN_ULONG_TO_UBASE(0x673F565B), HN_ULONG_TO_UBASE(0xF95FD896), 181 HN_ULONG_TO_UBASE(0x5546575D), HN_ULONG_TO_UBASE(0x1682F977), 182 HN_ULONG_TO_UBASE(0x725E981D), HN_ULONG_TO_UBASE(0x985159D4), 183 HN_ULONG_TO_UBASE(0x82EDFF44), HN_ULONG_TO_UBASE(0x2CFE484D), 184 HN_ULONG_TO_UBASE(0xE5EFAAD0), HN_ULONG_TO_UBASE(0x785CB625), 185 HN_ULONG_TO_UBASE(0x10E28346), HN_ULONG_TO_UBASE(0xC6E94CF8) 186 }, 187 188 /* 10G.x */ 189 { 190 HN_ULONG_TO_UBASE(0xE79FC953), HN_ULONG_TO_UBASE(0xCFA78FCC), 191 HN_ULONG_TO_UBASE(0x62A76A5B), HN_ULONG_TO_UBASE(0xD8503095), 192 HN_ULONG_TO_UBASE(0x4AB1FB6E), HN_ULONG_TO_UBASE(0xDF363E09), 193 HN_ULONG_TO_UBASE(0xA506B01A), HN_ULONG_TO_UBASE(0x907E97BA), 194 HN_ULONG_TO_UBASE(0xA15AF7C1), HN_ULONG_TO_UBASE(0x9BEFB795), 195 HN_ULONG_TO_UBASE(0xEAC69987), HN_ULONG_TO_UBASE(0xC7FA7869) 196 }, 197 198 /* 10G.y */ 199 { 200 HN_ULONG_TO_UBASE(0x1C404FE9), HN_ULONG_TO_UBASE(0xDE4D11B2), 201 HN_ULONG_TO_UBASE(0x2E6D0FB8), HN_ULONG_TO_UBASE(0xB0917D3B), 202 HN_ULONG_TO_UBASE(0xAEE80FB9), HN_ULONG_TO_UBASE(0xB37CC365), 203 HN_ULONG_TO_UBASE(0xF87F9262), HN_ULONG_TO_UBASE(0x306C8470), 204 HN_ULONG_TO_UBASE(0x43FC91F8), HN_ULONG_TO_UBASE(0x87519B7F), 205 HN_ULONG_TO_UBASE(0x0A61CDF5), HN_ULONG_TO_UBASE(0x9D434DBE) 206 }, 207 208 /* 11G.x */ 209 { 210 HN_ULONG_TO_UBASE(0xB33139E7), HN_ULONG_TO_UBASE(0x49BF609F), 211 HN_ULONG_TO_UBASE(0xAC820A90), HN_ULONG_TO_UBASE(0x60FD2CEB), 212 HN_ULONG_TO_UBASE(0x164A20F6), HN_ULONG_TO_UBASE(0xA1344AD0), 213 HN_ULONG_TO_UBASE(0xCED42AB2), HN_ULONG_TO_UBASE(0xC8A16564), 214 HN_ULONG_TO_UBASE(0x87F81DB5), HN_ULONG_TO_UBASE(0xC778EF62), 215 HN_ULONG_TO_UBASE(0xDA05DE0C), HN_ULONG_TO_UBASE(0x81C02C3E) 216 }, 217 218 /* 11G.y */ 219 { 220 HN_ULONG_TO_UBASE(0xC17D28B9), HN_ULONG_TO_UBASE(0x924D0E64), 221 HN_ULONG_TO_UBASE(0x90E31340), HN_ULONG_TO_UBASE(0x8BF310B1), 222 HN_ULONG_TO_UBASE(0xA9CE292C), HN_ULONG_TO_UBASE(0x9DDAD413), 223 HN_ULONG_TO_UBASE(0xC42F9A8E), HN_ULONG_TO_UBASE(0x46A2A12D), 224 HN_ULONG_TO_UBASE(0x69CB4B1D), HN_ULONG_TO_UBASE(0x0C345297), 225 HN_ULONG_TO_UBASE(0x4C3EF2D3), HN_ULONG_TO_UBASE(0x1CE0028A) 226 }, 227 228 /* 12G.x */ 229 { 230 HN_ULONG_TO_UBASE(0x4484249F), HN_ULONG_TO_UBASE(0x7B2EA237), 231 HN_ULONG_TO_UBASE(0xDE8D2145), HN_ULONG_TO_UBASE(0xCDC53530), 232 HN_ULONG_TO_UBASE(0x225A3DD1), HN_ULONG_TO_UBASE(0x8B6136DD), 233 HN_ULONG_TO_UBASE(0x53740EC9), HN_ULONG_TO_UBASE(0xB18E9E73), 234 HN_ULONG_TO_UBASE(0x5F27C64A), HN_ULONG_TO_UBASE(0x644E97B7), 235 HN_ULONG_TO_UBASE(0xA9CEA0C5), HN_ULONG_TO_UBASE(0xA7208E9D) 236 }, 237 238 /* 12G.y */ 239 { 240 HN_ULONG_TO_UBASE(0xA48B98EC), HN_ULONG_TO_UBASE(0x6BB544BD), 241 HN_ULONG_TO_UBASE(0x57C5F037), HN_ULONG_TO_UBASE(0x1DEBA7F3), 242 HN_ULONG_TO_UBASE(0x1F068FB5), HN_ULONG_TO_UBASE(0xBCC87131), 243 HN_ULONG_TO_UBASE(0x11CF7C4B), HN_ULONG_TO_UBASE(0xAE719373), 244 HN_ULONG_TO_UBASE(0x2CB2EC36), HN_ULONG_TO_UBASE(0x74A95C5B), 245 HN_ULONG_TO_UBASE(0x335D77B6), HN_ULONG_TO_UBASE(0x65BE9E50) 246 }, 247 248 /* 13G.x */ 249 { 250 HN_ULONG_TO_UBASE(0xB2319168), HN_ULONG_TO_UBASE(0xF9A6E7F2), 251 HN_ULONG_TO_UBASE(0x51D144A0), HN_ULONG_TO_UBASE(0xEDD5F953), 252 HN_ULONG_TO_UBASE(0xAD2AD161), HN_ULONG_TO_UBASE(0x7171C038), 253 HN_ULONG_TO_UBASE(0xF7215966), HN_ULONG_TO_UBASE(0x5C01A2BE), 254 HN_ULONG_TO_UBASE(0xB978FA06), HN_ULONG_TO_UBASE(0xF696C756), 255 HN_ULONG_TO_UBASE(0x6579D248), HN_ULONG_TO_UBASE(0x714398BB) 256 }, 257 258 /* 13G.y */ 259 { 260 HN_ULONG_TO_UBASE(0xAB1FB325), HN_ULONG_TO_UBASE(0x4ADE5706), 261 HN_ULONG_TO_UBASE(0xFF0C1846), HN_ULONG_TO_UBASE(0x818B42B4), 262 HN_ULONG_TO_UBASE(0xD6EE937E), HN_ULONG_TO_UBASE(0x7F0C9F34), 263 HN_ULONG_TO_UBASE(0x90CD7784), HN_ULONG_TO_UBASE(0x54AC28C5), 264 HN_ULONG_TO_UBASE(0xE17F0476), HN_ULONG_TO_UBASE(0x8701F645), 265 HN_ULONG_TO_UBASE(0xA4B5D7B8), HN_ULONG_TO_UBASE(0x6545AA51) 266 }, 267 268 /* 14G.x */ 269 { 270 HN_ULONG_TO_UBASE(0x775226D6), HN_ULONG_TO_UBASE(0x880F880F), 271 HN_ULONG_TO_UBASE(0x9CB06473), HN_ULONG_TO_UBASE(0xDF312F51), 272 HN_ULONG_TO_UBASE(0x4644DBC4), HN_ULONG_TO_UBASE(0xAAE46B81), 273 HN_ULONG_TO_UBASE(0x7654C263), HN_ULONG_TO_UBASE(0x40371DC1), 274 HN_ULONG_TO_UBASE(0xBEB9F7AF), HN_ULONG_TO_UBASE(0xC747F85F), 275 HN_ULONG_TO_UBASE(0xCC281C52), HN_ULONG_TO_UBASE(0xF4B35B77) 276 }, 277 278 /* 14G.y */ 279 { 280 HN_ULONG_TO_UBASE(0x8C15E275), HN_ULONG_TO_UBASE(0x28EC4AC0), 281 HN_ULONG_TO_UBASE(0xFBF5433B), HN_ULONG_TO_UBASE(0x51537CA3), 282 HN_ULONG_TO_UBASE(0xFD212D3F), HN_ULONG_TO_UBASE(0x28CF7BC3), 283 HN_ULONG_TO_UBASE(0xE1B6365E), HN_ULONG_TO_UBASE(0xD2D86E75), 284 HN_ULONG_TO_UBASE(0x120328CE), HN_ULONG_TO_UBASE(0x047BBCF0), 285 HN_ULONG_TO_UBASE(0xF07414D3), HN_ULONG_TO_UBASE(0x33E139EF) 286 }, 287 288 /* 15G.x */ 289 { 290 HN_ULONG_TO_UBASE(0xCB38E86D), HN_ULONG_TO_UBASE(0xE2A2F4FC), 291 HN_ULONG_TO_UBASE(0x5382ED59), HN_ULONG_TO_UBASE(0xCB5357BA), 292 HN_ULONG_TO_UBASE(0x1B5076C2), HN_ULONG_TO_UBASE(0x6BE08D5D), 293 HN_ULONG_TO_UBASE(0x4D83E11C), HN_ULONG_TO_UBASE(0xC62DF637), 294 HN_ULONG_TO_UBASE(0x60969A97), HN_ULONG_TO_UBASE(0xD6958C1E), 295 HN_ULONG_TO_UBASE(0x54DBFC48), HN_ULONG_TO_UBASE(0xA49B602C) 296 }, 297 298 /* 15G.y */ 299 { 300 HN_ULONG_TO_UBASE(0x51914BCA), HN_ULONG_TO_UBASE(0xFB97D2EE), 301 HN_ULONG_TO_UBASE(0xAA211719), HN_ULONG_TO_UBASE(0xB4BC64C9), 302 HN_ULONG_TO_UBASE(0x00644D20), HN_ULONG_TO_UBASE(0x0ADCD952), 303 HN_ULONG_TO_UBASE(0xA75F0046), HN_ULONG_TO_UBASE(0xB8E8CA59), 304 HN_ULONG_TO_UBASE(0x17A818F2), HN_ULONG_TO_UBASE(0x9F5E1FE2), 305 HN_ULONG_TO_UBASE(0xB5CF54D1), HN_ULONG_TO_UBASE(0x7E1D2F2E) 306 }, 307 308 /* 16G.x */ 309 { 310 HN_ULONG_TO_UBASE(0x31E76220), HN_ULONG_TO_UBASE(0x3992D2A1), 311 HN_ULONG_TO_UBASE(0xFF7003C6), HN_ULONG_TO_UBASE(0x7AD2A60B), 312 HN_ULONG_TO_UBASE(0x8F1546BE), HN_ULONG_TO_UBASE(0xDB6A4D39), 313 HN_ULONG_TO_UBASE(0xE8A1A2A3), HN_ULONG_TO_UBASE(0xB13228B1), 314 HN_ULONG_TO_UBASE(0x993D3A02), HN_ULONG_TO_UBASE(0x1470159C), 315 HN_ULONG_TO_UBASE(0x9E9BF4D9), HN_ULONG_TO_UBASE(0x5B4E8B1D) 316 }, 317 318 /* 16G.y */ 319 { 320 HN_ULONG_TO_UBASE(0x0CD001D1), HN_ULONG_TO_UBASE(0x6FCB85E9), 321 HN_ULONG_TO_UBASE(0x3DF1DFE2), HN_ULONG_TO_UBASE(0xE0781A9D), 322 HN_ULONG_TO_UBASE(0xC8A2265B), HN_ULONG_TO_UBASE(0xF650285A), 323 HN_ULONG_TO_UBASE(0x37A9B579), HN_ULONG_TO_UBASE(0x8727088A), 324 HN_ULONG_TO_UBASE(0x22C74609), HN_ULONG_TO_UBASE(0xBB844DF2), 325 HN_ULONG_TO_UBASE(0xD5476D33), HN_ULONG_TO_UBASE(0xC3742094) 326 }, 327 328 /* 17G.x */ 329 { 330 HN_ULONG_TO_UBASE(0x1E060165), HN_ULONG_TO_UBASE(0x79FE2465), 331 HN_ULONG_TO_UBASE(0xB6B90F17), HN_ULONG_TO_UBASE(0x5130BDE7), 332 HN_ULONG_TO_UBASE(0x853CB459), HN_ULONG_TO_UBASE(0xCE254CFD), 333 HN_ULONG_TO_UBASE(0xBA440754), HN_ULONG_TO_UBASE(0xA8782B8E), 334 HN_ULONG_TO_UBASE(0xDAF8AA6C), HN_ULONG_TO_UBASE(0x7D81F68F), 335 HN_ULONG_TO_UBASE(0x44B8BF68), HN_ULONG_TO_UBASE(0xAA0E19AA) 336 }, 337 338 /* 17G.y */ 339 { 340 HN_ULONG_TO_UBASE(0x2664A487), HN_ULONG_TO_UBASE(0x6E3EE96F), 341 HN_ULONG_TO_UBASE(0x4E9FEA80), HN_ULONG_TO_UBASE(0x8F1B7D25), 342 HN_ULONG_TO_UBASE(0x131C050D), HN_ULONG_TO_UBASE(0x7A282A2A), 343 HN_ULONG_TO_UBASE(0xCA81498E), HN_ULONG_TO_UBASE(0xD986B357), 344 HN_ULONG_TO_UBASE(0x154EC895), HN_ULONG_TO_UBASE(0xC4750753), 345 HN_ULONG_TO_UBASE(0xCB3C35A3), HN_ULONG_TO_UBASE(0x65DB0B8A) 346 }, 347 348 /* 18G.x */ 349 { 350 HN_ULONG_TO_UBASE(0xCE9499EB), HN_ULONG_TO_UBASE(0x4AC90B15), 351 HN_ULONG_TO_UBASE(0x91AEE266), HN_ULONG_TO_UBASE(0xBF5777FA), 352 HN_ULONG_TO_UBASE(0x4615CE5F), HN_ULONG_TO_UBASE(0xD87272F9), 353 HN_ULONG_TO_UBASE(0xFF3C56CE), HN_ULONG_TO_UBASE(0xB92110A3), 354 HN_ULONG_TO_UBASE(0xCCA3B289), HN_ULONG_TO_UBASE(0xB327638E), 355 HN_ULONG_TO_UBASE(0x3D0A9F44), HN_ULONG_TO_UBASE(0x396B35A9) 356 }, 357 358 /* 18G.y */ 359 { 360 HN_ULONG_TO_UBASE(0x8AD619EF), HN_ULONG_TO_UBASE(0x0DAD5514), 361 HN_ULONG_TO_UBASE(0x3F9AA00A), HN_ULONG_TO_UBASE(0x44242D55), 362 HN_ULONG_TO_UBASE(0xB843CDE9), HN_ULONG_TO_UBASE(0xD7E221ED), 363 HN_ULONG_TO_UBASE(0x071DDE46), HN_ULONG_TO_UBASE(0xA3C20977), 364 HN_ULONG_TO_UBASE(0xA5B4CD7A), HN_ULONG_TO_UBASE(0x16DD93B9), 365 HN_ULONG_TO_UBASE(0x021460CA), HN_ULONG_TO_UBASE(0xCCD5DF68) 366 }, 367 368 /* 19G.x */ 369 { 370 HN_ULONG_TO_UBASE(0x6A570F04), HN_ULONG_TO_UBASE(0x1D21128B), 371 HN_ULONG_TO_UBASE(0x394FE427), HN_ULONG_TO_UBASE(0xE917B31C), 372 HN_ULONG_TO_UBASE(0x6BA2D13C), HN_ULONG_TO_UBASE(0xC0FE28DE), 373 HN_ULONG_TO_UBASE(0x7F08EBA2), HN_ULONG_TO_UBASE(0x2D31795F), 374 HN_ULONG_TO_UBASE(0x88492CB7), HN_ULONG_TO_UBASE(0xDABB8957), 375 HN_ULONG_TO_UBASE(0xC82A64C1), HN_ULONG_TO_UBASE(0x5B6478B4) 376 }, 377 378 /* 19G.y */ 379 { 380 HN_ULONG_TO_UBASE(0xCD430E4C), HN_ULONG_TO_UBASE(0x5D14F518), 381 HN_ULONG_TO_UBASE(0x217D14F8), HN_ULONG_TO_UBASE(0x552992D1), 382 HN_ULONG_TO_UBASE(0x95033367), HN_ULONG_TO_UBASE(0xB38D3C11), 383 HN_ULONG_TO_UBASE(0xAE07E0E5), HN_ULONG_TO_UBASE(0xACBB2DDC), 384 HN_ULONG_TO_UBASE(0x7B50F818), HN_ULONG_TO_UBASE(0x7093124C), 385 HN_ULONG_TO_UBASE(0x7E9CC15B), HN_ULONG_TO_UBASE(0x0AE3337F) 386 }, 387 388 /* 20G.x */ 389 { 390 HN_ULONG_TO_UBASE(0x428E5500), HN_ULONG_TO_UBASE(0x505F49BA), 391 HN_ULONG_TO_UBASE(0x20E83E0D), HN_ULONG_TO_UBASE(0x4FEB246B), 392 HN_ULONG_TO_UBASE(0x7C632779), HN_ULONG_TO_UBASE(0x8D18AB7D), 393 HN_ULONG_TO_UBASE(0xD299BC0D), HN_ULONG_TO_UBASE(0xFB435379), 394 HN_ULONG_TO_UBASE(0x89E66C63), HN_ULONG_TO_UBASE(0xDEA8F23F), 395 HN_ULONG_TO_UBASE(0xD93C74A3), HN_ULONG_TO_UBASE(0xDD790987) 396 }, 397 398 /* 20G.y */ 399 { 400 HN_ULONG_TO_UBASE(0x4B79ADF6), HN_ULONG_TO_UBASE(0xA9AC8F10), 401 HN_ULONG_TO_UBASE(0x677F9849), HN_ULONG_TO_UBASE(0xFF4CAA4A), 402 HN_ULONG_TO_UBASE(0x80C84B38), HN_ULONG_TO_UBASE(0x4E1BB75C), 403 HN_ULONG_TO_UBASE(0x105393D3), HN_ULONG_TO_UBASE(0x52D2575D), 404 HN_ULONG_TO_UBASE(0x4569D2D3), HN_ULONG_TO_UBASE(0x4F465F5F), 405 HN_ULONG_TO_UBASE(0x41E36869), HN_ULONG_TO_UBASE(0xABAD1376) 406 }, 407 408 /* 21G.x */ 409 { 410 HN_ULONG_TO_UBASE(0xEB3F72ED), HN_ULONG_TO_UBASE(0xB8566746), 411 HN_ULONG_TO_UBASE(0x08E114AE), HN_ULONG_TO_UBASE(0x53316ED1), 412 HN_ULONG_TO_UBASE(0x91AEA8C6), HN_ULONG_TO_UBASE(0x45E5B481), 413 HN_ULONG_TO_UBASE(0x2857A9D5), HN_ULONG_TO_UBASE(0x73C30BF5), 414 HN_ULONG_TO_UBASE(0xFD1F7C82), HN_ULONG_TO_UBASE(0x26DB96AF), 415 HN_ULONG_TO_UBASE(0xDF1822B5), HN_ULONG_TO_UBASE(0x8C9010D0) 416 }, 417 418 /* 21G.y */ 419 { 420 HN_ULONG_TO_UBASE(0x20428D3D), HN_ULONG_TO_UBASE(0x246624AB), 421 HN_ULONG_TO_UBASE(0x6A02C7CD), HN_ULONG_TO_UBASE(0xA3A48C9F), 422 HN_ULONG_TO_UBASE(0x34CD1BDD), HN_ULONG_TO_UBASE(0x1298B738), 423 HN_ULONG_TO_UBASE(0x1B71B3BD), HN_ULONG_TO_UBASE(0x664833BC), 424 HN_ULONG_TO_UBASE(0x070A6E08), HN_ULONG_TO_UBASE(0xD9365CD7), 425 HN_ULONG_TO_UBASE(0xD610B66B), HN_ULONG_TO_UBASE(0xA44AD979) 426 }, 427 428 /* 22G.x */ 429 { 430 HN_ULONG_TO_UBASE(0xA6690FC0), HN_ULONG_TO_UBASE(0xCC174EB1), 431 HN_ULONG_TO_UBASE(0xC9196D36), HN_ULONG_TO_UBASE(0x5883B4BE), 432 HN_ULONG_TO_UBASE(0x4FF222D2), HN_ULONG_TO_UBASE(0x6507BBC3), 433 HN_ULONG_TO_UBASE(0x8506370B), HN_ULONG_TO_UBASE(0xF90DAD22), 434 HN_ULONG_TO_UBASE(0x235C94E5), HN_ULONG_TO_UBASE(0xD5B17CEC), 435 HN_ULONG_TO_UBASE(0x4F1D0704), HN_ULONG_TO_UBASE(0x15C31CD6) 436 }, 437 438 /* 22G.y */ 439 { 440 HN_ULONG_TO_UBASE(0x83692E96), HN_ULONG_TO_UBASE(0xA45E13E0), 441 HN_ULONG_TO_UBASE(0x23632198), HN_ULONG_TO_UBASE(0x30CA9241), 442 HN_ULONG_TO_UBASE(0x68C5D526), HN_ULONG_TO_UBASE(0xFB14B0B9), 443 HN_ULONG_TO_UBASE(0x53FF8F7F), HN_ULONG_TO_UBASE(0x1CB6AADE), 444 HN_ULONG_TO_UBASE(0x9277F031), HN_ULONG_TO_UBASE(0x64B1D3AA), 445 HN_ULONG_TO_UBASE(0xB57A14DD), HN_ULONG_TO_UBASE(0x92504AAD) 446 }, 447 448 /* 23G.x */ 449 { 450 HN_ULONG_TO_UBASE(0x6F824A23), HN_ULONG_TO_UBASE(0xA651A249), 451 HN_ULONG_TO_UBASE(0xBC1B0886), HN_ULONG_TO_UBASE(0xABA60A2B), 452 HN_ULONG_TO_UBASE(0x67E331A8), HN_ULONG_TO_UBASE(0xC632EF51), 453 HN_ULONG_TO_UBASE(0xD3432743), HN_ULONG_TO_UBASE(0x386CAB94), 454 HN_ULONG_TO_UBASE(0x24DBDACC), HN_ULONG_TO_UBASE(0x644657CD), 455 HN_ULONG_TO_UBASE(0xEA9D8EEB), HN_ULONG_TO_UBASE(0x79BAEFE3) 456 }, 457 458 /* 23G.y */ 459 { 460 HN_ULONG_TO_UBASE(0x7C0022A9), HN_ULONG_TO_UBASE(0xCE100B59), 461 HN_ULONG_TO_UBASE(0xB5552550), HN_ULONG_TO_UBASE(0xC72C67D5), 462 HN_ULONG_TO_UBASE(0xC625D47F), HN_ULONG_TO_UBASE(0xCC7C468D), 463 HN_ULONG_TO_UBASE(0x43B94872), HN_ULONG_TO_UBASE(0x54376AE2), 464 HN_ULONG_TO_UBASE(0xFD91B733), HN_ULONG_TO_UBASE(0x86116D31), 465 HN_ULONG_TO_UBASE(0xC07AB981), HN_ULONG_TO_UBASE(0xC33E942E) 466 }, 467 468 /* 24G.x */ 469 { 470 HN_ULONG_TO_UBASE(0xC1A90C5B), HN_ULONG_TO_UBASE(0x7E0181B9), 471 HN_ULONG_TO_UBASE(0xEF64936E), HN_ULONG_TO_UBASE(0x4B2E6511), 472 HN_ULONG_TO_UBASE(0xAA71BE85), HN_ULONG_TO_UBASE(0x9187E8D4), 473 HN_ULONG_TO_UBASE(0xB683D1DB), HN_ULONG_TO_UBASE(0x9F03A529), 474 HN_ULONG_TO_UBASE(0xE63B581E), HN_ULONG_TO_UBASE(0xE9825AAC), 475 HN_ULONG_TO_UBASE(0x4B8A03BA), HN_ULONG_TO_UBASE(0x05E6B0A8) 476 }, 477 478 /* 24G.y */ 479 { 480 HN_ULONG_TO_UBASE(0xF3938636), HN_ULONG_TO_UBASE(0x61907C78), 481 HN_ULONG_TO_UBASE(0x7CCADF9D), HN_ULONG_TO_UBASE(0x2DDA27D3), 482 HN_ULONG_TO_UBASE(0x9787C6AE), HN_ULONG_TO_UBASE(0x1E7B1E07), 483 HN_ULONG_TO_UBASE(0xA645CA8F), HN_ULONG_TO_UBASE(0x6E6A6097), 484 HN_ULONG_TO_UBASE(0x3B950770), HN_ULONG_TO_UBASE(0xA152690C), 485 HN_ULONG_TO_UBASE(0x80453061), HN_ULONG_TO_UBASE(0xCC813D19) 486 }, 487 488 /* 25G.x */ 489 { 490 HN_ULONG_TO_UBASE(0xDC9BB565), HN_ULONG_TO_UBASE(0x5026D3E0), 491 HN_ULONG_TO_UBASE(0xA41DAC8D), HN_ULONG_TO_UBASE(0x3A345564), 492 HN_ULONG_TO_UBASE(0xCF05440B), HN_ULONG_TO_UBASE(0x092B8073), 493 HN_ULONG_TO_UBASE(0xE7E95F9A), HN_ULONG_TO_UBASE(0xDE1F971D), 494 HN_ULONG_TO_UBASE(0xBCB04838), HN_ULONG_TO_UBASE(0x177D47C6), 495 HN_ULONG_TO_UBASE(0x37393D29), HN_ULONG_TO_UBASE(0xB2A0C449) 496 }, 497 498 /* 25G.y */ 499 { 500 HN_ULONG_TO_UBASE(0xE77340CD), HN_ULONG_TO_UBASE(0x00224C3D), 501 HN_ULONG_TO_UBASE(0x6A4E526E), HN_ULONG_TO_UBASE(0x31E37B98), 502 HN_ULONG_TO_UBASE(0xBC55A51B), HN_ULONG_TO_UBASE(0xEE98B785), 503 HN_ULONG_TO_UBASE(0x091BC664), HN_ULONG_TO_UBASE(0x4ED22126), 504 HN_ULONG_TO_UBASE(0x98C7090F), HN_ULONG_TO_UBASE(0x59C178BA), 505 HN_ULONG_TO_UBASE(0xA14CE4D5), HN_ULONG_TO_UBASE(0x597FC7F4) 506 }, 507 508 /* 26G.x */ 509 { 510 HN_ULONG_TO_UBASE(0xA623862F), HN_ULONG_TO_UBASE(0x0DE0AED2), 511 HN_ULONG_TO_UBASE(0x49106B56), HN_ULONG_TO_UBASE(0x9195ACAF), 512 HN_ULONG_TO_UBASE(0x939A89D1), HN_ULONG_TO_UBASE(0x8703E4AF), 513 HN_ULONG_TO_UBASE(0x2AF3BFB2), HN_ULONG_TO_UBASE(0xDA07A303), 514 HN_ULONG_TO_UBASE(0xEB51AB60), HN_ULONG_TO_UBASE(0x72817277), 515 HN_ULONG_TO_UBASE(0xFA0CB48F), HN_ULONG_TO_UBASE(0x5AEEDCB5) 516 }, 517 518 /* 26G.y */ 519 { 520 HN_ULONG_TO_UBASE(0x6A386DA2), HN_ULONG_TO_UBASE(0x43E24139), 521 HN_ULONG_TO_UBASE(0xA6284E47), HN_ULONG_TO_UBASE(0x09157D8F), 522 HN_ULONG_TO_UBASE(0xDCB7B7F6), HN_ULONG_TO_UBASE(0x10D3ABFF), 523 HN_ULONG_TO_UBASE(0xC4A4EF51), HN_ULONG_TO_UBASE(0x4FEC85D9), 524 HN_ULONG_TO_UBASE(0xE11640B5), HN_ULONG_TO_UBASE(0x6BEFAF87), 525 HN_ULONG_TO_UBASE(0x0AFBA91C), HN_ULONG_TO_UBASE(0xB05FF572) 526 }, 527 528 /* 27G.x */ 529 { 530 HN_ULONG_TO_UBASE(0xFEDF311D), HN_ULONG_TO_UBASE(0x00F305D9), 531 HN_ULONG_TO_UBASE(0x6082A9F9), HN_ULONG_TO_UBASE(0x2322592A), 532 HN_ULONG_TO_UBASE(0xDFC76F75), HN_ULONG_TO_UBASE(0xF1841C28), 533 HN_ULONG_TO_UBASE(0x10AF674E), HN_ULONG_TO_UBASE(0xF0714D17), 534 HN_ULONG_TO_UBASE(0xAF895173), HN_ULONG_TO_UBASE(0xCD871803), 535 HN_ULONG_TO_UBASE(0x94F5571C), HN_ULONG_TO_UBASE(0x110AB6A9) 536 }, 537 538 /* 27G.y */ 539 { 540 HN_ULONG_TO_UBASE(0x22D4D124), HN_ULONG_TO_UBASE(0x5AA3B421), 541 HN_ULONG_TO_UBASE(0xA2FE7A5F), HN_ULONG_TO_UBASE(0xCB6EB594), 542 HN_ULONG_TO_UBASE(0xB6B4AC39), HN_ULONG_TO_UBASE(0xBBE918BA), 543 HN_ULONG_TO_UBASE(0x3A31C961), HN_ULONG_TO_UBASE(0x19E5161E), 544 HN_ULONG_TO_UBASE(0x3FFFC9CD), HN_ULONG_TO_UBASE(0xC2A7A2CB), 545 HN_ULONG_TO_UBASE(0xC67BBAA3), HN_ULONG_TO_UBASE(0x1A0825B1) 546 }, 547 548 /* 28G.x */ 549 { 550 HN_ULONG_TO_UBASE(0xA02D4BB0), HN_ULONG_TO_UBASE(0x283C9073), 551 HN_ULONG_TO_UBASE(0xE05DA927), HN_ULONG_TO_UBASE(0x1C06EEBC), 552 HN_ULONG_TO_UBASE(0xA7CE557B), HN_ULONG_TO_UBASE(0xEE920D22), 553 HN_ULONG_TO_UBASE(0xF79AEC92), HN_ULONG_TO_UBASE(0xF137A49C), 554 HN_ULONG_TO_UBASE(0xF7E0C93D), HN_ULONG_TO_UBASE(0xAC949AA9), 555 HN_ULONG_TO_UBASE(0xD2E5D915), HN_ULONG_TO_UBASE(0x1D7481E4) 556 }, 557 558 /* 28G.y */ 559 { 560 HN_ULONG_TO_UBASE(0x5CBE77D3), HN_ULONG_TO_UBASE(0xAA5A8228), 561 HN_ULONG_TO_UBASE(0x128145FD), HN_ULONG_TO_UBASE(0x02459758), 562 HN_ULONG_TO_UBASE(0x1BDB11F5), HN_ULONG_TO_UBASE(0xF2096E10), 563 HN_ULONG_TO_UBASE(0xA5DC4090), HN_ULONG_TO_UBASE(0x2B4ECB07), 564 HN_ULONG_TO_UBASE(0x4C110C19), HN_ULONG_TO_UBASE(0xD335126C), 565 HN_ULONG_TO_UBASE(0x27EFAC4C), HN_ULONG_TO_UBASE(0xD1B5960E) 566 }, 567 568 /* 29G.x */ 569 { 570 HN_ULONG_TO_UBASE(0x77E930E1), HN_ULONG_TO_UBASE(0x3D4100E8), 571 HN_ULONG_TO_UBASE(0xADC4C838), HN_ULONG_TO_UBASE(0x0899BAAD), 572 HN_ULONG_TO_UBASE(0xF6B3097E), HN_ULONG_TO_UBASE(0x5B64899F), 573 HN_ULONG_TO_UBASE(0x2790439D), HN_ULONG_TO_UBASE(0x7C060A89), 574 HN_ULONG_TO_UBASE(0x513497C6), HN_ULONG_TO_UBASE(0x40AB25D0), 575 HN_ULONG_TO_UBASE(0x202D8833), HN_ULONG_TO_UBASE(0xDFA74FE2) 576 }, 577 578 /* 29G.y */ 579 { 580 HN_ULONG_TO_UBASE(0x2466F95B), HN_ULONG_TO_UBASE(0x689CCEC5), 581 HN_ULONG_TO_UBASE(0xE0B8E88E), HN_ULONG_TO_UBASE(0xE757107A), 582 HN_ULONG_TO_UBASE(0x56A78F16), HN_ULONG_TO_UBASE(0x38D0D513), 583 HN_ULONG_TO_UBASE(0x5DA9F7C2), HN_ULONG_TO_UBASE(0x47C8301C), 584 HN_ULONG_TO_UBASE(0x31956F2B), HN_ULONG_TO_UBASE(0xE8C55CC6), 585 HN_ULONG_TO_UBASE(0x0C8D4931), HN_ULONG_TO_UBASE(0x6DA590D6) 586 }, 587 588 /* 30G.x */ 589 { 590 HN_ULONG_TO_UBASE(0x374E2772), HN_ULONG_TO_UBASE(0xFFEFF253), 591 HN_ULONG_TO_UBASE(0x2AFEDDA2), HN_ULONG_TO_UBASE(0xC0132D35), 592 HN_ULONG_TO_UBASE(0x6C782F3C), HN_ULONG_TO_UBASE(0xC6211452), 593 HN_ULONG_TO_UBASE(0xC98A97E8), HN_ULONG_TO_UBASE(0x7D7F61CD), 594 HN_ULONG_TO_UBASE(0x74DB0E01), HN_ULONG_TO_UBASE(0xF0602625), 595 HN_ULONG_TO_UBASE(0x5D0D215D), HN_ULONG_TO_UBASE(0x36C1AC6A) 596 }, 597 598 /* 30G.y */ 599 { 600 HN_ULONG_TO_UBASE(0x59A579DE), HN_ULONG_TO_UBASE(0x88CBE3CF), 601 HN_ULONG_TO_UBASE(0xC2C17408), HN_ULONG_TO_UBASE(0x8DDEEC0B), 602 HN_ULONG_TO_UBASE(0x034D07D8), HN_ULONG_TO_UBASE(0x6D87FCED), 603 HN_ULONG_TO_UBASE(0x656A1F61), HN_ULONG_TO_UBASE(0x9066AFE4), 604 HN_ULONG_TO_UBASE(0xFBC82854), HN_ULONG_TO_UBASE(0x758AE55F), 605 HN_ULONG_TO_UBASE(0x0F73DFE9), HN_ULONG_TO_UBASE(0x0BC110FA) 606 }, 607 608 /* 31G.x */ 609 { 610 HN_ULONG_TO_UBASE(0x679A2ABA), HN_ULONG_TO_UBASE(0x96EDF50F), 611 HN_ULONG_TO_UBASE(0x7FA01880), HN_ULONG_TO_UBASE(0x31B92B91), 612 HN_ULONG_TO_UBASE(0x72495766), HN_ULONG_TO_UBASE(0xFDA047EB), 613 HN_ULONG_TO_UBASE(0xCB1299C9), HN_ULONG_TO_UBASE(0xE8C663C5), 614 HN_ULONG_TO_UBASE(0x91DBE668), HN_ULONG_TO_UBASE(0x15798146), 615 HN_ULONG_TO_UBASE(0x9DA9121C), HN_ULONG_TO_UBASE(0x25E209C5) 616 }, 617 618 /* 31G.y */ 619 { 620 HN_ULONG_TO_UBASE(0xF69B64DA), HN_ULONG_TO_UBASE(0x9AD033A2), 621 HN_ULONG_TO_UBASE(0xD82ADB97), HN_ULONG_TO_UBASE(0x6366E8F3), 622 HN_ULONG_TO_UBASE(0xE9103189), HN_ULONG_TO_UBASE(0x96052F28), 623 HN_ULONG_TO_UBASE(0x6E6CE744), HN_ULONG_TO_UBASE(0x6C279054), 624 HN_ULONG_TO_UBASE(0xFE5D6697), HN_ULONG_TO_UBASE(0xDA53B069), 625 HN_ULONG_TO_UBASE(0xDA09FB6A), HN_ULONG_TO_UBASE(0x553200B9) 626 } 627 }; 628 static NX_CRYPTO_CONST HN_UBASE secp384r1_fixed_points_2e_data[][48 >> HN_SIZE_SHIFT] = 629 { 630 631 /* 2^e * 1G.x */ 632 { 633 HN_ULONG_TO_UBASE(0xEE69FC0F), HN_ULONG_TO_UBASE(0xCBD89C74), 634 HN_ULONG_TO_UBASE(0x777BD97C), HN_ULONG_TO_UBASE(0xCEAA5177), 635 HN_ULONG_TO_UBASE(0x03955391), HN_ULONG_TO_UBASE(0xE113574A), 636 HN_ULONG_TO_UBASE(0x1B6FCF81), HN_ULONG_TO_UBASE(0x98BB969C), 637 HN_ULONG_TO_UBASE(0x64591D15), HN_ULONG_TO_UBASE(0xD1C6BCE5), 638 HN_ULONG_TO_UBASE(0xBA330842), HN_ULONG_TO_UBASE(0x1EC28025) 639 }, 640 641 /* 2^e * 1G.y */ 642 { 643 HN_ULONG_TO_UBASE(0x34829DC8), HN_ULONG_TO_UBASE(0xFD1E4B9E), 644 HN_ULONG_TO_UBASE(0x5B2AADDE), HN_ULONG_TO_UBASE(0x1B0007D1), 645 HN_ULONG_TO_UBASE(0x25ECF474), HN_ULONG_TO_UBASE(0x391DEE1C), 646 HN_ULONG_TO_UBASE(0x70BA0B4D), HN_ULONG_TO_UBASE(0xD41EE6EC), 647 HN_ULONG_TO_UBASE(0xA942B396), HN_ULONG_TO_UBASE(0xE3C9E311), 648 HN_ULONG_TO_UBASE(0xBA9A279C), HN_ULONG_TO_UBASE(0x7BBC02CD) 649 }, 650 651 /* 2^e * 2G.x */ 652 { 653 HN_ULONG_TO_UBASE(0x5CA8FAD8), HN_ULONG_TO_UBASE(0x8D12FE42), 654 HN_ULONG_TO_UBASE(0xD10970F6), HN_ULONG_TO_UBASE(0x0FBDF6B9), 655 HN_ULONG_TO_UBASE(0xC7D54F8E), HN_ULONG_TO_UBASE(0x3EFAC0DA), 656 HN_ULONG_TO_UBASE(0x081D4201), HN_ULONG_TO_UBASE(0x78D97625), 657 HN_ULONG_TO_UBASE(0xD3724AC0), HN_ULONG_TO_UBASE(0xADBE354F), 658 HN_ULONG_TO_UBASE(0xA1C855E6), HN_ULONG_TO_UBASE(0xC7706509) 659 }, 660 661 /* 2^e * 2G.y */ 662 { 663 HN_ULONG_TO_UBASE(0xDDEE3FA8), HN_ULONG_TO_UBASE(0x3E610D70), 664 HN_ULONG_TO_UBASE(0x828A967F), HN_ULONG_TO_UBASE(0xBF575954), 665 HN_ULONG_TO_UBASE(0xB53A955E), HN_ULONG_TO_UBASE(0x2AE095F6), 666 HN_ULONG_TO_UBASE(0x7B90D88C), HN_ULONG_TO_UBASE(0x56033472), 667 HN_ULONG_TO_UBASE(0x8DC0A40A), HN_ULONG_TO_UBASE(0x3C112381), 668 HN_ULONG_TO_UBASE(0xD5C067D3), HN_ULONG_TO_UBASE(0x4CFEC7CE) 669 }, 670 671 /* 2^e * 3G.x */ 672 { 673 HN_ULONG_TO_UBASE(0xAB06C50F), HN_ULONG_TO_UBASE(0x684BEF13), 674 HN_ULONG_TO_UBASE(0x0585A276), HN_ULONG_TO_UBASE(0x511B42EE), 675 HN_ULONG_TO_UBASE(0x22DD24D6), HN_ULONG_TO_UBASE(0xCA646B6D), 676 HN_ULONG_TO_UBASE(0x911A57E9), HN_ULONG_TO_UBASE(0xE7305483), 677 HN_ULONG_TO_UBASE(0xB5373F60), HN_ULONG_TO_UBASE(0x39E0E276), 678 HN_ULONG_TO_UBASE(0x17DE0D6D), HN_ULONG_TO_UBASE(0xF30CA26E) 679 }, 680 681 /* 2^e * 3G.y */ 682 { 683 HN_ULONG_TO_UBASE(0x7BC0CB4E), HN_ULONG_TO_UBASE(0xAA4C080E), 684 HN_ULONG_TO_UBASE(0xDB7A765E), HN_ULONG_TO_UBASE(0xE09FAEEB), 685 HN_ULONG_TO_UBASE(0xCCE5A22E), HN_ULONG_TO_UBASE(0x5C7BADB8), 686 HN_ULONG_TO_UBASE(0xCD6B386D), HN_ULONG_TO_UBASE(0x25D55ACC), 687 HN_ULONG_TO_UBASE(0xB5311A5D), HN_ULONG_TO_UBASE(0xE58F1A21), 688 HN_ULONG_TO_UBASE(0x3406917C), HN_ULONG_TO_UBASE(0x6F4D1442) 689 }, 690 691 /* 2^e * 4G.x */ 692 { 693 HN_ULONG_TO_UBASE(0x42167978), HN_ULONG_TO_UBASE(0x2488A5E2), 694 HN_ULONG_TO_UBASE(0x047CB677), HN_ULONG_TO_UBASE(0x21602406), 695 HN_ULONG_TO_UBASE(0x4B533913), HN_ULONG_TO_UBASE(0xBFD5AAD6), 696 HN_ULONG_TO_UBASE(0x0B6E7624), HN_ULONG_TO_UBASE(0x21511EC7), 697 HN_ULONG_TO_UBASE(0xAC359672), HN_ULONG_TO_UBASE(0xB38E9816), 698 HN_ULONG_TO_UBASE(0x58A9BDE3), HN_ULONG_TO_UBASE(0x9B793AF4) 699 }, 700 701 /* 2^e * 4G.y */ 702 { 703 HN_ULONG_TO_UBASE(0x44999A6D), HN_ULONG_TO_UBASE(0xA8448AF0), 704 HN_ULONG_TO_UBASE(0x1F1061FC), HN_ULONG_TO_UBASE(0xEFD02E82), 705 HN_ULONG_TO_UBASE(0xDE5F9256), HN_ULONG_TO_UBASE(0x2F04DD33), 706 HN_ULONG_TO_UBASE(0x7A770F81), HN_ULONG_TO_UBASE(0x822A5C68), 707 HN_ULONG_TO_UBASE(0x5DED11EF), HN_ULONG_TO_UBASE(0xB24C6DEA), 708 HN_ULONG_TO_UBASE(0xC0F02EB8), HN_ULONG_TO_UBASE(0xB4744F7D) 709 }, 710 711 /* 2^e * 5G.x */ 712 { 713 HN_ULONG_TO_UBASE(0x6E2CB973), HN_ULONG_TO_UBASE(0x2654F54E), 714 HN_ULONG_TO_UBASE(0x38A0A8D8), HN_ULONG_TO_UBASE(0xB05B48B3), 715 HN_ULONG_TO_UBASE(0x6A7E399A), HN_ULONG_TO_UBASE(0xDE415F78), 716 HN_ULONG_TO_UBASE(0x479B6AE3), HN_ULONG_TO_UBASE(0x92519281), 717 HN_ULONG_TO_UBASE(0x9F1F3538), HN_ULONG_TO_UBASE(0xC1C7BFDF), 718 HN_ULONG_TO_UBASE(0xC69C1384), HN_ULONG_TO_UBASE(0xB8BDB872) 719 }, 720 721 /* 2^e * 5G.y */ 722 { 723 HN_ULONG_TO_UBASE(0xDBF51071), HN_ULONG_TO_UBASE(0xB0378BB9), 724 HN_ULONG_TO_UBASE(0x9D5BCB4F), HN_ULONG_TO_UBASE(0x05630F8A), 725 HN_ULONG_TO_UBASE(0x28ED6EEF), HN_ULONG_TO_UBASE(0x9C84CB52), 726 HN_ULONG_TO_UBASE(0x3C9EDC19), HN_ULONG_TO_UBASE(0x2A55DDC3), 727 HN_ULONG_TO_UBASE(0x97139A26), HN_ULONG_TO_UBASE(0x6263DE6A), 728 HN_ULONG_TO_UBASE(0x92456DEF), HN_ULONG_TO_UBASE(0x60380E9C) 729 }, 730 731 /* 2^e * 6G.x */ 732 { 733 HN_ULONG_TO_UBASE(0x945C77EE), HN_ULONG_TO_UBASE(0x42BDB4E4), 734 HN_ULONG_TO_UBASE(0xF023E21E), HN_ULONG_TO_UBASE(0x7A225FDB), 735 HN_ULONG_TO_UBASE(0x80BDC638), HN_ULONG_TO_UBASE(0x14636D6F), 736 HN_ULONG_TO_UBASE(0x0C9CF3AF), HN_ULONG_TO_UBASE(0xEA97539D), 737 HN_ULONG_TO_UBASE(0xB1360638), HN_ULONG_TO_UBASE(0x998ABB8C), 738 HN_ULONG_TO_UBASE(0x43551856), HN_ULONG_TO_UBASE(0x8CBC90F9) 739 }, 740 741 /* 2^e * 6G.y */ 742 { 743 HN_ULONG_TO_UBASE(0x69CB4A12), HN_ULONG_TO_UBASE(0x5281BFA5), 744 HN_ULONG_TO_UBASE(0xEA8F2EF0), HN_ULONG_TO_UBASE(0x377B1AEE), 745 HN_ULONG_TO_UBASE(0x9EC8B98C), HN_ULONG_TO_UBASE(0x1C5A859F), 746 HN_ULONG_TO_UBASE(0xA0CBF4E4), HN_ULONG_TO_UBASE(0xEC6CED56), 747 HN_ULONG_TO_UBASE(0x93888DF3), HN_ULONG_TO_UBASE(0xA4D50AD8), 748 HN_ULONG_TO_UBASE(0x75FB0761), HN_ULONG_TO_UBASE(0x43C729D0) 749 }, 750 751 /* 2^e * 7G.x */ 752 { 753 HN_ULONG_TO_UBASE(0x6A1D3017), HN_ULONG_TO_UBASE(0x5730E0BE), 754 HN_ULONG_TO_UBASE(0x31A9D373), HN_ULONG_TO_UBASE(0xAD6B3AB6), 755 HN_ULONG_TO_UBASE(0xA56355D5), HN_ULONG_TO_UBASE(0x67FBFD5C), 756 HN_ULONG_TO_UBASE(0xAF532D26), HN_ULONG_TO_UBASE(0x4763B2B7), 757 HN_ULONG_TO_UBASE(0x39AC65D3), HN_ULONG_TO_UBASE(0x05683B6E), 758 HN_ULONG_TO_UBASE(0x1F39D0E5), HN_ULONG_TO_UBASE(0xD8AB073E) 759 }, 760 761 /* 2^e * 7G.y */ 762 { 763 HN_ULONG_TO_UBASE(0x5B79D3EA), HN_ULONG_TO_UBASE(0xF2B54247), 764 HN_ULONG_TO_UBASE(0x8ECB1473), HN_ULONG_TO_UBASE(0xD6C4FC35), 765 HN_ULONG_TO_UBASE(0x6417E5D9), HN_ULONG_TO_UBASE(0x45D01D0B), 766 HN_ULONG_TO_UBASE(0xA689C521), HN_ULONG_TO_UBASE(0x8C30A073), 767 HN_ULONG_TO_UBASE(0x84DD4B16), HN_ULONG_TO_UBASE(0xE8EB5DE5), 768 HN_ULONG_TO_UBASE(0x8EB3E9A1), HN_ULONG_TO_UBASE(0xDCF336FF) 769 }, 770 771 /* 2^e * 8G.x */ 772 { 773 HN_ULONG_TO_UBASE(0xA8EC4DCB), HN_ULONG_TO_UBASE(0x8FDD9E8B), 774 HN_ULONG_TO_UBASE(0x3E9D2CA5), HN_ULONG_TO_UBASE(0x8C7FAFBB), 775 HN_ULONG_TO_UBASE(0x986233DC), HN_ULONG_TO_UBASE(0xD902EB1F), 776 HN_ULONG_TO_UBASE(0x495E953C), HN_ULONG_TO_UBASE(0xD47D0FDA), 777 HN_ULONG_TO_UBASE(0x32E9F30E), HN_ULONG_TO_UBASE(0x000F2E0E), 778 HN_ULONG_TO_UBASE(0x226F1883), HN_ULONG_TO_UBASE(0x0B5DB75F) 779 }, 780 781 /* 2^e * 8G.y */ 782 { 783 HN_ULONG_TO_UBASE(0x9F67269C), HN_ULONG_TO_UBASE(0x7028CE81), 784 HN_ULONG_TO_UBASE(0x9C045825), HN_ULONG_TO_UBASE(0xC107538A), 785 HN_ULONG_TO_UBASE(0xEC52D696), HN_ULONG_TO_UBASE(0x526F582B), 786 HN_ULONG_TO_UBASE(0x35EF4550), HN_ULONG_TO_UBASE(0x99A7FE23), 787 HN_ULONG_TO_UBASE(0x4BB5AFFE), HN_ULONG_TO_UBASE(0xD036D89E), 788 HN_ULONG_TO_UBASE(0x8BC26250), HN_ULONG_TO_UBASE(0xE17B5092) 789 }, 790 791 /* 2^e * 9G.x */ 792 { 793 HN_ULONG_TO_UBASE(0x720498AD), HN_ULONG_TO_UBASE(0x79BC9288), 794 HN_ULONG_TO_UBASE(0x963268B3), HN_ULONG_TO_UBASE(0xB46D97C4), 795 HN_ULONG_TO_UBASE(0x3705CC63), HN_ULONG_TO_UBASE(0x83D6AEE2), 796 HN_ULONG_TO_UBASE(0xDC75844D), HN_ULONG_TO_UBASE(0x02EE09A7), 797 HN_ULONG_TO_UBASE(0xBCA498D6), HN_ULONG_TO_UBASE(0xFEDD7DFC), 798 HN_ULONG_TO_UBASE(0x4C28BF52), HN_ULONG_TO_UBASE(0x3CAC1535) 799 }, 800 801 /* 2^e * 9G.y */ 802 { 803 HN_ULONG_TO_UBASE(0xECC811C9), HN_ULONG_TO_UBASE(0x4759AB09), 804 HN_ULONG_TO_UBASE(0x339928CD), HN_ULONG_TO_UBASE(0x6C13E2D3), 805 HN_ULONG_TO_UBASE(0x52EE7B1A), HN_ULONG_TO_UBASE(0x6F1FB566), 806 HN_ULONG_TO_UBASE(0x7BE675CC), HN_ULONG_TO_UBASE(0x8ADF88A0), 807 HN_ULONG_TO_UBASE(0x33242235), HN_ULONG_TO_UBASE(0x6B4CF3A3), 808 HN_ULONG_TO_UBASE(0x5A92C402), HN_ULONG_TO_UBASE(0xC5B7009F) 809 }, 810 811 /* 2^e * 10G.x */ 812 { 813 HN_ULONG_TO_UBASE(0x996CD141), HN_ULONG_TO_UBASE(0x7B0EED0B), 814 HN_ULONG_TO_UBASE(0xAED7BF5F), HN_ULONG_TO_UBASE(0x0A9BB009), 815 HN_ULONG_TO_UBASE(0x16B3F8D5), HN_ULONG_TO_UBASE(0xA0D032D1), 816 HN_ULONG_TO_UBASE(0xA59A25EA), HN_ULONG_TO_UBASE(0x759FE004), 817 HN_ULONG_TO_UBASE(0xFE018B74), HN_ULONG_TO_UBASE(0x0496B4C9), 818 HN_ULONG_TO_UBASE(0x2368BE69), HN_ULONG_TO_UBASE(0xD803BA8A) 819 }, 820 821 /* 2^e * 10G.y */ 822 { 823 HN_ULONG_TO_UBASE(0xE2A6144F), HN_ULONG_TO_UBASE(0xF2302395), 824 HN_ULONG_TO_UBASE(0x96779630), HN_ULONG_TO_UBASE(0x8EB14103), 825 HN_ULONG_TO_UBASE(0x45C61AFD), HN_ULONG_TO_UBASE(0x1DB4AFE8), 826 HN_ULONG_TO_UBASE(0xE3D19276), HN_ULONG_TO_UBASE(0x396F33E4), 827 HN_ULONG_TO_UBASE(0x9E810A00), HN_ULONG_TO_UBASE(0x3707E506), 828 HN_ULONG_TO_UBASE(0xCF8E1C92), HN_ULONG_TO_UBASE(0x49DAE5B3) 829 }, 830 831 /* 2^e * 11G.x */ 832 { 833 HN_ULONG_TO_UBASE(0xC2BF6B77), HN_ULONG_TO_UBASE(0x12FB7EEE), 834 HN_ULONG_TO_UBASE(0x108568A2), HN_ULONG_TO_UBASE(0x1A71F797), 835 HN_ULONG_TO_UBASE(0x1A23CC1F), HN_ULONG_TO_UBASE(0x29677318), 836 HN_ULONG_TO_UBASE(0xA0845D27), HN_ULONG_TO_UBASE(0x5C7F10FD), 837 HN_ULONG_TO_UBASE(0x33979B89), HN_ULONG_TO_UBASE(0xF5C3C79E), 838 HN_ULONG_TO_UBASE(0x3BAB63ED), HN_ULONG_TO_UBASE(0xF75A53EF) 839 }, 840 841 /* 2^e * 11G.y */ 842 { 843 HN_ULONG_TO_UBASE(0xF3F0C08B), HN_ULONG_TO_UBASE(0x051A54FD), 844 HN_ULONG_TO_UBASE(0x91A70E2D), HN_ULONG_TO_UBASE(0xEE7E565D), 845 HN_ULONG_TO_UBASE(0x83DCCE34), HN_ULONG_TO_UBASE(0x290AD17C), 846 HN_ULONG_TO_UBASE(0xC8BDE478), HN_ULONG_TO_UBASE(0xAE573F1A), 847 HN_ULONG_TO_UBASE(0xD5F69236), HN_ULONG_TO_UBASE(0x2D75CE0A), 848 HN_ULONG_TO_UBASE(0xE1294F1C), HN_ULONG_TO_UBASE(0xB76D891E) 849 }, 850 851 /* 2^e * 12G.x */ 852 { 853 HN_ULONG_TO_UBASE(0xF32FB310), HN_ULONG_TO_UBASE(0xAE93A25A), 854 HN_ULONG_TO_UBASE(0xE6E47280), HN_ULONG_TO_UBASE(0x6D0CBD1F), 855 HN_ULONG_TO_UBASE(0x6C1BA226), HN_ULONG_TO_UBASE(0xA68C6214), 856 HN_ULONG_TO_UBASE(0x3EA4307E), HN_ULONG_TO_UBASE(0xCB06F445), 857 HN_ULONG_TO_UBASE(0x90B8B6BF), HN_ULONG_TO_UBASE(0xC2964BD1), 858 HN_ULONG_TO_UBASE(0xD788E64E), HN_ULONG_TO_UBASE(0x220E5B2E) 859 }, 860 861 /* 2^e * 12G.y */ 862 { 863 HN_ULONG_TO_UBASE(0x8C2738AA), HN_ULONG_TO_UBASE(0xF0CA4E90), 864 HN_ULONG_TO_UBASE(0xFB5BB075), HN_ULONG_TO_UBASE(0xCAD449F3), 865 HN_ULONG_TO_UBASE(0x7352836B), HN_ULONG_TO_UBASE(0xCA78A9BA), 866 HN_ULONG_TO_UBASE(0x5E3E1251), HN_ULONG_TO_UBASE(0x51DDE73C), 867 HN_ULONG_TO_UBASE(0x63B8C3F2), HN_ULONG_TO_UBASE(0xC8604CC4), 868 HN_ULONG_TO_UBASE(0x9802EF45), HN_ULONG_TO_UBASE(0xF3DB1991) 869 }, 870 871 /* 2^e * 13G.x */ 872 { 873 HN_ULONG_TO_UBASE(0x400DDFBF), HN_ULONG_TO_UBASE(0x81C539F3), 874 HN_ULONG_TO_UBASE(0xAF546DE4), HN_ULONG_TO_UBASE(0xAA31AD90), 875 HN_ULONG_TO_UBASE(0xDACD1FC3), HN_ULONG_TO_UBASE(0xACF6A5C4), 876 HN_ULONG_TO_UBASE(0x2E931CA5), HN_ULONG_TO_UBASE(0xEF870E03), 877 HN_ULONG_TO_UBASE(0xC3878346), HN_ULONG_TO_UBASE(0x47D59E06), 878 HN_ULONG_TO_UBASE(0x6966EBE3), HN_ULONG_TO_UBASE(0x3D7152F0) 879 }, 880 881 /* 2^e * 13G.y */ 882 { 883 HN_ULONG_TO_UBASE(0x18D57993), HN_ULONG_TO_UBASE(0x650F5A0A), 884 HN_ULONG_TO_UBASE(0x2FA7928F), HN_ULONG_TO_UBASE(0xD60D84E3), 885 HN_ULONG_TO_UBASE(0x78E647E1), HN_ULONG_TO_UBASE(0x4B6430F8), 886 HN_ULONG_TO_UBASE(0x6C0FB1BA), HN_ULONG_TO_UBASE(0x216BEE04), 887 HN_ULONG_TO_UBASE(0x243F664F), HN_ULONG_TO_UBASE(0xA6E898A8), 888 HN_ULONG_TO_UBASE(0x5DFA6541), HN_ULONG_TO_UBASE(0xADFB9337) 889 }, 890 891 /* 2^e * 14G.x */ 892 { 893 HN_ULONG_TO_UBASE(0x2AB7BAFC), HN_ULONG_TO_UBASE(0x6F8975D6), 894 HN_ULONG_TO_UBASE(0x1657725E), HN_ULONG_TO_UBASE(0x253F30A0), 895 HN_ULONG_TO_UBASE(0x9040E877), HN_ULONG_TO_UBASE(0xC352587E), 896 HN_ULONG_TO_UBASE(0x9F76979F), HN_ULONG_TO_UBASE(0x49323087), 897 HN_ULONG_TO_UBASE(0xC826135A), HN_ULONG_TO_UBASE(0xD1B7844B), 898 HN_ULONG_TO_UBASE(0x394F4DAD), HN_ULONG_TO_UBASE(0xC0C380F1) 899 }, 900 901 /* 2^e * 14G.y */ 902 { 903 HN_ULONG_TO_UBASE(0xDFF69F65), HN_ULONG_TO_UBASE(0xD3C69B8B), 904 HN_ULONG_TO_UBASE(0x38F9B216), HN_ULONG_TO_UBASE(0x9A647843), 905 HN_ULONG_TO_UBASE(0xBB476DB4), HN_ULONG_TO_UBASE(0x1FF27B96), 906 HN_ULONG_TO_UBASE(0xA34F8F45), HN_ULONG_TO_UBASE(0xAF6DF959), 907 HN_ULONG_TO_UBASE(0x10134D99), HN_ULONG_TO_UBASE(0x3ACBFCCE), 908 HN_ULONG_TO_UBASE(0x1EFD2039), HN_ULONG_TO_UBASE(0xCB8987EE) 909 }, 910 911 /* 2^e * 15G.x */ 912 { 913 HN_ULONG_TO_UBASE(0xFF6BBF81), HN_ULONG_TO_UBASE(0x076C157A), 914 HN_ULONG_TO_UBASE(0x4897A421), HN_ULONG_TO_UBASE(0x196BE03B), 915 HN_ULONG_TO_UBASE(0x76DAD52C), HN_ULONG_TO_UBASE(0xCAF25CA7), 916 HN_ULONG_TO_UBASE(0xB324D2C0), HN_ULONG_TO_UBASE(0x79F8B09B), 917 HN_ULONG_TO_UBASE(0xE3B929EB), HN_ULONG_TO_UBASE(0xE2989513), 918 HN_ULONG_TO_UBASE(0x62CF6433), HN_ULONG_TO_UBASE(0xDC6145F6) 919 }, 920 921 /* 2^e * 15G.y */ 922 { 923 HN_ULONG_TO_UBASE(0x18F5F266), HN_ULONG_TO_UBASE(0x4D338705), 924 HN_ULONG_TO_UBASE(0xAAA279F3), HN_ULONG_TO_UBASE(0x2AB679D7), 925 HN_ULONG_TO_UBASE(0x16F35C76), HN_ULONG_TO_UBASE(0x6D7F11D5), 926 HN_ULONG_TO_UBASE(0xAC9B005B), HN_ULONG_TO_UBASE(0x104DCC7F), 927 HN_ULONG_TO_UBASE(0x9FA79809), HN_ULONG_TO_UBASE(0x4131F098), 928 HN_ULONG_TO_UBASE(0x590FB907), HN_ULONG_TO_UBASE(0x2DA645E8) 929 }, 930 931 /* 2^e * 16G.x */ 932 { 933 HN_ULONG_TO_UBASE(0x7DE8FBC8), HN_ULONG_TO_UBASE(0x8C56016E), 934 HN_ULONG_TO_UBASE(0x109811E4), HN_ULONG_TO_UBASE(0x12F4B01D), 935 HN_ULONG_TO_UBASE(0x2E8E9787), HN_ULONG_TO_UBASE(0x5C1740FF), 936 HN_ULONG_TO_UBASE(0xFD1A9591), HN_ULONG_TO_UBASE(0x1EF71AAC), 937 HN_ULONG_TO_UBASE(0xD06BD8B5), HN_ULONG_TO_UBASE(0xBF0993F9), 938 HN_ULONG_TO_UBASE(0x64559C30), HN_ULONG_TO_UBASE(0x8F040E83) 939 }, 940 941 /* 2^e * 16G.y */ 942 { 943 HN_ULONG_TO_UBASE(0xB19DAAFD), HN_ULONG_TO_UBASE(0xF3CFF2FA), 944 HN_ULONG_TO_UBASE(0x7A74F7B4), HN_ULONG_TO_UBASE(0x6A2AB770), 945 HN_ULONG_TO_UBASE(0x7C73FE42), HN_ULONG_TO_UBASE(0x59F8ED55), 946 HN_ULONG_TO_UBASE(0xA1B176C4), HN_ULONG_TO_UBASE(0xC8EC72C9), 947 HN_ULONG_TO_UBASE(0x58904740), HN_ULONG_TO_UBASE(0xDE4FBA38), 948 HN_ULONG_TO_UBASE(0xBF8F9971), HN_ULONG_TO_UBASE(0xB4044B0C) 949 }, 950 951 /* 2^e * 17G.x */ 952 { 953 HN_ULONG_TO_UBASE(0x9D783476), HN_ULONG_TO_UBASE(0x04FF868C), 954 HN_ULONG_TO_UBASE(0x9A2BD397), HN_ULONG_TO_UBASE(0xD6847F7C), 955 HN_ULONG_TO_UBASE(0xB1D0DAE0), HN_ULONG_TO_UBASE(0xFA2FE102), 956 HN_ULONG_TO_UBASE(0xBCA32C6D), HN_ULONG_TO_UBASE(0xF257A5D1), 957 HN_ULONG_TO_UBASE(0x31CD5BB5), HN_ULONG_TO_UBASE(0xFF5FB245), 958 HN_ULONG_TO_UBASE(0x89EE180E), HN_ULONG_TO_UBASE(0x0BDC32FE) 959 }, 960 961 /* 2^e * 17G.y */ 962 { 963 HN_ULONG_TO_UBASE(0x1D5EE790), HN_ULONG_TO_UBASE(0x6B748C7B), 964 HN_ULONG_TO_UBASE(0xC2EE06C3), HN_ULONG_TO_UBASE(0xB5975608), 965 HN_ULONG_TO_UBASE(0xF8E08565), HN_ULONG_TO_UBASE(0x03D3CEC2), 966 HN_ULONG_TO_UBASE(0xC029274A), HN_ULONG_TO_UBASE(0x3C174FF4), 967 HN_ULONG_TO_UBASE(0x310CE0A9), HN_ULONG_TO_UBASE(0xE6EF58F5), 968 HN_ULONG_TO_UBASE(0x581EC828), HN_ULONG_TO_UBASE(0xDD5A6C7D) 969 }, 970 971 /* 2^e * 18G.x */ 972 { 973 HN_ULONG_TO_UBASE(0x3F29C6DA), HN_ULONG_TO_UBASE(0x91699928), 974 HN_ULONG_TO_UBASE(0xA27FA89B), HN_ULONG_TO_UBASE(0x6307CC33), 975 HN_ULONG_TO_UBASE(0x6F8E4D58), HN_ULONG_TO_UBASE(0x4961F6C1), 976 HN_ULONG_TO_UBASE(0xCCE0050E), HN_ULONG_TO_UBASE(0x6D769DBE), 977 HN_ULONG_TO_UBASE(0x4C77D1CF), HN_ULONG_TO_UBASE(0x235F1A63), 978 HN_ULONG_TO_UBASE(0x51CA6E0A), HN_ULONG_TO_UBASE(0xABCD2FF6) 979 }, 980 981 /* 2^e * 18G.y */ 982 { 983 HN_ULONG_TO_UBASE(0x0517D9FD), HN_ULONG_TO_UBASE(0x19B7C27A), 984 HN_ULONG_TO_UBASE(0x1E14A80E), HN_ULONG_TO_UBASE(0xAFC922EB), 985 HN_ULONG_TO_UBASE(0x7B486A4A), HN_ULONG_TO_UBASE(0xA4544CA6), 986 HN_ULONG_TO_UBASE(0x15117677), HN_ULONG_TO_UBASE(0x64B1D030), 987 HN_ULONG_TO_UBASE(0xE8860718), HN_ULONG_TO_UBASE(0x4A5354BD), 988 HN_ULONG_TO_UBASE(0x95F6AC77), HN_ULONG_TO_UBASE(0x63A83299) 989 }, 990 991 /* 2^e * 19G.x */ 992 { 993 HN_ULONG_TO_UBASE(0xB31B0A97), HN_ULONG_TO_UBASE(0xEA0E51B0), 994 HN_ULONG_TO_UBASE(0x6A15D6F4), HN_ULONG_TO_UBASE(0xB6B52443), 995 HN_ULONG_TO_UBASE(0x30C5E5D2), HN_ULONG_TO_UBASE(0xEE59B33D), 996 HN_ULONG_TO_UBASE(0x0AB60DCB), HN_ULONG_TO_UBASE(0x862AE200), 997 HN_ULONG_TO_UBASE(0xF83AE53A), HN_ULONG_TO_UBASE(0x2DFF95EE), 998 HN_ULONG_TO_UBASE(0xABAC2A31), HN_ULONG_TO_UBASE(0xDEE75AF8) 999 }, 1000 1001 /* 2^e * 19G.y */ 1002 { 1003 HN_ULONG_TO_UBASE(0xB3FE383A), HN_ULONG_TO_UBASE(0x4BDFE8E0), 1004 HN_ULONG_TO_UBASE(0x4154109D), HN_ULONG_TO_UBASE(0x8C95C6C4), 1005 HN_ULONG_TO_UBASE(0x6CF2E9A4), HN_ULONG_TO_UBASE(0xB886A668), 1006 HN_ULONG_TO_UBASE(0x9CC66DC0), HN_ULONG_TO_UBASE(0xCF2E1362), 1007 HN_ULONG_TO_UBASE(0x4B8EF1B8), HN_ULONG_TO_UBASE(0xBB665A34), 1008 HN_ULONG_TO_UBASE(0xA110EEDC), HN_ULONG_TO_UBASE(0x3985801B) 1009 }, 1010 1011 /* 2^e * 20G.x */ 1012 { 1013 HN_ULONG_TO_UBASE(0x7676635D), HN_ULONG_TO_UBASE(0xB5EAAD66), 1014 HN_ULONG_TO_UBASE(0x4B15B8A3), HN_ULONG_TO_UBASE(0xCE2AAE2B), 1015 HN_ULONG_TO_UBASE(0xBAE4F3C0), HN_ULONG_TO_UBASE(0x0DA04CBE), 1016 HN_ULONG_TO_UBASE(0xF81B1920), HN_ULONG_TO_UBASE(0x0763CCAA), 1017 HN_ULONG_TO_UBASE(0xE98897D5), HN_ULONG_TO_UBASE(0xC962D4F0), 1018 HN_ULONG_TO_UBASE(0x19FDAA33), HN_ULONG_TO_UBASE(0xB1354D28) 1019 }, 1020 1021 /* 2^e * 20G.y */ 1022 { 1023 HN_ULONG_TO_UBASE(0x655C2856), HN_ULONG_TO_UBASE(0x032431E6), 1024 HN_ULONG_TO_UBASE(0x667D4DE5), HN_ULONG_TO_UBASE(0xBE185E46), 1025 HN_ULONG_TO_UBASE(0xD961220E), HN_ULONG_TO_UBASE(0xE3FAB495), 1026 HN_ULONG_TO_UBASE(0x1132AA7A), HN_ULONG_TO_UBASE(0xCC1889B7), 1027 HN_ULONG_TO_UBASE(0xFA9ED4A2), HN_ULONG_TO_UBASE(0x13699414), 1028 HN_ULONG_TO_UBASE(0x9D9542D6), HN_ULONG_TO_UBASE(0x54A94741) 1029 }, 1030 1031 /* 2^e * 21G.x */ 1032 { 1033 HN_ULONG_TO_UBASE(0x01DDCB22), HN_ULONG_TO_UBASE(0xA6CBEE20), 1034 HN_ULONG_TO_UBASE(0xD172C1FA), HN_ULONG_TO_UBASE(0x4E514181), 1035 HN_ULONG_TO_UBASE(0x94A30E74), HN_ULONG_TO_UBASE(0xE96C0261), 1036 HN_ULONG_TO_UBASE(0x71DD3E3B), HN_ULONG_TO_UBASE(0x50A70687), 1037 HN_ULONG_TO_UBASE(0x48D71A28), HN_ULONG_TO_UBASE(0x97315C33), 1038 HN_ULONG_TO_UBASE(0x17B6D0A0), HN_ULONG_TO_UBASE(0x9DCDDB2A) 1039 }, 1040 1041 /* 2^e * 21G.y */ 1042 { 1043 HN_ULONG_TO_UBASE(0x0B489DA0), HN_ULONG_TO_UBASE(0xA8228D75), 1044 HN_ULONG_TO_UBASE(0xCA3528F9), HN_ULONG_TO_UBASE(0x7D762EB3), 1045 HN_ULONG_TO_UBASE(0x35BE5882), HN_ULONG_TO_UBASE(0x321499B4), 1046 HN_ULONG_TO_UBASE(0x590B4DEC), HN_ULONG_TO_UBASE(0x1C9287AC), 1047 HN_ULONG_TO_UBASE(0x7F251108), HN_ULONG_TO_UBASE(0x3E9ADC31), 1048 HN_ULONG_TO_UBASE(0xE916EEC7), HN_ULONG_TO_UBASE(0x2DCF7C91) 1049 }, 1050 1051 /* 2^e * 22G.x */ 1052 { 1053 HN_ULONG_TO_UBASE(0x80E88DDF), HN_ULONG_TO_UBASE(0x36A44B50), 1054 HN_ULONG_TO_UBASE(0x481B9AFD), HN_ULONG_TO_UBASE(0x1BD1C020), 1055 HN_ULONG_TO_UBASE(0x7A255175), HN_ULONG_TO_UBASE(0xCBF3BC20), 1056 HN_ULONG_TO_UBASE(0x7983D6B8), HN_ULONG_TO_UBASE(0x78D0E419), 1057 HN_ULONG_TO_UBASE(0xD30DF778), HN_ULONG_TO_UBASE(0x29D268FF), 1058 HN_ULONG_TO_UBASE(0xBEBF77CB), HN_ULONG_TO_UBASE(0x8DABAEE8) 1059 }, 1060 1061 /* 2^e * 22G.y */ 1062 { 1063 HN_ULONG_TO_UBASE(0xB7901C46), HN_ULONG_TO_UBASE(0xB5E736D2), 1064 HN_ULONG_TO_UBASE(0x30A0870A), HN_ULONG_TO_UBASE(0xFA4744B6), 1065 HN_ULONG_TO_UBASE(0xFDC9AD1B), HN_ULONG_TO_UBASE(0x938AED88), 1066 HN_ULONG_TO_UBASE(0x833D2D39), HN_ULONG_TO_UBASE(0xED2240D2), 1067 HN_ULONG_TO_UBASE(0x2CA846A5), HN_ULONG_TO_UBASE(0x516BEA26), 1068 HN_ULONG_TO_UBASE(0x35D43D9F), HN_ULONG_TO_UBASE(0x725F74E2) 1069 }, 1070 1071 /* 2^e * 23G.x */ 1072 { 1073 HN_ULONG_TO_UBASE(0x1FD171E3), HN_ULONG_TO_UBASE(0x4E74393D), 1074 HN_ULONG_TO_UBASE(0x47D2E77C), HN_ULONG_TO_UBASE(0x4CD9B12C), 1075 HN_ULONG_TO_UBASE(0xEF0D7390), HN_ULONG_TO_UBASE(0xC2D9684D), 1076 HN_ULONG_TO_UBASE(0x407D76F2), HN_ULONG_TO_UBASE(0x44EDBD18), 1077 HN_ULONG_TO_UBASE(0x5086202D), HN_ULONG_TO_UBASE(0x18FB339E), 1078 HN_ULONG_TO_UBASE(0x92AD71C1), HN_ULONG_TO_UBASE(0xA3D55B78) 1079 }, 1080 1081 /* 2^e * 23G.y */ 1082 { 1083 HN_ULONG_TO_UBASE(0xEC7856C9), HN_ULONG_TO_UBASE(0x477E73FC), 1084 HN_ULONG_TO_UBASE(0x8BAD1445), HN_ULONG_TO_UBASE(0xD675A733), 1085 HN_ULONG_TO_UBASE(0xE01B375D), HN_ULONG_TO_UBASE(0xB6B60D37), 1086 HN_ULONG_TO_UBASE(0x433B0AD0), HN_ULONG_TO_UBASE(0xB868E2D6), 1087 HN_ULONG_TO_UBASE(0x19174889), HN_ULONG_TO_UBASE(0x6D95BDB9), 1088 HN_ULONG_TO_UBASE(0xF49BE335), HN_ULONG_TO_UBASE(0xD86B9FB2) 1089 }, 1090 1091 /* 2^e * 24G.x */ 1092 { 1093 HN_ULONG_TO_UBASE(0xB29FCD8E), HN_ULONG_TO_UBASE(0x2BC2ED08), 1094 HN_ULONG_TO_UBASE(0x3B050AA0), HN_ULONG_TO_UBASE(0x0E051889), 1095 HN_ULONG_TO_UBASE(0x0C9E1B7D), HN_ULONG_TO_UBASE(0x16B3DE55), 1096 HN_ULONG_TO_UBASE(0x8AE2DC7A), HN_ULONG_TO_UBASE(0xB9D4C6FA), 1097 HN_ULONG_TO_UBASE(0xC9417C80), HN_ULONG_TO_UBASE(0xF9067836), 1098 HN_ULONG_TO_UBASE(0x60B951D6), HN_ULONG_TO_UBASE(0x7ADE26C9) 1099 }, 1100 1101 /* 2^e * 24G.y */ 1102 { 1103 HN_ULONG_TO_UBASE(0xF93A334E), HN_ULONG_TO_UBASE(0x8F9A62FD), 1104 HN_ULONG_TO_UBASE(0x7D0A4596), HN_ULONG_TO_UBASE(0x82A01186), 1105 HN_ULONG_TO_UBASE(0x56393DBB), HN_ULONG_TO_UBASE(0xB17FD21F), 1106 HN_ULONG_TO_UBASE(0x3867C182), HN_ULONG_TO_UBASE(0xECEFFA73), 1107 HN_ULONG_TO_UBASE(0xCC325FB4), HN_ULONG_TO_UBASE(0xB58C6EFD), 1108 HN_ULONG_TO_UBASE(0x51305B68), HN_ULONG_TO_UBASE(0x2762D890) 1109 }, 1110 1111 /* 2^e * 25G.x */ 1112 { 1113 HN_ULONG_TO_UBASE(0xD0BACDDF), HN_ULONG_TO_UBASE(0x5EC458D0), 1114 HN_ULONG_TO_UBASE(0x8B6C0C20), HN_ULONG_TO_UBASE(0x5F00DC55), 1115 HN_ULONG_TO_UBASE(0x61392B6A), HN_ULONG_TO_UBASE(0x5D0F4AAD), 1116 HN_ULONG_TO_UBASE(0x4B1B3EC0), HN_ULONG_TO_UBASE(0x83AECE93), 1117 HN_ULONG_TO_UBASE(0x6FF068ED), HN_ULONG_TO_UBASE(0x6467B444), 1118 HN_ULONG_TO_UBASE(0x860EFF5E), HN_ULONG_TO_UBASE(0x7DEB632F) 1119 }, 1120 1121 /* 2^e * 25G.y */ 1122 { 1123 HN_ULONG_TO_UBASE(0x01BC13A2), HN_ULONG_TO_UBASE(0x7F98C795), 1124 HN_ULONG_TO_UBASE(0x144654F6), HN_ULONG_TO_UBASE(0xA17A3AE0), 1125 HN_ULONG_TO_UBASE(0x1F338F77), HN_ULONG_TO_UBASE(0xFB37245A), 1126 HN_ULONG_TO_UBASE(0x02980347), HN_ULONG_TO_UBASE(0xD2B78CF7), 1127 HN_ULONG_TO_UBASE(0xBDC17EA4), HN_ULONG_TO_UBASE(0x2F290905), 1128 HN_ULONG_TO_UBASE(0x3C0FBD8B), HN_ULONG_TO_UBASE(0x50BCE7FD) 1129 }, 1130 1131 /* 2^e * 26G.x */ 1132 { 1133 HN_ULONG_TO_UBASE(0x2DE236DE), HN_ULONG_TO_UBASE(0x1468EECF), 1134 HN_ULONG_TO_UBASE(0x012467C8), HN_ULONG_TO_UBASE(0xF10BE7B5), 1135 HN_ULONG_TO_UBASE(0x9F35467C), HN_ULONG_TO_UBASE(0x9A099B7E), 1136 HN_ULONG_TO_UBASE(0xCF3D3593), HN_ULONG_TO_UBASE(0x77A6D7EE), 1137 HN_ULONG_TO_UBASE(0x9938334D), HN_ULONG_TO_UBASE(0xE12E223E), 1138 HN_ULONG_TO_UBASE(0x1111122A), HN_ULONG_TO_UBASE(0x612A9319) 1139 }, 1140 1141 /* 2^e * 26G.y */ 1142 { 1143 HN_ULONG_TO_UBASE(0xD9F39234), HN_ULONG_TO_UBASE(0xBB8EDE43), 1144 HN_ULONG_TO_UBASE(0x6B69E865), HN_ULONG_TO_UBASE(0xF47ECAA8), 1145 HN_ULONG_TO_UBASE(0xF2CC279F), HN_ULONG_TO_UBASE(0x309D4019), 1146 HN_ULONG_TO_UBASE(0xF92A1732), HN_ULONG_TO_UBASE(0xF04ED535), 1147 HN_ULONG_TO_UBASE(0x556B0C2F), HN_ULONG_TO_UBASE(0x41378845), 1148 HN_ULONG_TO_UBASE(0x343A850B), HN_ULONG_TO_UBASE(0xE478B07C) 1149 }, 1150 1151 /* 2^e * 27G.x */ 1152 { 1153 HN_ULONG_TO_UBASE(0x67040795), HN_ULONG_TO_UBASE(0x99BF7824), 1154 HN_ULONG_TO_UBASE(0xE0D09657), HN_ULONG_TO_UBASE(0xB3174F6D), 1155 HN_ULONG_TO_UBASE(0x9BD48F08), HN_ULONG_TO_UBASE(0x0AA62BCD), 1156 HN_ULONG_TO_UBASE(0x0080F1C3), HN_ULONG_TO_UBASE(0xE14CF302), 1157 HN_ULONG_TO_UBASE(0x1235280E), HN_ULONG_TO_UBASE(0x1C6733C1), 1158 HN_ULONG_TO_UBASE(0xB70F9435), HN_ULONG_TO_UBASE(0xCC2D0011) 1159 }, 1160 1161 /* 2^e * 27G.y */ 1162 { 1163 HN_ULONG_TO_UBASE(0x15384AC2), HN_ULONG_TO_UBASE(0xD269F1D1), 1164 HN_ULONG_TO_UBASE(0xD2B73477), HN_ULONG_TO_UBASE(0x9AD2E394), 1165 HN_ULONG_TO_UBASE(0xDD44D743), HN_ULONG_TO_UBASE(0x5FC362AE), 1166 HN_ULONG_TO_UBASE(0xB5DEA0B0), HN_ULONG_TO_UBASE(0xF0D7E109), 1167 HN_ULONG_TO_UBASE(0xCE689EC7), HN_ULONG_TO_UBASE(0xC9FC044C), 1168 HN_ULONG_TO_UBASE(0x1B791918), HN_ULONG_TO_UBASE(0x9B2A8EE4) 1169 }, 1170 1171 /* 2^e * 28G.x */ 1172 { 1173 HN_ULONG_TO_UBASE(0xA7F3896D), HN_ULONG_TO_UBASE(0xB4EB87E2), 1174 HN_ULONG_TO_UBASE(0xAD9B5B2C), HN_ULONG_TO_UBASE(0x36E99DDD), 1175 HN_ULONG_TO_UBASE(0xDFB6B879), HN_ULONG_TO_UBASE(0x94DB8243), 1176 HN_ULONG_TO_UBASE(0x8F5DE0A0), HN_ULONG_TO_UBASE(0x4F007E0D), 1177 HN_ULONG_TO_UBASE(0x159DE404), HN_ULONG_TO_UBASE(0x2181FD84), 1178 HN_ULONG_TO_UBASE(0xE9002836), HN_ULONG_TO_UBASE(0x7F799B46) 1179 }, 1180 1181 /* 2^e * 28G.y */ 1182 { 1183 HN_ULONG_TO_UBASE(0xEFBB502A), HN_ULONG_TO_UBASE(0x4EF02E02), 1184 HN_ULONG_TO_UBASE(0x01FD6807), HN_ULONG_TO_UBASE(0xAA8A2900), 1185 HN_ULONG_TO_UBASE(0x2B17884B), HN_ULONG_TO_UBASE(0xD5118793), 1186 HN_ULONG_TO_UBASE(0x4CE8660A), HN_ULONG_TO_UBASE(0x0BFA646A), 1187 HN_ULONG_TO_UBASE(0xF04CB9E8), HN_ULONG_TO_UBASE(0x9548772B), 1188 HN_ULONG_TO_UBASE(0x47ACA66F), HN_ULONG_TO_UBASE(0xAED85F62) 1189 }, 1190 1191 /* 2^e * 29G.x */ 1192 { 1193 HN_ULONG_TO_UBASE(0xEDCBB430), HN_ULONG_TO_UBASE(0x1CD6A960), 1194 HN_ULONG_TO_UBASE(0xCB37B09C), HN_ULONG_TO_UBASE(0xF3CC47D6), 1195 HN_ULONG_TO_UBASE(0x542C040B), HN_ULONG_TO_UBASE(0x227DAC36), 1196 HN_ULONG_TO_UBASE(0xE6338069), HN_ULONG_TO_UBASE(0x2B995E24), 1197 HN_ULONG_TO_UBASE(0xAF0D202D), HN_ULONG_TO_UBASE(0x7DBF5606), 1198 HN_ULONG_TO_UBASE(0xD464B0C1), HN_ULONG_TO_UBASE(0xFD6E2B95) 1199 }, 1200 1201 /* 2^e * 29G.y */ 1202 { 1203 HN_ULONG_TO_UBASE(0x0589B2B7), HN_ULONG_TO_UBASE(0x19D75625), 1204 HN_ULONG_TO_UBASE(0x1B7E0405), HN_ULONG_TO_UBASE(0xA88ECA19), 1205 HN_ULONG_TO_UBASE(0x5AA169B6), HN_ULONG_TO_UBASE(0x39409D88), 1206 HN_ULONG_TO_UBASE(0x370BCAD0), HN_ULONG_TO_UBASE(0xD266FC24), 1207 HN_ULONG_TO_UBASE(0x6E648420), HN_ULONG_TO_UBASE(0x96903090), 1208 HN_ULONG_TO_UBASE(0xDE5D854B), HN_ULONG_TO_UBASE(0xA02242F9) 1209 }, 1210 1211 /* 2^e * 30G.x */ 1212 { 1213 HN_ULONG_TO_UBASE(0x027E096E), HN_ULONG_TO_UBASE(0x8C9E8282), 1214 HN_ULONG_TO_UBASE(0x0B462AC5), HN_ULONG_TO_UBASE(0x052D0556), 1215 HN_ULONG_TO_UBASE(0xCECC307A), HN_ULONG_TO_UBASE(0x2CE9D135), 1216 HN_ULONG_TO_UBASE(0xB76CEDD3), HN_ULONG_TO_UBASE(0x25F6B914), 1217 HN_ULONG_TO_UBASE(0xD9259B0C), HN_ULONG_TO_UBASE(0xACC0839D), 1218 HN_ULONG_TO_UBASE(0x5652D512), HN_ULONG_TO_UBASE(0xAA8C8841) 1219 }, 1220 1221 /* 2^e * 30G.y */ 1222 { 1223 HN_ULONG_TO_UBASE(0xF8F0ECF7), HN_ULONG_TO_UBASE(0xAD043205), 1224 HN_ULONG_TO_UBASE(0x9594482F), HN_ULONG_TO_UBASE(0x81088B3C), 1225 HN_ULONG_TO_UBASE(0x5DE69DF0), HN_ULONG_TO_UBASE(0x9A27B905), 1226 HN_ULONG_TO_UBASE(0x0018C17B), HN_ULONG_TO_UBASE(0xC1576503), 1227 HN_ULONG_TO_UBASE(0x04511B87), HN_ULONG_TO_UBASE(0xAD25B6AB), 1228 HN_ULONG_TO_UBASE(0x8A92B28D), HN_ULONG_TO_UBASE(0xA5624218) 1229 }, 1230 1231 /* 2^e * 31G.x */ 1232 { 1233 HN_ULONG_TO_UBASE(0x448320B7), HN_ULONG_TO_UBASE(0xB0AA0B05), 1234 HN_ULONG_TO_UBASE(0x543BA441), HN_ULONG_TO_UBASE(0x3A5F5043), 1235 HN_ULONG_TO_UBASE(0x7047E54B), HN_ULONG_TO_UBASE(0xFACABDF4), 1236 HN_ULONG_TO_UBASE(0x5A1197AD), HN_ULONG_TO_UBASE(0x48DD13E1), 1237 HN_ULONG_TO_UBASE(0xFB00302E), HN_ULONG_TO_UBASE(0xDBB3B5C4), 1238 HN_ULONG_TO_UBASE(0x6E938D95), HN_ULONG_TO_UBASE(0x297E0535) 1239 }, 1240 1241 /* 2^e * 31G.y */ 1242 { 1243 HN_ULONG_TO_UBASE(0xEF8773AB), HN_ULONG_TO_UBASE(0x0B6C2CA0), 1244 HN_ULONG_TO_UBASE(0x71EA0C8E), HN_ULONG_TO_UBASE(0x6296D4D6), 1245 HN_ULONG_TO_UBASE(0x7E448A7A), HN_ULONG_TO_UBASE(0x49BD8645), 1246 HN_ULONG_TO_UBASE(0x61C7CCBF), HN_ULONG_TO_UBASE(0xF8D69BEB), 1247 HN_ULONG_TO_UBASE(0xC1E64156), HN_ULONG_TO_UBASE(0xE60FEADB), 1248 HN_ULONG_TO_UBASE(0x57BBD1CF), HN_ULONG_TO_UBASE(0x4CD395EE) 1249 } 1250 }; 1251 static NX_CRYPTO_CONST NX_CRYPTO_EC_POINT secp384r1_fixed_points_array[] = 1252 { 1253 1254 /* 2G */ 1255 { 1256 NX_CRYPTO_EC_POINT_AFFINE, 1257 { 1258 (HN_UBASE *)&secp384r1_fixed_points_data[0], 1259 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1260 }, 1261 { 1262 (HN_UBASE *)&secp384r1_fixed_points_data[1], 1263 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1264 }, 1265 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1266 }, 1267 1268 /* 3G */ 1269 { 1270 NX_CRYPTO_EC_POINT_AFFINE, 1271 { 1272 (HN_UBASE *)&secp384r1_fixed_points_data[2], 1273 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1274 }, 1275 { 1276 (HN_UBASE *)&secp384r1_fixed_points_data[3], 1277 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1278 }, 1279 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1280 }, 1281 1282 /* 4G */ 1283 { 1284 NX_CRYPTO_EC_POINT_AFFINE, 1285 { 1286 (HN_UBASE *)&secp384r1_fixed_points_data[4], 1287 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1288 }, 1289 { 1290 (HN_UBASE *)&secp384r1_fixed_points_data[5], 1291 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1292 }, 1293 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1294 }, 1295 1296 /* 5G */ 1297 { 1298 NX_CRYPTO_EC_POINT_AFFINE, 1299 { 1300 (HN_UBASE *)&secp384r1_fixed_points_data[6], 1301 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1302 }, 1303 { 1304 (HN_UBASE *)&secp384r1_fixed_points_data[7], 1305 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1306 }, 1307 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1308 }, 1309 1310 /* 6G */ 1311 { 1312 NX_CRYPTO_EC_POINT_AFFINE, 1313 { 1314 (HN_UBASE *)&secp384r1_fixed_points_data[8], 1315 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1316 }, 1317 { 1318 (HN_UBASE *)&secp384r1_fixed_points_data[9], 1319 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1320 }, 1321 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1322 }, 1323 1324 /* 7G */ 1325 { 1326 NX_CRYPTO_EC_POINT_AFFINE, 1327 { 1328 (HN_UBASE *)&secp384r1_fixed_points_data[10], 1329 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1330 }, 1331 { 1332 (HN_UBASE *)&secp384r1_fixed_points_data[11], 1333 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1334 }, 1335 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1336 }, 1337 1338 /* 8G */ 1339 { 1340 NX_CRYPTO_EC_POINT_AFFINE, 1341 { 1342 (HN_UBASE *)&secp384r1_fixed_points_data[12], 1343 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1344 }, 1345 { 1346 (HN_UBASE *)&secp384r1_fixed_points_data[13], 1347 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1348 }, 1349 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1350 }, 1351 1352 /* 9G */ 1353 { 1354 NX_CRYPTO_EC_POINT_AFFINE, 1355 { 1356 (HN_UBASE *)&secp384r1_fixed_points_data[14], 1357 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1358 }, 1359 { 1360 (HN_UBASE *)&secp384r1_fixed_points_data[15], 1361 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1362 }, 1363 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1364 }, 1365 1366 /* 10G */ 1367 { 1368 NX_CRYPTO_EC_POINT_AFFINE, 1369 { 1370 (HN_UBASE *)&secp384r1_fixed_points_data[16], 1371 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1372 }, 1373 { 1374 (HN_UBASE *)&secp384r1_fixed_points_data[17], 1375 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1376 }, 1377 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1378 }, 1379 1380 /* 11G */ 1381 { 1382 NX_CRYPTO_EC_POINT_AFFINE, 1383 { 1384 (HN_UBASE *)&secp384r1_fixed_points_data[18], 1385 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1386 }, 1387 { 1388 (HN_UBASE *)&secp384r1_fixed_points_data[19], 1389 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1390 }, 1391 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1392 }, 1393 1394 /* 12G */ 1395 { 1396 NX_CRYPTO_EC_POINT_AFFINE, 1397 { 1398 (HN_UBASE *)&secp384r1_fixed_points_data[20], 1399 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1400 }, 1401 { 1402 (HN_UBASE *)&secp384r1_fixed_points_data[21], 1403 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1404 }, 1405 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1406 }, 1407 1408 /* 13G */ 1409 { 1410 NX_CRYPTO_EC_POINT_AFFINE, 1411 { 1412 (HN_UBASE *)&secp384r1_fixed_points_data[22], 1413 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1414 }, 1415 { 1416 (HN_UBASE *)&secp384r1_fixed_points_data[23], 1417 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1418 }, 1419 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1420 }, 1421 1422 /* 14G */ 1423 { 1424 NX_CRYPTO_EC_POINT_AFFINE, 1425 { 1426 (HN_UBASE *)&secp384r1_fixed_points_data[24], 1427 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1428 }, 1429 { 1430 (HN_UBASE *)&secp384r1_fixed_points_data[25], 1431 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1432 }, 1433 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1434 }, 1435 1436 /* 15G */ 1437 { 1438 NX_CRYPTO_EC_POINT_AFFINE, 1439 { 1440 (HN_UBASE *)&secp384r1_fixed_points_data[26], 1441 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1442 }, 1443 { 1444 (HN_UBASE *)&secp384r1_fixed_points_data[27], 1445 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1446 }, 1447 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1448 }, 1449 1450 /* 16G */ 1451 { 1452 NX_CRYPTO_EC_POINT_AFFINE, 1453 { 1454 (HN_UBASE *)&secp384r1_fixed_points_data[28], 1455 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1456 }, 1457 { 1458 (HN_UBASE *)&secp384r1_fixed_points_data[29], 1459 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1460 }, 1461 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1462 }, 1463 1464 /* 17G */ 1465 { 1466 NX_CRYPTO_EC_POINT_AFFINE, 1467 { 1468 (HN_UBASE *)&secp384r1_fixed_points_data[30], 1469 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1470 }, 1471 { 1472 (HN_UBASE *)&secp384r1_fixed_points_data[31], 1473 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1474 }, 1475 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1476 }, 1477 1478 /* 18G */ 1479 { 1480 NX_CRYPTO_EC_POINT_AFFINE, 1481 { 1482 (HN_UBASE *)&secp384r1_fixed_points_data[32], 1483 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1484 }, 1485 { 1486 (HN_UBASE *)&secp384r1_fixed_points_data[33], 1487 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1488 }, 1489 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1490 }, 1491 1492 /* 19G */ 1493 { 1494 NX_CRYPTO_EC_POINT_AFFINE, 1495 { 1496 (HN_UBASE *)&secp384r1_fixed_points_data[34], 1497 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1498 }, 1499 { 1500 (HN_UBASE *)&secp384r1_fixed_points_data[35], 1501 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1502 }, 1503 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1504 }, 1505 1506 /* 20G */ 1507 { 1508 NX_CRYPTO_EC_POINT_AFFINE, 1509 { 1510 (HN_UBASE *)&secp384r1_fixed_points_data[36], 1511 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1512 }, 1513 { 1514 (HN_UBASE *)&secp384r1_fixed_points_data[37], 1515 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1516 }, 1517 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1518 }, 1519 1520 /* 21G */ 1521 { 1522 NX_CRYPTO_EC_POINT_AFFINE, 1523 { 1524 (HN_UBASE *)&secp384r1_fixed_points_data[38], 1525 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1526 }, 1527 { 1528 (HN_UBASE *)&secp384r1_fixed_points_data[39], 1529 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1530 }, 1531 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1532 }, 1533 1534 /* 22G */ 1535 { 1536 NX_CRYPTO_EC_POINT_AFFINE, 1537 { 1538 (HN_UBASE *)&secp384r1_fixed_points_data[40], 1539 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1540 }, 1541 { 1542 (HN_UBASE *)&secp384r1_fixed_points_data[41], 1543 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1544 }, 1545 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1546 }, 1547 1548 /* 23G */ 1549 { 1550 NX_CRYPTO_EC_POINT_AFFINE, 1551 { 1552 (HN_UBASE *)&secp384r1_fixed_points_data[42], 1553 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1554 }, 1555 { 1556 (HN_UBASE *)&secp384r1_fixed_points_data[43], 1557 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1558 }, 1559 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1560 }, 1561 1562 /* 24G */ 1563 { 1564 NX_CRYPTO_EC_POINT_AFFINE, 1565 { 1566 (HN_UBASE *)&secp384r1_fixed_points_data[44], 1567 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1568 }, 1569 { 1570 (HN_UBASE *)&secp384r1_fixed_points_data[45], 1571 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1572 }, 1573 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1574 }, 1575 1576 /* 25G */ 1577 { 1578 NX_CRYPTO_EC_POINT_AFFINE, 1579 { 1580 (HN_UBASE *)&secp384r1_fixed_points_data[46], 1581 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1582 }, 1583 { 1584 (HN_UBASE *)&secp384r1_fixed_points_data[47], 1585 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1586 }, 1587 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1588 }, 1589 1590 /* 26G */ 1591 { 1592 NX_CRYPTO_EC_POINT_AFFINE, 1593 { 1594 (HN_UBASE *)&secp384r1_fixed_points_data[48], 1595 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1596 }, 1597 { 1598 (HN_UBASE *)&secp384r1_fixed_points_data[49], 1599 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1600 }, 1601 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1602 }, 1603 1604 /* 27G */ 1605 { 1606 NX_CRYPTO_EC_POINT_AFFINE, 1607 { 1608 (HN_UBASE *)&secp384r1_fixed_points_data[50], 1609 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1610 }, 1611 { 1612 (HN_UBASE *)&secp384r1_fixed_points_data[51], 1613 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1614 }, 1615 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1616 }, 1617 1618 /* 28G */ 1619 { 1620 NX_CRYPTO_EC_POINT_AFFINE, 1621 { 1622 (HN_UBASE *)&secp384r1_fixed_points_data[52], 1623 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1624 }, 1625 { 1626 (HN_UBASE *)&secp384r1_fixed_points_data[53], 1627 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1628 }, 1629 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1630 }, 1631 1632 /* 29G */ 1633 { 1634 NX_CRYPTO_EC_POINT_AFFINE, 1635 { 1636 (HN_UBASE *)&secp384r1_fixed_points_data[54], 1637 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1638 }, 1639 { 1640 (HN_UBASE *)&secp384r1_fixed_points_data[55], 1641 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1642 }, 1643 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1644 }, 1645 1646 /* 30G */ 1647 { 1648 NX_CRYPTO_EC_POINT_AFFINE, 1649 { 1650 (HN_UBASE *)&secp384r1_fixed_points_data[56], 1651 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1652 }, 1653 { 1654 (HN_UBASE *)&secp384r1_fixed_points_data[57], 1655 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1656 }, 1657 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1658 }, 1659 1660 /* 31G */ 1661 { 1662 NX_CRYPTO_EC_POINT_AFFINE, 1663 { 1664 (HN_UBASE *)&secp384r1_fixed_points_data[58], 1665 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1666 }, 1667 { 1668 (HN_UBASE *)&secp384r1_fixed_points_data[59], 1669 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1670 }, 1671 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1672 } 1673 }; 1674 static NX_CRYPTO_CONST NX_CRYPTO_EC_POINT secp384r1_fixed_points_2e_array[] = 1675 { 1676 1677 /* 2^e * 1G */ 1678 { 1679 NX_CRYPTO_EC_POINT_AFFINE, 1680 { 1681 (HN_UBASE *)&secp384r1_fixed_points_2e_data[0], 1682 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1683 }, 1684 { 1685 (HN_UBASE *)&secp384r1_fixed_points_2e_data[1], 1686 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1687 }, 1688 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1689 }, 1690 1691 /* 2^e * 2G */ 1692 { 1693 NX_CRYPTO_EC_POINT_AFFINE, 1694 { 1695 (HN_UBASE *)&secp384r1_fixed_points_2e_data[2], 1696 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1697 }, 1698 { 1699 (HN_UBASE *)&secp384r1_fixed_points_2e_data[3], 1700 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1701 }, 1702 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1703 }, 1704 1705 /* 2^e * 3G */ 1706 { 1707 NX_CRYPTO_EC_POINT_AFFINE, 1708 { 1709 (HN_UBASE *)&secp384r1_fixed_points_2e_data[4], 1710 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1711 }, 1712 { 1713 (HN_UBASE *)&secp384r1_fixed_points_2e_data[5], 1714 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1715 }, 1716 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1717 }, 1718 1719 /* 2^e * 4G */ 1720 { 1721 NX_CRYPTO_EC_POINT_AFFINE, 1722 { 1723 (HN_UBASE *)&secp384r1_fixed_points_2e_data[6], 1724 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1725 }, 1726 { 1727 (HN_UBASE *)&secp384r1_fixed_points_2e_data[7], 1728 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1729 }, 1730 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1731 }, 1732 1733 /* 2^e * 5G */ 1734 { 1735 NX_CRYPTO_EC_POINT_AFFINE, 1736 { 1737 (HN_UBASE *)&secp384r1_fixed_points_2e_data[8], 1738 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1739 }, 1740 { 1741 (HN_UBASE *)&secp384r1_fixed_points_2e_data[9], 1742 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1743 }, 1744 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1745 }, 1746 1747 /* 2^e * 6G */ 1748 { 1749 NX_CRYPTO_EC_POINT_AFFINE, 1750 { 1751 (HN_UBASE *)&secp384r1_fixed_points_2e_data[10], 1752 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1753 }, 1754 { 1755 (HN_UBASE *)&secp384r1_fixed_points_2e_data[11], 1756 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1757 }, 1758 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1759 }, 1760 1761 /* 2^e * 7G */ 1762 { 1763 NX_CRYPTO_EC_POINT_AFFINE, 1764 { 1765 (HN_UBASE *)&secp384r1_fixed_points_2e_data[12], 1766 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1767 }, 1768 { 1769 (HN_UBASE *)&secp384r1_fixed_points_2e_data[13], 1770 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1771 }, 1772 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1773 }, 1774 1775 /* 2^e * 8G */ 1776 { 1777 NX_CRYPTO_EC_POINT_AFFINE, 1778 { 1779 (HN_UBASE *)&secp384r1_fixed_points_2e_data[14], 1780 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1781 }, 1782 { 1783 (HN_UBASE *)&secp384r1_fixed_points_2e_data[15], 1784 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1785 }, 1786 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1787 }, 1788 1789 /* 2^e * 9G */ 1790 { 1791 NX_CRYPTO_EC_POINT_AFFINE, 1792 { 1793 (HN_UBASE *)&secp384r1_fixed_points_2e_data[16], 1794 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1795 }, 1796 { 1797 (HN_UBASE *)&secp384r1_fixed_points_2e_data[17], 1798 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1799 }, 1800 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1801 }, 1802 1803 /* 2^e * 10G */ 1804 { 1805 NX_CRYPTO_EC_POINT_AFFINE, 1806 { 1807 (HN_UBASE *)&secp384r1_fixed_points_2e_data[18], 1808 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1809 }, 1810 { 1811 (HN_UBASE *)&secp384r1_fixed_points_2e_data[19], 1812 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1813 }, 1814 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1815 }, 1816 1817 /* 2^e * 11G */ 1818 { 1819 NX_CRYPTO_EC_POINT_AFFINE, 1820 { 1821 (HN_UBASE *)&secp384r1_fixed_points_2e_data[20], 1822 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1823 }, 1824 { 1825 (HN_UBASE *)&secp384r1_fixed_points_2e_data[21], 1826 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1827 }, 1828 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1829 }, 1830 1831 /* 2^e * 12G */ 1832 { 1833 NX_CRYPTO_EC_POINT_AFFINE, 1834 { 1835 (HN_UBASE *)&secp384r1_fixed_points_2e_data[22], 1836 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1837 }, 1838 { 1839 (HN_UBASE *)&secp384r1_fixed_points_2e_data[23], 1840 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1841 }, 1842 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1843 }, 1844 1845 /* 2^e * 13G */ 1846 { 1847 NX_CRYPTO_EC_POINT_AFFINE, 1848 { 1849 (HN_UBASE *)&secp384r1_fixed_points_2e_data[24], 1850 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1851 }, 1852 { 1853 (HN_UBASE *)&secp384r1_fixed_points_2e_data[25], 1854 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1855 }, 1856 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1857 }, 1858 1859 /* 2^e * 14G */ 1860 { 1861 NX_CRYPTO_EC_POINT_AFFINE, 1862 { 1863 (HN_UBASE *)&secp384r1_fixed_points_2e_data[26], 1864 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1865 }, 1866 { 1867 (HN_UBASE *)&secp384r1_fixed_points_2e_data[27], 1868 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1869 }, 1870 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1871 }, 1872 1873 /* 2^e * 15G */ 1874 { 1875 NX_CRYPTO_EC_POINT_AFFINE, 1876 { 1877 (HN_UBASE *)&secp384r1_fixed_points_2e_data[28], 1878 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1879 }, 1880 { 1881 (HN_UBASE *)&secp384r1_fixed_points_2e_data[29], 1882 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1883 }, 1884 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1885 }, 1886 1887 /* 2^e * 16G */ 1888 { 1889 NX_CRYPTO_EC_POINT_AFFINE, 1890 { 1891 (HN_UBASE *)&secp384r1_fixed_points_2e_data[30], 1892 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1893 }, 1894 { 1895 (HN_UBASE *)&secp384r1_fixed_points_2e_data[31], 1896 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1897 }, 1898 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1899 }, 1900 1901 /* 2^e * 17G */ 1902 { 1903 NX_CRYPTO_EC_POINT_AFFINE, 1904 { 1905 (HN_UBASE *)&secp384r1_fixed_points_2e_data[32], 1906 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1907 }, 1908 { 1909 (HN_UBASE *)&secp384r1_fixed_points_2e_data[33], 1910 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1911 }, 1912 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1913 }, 1914 1915 /* 2^e * 18G */ 1916 { 1917 NX_CRYPTO_EC_POINT_AFFINE, 1918 { 1919 (HN_UBASE *)&secp384r1_fixed_points_2e_data[34], 1920 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1921 }, 1922 { 1923 (HN_UBASE *)&secp384r1_fixed_points_2e_data[35], 1924 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1925 }, 1926 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1927 }, 1928 1929 /* 2^e * 19G */ 1930 { 1931 NX_CRYPTO_EC_POINT_AFFINE, 1932 { 1933 (HN_UBASE *)&secp384r1_fixed_points_2e_data[36], 1934 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1935 }, 1936 { 1937 (HN_UBASE *)&secp384r1_fixed_points_2e_data[37], 1938 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1939 }, 1940 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1941 }, 1942 1943 /* 2^e * 20G */ 1944 { 1945 NX_CRYPTO_EC_POINT_AFFINE, 1946 { 1947 (HN_UBASE *)&secp384r1_fixed_points_2e_data[38], 1948 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1949 }, 1950 { 1951 (HN_UBASE *)&secp384r1_fixed_points_2e_data[39], 1952 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1953 }, 1954 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1955 }, 1956 1957 /* 2^e * 21G */ 1958 { 1959 NX_CRYPTO_EC_POINT_AFFINE, 1960 { 1961 (HN_UBASE *)&secp384r1_fixed_points_2e_data[40], 1962 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1963 }, 1964 { 1965 (HN_UBASE *)&secp384r1_fixed_points_2e_data[41], 1966 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1967 }, 1968 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1969 }, 1970 1971 /* 2^e * 22G */ 1972 { 1973 NX_CRYPTO_EC_POINT_AFFINE, 1974 { 1975 (HN_UBASE *)&secp384r1_fixed_points_2e_data[42], 1976 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1977 }, 1978 { 1979 (HN_UBASE *)&secp384r1_fixed_points_2e_data[43], 1980 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1981 }, 1982 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1983 }, 1984 1985 /* 2^e * 23G */ 1986 { 1987 NX_CRYPTO_EC_POINT_AFFINE, 1988 { 1989 (HN_UBASE *)&secp384r1_fixed_points_2e_data[44], 1990 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1991 }, 1992 { 1993 (HN_UBASE *)&secp384r1_fixed_points_2e_data[45], 1994 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 1995 }, 1996 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 1997 }, 1998 1999 /* 2^e * 24G */ 2000 { 2001 NX_CRYPTO_EC_POINT_AFFINE, 2002 { 2003 (HN_UBASE *)&secp384r1_fixed_points_2e_data[46], 2004 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2005 }, 2006 { 2007 (HN_UBASE *)&secp384r1_fixed_points_2e_data[47], 2008 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2009 }, 2010 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2011 }, 2012 2013 /* 2^e * 25G */ 2014 { 2015 NX_CRYPTO_EC_POINT_AFFINE, 2016 { 2017 (HN_UBASE *)&secp384r1_fixed_points_2e_data[48], 2018 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2019 }, 2020 { 2021 (HN_UBASE *)&secp384r1_fixed_points_2e_data[49], 2022 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2023 }, 2024 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2025 }, 2026 2027 /* 2^e * 26G */ 2028 { 2029 NX_CRYPTO_EC_POINT_AFFINE, 2030 { 2031 (HN_UBASE *)&secp384r1_fixed_points_2e_data[50], 2032 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2033 }, 2034 { 2035 (HN_UBASE *)&secp384r1_fixed_points_2e_data[51], 2036 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2037 }, 2038 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2039 }, 2040 2041 /* 2^e * 27G */ 2042 { 2043 NX_CRYPTO_EC_POINT_AFFINE, 2044 { 2045 (HN_UBASE *)&secp384r1_fixed_points_2e_data[52], 2046 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2047 }, 2048 { 2049 (HN_UBASE *)&secp384r1_fixed_points_2e_data[53], 2050 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2051 }, 2052 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2053 }, 2054 2055 /* 2^e * 28G */ 2056 { 2057 NX_CRYPTO_EC_POINT_AFFINE, 2058 { 2059 (HN_UBASE *)&secp384r1_fixed_points_2e_data[54], 2060 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2061 }, 2062 { 2063 (HN_UBASE *)&secp384r1_fixed_points_2e_data[55], 2064 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2065 }, 2066 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2067 }, 2068 2069 /* 2^e * 29G */ 2070 { 2071 NX_CRYPTO_EC_POINT_AFFINE, 2072 { 2073 (HN_UBASE *)&secp384r1_fixed_points_2e_data[56], 2074 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2075 }, 2076 { 2077 (HN_UBASE *)&secp384r1_fixed_points_2e_data[57], 2078 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2079 }, 2080 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2081 }, 2082 2083 /* 2^e * 30G */ 2084 { 2085 NX_CRYPTO_EC_POINT_AFFINE, 2086 { 2087 (HN_UBASE *)&secp384r1_fixed_points_2e_data[58], 2088 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2089 }, 2090 { 2091 (HN_UBASE *)&secp384r1_fixed_points_2e_data[59], 2092 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2093 }, 2094 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2095 }, 2096 2097 /* 2^e * 31G */ 2098 { 2099 NX_CRYPTO_EC_POINT_AFFINE, 2100 { 2101 (HN_UBASE *)&secp384r1_fixed_points_2e_data[60], 2102 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2103 }, 2104 { 2105 (HN_UBASE *)&secp384r1_fixed_points_2e_data[61], 2106 48 >> HN_SIZE_SHIFT, 48, (UINT)NX_CRYPTO_FALSE 2107 }, 2108 {(HN_UBASE *)NX_CRYPTO_NULL, 0u, 0u, 0u} 2109 } 2110 }; 2111 2112 2113 NX_CRYPTO_CONST NX_CRYPTO_EC_FIXED_POINTS _nx_crypto_ec_secp384r1_fixed_points = 2114 { 2115 5u, 384u, 77u, 39u, 2116 (NX_CRYPTO_EC_POINT *)secp384r1_fixed_points_array, 2117 (NX_CRYPTO_EC_POINT *)secp384r1_fixed_points_2e_array 2118 }; 2119 2120