prime groups: Fix tests
[u/mdw/catacomb] / tests / group
CommitLineData
fb8db84d 1# $Id$
21bebf11 2#
3# Test group abstraction, and a bunch of other things.
4
5check {
6 "prime { 29, 7, 16 }" "ok";
7 "prime { 29, 6, 5 }" "not a subgroup";
8 "prime { 21, 2, 2 }" "p is not prime";
9 "prime { 29, 14, 9 }" "group order not prime";
10
11 "ec { secp224r1 }" "ok";
12
47b41095 13 "prime { catacomb-ll-160-1024 }" "ok";
21bebf11 14
15 "ec {
16 prime:
17 0xdb7c2abf62e35e668076bead208b
18 primeproj:
19 0xdb7c2abf62e35e668076bead2088, 0x659ef8ba043916eede8911702b22
20 0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500
21 0xdb7c2abf62e35e7628dfac6561c5 * 1
22 }" "ok";
23
24 "ec {
25 prime:
26 0xdb7c2abf62e35e668076bead208b
27 primeproj:
28 0xdb7c2abf62e35e668076bead2088, 0x659ef8ba043916eede8911702b22
29 0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500
30 0xdb7c2abf62e35e7628dfac6561c5 * 2
31 }" "incorrect cofactor";
32
33 # --- This one's oakley-155 ---
34
35 "ec {
36 binpoly: 0x0800000000000000000000004000000000000001
37 binproj: 0, 0x7338F
38 0xaa089ae4666a422e714651ad9372213fa65a93,
39 0x12d29c630dda76010397809a6816be6d2ffa815
40 0xaaaaaaaaaaaaaaaaaab1fcf1e206f421a3ea1b * 12
fb8db84d 41 }" "degree not prime";
21bebf11 42
43}
44
45checkelt {
46 "prime { 29, 7, 16 }" 16 0;
47 "prime { 29, 7, 16 }" 2 -1;
48
49 "ec { secp112r1 } "
50 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"
51 0;
52
53 "ec {
54 binpoly: 0x0800000000000000000000004000000000000001
55 binproj: 0, 0x7338F
56 0xaa089ae4666a422e714651ad9372213fa65a93,
57 0x12d29c630dda76010397809a6816be6d2ffa815
58 0xaaaaaaaaaaaaaaaaaab1fcf1e206f421a3ea1b * 12
59 }"
60 "0x7b, 0x1c8"
61 -1;
62
63}
64
65mul {
66 "prime { 29, 7, 16 }" 8 7 27;
67
47b41095 68 "prime { catacomb-ll-128-512 }"
21bebf11 69 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
70 32459289443738057373904596685867555624839649360339363831766212033645755638497600605981483758068704145575847399920657057013890131443911836862688141735006
47b41095 71 3947634573386515057215934636174241616115542585724861166389751782289048647501330677434616929656928819642658111077814577650964230037753641582364366136933940;
21bebf11 72
73 "ec { nist-p192 }"
74 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
75 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
76 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
77 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab"
78 "0x76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da,
79 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd";
80}
81
82sqr {
83 "prime { 29, 7, 16 }" 8 6;
84
47b41095 85 "prime { catacomb-ll-128-512 }"
21bebf11 86 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
47b41095 87 1140714521254648115393410274780412972862841854751618635120376750594285456137894804866135103112174518443866054055338095672091997366768745026933347678925721;
21bebf11 88
89 "ec { nist-p192 }"
90 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
91 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
92 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
93 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab";
94}
95
96inv {
97 "prime { 29, 7, 16 }" 9 13;
98
47b41095 99 "prime { catacomb-ll-128-512 }"
21bebf11 100 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
47b41095 101 5876676858790113051879264634636727534122591023949326683791506203503263391580079717512212895466773363712551406785344528808275608153699681298608650332072384;
21bebf11 102
103 "ec { nist-p192 }"
104 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
105 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
106 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
107 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee";
108}
109
110div {
111 "prime { 29, 7, 16 }" 9 5 25;
112
47b41095 113 "prime { catacomb-ll-128-512 }"
21bebf11 114 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
115 1926426135381827210395257472845875618319108487720857260583372274154852182951667715700282388176779441854588992736540698662997833538400244234146123792411051
47b41095 116 24069337702503046127918930405335466791703796668849861281722901639361967869381088162761943434867448224639537469251486209856612215080111132649928233405085;
21bebf11 117
118 "ec { nist-p192 }"
119 "0x76e32a2557599e6edcd283201fb2b9aadfd0d359cbb263da,
120 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd"
121 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
122 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
123 "0xdafebf5828783f2ad35534631588a3f629a70fb16982a888,
124 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab";
125}
126
127exp {
128 "prime { 29, 7, 16 }" 3 12 16;
129
130 "prime { 29, 7, 16 }" 3 -12 20;
131
47b41095 132 "prime { catacomb-ll-128-512 }"
21bebf11 133 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
134 147362842169670001895012880214773009850
47b41095 135 5743039465765061017258257285641279669186626264432710496849307123351095219091264933384359874588390730293795471675184250790999035405886273905917889887366080;
21bebf11 136
47b41095 137 "prime { catacomb-ll-128-512 }"
21bebf11 138 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
139 -147362842169670001895012880214773009850
47b41095 140 3548613102603269389984811279864031309564549180885835723408511495891024326106890973751615845620404633717662823827170012116865930893524976817060348977482376;
21bebf11 141
142 "ec { nist-p192 }"
143 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
144 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
145 6277101735386680763835789423176059013767194773182842284081
146 inf;
147
148 "ec { nist-p192 }"
149 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
150 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
151 3131675836296406071791252329528905062261497366991742517193
152 "0x7f55059a125dd0d2b40dc3a712248b2848a5e5fa11111f71,
153 0xc6e91094cb34131e539c3db25f7f32670ef8dfe03a88b6fb";
154
155 "ec { nist-p192 }"
156 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
157 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
158 3131675836296406071791252329528905062261497366991742517193
159 "0x7f55059a125dd0d2b40dc3a712248b2848a5e5fa11111f71,
160 0xc6e91094cb34131e539c3db25f7f32670ef8dfe03a88b6fb";
161
162 "ec { nist-p192 }"
163 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
164 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
165 -3131675836296406071791252329528905062261497366991742517193
166 "0x7f55059a125dd0d2b40dc3a712248b2848a5e5fa11111f71,
167 0x3916ef6b34cbece1ac63c24da080cd97f107201fc5774904";
168}
169
170mexp-1 {
171 "prime { 29, 7, 16 }" 3 12 16;
172 "prime { 29, 7, 16 }" 3 -12 20;
173
174 "ec { nist-p192 }"
175 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
176 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
177 3131675836296406071791252329528905062261497366991742517193
178 "0x7f55059a125dd0d2b40dc3a712248b2848a5e5fa11111f71,
179 0xc6e91094cb34131e539c3db25f7f32670ef8dfe03a88b6fb";
180
181 "ec { nist-p192 }"
182 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
183 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
184 -3131675836296406071791252329528905062261497366991742517193
185 "0x7f55059a125dd0d2b40dc3a712248b2848a5e5fa11111f71,
186 0x3916ef6b34cbece1ac63c24da080cd97f107201fc5774904";
187}
188
189mexp-2 {
190 "prime { 29, 7, 16 }" 3 12 8 2 9;
191 "prime { 29, 7, 16 }" 3 -12 8 2 4;
192
47b41095 193 "prime { catacomb-ll-128-512 }"
21bebf11 194 3344609493517948819439808013094817124423784439045485500527919676470975342917009634212031124646834193243018749323077268170586751415510015906107400678608590
195 -147362842169670001895012880214773009850
196 130340428707563070626027539288099297037336608388990593367322442443880297841210613523501678207607756678300142264348927299637006055881968995671289567513600
197 91626412351157168611316239052073981423
47b41095 198 1022777063245982511046303002728993765008184164346724419524981660559588777350492245381260023136750231183070065817596986237402046431653662723677455952067221;
21bebf11 199
200 "ec { nist-p192 }"
201 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
202 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
203 -3131675836296406071791252329528905062261497366991742517193
204 "0xea711858c23d92f9964655910bc90a197a915e90111cf11b,
205 0x664189a1d8b2bb24f2b2ac64b19e2178118842e6ba9f4ad5"
206 1110875761630725856340142297645383444629395595869672555585
207 "0xaa25bb0bf38b06821e8641c1afb8bc078dbe11c3cf9bc97,
208 0xf1a4c09d621fb52736f6010ae90e9bc9771ac017a62098f9";
209}
210
211toint {
212 "prime { 29, 7, 16 }" 15 0 15;
213 "prime { 29, 7, 16 }" 0 0 0;
214
215 "ec { nist-p192 }" inf -1 0;
216
217 "ec { nist-p192 }"
218 "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,
219 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
220 0 602046282375688656758213480587526111916698976636884684818;
221}
222
223fromint {
224 "prime { 29, 7, 16 }" 15 0 15;
225 "prime { 29, 7, 16 }" 0 0 0;
226 "prime { 29, 7, 16 }" 39527306161272833161358334459 0 19;
227
228 "ec { nist-p192 }" 1 -1 inf;
229 "ec { nist-p192 }" 0
6ca13db8 230 0 "0, 0x7b685605ee600cb363db5ea912f2bb5e3a0a2e0e60360f12";
21bebf11 231}
232
233toec {
234 "prime { 29, 7, 16 }" 0 -1 inf;
235 "ec { nist-p192 }" inf 0 inf;
236 "ec { secp112r1 }"
237 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"
238 0
239 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500";
240}
241
242fromec {
243 "prime { 29, 7, 16 }" inf -1 0;
244 "prime { 29, 7, 16 }" "39527306161272833161358334459, 9" 0 19;
245
246 "ec { secp112r1 }" inf 0 inf;
247 "ec { nist-p192 }" "1, 5" -1 inf;
248
249 "ec { secp112r1 }"
250 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"
251 0
252 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500";
253}
254
255tobuf {
fb8db84d 256 "prime { 29, 7, 16 }" 22 -1 "00";
257 "prime { 29, 7, 16 }" 22 0 "000116";
258 "prime { 29, 7, 16 }" 0 -1 "0000";
259 "prime { 29, 7, 16 }" 0 0 "000100";
21bebf11 260
261 "ec { secp112r1 }" inf 0 "0000";
262 "ec { secp112r1 }"
263 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"
264 0 "000e09487239995a5ee76b55f9c2f098000ea89ce5af8724c0a23e0e0ff77500";
265 "ec { nist-p192 }"
266 "0, 0x8497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed"
267 0 "00010000188497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed";
268}
269
270frombuf {
fb8db84d 271 "prime { 29, 7, 16 }" "00" -1 0;
272 "prime { 29, 7, 16 }" "000116" 3 22;
273 "prime { 29, 7, 16 }" "00000e" 2 0;
274 "prime { 29, 7, 16 }" "000100ff" 3 0;
21bebf11 275
276 "ec { secp112r1 }" "0000" 2 inf;
277 "ec { secp112r1 }"
278 "000e09487239995a5ee76b55f9c2f098000ea89ce5af8724c0a23e0e0ff77500f00d"
279 32 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500";
280 "ec { secp112r1 }" "0001000001001ee7" -1 inf;
281 "ec { nist-p192 }"
282 "00010000188497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0eddead"
283 29, "0, 0x8497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed";
284}
0f3faccd 285
286toraw {
fb8db84d 287 "prime { 29, 7, 16 }" 22 -1 "";
288 "prime { 29, 7, 16 }" 22 0 "16";
289 "prime { 29, 7, 16 }" 0 -1 "";
290 "prime { 29, 7, 16 }" 0 0 "00";
0f3faccd 291 "prime { 4294967311, 364289, 18767 }" 4285559121 0 "00ff707151";
292 "prime { 4294967311, 364289, 18767 }" 4285559121 -1 "ff707151";
293
294 "ec { secp112r1 }" inf 0 "00";
295 "ec { secp112r1 }"
296 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"
297 0 "0409487239995a5ee76b55f9c2f098a89ce5af8724c0a23e0e0ff77500";
298 "ec { nist-p192 }"
299 "0, 0x8497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed"
300 0 "040000000000000000000000000000000000000000000000008497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed";
301}
302
303fromraw {
fb8db84d 304 "prime { 29, 7, 16 }" "" -1 0;
305 "prime { 29, 7, 16 }" "160bad" 1 22;
306 "prime { 29, 7, 16 }" "00" 1 0;
0f3faccd 307 "prime { 4294967311, 364289, 18767 }" "00ff707151e7c0" 5 4285559121;
308 "prime { 4294967311, 364289, 18767 }" "ff707151" -1 0;
309
310 "ec { secp112r1 }" "" -1 inf;
311 "ec { secp112r1 }" "00" 1 inf;
312 "ec { secp112r1 }"
313 "0409487239995a5ee76b55f9c2f098a89ce5af8724c0a23e0e0ff775" -1 inf;
314 "ec { secp112r1 }"
315 "0409487239995a5ee76b55f9c2f098a89ce5af8724c0a23e0e0ff77500"
316 29 "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500";
317 "ec { nist-p192 }"
318 "070000000000000000000000000000000000000000000000008497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed00deadbeef"
319 49 "0, 0x8497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed";
320}