157 EXPECT_EQ(e.
lo.lo.data[0], UINT64_MAX);
158 EXPECT_EQ(e.
lo.lo.data[1], UINT64_MAX);
159 EXPECT_EQ(e.
lo.lo.data[2], UINT64_MAX);
160 EXPECT_EQ(e.
lo.lo.data[3], UINT64_MAX);
161 EXPECT_EQ(e.
lo.hi.data[0], UINT64_MAX);
162 EXPECT_EQ(e.
lo.hi.data[1], UINT64_MAX);
163 EXPECT_EQ(e.
lo.hi.data[2], UINT64_MAX);
164 EXPECT_EQ(e.
lo.hi.data[3], UINT64_MAX);
165 EXPECT_EQ(e.
hi.lo.data[0], UINT64_MAX);
166 EXPECT_EQ(e.
hi.lo.data[1], UINT64_MAX);
167 EXPECT_EQ(e.
hi.lo.data[2], UINT64_MAX);
168 EXPECT_EQ(e.
hi.lo.data[3], UINT64_MAX);
169 EXPECT_EQ(e.
hi.hi.data[0], UINT64_MAX);
170 EXPECT_EQ(e.
hi.hi.data[1], UINT64_MAX);
171 EXPECT_EQ(e.
hi.hi.data[2], UINT64_MAX);
172 EXPECT_EQ(e.
hi.hi.data[3], UINT64_MAX);
258 const std::array<uint8_t, 64> _a = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x0D, 0x6A, 0x2B, 0x19, 0x52,
259 0x2D, 0xF7, 0xAF, 0xC7, 0x95, 0x68, 0x22, 0xD7, 0xF2, 0x21, 0xA3, 0x00, 0x00,
260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
264 const std::array<uint8_t, 64> _b = { 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x5D, 0x32, 0xDA, 0x10,
265 0x4F, 0x1D, 0xD6, 0xCA, 0x50, 0x56, 0x11, 0x18, 0x18, 0xC2, 0xD4, 0x6C, 0x70,
266 0x60, 0xD9, 0xB8, 0xFA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
268 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF };
271 0x9F, 0x2F, 0xAA, 0x7B, 0xD7, 0x5A, 0x99, 0x56, 0x04, 0x68, 0x6C, 0x9D, 0xD8, 0x47, 0x6B, 0x52,
272 0xF0, 0x10, 0xD2, 0xA8, 0x62, 0x96, 0x60, 0x68, 0xBE, 0x18, 0x21, 0xA1, 0xCA, 0x6F, 0x41, 0x9C,
273 0x37, 0x42, 0x2F, 0xA3, 0x1B, 0x41, 0x7B, 0xAA, 0xEE, 0x6D, 0x9E, 0x03, 0x78, 0x71, 0xEF, 0xCF,
274 0x90, 0x85, 0xEF, 0x17, 0x59, 0xC4, 0xEE, 0x24, 0x80, 0xDE, 0x7A, 0x58, 0xA5, 0x42, 0x8F, 0x97,
277 std::array<uint8_t, 64> _res;
282 memcpy(
a.lo.
data, &_a[0], 32);
283 memcpy(
a.hi.
data, &_a[0] + 32, 32);
285 memcpy(
b.lo.
data, &_b[0], 32);
286 memcpy(
b.hi.
data, &_b[0] + 32, 32);
287 const auto res =
a.invmod(
b);
288 memcpy(&_res[0], res.lo.data, 32);
289 memcpy(&_res[0] + 32, res.hi.data, 32);