Test elliptic curves more thoroughly.
[u/mdw/catacomb] / tests / ec
1 # $Id: ec,v 1.1 2004/03/23 15:19:32 mdw Exp $
2 #
3 # Elliptic curve tests
4
5 check {
6 "prime: 6277101735386680763835789423207666416083908700390324961279
7 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
8 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
9 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
10 0;
11 "prime: 6277101735386680763835789423207666416083908700390324961279
12 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
13 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
14 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794810"
15 -1;
16 "prime: 6277101735386680763835789423207666416083908700390324961279
17 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
18 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
19 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee"
20 0;
21 "prime: 6277101735386680763835789423207666416083908700390324961279
22 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
23 "0x188da80eb03090f67cbf20eb43a18801f4ff0afd82ff1411,
24 0xdccf19d3e76abfa05d529c07575f54c94fa5fc9f3decc246"
25 0;
26 "prime: 6277101735386680763835789423207666416083908700390324961279
27 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
28 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
29 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
30 0;
31 "prime: 6277101735386680763835789423207666416083908700390324961279
32 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
33 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
34 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794810"
35 -1;
36 "prime: 6277101735386680763835789423207666416083908700390324961279
37 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
38 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
39 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee"
40 0;
41
42 "binpoly: 0x800000000000000000000000000000000000000c9
43 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
44 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
45 0x0d51fbc6c71a0094fa2cdd545b11c5c0c797324f1"
46 0;
47 "binpoly: 0x800000000000000000000000000000000000000c9
48 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
49 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
50 0x0d51fbc6c71a0094fa2cdd545b11c5c0c797324f0"
51 -1;
52 "binpoly: 0x800000000000000000000000000000000000000c9
53 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
54 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
55 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
56 0;
57 "binpoly: 0x800000000000000000000000000000000000000c9
58 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
59 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
60 0x0d51fbc6c71a0094fa2cdd545b11c5c0c797324f1"
61 0;
62 "binpoly: 0x800000000000000000000000000000000000000c9
63 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
64 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
65 0x0d51fbc6c71a0094fa2cdd545b11c5c0c797324f0"
66 -1;
67 "binpoly: 0x800000000000000000000000000000000000000c9
68 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
69 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
70 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
71 0;
72 "binpoly: 0x800000000000000000000000000000000000000c9
73 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
74 "0x3f0eba16286a2d57ea0591168d4994637e8343e36,
75 0x7fa8423c5ae194b56cdf21998ad8a721ef1201b8c"
76 0;
77 }
78
79 find {
80 "prime: 6277101735386680763835789423207666416083908700390324961279
81 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
82 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012
83 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
84 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811";
85 "prime: 6277101735386680763835789423207666416083908700390324961279
86 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
87 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1011 inf;
88 "prime: 6277101735386680763835789423207666416083908700390324961279
89 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
90 0x188da80eb03090f67cbf20eb43a18801f4ff0afd82ff1411
91 "0x188da80eb03090f67cbf20eb43a18801f4ff0afd82ff1411,
92 0xdccf19d3e76abfa05d529c07575f54c94fa5fc9f3decc246";
93
94 "binpoly: 0x800000000000000000000000000000000000000c9
95 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
96 0x3f0eba16286a2d57ea0991168d4994637e8343e36
97 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
98 0x325f41d0ef702dc310254c42d65851a3b91471ac7";
99 "binpoly: 0x800000000000000000000000000000000000000c9
100 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
101 0x310eba16386a2d57ea0591168d4997637e8745e36 inf;
102 "binpoly: 0x800000000000000000000000000000000000000c9
103 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
104 0x3f0eba16286a2d57ea0591168d4994637e8343e36
105 "0x3f0eba16286a2d57ea0591168d4994637e8343e36,
106 0x7fa8423c5ae194b56cdf21998ad8a721ef1201b8c";
107 }
108
109 neg {
110 "prime: 6277101735386680763835789423207666416083908700390324961279
111 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
112 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
113 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
114 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
115 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee";
116 "prime: 6277101735386680763835789423207666416083908700390324961279
117 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
118 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
119 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
120 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
121 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee";
122
123 "binpoly: 0x800000000000000000000000000000000000000c9
124 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
125 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
126 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
127 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
128 0x0d51fbc6c71a0094fa2cdd545b11c5c0c797324f1";
129 "binpoly: 0x800000000000000000000000000000000000000c9
130 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
131 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
132 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
133 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
134 0x0d51fbc6c71a0094fa2cdd545b11c5c0c797324f1";
135 }
136
137 dbl {
138 "prime: 6277101735386680763835789423207666416083908700390324961279
139 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
140 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
141 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
142 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
143 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab";
144 "prime: 6277101735386680763835789423207666416083908700390324961279
145 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
146 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
147 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
148 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
149 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab";
150
151 "binpoly: 0x800000000000000000000000000000000000000c9
152 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
153 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
154 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
155 "0x1aeb33fed9c49e0200a0c561ea66d5ab85bd4c2d4,
156 0x49ed3be7f510e30e2462c517ad39038e493fc573c";
157 "binpoly: 0x800000000000000000000000000000000000000c9
158 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
159 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
160 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
161 "0x1aeb33fed9c49e0200a0c561ea66d5ab85bd4c2d4,
162 0x49ed3be7f510e30e2462c517ad39038e493fc573c";
163 }
164
165 add {
166 "prime: 6277101735386680763835789423207666416083908700390324961279
167 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
168 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
169 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
170 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
171 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab"
172 "0x76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da,
173 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd";
174 "prime: 6277101735386680763835789423207666416083908700390324961279
175 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
176 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
177 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
178 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
179 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab"
180 "0x76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da,
181 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd";
182
183 "binpoly: 0x800000000000000000000000000000000000000c9
184 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
185 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
186 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
187 "0x1aeb33fed9c49e0200a0c561ea66d5ab85bd4c2d4,
188 0x49ed3be7f510e30e2462c517ad39038e493fc573c"
189 "0x634000577f86aa315009d6f9b906691f6edd691fe,
190 0x235a3db7a94446301e666cafea5e12cb331f4a140";
191 "binpoly: 0x800000000000000000000000000000000000000c9
192 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
193 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
194 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
195 "0x1aeb33fed9c49e0200a0c561ea66d5ab85bd4c2d4,
196 0x49ed3be7f510e30e2462c517ad39038e493fc573c"
197 "0x634000577f86aa315009d6f9b906691f6edd691fe,
198 0x235a3db7a94446301e666cafea5e12cb331f4a140";
199 }
200
201 sub {
202 "prime: 6277101735386680763835789423207666416083908700390324961279
203 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
204 "0x76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da,
205 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd"
206 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
207 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
208 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
209 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab";
210 "prime: 6277101735386680763835789423207666416083908700390324961279
211 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
212 "0x76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da,
213 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd"
214 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
215 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
216 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
217 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab";
218
219 "binpoly: 0x800000000000000000000000000000000000000c9
220 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
221 "0x634000577f86aa315009d6f9b906691f6edd691fe,
222 0x235a3db7a94446301e666cafea5e12cb331f4a140"
223 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
224 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
225 "0x1aeb33fed9c49e0200a0c561ea66d5ab85bd4c2d4,
226 0x49ed3be7f510e30e2462c517ad39038e493fc573c";
227 "binpoly: 0x800000000000000000000000000000000000000c9
228 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
229 "0x634000577f86aa315009d6f9b906691f6edd691fe,
230 0x235a3db7a94446301e666cafea5e12cb331f4a140"
231 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
232 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
233 "0x1aeb33fed9c49e0200a0c561ea66d5ab85bd4c2d4,
234 0x49ed3be7f510e30e2462c517ad39038e493fc573c";
235 }
236
237 mul {
238 "prime: 6277101735386680763835789423207666416083908700390324961279
239 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
240 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
241 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
242 6277101735386680763835789423176059013767194773182842284080
243 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
244 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee";
245 "prime: 6277101735386680763835789423207666416083908700390324961279
246 prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
247 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
248 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
249 6277101735386680763835789423176059013767194773182842284081
250 inf;
251 "prime: 6277101735386680763835789423207666416083908700390324961279
252 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
253 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
254 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
255 6277101735386680763835789423176059013767194773182842284080
256 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
257 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee";
258 "prime: 6277101735386680763835789423207666416083908700390324961279
259 primeproj: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
260 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
261 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
262 6277101735386680763835789423176059013767194773182842284081
263 inf;
264
265 "binpoly: 0x800000000000000000000000000000000000000c9
266 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
267 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
268 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
269 5846006549323611672814742442876390689256843201586
270 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
271 0xd51fbc6c71a0094fa2cdd545b11c5c0c797324f1";
272 "binpoly: 0x800000000000000000000000000000000000000c9
273 bin: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
274 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
275 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
276 5846006549323611672814742442876390689256843201587
277 inf;
278 "binpoly: 0x800000000000000000000000000000000000000c9
279 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
280 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
281 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
282 5846006549323611672814742442876390689256843201586
283 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
284 0xd51fbc6c71a0094fa2cdd545b11c5c0c797324f1";
285 "binpoly: 0x800000000000000000000000000000000000000c9
286 binproj: 1, 0x20a601907b8c953ca1481eb10512f78744a3205fd"
287 "0x3f0eba16286a2d57ea0991168d4994637e8343e36,
288 0x325f41d0ef702dc310254c42d65851a3b91471ac7"
289 5846006549323611672814742442876390689256843201587
290 inf;
291 }