149 EXPECT_EQ(e.
lo.lo.data[0], UINT64_MAX);
150 EXPECT_EQ(e.
lo.lo.data[1], UINT64_MAX);
151 EXPECT_EQ(e.
lo.lo.data[2], UINT64_MAX);
152 EXPECT_EQ(e.
lo.lo.data[3], UINT64_MAX);
153 EXPECT_EQ(e.
lo.hi.data[0], UINT64_MAX);
154 EXPECT_EQ(e.
lo.hi.data[1], UINT64_MAX);
155 EXPECT_EQ(e.
lo.hi.data[2], UINT64_MAX);
156 EXPECT_EQ(e.
lo.hi.data[3], UINT64_MAX);
157 EXPECT_EQ(e.
hi.lo.data[0], UINT64_MAX);
158 EXPECT_EQ(e.
hi.lo.data[1], UINT64_MAX);
159 EXPECT_EQ(e.
hi.lo.data[2], UINT64_MAX);
160 EXPECT_EQ(e.
hi.lo.data[3], UINT64_MAX);
161 EXPECT_EQ(e.
hi.hi.data[0], UINT64_MAX);
162 EXPECT_EQ(e.
hi.hi.data[1], UINT64_MAX);
163 EXPECT_EQ(e.
hi.hi.data[2], UINT64_MAX);
164 EXPECT_EQ(e.
hi.hi.data[3], UINT64_MAX);
250 const std::array<uint8_t, 64> _a = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x0D, 0x6A, 0x2B, 0x19, 0x52,
251 0x2D, 0xF7, 0xAF, 0xC7, 0x95, 0x68, 0x22, 0xD7, 0xF2, 0x21, 0xA3, 0x00, 0x00,
252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
256 const std::array<uint8_t, 64> _b = { 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x5D, 0x32, 0xDA, 0x10,
257 0x4F, 0x1D, 0xD6, 0xCA, 0x50, 0x56, 0x11, 0x18, 0x18, 0xC2, 0xD4, 0x6C, 0x70,
258 0x60, 0xD9, 0xB8, 0xFA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
259 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
260 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF };
263 0x9F, 0x2F, 0xAA, 0x7B, 0xD7, 0x5A, 0x99, 0x56, 0x04, 0x68, 0x6C, 0x9D, 0xD8, 0x47, 0x6B, 0x52,
264 0xF0, 0x10, 0xD2, 0xA8, 0x62, 0x96, 0x60, 0x68, 0xBE, 0x18, 0x21, 0xA1, 0xCA, 0x6F, 0x41, 0x9C,
265 0x37, 0x42, 0x2F, 0xA3, 0x1B, 0x41, 0x7B, 0xAA, 0xEE, 0x6D, 0x9E, 0x03, 0x78, 0x71, 0xEF, 0xCF,
266 0x90, 0x85, 0xEF, 0x17, 0x59, 0xC4, 0xEE, 0x24, 0x80, 0xDE, 0x7A, 0x58, 0xA5, 0x42, 0x8F, 0x97,
269 std::array<uint8_t, 64> _res;
274 memcpy(
a.lo.data, &_a[0], 32);
275 memcpy(
a.hi.data, &_a[0] + 32, 32);
277 memcpy(
b.lo.data, &_b[0], 32);
278 memcpy(
b.hi.data, &_b[0] + 32, 32);
279 const auto res =
a.invmod(
b);
280 memcpy(&_res[0], res.lo.data, 32);
281 memcpy(&_res[0] + 32, res.hi.data, 32);