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