| # Negation tests. |
| # |
| # The following tests satisfy A = -B (mod P). |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000000000 |
| B = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000000001 |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000000003 |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffffffc |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000000007 |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffffff8 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000000000f |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffffff0 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000000001f |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffffffe0 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000000003f |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffffffc0 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000000007f |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffffff80 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000000000ff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffffff00 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000000001ff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffffe00 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000000003ff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffffc00 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000000007ff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffff800 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000000fff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffff000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000001fff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffffe000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000003fff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffffc000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000007fff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffff8000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000000ffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffff0000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000001ffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffe0000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000003ffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffffc0000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000007ffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffff80000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000000fffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffff00000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000001fffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffe00000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000003fffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffffc00000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000007fffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffff800000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000000ffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffff000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000001ffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffe000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000003ffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffffc000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000007ffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffff8000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000000fffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffff0000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000001fffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffe0000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000003fffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffffc0000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000007fffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffff80000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000000ffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffff00000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000001ffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffe00000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000003ffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffffc00000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000007ffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffff800000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000000fffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffff000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000001fffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffe000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000003fffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffffc000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000007fffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffff8000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000000ffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffff0000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000001ffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffe0000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000003ffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffffc0000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000007ffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffff80000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000000fffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffff00000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000001fffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffe00000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000003fffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffffc00000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000007fffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffff800000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000000ffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffff000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000001ffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffe000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000003ffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffffc000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000007ffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffff8000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000000fffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffff0000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000001fffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffe0000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000003fffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffffc0000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000007fffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffff80000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000000ffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffff00000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000001ffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffe00000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000003ffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffffc00000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000007ffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffff800000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000000fffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffff000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000001fffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffe000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000003fffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffffc000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000007fffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffff8000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000000ffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffff0000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000001ffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffe0000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000003ffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffffc0000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000007ffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffff80000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000000fffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffff00000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000001fffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffe00000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000003fffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffffc00000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000007fffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffff800000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000000ffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffff000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000001ffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffe000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000003ffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffffc000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000007ffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffff8000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000000fffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffff0000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000001fffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffe0000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000003fffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffffc0000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000007fffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffff80000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000000ffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffff00000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000001ffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffe00000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000003ffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fffc00000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000007ffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fff800000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000000fffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fff000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000001fffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffe000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000003fffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ffc000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000007fffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ff8000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000000ffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000ff0000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000001ffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fe0000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000003ffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000fc0000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000007ffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000f80000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000000fffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000f00000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000001fffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000e00000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000003fffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000c00000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000007fffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000800000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000000ffffffffffffffffffffffff |
| B = ffffffff00000001000000000000000000000000000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000001ffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffffff000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000003ffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffffffd000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000007ffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffffff9000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000000fffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffffff1000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000001fffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffffe1000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000003fffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffffc1000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000007fffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffff81000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000000ffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffff01000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000001ffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffffe01000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000003ffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffffc01000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000007ffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffff801000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000000fffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffff001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000001fffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffe001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000003fffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffffc001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000007fffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffff8001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000000ffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffff0001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000001ffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffe0001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000003ffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffffc0001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000007ffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffff80001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000000fffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffff00001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000001fffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffe00001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000003fffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffffc00001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000007fffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffff800001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000000ffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffff000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000001ffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffe000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000003ffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffffc000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000007ffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffff8000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000000fffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffff0000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000001fffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffe0000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000003fffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffffc0000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000007fffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffff80000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000000ffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffff00000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000001ffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffe00000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000003ffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffffc00000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000007ffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffff800000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000000fffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffff000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000001fffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffe000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000003fffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffffc000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000007fffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffff8000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000000ffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffff0000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000001ffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffe0000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000003ffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffffc0000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000007ffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffff80000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000000fffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffff00000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000001fffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffe00000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000003fffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffffc00000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000007fffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffff800000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000000ffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffff000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000001ffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffe000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000003ffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffffc000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000007ffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffff8000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000000fffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffff0000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000001fffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffe0000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000003fffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffffc0000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000007fffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffff80000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000000ffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffff00000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000001ffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffe00000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000003ffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffffc00000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000007ffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffff800000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000000fffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffff000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000001fffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffe000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000003fffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffffc000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000007fffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffff8000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000000ffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffff0000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000001ffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffe0000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000003ffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffffc0000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000007ffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffff80000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000000fffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffff00000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000001fffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffe00000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000003fffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffffc00000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000007fffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffff800000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffff000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000001ffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffe000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000003ffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffffc000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000007ffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffff8000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000000fffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffff0000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000001fffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffe0000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000003fffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffffc0000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000007fffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffff80000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffff00000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000001ffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffe00000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000003ffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fffc00000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000007ffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fff800000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000000fffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fff000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000001fffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffe000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000003fffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ffc000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000007fffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ff8000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000ff0000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000001ffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fe0000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000003ffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000fc0000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000007ffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000f80000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000000fffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000f00000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000001fffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000e00000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000003fffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000c00000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000007fffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000800000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffff00000000000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000001ffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffffff000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000003ffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffffffd000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000007ffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffffff9000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000000fffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffffff1000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000001fffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffffe1000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000003fffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffffc1000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000007fffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffff81000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffff01000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffffe01000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000003ffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffffc01000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000007ffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffff801000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffff001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000001fffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffe001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000003fffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffffc001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000007fffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffff8001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffff0001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffe0001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefffc0001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefff80001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000000fffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefff00001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000001fffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffe00001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000003fffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeffc00001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeff800001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffeff000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefe000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffefc000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffef8000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffef0000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffee0000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffec0000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffe80000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffe00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffd00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffffb00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffff700000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffef00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffdf00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffffbf00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffff7f00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffeff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffdff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffffbff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffff7ff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffefff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffdfff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffffbfff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffff7fff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffeffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffdffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fffbffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fff7ffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffefffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffdfffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ffbfffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = ff7fffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = feffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fdffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = fbffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = f7ffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = efffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = dfffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = bfffffff00000001000000000000000000000001000000000000000000000000 |
| |
| Test = Negate |
| A = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
| B = 7fffffff00000001000000000000000000000001000000000000000000000000 |
| |
| |
| # Montgomery multiplication tests. |
| # |
| # The following tests satisfy A * B * 2^-256 = Result (mod P). |
| |
| Test = MulMont |
| A = e762f095431b732ce33c4f4a6f41068ff7f78e37aad940166667d193bfc58039 |
| B = a43df383dd5df14d7c16737b781261473f9ffb76ee29562fbb5e5d390b882fb5 |
| Result = cf637a47dc5fb82aed80ed4c66b682a94bf0b76a2878acf483aad86c0db7cc19 |
| |
| Test = MulMont |
| A = 2e519e860cb3f8f32fc351861b022e9fc7bb073ca8767efb3d1027dd32a38bcb |
| B = 466d035e4238d6a30613dd227b0daeacd6a8634fa60f5150d42dd20601794be4 |
| Result = 486e1abe0f79e107f8beca6e4653872f63a24dedb005def6aae75a2a51e73c76 |
| |
| Test = MulMont |
| A = 1763859541b5e2edee019c66699d0e12e349e6ee586d618ac20c679d2fa8cadd |
| B = 56125872de888c5656dec17fbf9678d915ff9815da897df81f03fd9aa4f93654 |
| Result = 71ce584135a0aba8222ca0021bcefac5811d19100627f96726cf195ff2ac4aad |
| |
| Test = MulMont |
| A = ea3be6295098e4995b93267dbd58f24fd9c18f7e89e9e5aeafdc34ca54e8ec4e |
| B = 2735658978d620a4f76bffe94d9cd7d683b3bfd533aa6bb2b94f52122e83f7fc |
| Result = 362f7ab3a12effe9bad069b84a7df5f108503c2457f83ddb05b57f19e6457989 |
| |
| Test = MulMont |
| A = f607f087ec5015b533df8802771dc60ef1487d86ce405e5bb18f8f06ca483f13 |
| B = 73ac532eb3f2356a96e668f167a1626a0f7b1fd2cd84ba6deeebd01af1d3897d |
| Result = ce7045e69da157e62fb42508880f5734531c36948c704aedec42afa75cb9c2eb |
| |
| Test = MulMont |
| A = 80ce8eb07601fd8e19ba08a9d21081b0324fd459f9c489ac7c871d406133c813 |
| B = 7ad28cef45b137ecc5426a44b6bce6d4329f5bd2b5e55d46edd5fbb295678a1b |
| Result = 04068f8461d17b34c8d9c3eecf61dbaef9cd5a952bbcd9f84bb2044f2439da60 |
| |
| Test = MulMont |
| A = 17429caf63689e143c8ca77df69a11cbc02c272daadd75a66f3fa5f88828367e |
| B = 5725bedc56a4b16e0f0ae55fa0beb1fdf3ff132ccb9803bab678d4ac7915d88c |
| Result = a1da0fa68947e906287ea164b213bc7e80649b2ac3f97f203549d3b270de05a1 |
| |
| Test = MulMont |
| A = e7da43c0e0fa7adeb972901bef3160c848e9651bfc810968afdb0cd598830370 |
| B = 08f03060cac1d3c15eea69623d5fb01da465b209e3e5e90fbb51053a1c5700eb |
| Result = cda4ffaf8b1c3ac0d44bae6ea5154de11e14931747a65396531302c0cb1ed537 |
| |
| Test = MulMont |
| A = c7375c2b6666713cb33cfb741268fd3ccf703bcaa0b9b27f84a8cb970655da9c |
| B = b0796ee4bb88b9bad895d9c25c34f43a3941e9585bda8e86ff4fa0bbb391ac61 |
| Result = fd1d557a9fb0031e462121bf7ca31804acfcfce822bb6ee6631b54c575380617 |
| |
| Test = MulMont |
| A = 72a87b13eb4a2e248214aa591c586df65790f9f750a1641b47581a4ee09be7e9 |
| B = 38e602844b9aaf737e8b1261110b86ba22806ccbbbfdc5305075429d7ce4f002 |
| Result = cb2d63ee829de8801759f0229d4c07139bacd804f0c815d35004747c65bffdf2 |
| |
| # Test cases where A == B to test squaring. |
| |
| Test = MulMont |
| A = 0000000000000000000000000000000000000000000000000000000000000000 |
| B = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| Test = MulMont |
| A = 579e9ce1ad00639b8b64d49546ff4f9c30ad12eaebe9e2ed91e97d55c3c5d847 |
| B = 579e9ce1ad00639b8b64d49546ff4f9c30ad12eaebe9e2ed91e97d55c3c5d847 |
| Result = 10c5e60c2d480d5d53f50c24fb771fd2dec208db04624dfd05d2847ca173a9aa |
| |
| Test = MulMont |
| A = 501947209b121bcdedce8c895ee2ba310f2e561e97998eb8f3b99d1f924f36c1 |
| B = 501947209b121bcdedce8c895ee2ba310f2e561e97998eb8f3b99d1f924f36c1 |
| Result = 54d6d64566619b215910f1b9e467b22ef205ca3aaad37a00fcbd906357f9c179 |
| |
| Test = MulMont |
| A = e84ab9202722498baa2c9158f40d47b1f03df4d13976b0aec916a937e99f3a89 |
| B = e84ab9202722498baa2c9158f40d47b1f03df4d13976b0aec916a937e99f3a89 |
| Result = 9af01fa6947a60679b6f87efe9b6fba97baf5d55a19d5e91dd5da1da10caeebf |
| |
| Test = MulMont |
| A = add67c61d8479570f45a59e9b04974f970b0c4c6c046056fea1bdf3f0e7d3152 |
| B = add67c61d8479570f45a59e9b04974f970b0c4c6c046056fea1bdf3f0e7d3152 |
| Result = c0c68b4327e3fe7e0522167a54b25aaa6f76085ce4f6550479c89f3f1c39dd18 |
| |
| Test = MulMont |
| A = 434ef0db5640a3ea63125f815bc3cb3c92d06dbc3b5cb484e01b5247b3b4bfe5 |
| B = 434ef0db5640a3ea63125f815bc3cb3c92d06dbc3b5cb484e01b5247b3b4bfe5 |
| Result = b5105d16b858279247ed31362a90260978d64e0492e84bffa7a0e13ee1541544 |
| |
| Test = MulMont |
| A = b1db42aa4b259d9c6104599aff622114f10c327d02c5640b74cf1742adff332d |
| B = b1db42aa4b259d9c6104599aff622114f10c327d02c5640b74cf1742adff332d |
| Result = 0c175e7f96fc62059864c561d99a8d90978c72757ba305cd8862ed6a5fadad59 |
| |
| Test = MulMont |
| A = 7610271796be25416b652badd3119938974b20d4fc92244aea76d23b80d178f0 |
| B = 7610271796be25416b652badd3119938974b20d4fc92244aea76d23b80d178f0 |
| Result = 67d76e4a7c8355bb362481a76a63b365ad79767cc672b174130e833d41ca5709 |
| |
| Test = MulMont |
| A = 3480d60b0ccafca89c86f22f78380cead81310241f27a815e6fd21c2060caed8 |
| B = 3480d60b0ccafca89c86f22f78380cead81310241f27a815e6fd21c2060caed8 |
| Result = 68bfb2652d3bf03d17b20b2c52c68e847b0006047ba4ea81d4b85af2e0a21f72 |
| |
| Test = MulMont |
| A = 8ad6fa8bf3fe56ece1d0970636c1429ed5dfc2441c3194928a6348b69490b537 |
| B = 8ad6fa8bf3fe56ece1d0970636c1429ed5dfc2441c3194928a6348b69490b537 |
| Result = f5cdccf29e09928722137fb5a5ec035d7f39580838e19b892a7a972866330318 |
| |
| Test = MulMont |
| A = 71c328ce472ae74b5028b21f9d1997e0f7dbcee979a8f9fdecfa5d37d359c835 |
| B = 71c328ce472ae74b5028b21f9d1997e0f7dbcee979a8f9fdecfa5d37d359c835 |
| Result = c3472fafd01fc3ed93a91ab65411cb852bd5839603a02ca6cdfbadcb9ac474a0 |
| |
| |
| # Montgomery conversion tests. |
| # |
| # The following tests satisfy A * 2^-256 = Result (mod P). |
| |
| Test = FromMont |
| A = 0585a3dada9bb283fd8db4fc46c106d28f95b8cf159a405891196dbb9ce0b5cf |
| Result = d198d054d25a069c40cdeeb968a5562a67c3ef659297169e4be872f234897dc0 |
| |
| Test = FromMont |
| A = 9ff49a4a3f810fd34ca6f37fb1b3c40e61bc0492227e91e41cbe06bd58ba65b8 |
| Result = 326a061b2047d9ba4eddaba9b1fe253d5b2a24e268e3f8810767bef8cda07643 |
| |
| Test = FromMont |
| A = 05a69f8f646494be65affbd44d0536ca098d6f3640e80b5e48764ab78928cf58 |
| Result = 5a6f9c7025d4063480c400fe6f271cf3a3d2c43f9e1ceac21a88208c28329731 |
| |
| Test = FromMont |
| A = 256481a9e52d692719330a6f1208d9eca4ddd919aee06e234cbbde77d245501b |
| Result = fe9fc86a2ff61a0c981d5e86c5472248e071e9639521c5be43947bfffc7d5858 |
| |
| Test = FromMont |
| A = 2062ef333cadefc36ced52a2ea7e4215b1fca29283baa1e3be76e321f1b213f0 |
| Result = 961ce39c3bf1d699b4b61ded8a5beae6eb6185d21f1df435b079b1f6a79dc738 |
| |
| Test = FromMont |
| A = 97241c3651a8f9d2fc02730f15c3e09e48d2e645cfe927385cb81d3f454414fb |
| Result = 2114225803efe7b6c7fbb290cb946da4e78697aad5624c2d3fe9fb568460b93c |
| |
| Test = FromMont |
| A = 1aae0ad2c8ac988e11beda32ca7257f4d4de41f4b74452fa46f0a3bafb39262a |
| Result = 77c884131c34a2c3acce8a69dc5cf55987b7999c70586a9ef3c0dfb634900296 |
| |
| Test = FromMont |
| A = 034de033e2d38cf8bec8a994414b64a2fce7c83c5d81efc3d21448225071e85d |
| Result = 984fecbde84f393133fb602777b4395c56449d2cbbd7d8ae428b2ee6f82a2956 |
| |
| Test = FromMont |
| A = d2b296c2004b2761b6781311c924cbf5ff56dcc0900ed5cd24f5dd2e07f32633 |
| Result = ddcff6e031b859a814ce8f37b71c10cd5fb642af54af72deabb95adcb99307b1 |
| |
| Test = FromMont |
| A = 8f525e6af50a62fc176dec75bdf48f70ba8ab97323ba78c643ef07f6457ba070 |
| Result = 8fa95d57aae2fff79045654501478f7a394b27b8b54113a25ac74662606f767c |
| |
| |
| # Point adding tests. |
| # |
| # The following tests satisfy Result = A + B, where Result is in affine |
| # coordinates and A and B are in Jacobian coordinates in the Montgomery domain. |
| |
| # ∞ + ∞ = ∞. |
| Test = PointAdd |
| A.X = 0000000000000000000000000000000000000000000000000000000000000000 |
| A.Y = 0000000000000000000000000000000000000000000000000000000000000000 |
| A.Z = 0000000000000000000000000000000000000000000000000000000000000000 |
| B.X = 0000000000000000000000000000000000000000000000000000000000000000 |
| B.Y = 0000000000000000000000000000000000000000000000000000000000000000 |
| B.Z = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.X = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.Y = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| # ∞ + ∞ = ∞, with an alternate representation of ∞. |
| Test = PointAdd |
| A.X = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af |
| A.Y = 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0 |
| A.Z = 0000000000000000000000000000000000000000000000000000000000000000 |
| B.X = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af |
| B.Y = 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0 |
| B.Z = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.X = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.Y = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| # g + ∞ = g. |
| Test = PointAdd |
| A.X = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c |
| A.Y = 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 0000000000000000000000000000000000000000000000000000000000000000 |
| B.Y = 0000000000000000000000000000000000000000000000000000000000000000 |
| B.Z = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.X = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c |
| Result.Y = 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a |
| |
| # g + ∞ = g, with an alternate representation of ∞. |
| Test = PointAdd |
| A.X = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c |
| A.Y = 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af |
| B.Y = 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0 |
| B.Z = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.X = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c |
| Result.Y = 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a |
| |
| # g + -g = ∞. |
| Test = PointAdd |
| A.X = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c |
| A.Y = 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c |
| B.Y = 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result.Y = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| Test = PointAdd |
| A.X = bcba3eebf2b0af1174a4b874b155b4dc74bd5fb57c70214561aaabb105635580 |
| A.Y = 1dc33ce74f651305dd89263c1d314edd2773ef6dd043742a6f47f29542b9eb07 |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = f9e0b98b1a87b6c49c4cc5fc47efd157e5f12cf5543d71cfa38187a3793d6791 |
| B.Y = 3b2de94df438554381037c9f9d2c21991c6975d83c0acd42ef1a8419a040436f |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = 6bd7b4e06d7862f749901a398417e941618c11c48dffcce719e4026220b77477 |
| Result.Y = 1e2ffd71e8c206acc19032d26a53ea275fefea51a2c90e4dd3c8b7c6acc51ab6 |
| |
| Test = PointAdd |
| A.X = d71c6da129f6e867bf525563e1d8bdbd2f90a9bac7de867a6ea2317a5d6cb507 |
| A.Y = 125e0cc1ba0c93caa19edb419a764f88d955289c4c6e77d02d90e4e31d47c9a2 |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 334c2200ec08896808ab12a76820ff674fcdccff6d85afa2e586b31fc944de33 |
| B.Y = b5ee8cfa25896d4075588c60926a2582a099c7a5acbcfec78fba457c4886301c |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = 93e9d4e6f7736f80da1b00d221024ccfd17f2927d6b505a5bcefe0801fe6f0a9 |
| Result.Y = 4824eeb2d5da27d57e1d50c2dae000acdcddcbaf534d8b7e7d97854ed3dc939e |
| |
| Test = PointAdd |
| A.X = 0daba41be2b418e7d160a363e6cbdcbff5d433f96b0d5be3812c0a7adfab8ed4 |
| A.Y = 3ae4dd97c4d2987a63df16c5fb8c494164e14b93eeebd5585d74bd26e2201499 |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 87135fb06383ec8b282fdc028eb38fd447ac1ecc76922e37f0cc454febb11aee |
| B.Y = 98ab966087531eb3eea1e5e36189271a02f7ee8e381f9c78d6f346a301f96f81 |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = 2e096c2fabf06a5b838c7e07fda436d068dd1c4e3ff4f5704f89ab9df6b4be5b |
| Result.Y = 59ca6304321ae1e41bfa30f52e7ef27fceeade8507f20837654383d70e8a41df |
| |
| Test = PointAdd |
| A.X = 356db98c21c2169899b9b296edcacb7d531524f2572913b75edb7b73196f5682 |
| A.Y = 47a26c52b1b2f229109e8aca7f5b4af768baf053a15ff8f58051c7e4e1b7f818 |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 56956f6d3bbbd4aece299f29bb4c537355f312f391c207c6ec6efe646362b288 |
| B.Y = a69fc73c0636c9928764cc9d6e1482577b6ca06f277c098f571108356a858cab |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = ca0ddd995a77173a1438473bf82734cb3a09fafe7050bda9bd592a1cf078fa38 |
| Result.Y = 379da87952d36c5396b934a2ce8b003ee8fc4155b3b488f2f550734e2a82ce7d |
| |
| Test = PointAdd |
| A.X = 13764cccab4addf5cf4ef5fb4af60a93e08fa3a0a72653abf013e3427abbf82c |
| A.Y = c3dc524745368a0dc4948f897402f4b5a280acbf74f5ea9180d038a483d4090a |
| A.Z = 2903a04d6615ec23cd63ba46287be2e7a8eeee030bed49e7a94769386a46f209 |
| B.X = a5c5921f9a8c569f661693bfae1b167937987c2fe951956ef0e34c426965c648 |
| B.Y = f8a299605e690a78e583371e59cf2b848d475afc35bb1448981c53ad8c0a6581 |
| B.Z = 9c3fde73f1899a76eb40f055fce02ab9c1b1ce7d43b54c54f93ffe56830e3f83 |
| Result.X = 4073318e85bc2d7637fd0129fa8eb86b6ca20334542795f3bb1de54b90a16b69 |
| Result.Y = 9a1b1e7435d98287b244d2337f8bf0e9c87b40677bf1ea2a9dedbd07c5241ee0 |
| |
| Test = PointAdd |
| A.X = f72706b81fca2b1530238bdc2c0c454b5116ee54fdf156bc62bffea73f0645af |
| A.Y = c6e66d9ae8fc5e164e6a985f866aae41f3c4e4281a0eea9173e4e77cb29e4bc7 |
| A.Z = 6a84f9c37634b8aefdae477e9efec66f20d2f6159575f40c7b21a1e0732e8c49 |
| B.X = bcf21b020cb8fb4b2ef7f639240d221dd96fc08d7fa575c2e7037fc84d8f03b2 |
| B.Y = abc500f82f06f0d69a920c8d80eef9dd2310cd09e0d89d80fc7397aa4e361dd1 |
| B.Z = 5031c46be15f9d4fa9a347be998c07f9cc7f754999fe0f9c3c8b38e0d85dda9f |
| Result.X = 401b010df4dd21ed96f7c8babb401db74b3b6ee7f55c498803203855b5911de9 |
| Result.Y = 05e585cca569bc22855f7df32b20a4a45315a1ca5d98d2b94792eb748ec8744b |
| |
| Test = PointAdd |
| A.X = 7b44b52e9fb1bc58c81a2adc9bfedcc42bba3cb34ec666e51cba8050d48fdb37 |
| A.Y = 2b7e629fef7b4e175f5eb30c421e60f26fefdf5f9fed743cad4a8e638c18696a |
| A.Z = 68f31acd92bed56a4556e954b0c51f9f8f3b797bc853d1b2b01b228657bd317f |
| B.X = 3d293c36fd065d1f054eb218932d60feb00d1bd4bee0236cb9788d9723df9571 |
| B.Y = c8b893b8e9ff935f2e060227334e32ba144f4046b1bd4961f4479ad3fef1c7d2 |
| B.Z = 9c072deacfe5c025c763efebb4feab79e954c47d3e86ef4abfbd1901f50d8495 |
| Result.X = 245582d32415c77a2e3abbf844cf1a40c31466c1418cd279747e5394744509be |
| Result.Y = 5c2f80f947d2df7fb1f829d05c6175f6fce7cd2d7f79fd7aa865f930e910e9fd |
| |
| Test = PointAdd |
| A.X = 75ab91b8a46a5a1abf827cb209373b28cbb8f83a06adf6a9b10ac76e22493ecc |
| A.Y = abd989a78d1bcee7e63920d7e637f9763901da408a9d8c731e4e65a6fc52e1a1 |
| A.Z = 188a24145243ca066c35870e5a8835532ad512fbdcf5f5ae4033b262fa9aa6b8 |
| B.X = 5d6e885ec19069b2aa51a2723c98da1f03e8dbc344fe1de0bdb42910ba8bfe96 |
| B.Y = a1f86e66eacc38db7e47154a324a16031705b4803addf074037d3320b50dbef8 |
| B.Z = 5cff900a783687049a7d497b1f8cd837c479a61f3fef4b7ced180ea82770bc75 |
| Result.X = a4029333b9b9db434eea002bd6d4e0d9f3e5317c685511a30ecae351fc60d164 |
| Result.Y = 8e9302c77bc6f560c9bec473ef1ffb76b357c0d4794192696bda8e99651798ee |
| |
| Test = PointAdd |
| A.X = 8d1867f890abaa26b634d5d5cdeb0f4abc7ebd16d807479f837fcece592dc0eb |
| A.Y = fc68c801999c12070eddeb3169219c491f9e8fe29cdc4e3cb698ee8471934076 |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 8d1867f890abaa26b634d5d5cdeb0f4abc7ebd16d807479f837fcece592dc0eb |
| B.Y = fc68c801999c12070eddeb3169219c491f9e8fe29cdc4e3cb698ee8471934076 |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = 8da53dc540c1450c73082ad3b799d0d18a69a747fcd81f847e9e60484dcf579a |
| Result.Y = c20c398e99e0513a452b5e9b6331863d1ac3eee6fcf73021f505a0b62daf6f80 |
| |
| Test = PointAdd |
| A.X = 328b983f6490312e37e8eeb2121cd622cf85dbcf78af93df74fbca961ce3bfa2 |
| A.Y = 1c8a0aea2f2e540770644f48c41810bf7f9e1a782b2f6397712b17c88109fbce |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 328b983f6490312e37e8eeb2121cd622cf85dbcf78af93df74fbca961ce3bfa2 |
| B.Y = 1c8a0aea2f2e540770644f48c41810bf7f9e1a782b2f6397712b17c88109fbce |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = b6f3c548944862dfdea2314ca6d6a88780b08da41becf58384af80544aca4966 |
| Result.Y = 95afecb4ad3195485a2aad3cd14008c9a7c1e0c02656c3c2b7cd5f2e7f3a4474 |
| |
| Test = PointAdd |
| A.X = 3ae6b24cadd6a14612d24a1c094a35c6be56db8f53a6d526e0ede03923918443 |
| A.Y = de8a23105c5f5c88b77dbde74e30a56f8865d78a5ce9060cff9f2927dbd196b6 |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = 3ae6b24cadd6a14612d24a1c094a35c6be56db8f53a6d526e0ede03923918443 |
| B.Y = de8a23105c5f5c88b77dbde74e30a56f8865d78a5ce9060cff9f2927dbd196b6 |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = 6f125b512c3c736f39781fcd89adb653e515b4ce1e1204505f08d0a8480052ef |
| Result.Y = e1acfccf1b9950067adf0f06e0d9703a8b1ac1bbdbb35b08df28cd56c24ae5a0 |
| |
| Test = PointAdd |
| A.X = f317c6c02d9a6ff0799b3b4a22f83c95324831baad336ecd0c631ea04a5e11c8 |
| A.Y = b624e8057d411031f41b30cd02f56c24e89262e885007b7a1ed1861feb7ffcda |
| A.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| B.X = f317c6c02d9a6ff0799b3b4a22f83c95324831baad336ecd0c631ea04a5e11c8 |
| B.Y = b624e8057d411031f41b30cd02f56c24e89262e885007b7a1ed1861feb7ffcda |
| B.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 |
| Result.X = e805208c74602e54482d113f16fcf6e4600436f8af49705cdd05ecfb0e6d45fd |
| Result.Y = baded898bfead1b4eb3ab3bbd0129837efc85823dabe82718a975bd603f96d9e |
| |
| Test = PointAdd |
| A.X = 3a6802aeaebc67046a1e75152822fa8bab04c11ae2b816f42c073daee3f13274 |
| A.Y = d6522c882d18e32bc5ea1fa59efbce8ce2369f2154dcc00e6fb17500f50f8ebf |
| A.Z = bea747d5bb1c6ee865249d7a22378f3c760916e163497f4b6ef4da8adcb5dfab |
| B.X = 3a6802aeaebc67046a1e75152822fa8bab04c11ae2b816f42c073daee3f13274 |
| B.Y = d6522c882d18e32bc5ea1fa59efbce8ce2369f2154dcc00e6fb17500f50f8ebf |
| B.Z = bea747d5bb1c6ee865249d7a22378f3c760916e163497f4b6ef4da8adcb5dfab |
| Result.X = 5a2891dca746889d413d8dc1a69b715954baf692689fc32d9aa10b7431a5c149 |
| Result.Y = 91db7288536b4f6d78e5a787ecbb5094f6834515038cb070a7fa4870af8045f0 |
| |
| Test = PointAdd |
| A.X = c76ddbcb15bc63f82807804536a0d25fd7a639c71adf953ad6cc8f68d915f485 |
| A.Y = e3a4f830809f5e91b68699c05fa9faa7c3d1f9d1b1c982c282508fa18d695537 |
| A.Z = eb372f19c7b9466a116363ad9114a89ad287523da318d915f59ed5e558bd824e |
| B.X = c76ddbcb15bc63f82807804536a0d25fd7a639c71adf953ad6cc8f68d915f485 |
| B.Y = e3a4f830809f5e91b68699c05fa9faa7c3d1f9d1b1c982c282508fa18d695537 |
| B.Z = eb372f19c7b9466a116363ad9114a89ad287523da318d915f59ed5e558bd824e |
| Result.X = c5485a3509f55c7cc33d098fb0bfe1b198a9f26ce0ebc29bec5baa29ef6f74a2 |
| Result.Y = 60e949a551aa94afc9a3efe411a3c63ecb851ef1738ed24c88f86cf85ec01020 |
| |
| Test = PointAdd |
| A.X = ca72936509631f09d2a3ac14fb786daabb15520ef01de4298c7fd71653e89194 |
| A.Y = 02aeb6b6f04cd8125887baa18e6e79ba2b0acfa9a2443e9eea36ca7715eb8eb3 |
| A.Z = 8b4ef1a52fa42c711445e0463003f2ed38ace6583bf08198e9a0b938b4589479 |
| B.X = ca72936509631f09d2a3ac14fb786daabb15520ef01de4298c7fd71653e89194 |
| B.Y = 02aeb6b6f04cd8125887baa18e6e79ba2b0acfa9a2443e9eea36ca7715eb8eb3 |
| B.Z = 8b4ef1a52fa42c711445e0463003f2ed38ace6583bf08198e9a0b938b4589479 |
| Result.X = 8d3b35c5661faafa83510ab9b3f1642bb121e7686ed4ae61323ddee2c7247f93 |
| Result.Y = 1a22ef5df156ca80235fe3cd1ca3152e21a3e17b2a34dd93b2003e3274a8a2fb |
| |
| Test = PointAdd |
| A.X = db7b023fbe056819027fa09c5a2a0d777a53fb78c00bf4f31f46b63a7494bbfe |
| A.Y = 59affcbf4628d572ee56b95087d30e765bb518b123e879b25df9960dab706a32 |
| A.Z = 1f7c7226d78e51478c683bbb6afe01abc2225dbfc773d0806d30ff5f827b76c8 |
| B.X = db7b023fbe056819027fa09c5a2a0d777a53fb78c00bf4f31f46b63a7494bbfe |
| B.Y = 59affcbf4628d572ee56b95087d30e765bb518b123e879b25df9960dab706a32 |
| B.Z = 1f7c7226d78e51478c683bbb6afe01abc2225dbfc773d0806d30ff5f827b76c8 |
| Result.X = fba400ae656ec3103c5c5f531d2a0f7368031e01a48a91f1a4f3138d294b13be |
| Result.Y = 160e358ad1f059eb62722df01a7440048a1db21ecaea8698efa9677db6e9ff97 |
| |
| |
| # Scalar montgomery multiplication tests. |
| # |
| # The following tests satisfy A * B * 2^-256 = Result (mod N). |
| |
| Test = OrdMulMont |
| A = 0000000000000000000000000000000000000000000000000000000000000000 |
| B = b4e9b0aea84aa5ed86964a22881a4d0e58f88e9225f30990c18751e7d4b9ec95 |
| Result = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| Test = OrdMulMont |
| A = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf |
| B = 5d24e62244973fbd829573d5a579b4e89a6512933a2c3d255bbdbc1c89028323 |
| Result = 5d24e62244973fbd829573d5a579b4e89a6512933a2c3d255bbdbc1c89028323 |
| |
| Test = OrdMulMont |
| A = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 |
| B = abafdc695e4c2c850f8fc60f1efdbf7406a3cd2c6c59bb7e608985723896c187 |
| Result = 917b1214c7b31a7ee7e53be0b41a139e435ff576b51ec6af1e1a944412bea38b |
| |
| Test = OrdMulMont |
| A = cf0f01b83670a1c79154ea16f3574ca2d4c688a3c3b6017795cbe54854418904 |
| B = c5ec4d3b00fb2e11fb3b1aa09e60f7d187f7c515977d1343dab9745961fcbb43 |
| Result = 7aaddcee32e3b340af5ad06f854284cbbce5a1ab919e9b7771c3b0e937093438 |
| |
| Test = OrdMulMont |
| A = 50023f9913879ac4020bc45a89a0ea89082db6265b96b851af29969dd8a9661c |
| B = 7c165b1cba80808db114441563aa0fbfba41b9e8acff77312a2dd2138b74ef89 |
| Result = 3d2ca1705d8d38cbc76a5409c6535044733cafcb95d12654af1d14de177978b5 |
| |
| Test = OrdMulMont |
| A = 4d5341ea735e53d2e4f2934755642adee209bd0e5a1506206513227f3c48b270 |
| B = 6e48f2b60eb8fb86760134abaf3d61692557862924069c599ceb31309ea18704 |
| Result = 37cde3e35c814d4287bd345b910d687983929907b7a08afa2acd8596832ea86c |
| |
| Test = OrdMulMont |
| A = 33d06c3f5a595a41a6f9c4356f8ab2b8c550d4c64b806eab5560af247c5fa9ed |
| B = 0e52f34adf5754343bcf3529d652620da3c05b5dd9cdcddfb08b674a1ad21a09 |
| Result = 9dc64d7b4c1bc33b930e0daee2a24fc41f770378659ee71b846d2239b0fea8ea |
| |
| Test = OrdMulMont |
| A = 8f211780cce4f93b7193b9378e6f83e1147fb3602b052eef782de8cc833e54ab |
| B = e1e4f7f1feb15be64292cff86b47cd9730bcb15b133340022b824d591a660cdf |
| Result = dfa2b683b1ae23027c7c109e0abb40a1366eda027ad2cad1a09061a57bee391f |
| |
| Test = OrdMulMont |
| A = 803c279c7e4c11a5568290c0a5789ceab6860f51a942bf646501a45e1ec0a6bf |
| B = c0a1145a12037129c571f5f939bf16ea0b8b480f08ec774c045d059841f7d5ed |
| Result = ab48fa3b4aa692a7c077cc55ee3c3fff895118a23728c2fa5f361b30730d955a |
| |
| Test = OrdMulMont |
| A = 0e5c95158297d75dbf0b02c3090730f65bf14704495b14837dd907af569407f1 |
| B = 5a03e3787c8772b2fb7ab07d7fe7fe653a58bdae7fde3174c6ed305e524f5728 |
| Result = 71296d305dcf9ce39010ea4f4bbf9f7c1064a413597bdc7574c13dea3fa514dc |
| |
| Test = OrdMulMont |
| A = 366299be07886f7846fc74231db624b169360e3c8f60196a1afc9f2101e03922 |
| B = d6d7c830a6edb6861868b964519a6b68f6f24f7c09d66003f3f88eadd1e00158 |
| Result = 0b89596bf5054ebe95a39dab6e975b58190160610b09b2a4f93331ecc0e79fd3 |
| |
| Test = OrdMulMont |
| A = 8f36f0ef275a72192c3b7388e84df2b8acf66fc53aaf556e3be05c76b3f782c0 |
| B = 704e519363d44e8df8d91f5f347eb61e8d3e85c8fc1b82980c370a379b2bc81c |
| Result = b70a392e3ce5e85b5efbbded9b8c16a3068ba9b93b4cbed9a9a71dffaad6b58a |
| |
| Test = OrdMulMont |
| A = bf4466ef4dea9f06f0f3b4f14e01140a774262c7e0706584f4d7dac19be46d58 |
| B = 4af12d528b2cef0f6714961bca2ab682f8abaa97600ea8181f71563d56f8a9f5 |
| Result = 7b6827c0881b9846e32499e13277efb07917cf4b8c8c72bfb3daa8c1786a8e15 |
| |
| |
| # Test cases where A == B to test squaring. |
| |
| Test = OrdMulMont |
| A = 0000000000000000000000000000000000000000000000000000000000000000 |
| B = 0000000000000000000000000000000000000000000000000000000000000000 |
| Result = 0000000000000000000000000000000000000000000000000000000000000000 |
| |
| Test = OrdMulMont |
| A = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf |
| B = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf |
| Result = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf |
| |
| Test = OrdMulMont |
| A = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 |
| B = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 |
| Result = 60d066334905c1e907f8b6041e607725badef3e243566fafce1bc8f79c197c79 |
| |
| Test = OrdMulMont |
| A = da43b8dd7fe8830a4fe8980ec585ccbe903a2965a695cdff398200b74b2ede41 |
| B = da43b8dd7fe8830a4fe8980ec585ccbe903a2965a695cdff398200b74b2ede41 |
| Result = 5ec68604412205b380e26ee4e4081eccc10ac7d1417b09cd534f8517b0de81ec |
| |
| Test = OrdMulMont |
| A = a82a2b8bdbf8a37dc7cb5799691494a8c9fbf649686a4d250dc30697feb0fa47 |
| B = a82a2b8bdbf8a37dc7cb5799691494a8c9fbf649686a4d250dc30697feb0fa47 |
| Result = 552c094a8841621d6cc26b3b54ce5da5664283888445196a6433d3cfdcad3aee |
| |
| Test = OrdMulMont |
| A = d785006e250410d9dcc6d7740795a7374c25b00b9c9a37b8285694a07307eacd |
| B = d785006e250410d9dcc6d7740795a7374c25b00b9c9a37b8285694a07307eacd |
| Result = 971aaa9e70ad082cf43725f2e65bc73f4bf762459cee13167545072ec7bdcaf8 |
| |
| Test = OrdMulMont |
| A = 69d6d9f5417e87d603a3fb6acafa0d1f974abf94ca57ce58d718a0ad5d02a496 |
| B = 69d6d9f5417e87d603a3fb6acafa0d1f974abf94ca57ce58d718a0ad5d02a496 |
| Result = eb3284e5799fbe93171f08e6de9f792cd17f036b3a17671b0310e49b48e589b3 |
| |
| Test = OrdMulMont |
| A = 1c28f742c3e26e74901d0425f2eb4d5272524668d2405875b32cf6433f212900 |
| B = 1c28f742c3e26e74901d0425f2eb4d5272524668d2405875b32cf6433f212900 |
| Result = 74f70a95399b7ad061a2200fa50528d68eee4654341c8158101e1e3f8f16e642 |
| |
| Test = OrdMulMont |
| A = 026b2f69f0259d221920b2f358b378a79826f0332ee36afa257765043e3d6732 |
| B = 026b2f69f0259d221920b2f358b378a79826f0332ee36afa257765043e3d6732 |
| Result = e1e9cfa4724995bb50971ca22f3c028cd31cb51fbef8a37c31f10fd1d468f13b |
| |
| Test = OrdMulMont |
| A = 376ed4fadcc1c6c4160a0c9c2ab7c62260367968b08d304d47c65f25625d7d60 |
| B = 376ed4fadcc1c6c4160a0c9c2ab7c62260367968b08d304d47c65f25625d7d60 |
| Result = b9ccb67f377e1278f1d2eeda26e5eed76f32406c9deed9764fc0aa346d91e02b |
| |
| Test = OrdMulMont |
| A = 50f66867d0a4ef389678d760d2a4db886583b4c068d0e240f7ddf3472c871304 |
| B = 50f66867d0a4ef389678d760d2a4db886583b4c068d0e240f7ddf3472c871304 |
| Result = 82c3467bc5f7ca8b45f4ee61546745e2f53755a02e87f65f572418d60e471c8b |
| |
| Test = OrdMulMont |
| A = 5b8bd82b37206d2b727f19ad2d02f63773470074dde7d43d2a77c448ddf2f978 |
| B = 5b8bd82b37206d2b727f19ad2d02f63773470074dde7d43d2a77c448ddf2f978 |
| Result = dbf3c2fc67a0688c3b5ff12cab1739d50b6093c5d98943d388652b1207e4a0f2 |
| |
| Test = OrdMulMont |
| A = bed7b3a4dada0e16984eb59ee239005ab212e5b1772cdd5d240c8ee268f65c81 |
| B = bed7b3a4dada0e16984eb59ee239005ab212e5b1772cdd5d240c8ee268f65c81 |
| Result = 9232aa2759ca9c5efbaefb0cf45cc6bc9c89def8c25e5c169fe623f30787df36 |