Commit | Line | Data |
---|---|---|
fb8db84d | 1 | # $Id$ |
21bebf11 | 2 | # |
3 | # Test group abstraction, and a bunch of other things. | |
4 | ||
5 | check { | |
6 | "prime { 29, 7, 16 }" "ok"; | |
7 | "prime { 29, 6, 5 }" "not a subgroup"; | |
8 | "prime { 21, 2, 2 }" "p is not prime"; | |
45c0fd36 | 9 | "prime { 29, 14, 9 }" "group order not prime"; |
21bebf11 | 10 | |
11 | "ec { secp224r1 }" "ok"; | |
12 | ||
47b41095 | 13 | "prime { catacomb-ll-160-1024 }" "ok"; |
21bebf11 | 14 | |
45c0fd36 | 15 | "ec { |
21bebf11 | 16 | prime: |
17 | 0xdb7c2abf62e35e668076bead208b | |
45c0fd36 | 18 | primeproj: |
21bebf11 | 19 | 0xdb7c2abf62e35e668076bead2088, 0x659ef8ba043916eede8911702b22 |
20 | 0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500 | |
21 | 0xdb7c2abf62e35e7628dfac6561c5 * 1 | |
22 | }" "ok"; | |
45c0fd36 MW |
23 | |
24 | "ec { | |
21bebf11 | 25 | prime: |
26 | 0xdb7c2abf62e35e668076bead208b | |
45c0fd36 | 27 | primeproj: |
21bebf11 | 28 | 0xdb7c2abf62e35e668076bead2088, 0x659ef8ba043916eede8911702b22 |
29 | 0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500 | |
30 | 0xdb7c2abf62e35e7628dfac6561c5 * 2 | |
31 | }" "incorrect cofactor"; | |
32 | ||
33 | # --- This one's oakley-155 --- | |
34 | ||
45c0fd36 | 35 | "ec { |
21bebf11 | 36 | binpoly: 0x0800000000000000000000004000000000000001 |
37 | binproj: 0, 0x7338F | |
38 | 0xaa089ae4666a422e714651ad9372213fa65a93, | |
39 | 0x12d29c630dda76010397809a6816be6d2ffa815 | |
40 | 0xaaaaaaaaaaaaaaaaaab1fcf1e206f421a3ea1b * 12 | |
fb8db84d | 41 | }" "degree not prime"; |
21bebf11 | 42 | |
43 | } | |
44 | ||
45 | checkelt { | |
46 | "prime { 29, 7, 16 }" 16 0; | |
47 | "prime { 29, 7, 16 }" 2 -1; | |
48 | ||
49 | "ec { secp112r1 } " | |
50 | "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500" | |
51 | 0; | |
52 | ||
45c0fd36 | 53 | "ec { |
21bebf11 | 54 | binpoly: 0x0800000000000000000000004000000000000001 |
55 | binproj: 0, 0x7338F | |
56 | 0xaa089ae4666a422e714651ad9372213fa65a93, | |
57 | 0x12d29c630dda76010397809a6816be6d2ffa815 | |
58 | 0xaaaaaaaaaaaaaaaaaab1fcf1e206f421a3ea1b * 12 | |
59 | }" | |
60 | "0x7b, 0x1c8" | |
61 | -1; | |
62 | ||
63 | } | |
64 | ||
65 | mul { | |
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, | |
45c0fd36 | 79 | 0x782c37e372ba4520aa62e0fed121d49ef3b543660cfd05fd"; |
21bebf11 | 80 | } |
81 | ||
82 | sqr { | |
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, | |
45c0fd36 | 93 | 0xdd6bda0d993da0fa46b27bbc141b868f59331afa5c7e93ab"; |
21bebf11 | 94 | } |
95 | ||
96 | inv { | |
97 | "prime { 29, 7, 16 }" 9 13; | |
45c0fd36 | 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, | |
45c0fd36 | 107 | 0xf8e6d46a003725879cefee1294db32298c06885ee186b7ee"; |
21bebf11 | 108 | } |
109 | ||
110 | div { | |
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 | ||
127 | exp { | |
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 | ||
170 | mexp-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 | ||
189 | mexp-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 | |
45c0fd36 | 204 | "0xea711858c23d92f9964655910bc90a197a915e90111cf11b, |
21bebf11 | 205 | 0x664189a1d8b2bb24f2b2ac64b19e2178118842e6ba9f4ad5" |
206 | 1110875761630725856340142297645383444629395595869672555585 | |
207 | "0xaa25bb0bf38b06821e8641c1afb8bc078dbe11c3cf9bc97, | |
208 | 0xf1a4c09d621fb52736f6010ae90e9bc9771ac017a62098f9"; | |
209 | } | |
210 | ||
211 | toint { | |
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 | ||
45c0fd36 | 217 | "ec { nist-p192 }" |
21bebf11 | 218 | "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012, |
219 | 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811" | |
220 | 0 602046282375688656758213480587526111916698976636884684818; | |
221 | } | |
222 | ||
223 | fromint { | |
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; | |
45c0fd36 | 229 | "ec { nist-p192 }" 0 |
6ca13db8 | 230 | 0 "0, 0x7b685605ee600cb363db5ea912f2bb5e3a0a2e0e60360f12"; |
21bebf11 | 231 | } |
232 | ||
233 | toec { | |
234 | "prime { 29, 7, 16 }" 0 -1 inf; | |
235 | "ec { nist-p192 }" inf 0 inf; | |
45c0fd36 | 236 | "ec { secp112r1 }" |
21bebf11 | 237 | "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500" |
238 | 0 | |
239 | "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"; | |
240 | } | |
241 | ||
242 | fromec { | |
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 | ||
45c0fd36 | 249 | "ec { secp112r1 }" |
21bebf11 | 250 | "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500" |
251 | 0 | |
252 | "0x09487239995a5ee76b55f9c2f098, 0xa89ce5af8724c0a23e0e0ff77500"; | |
253 | } | |
254 | ||
255 | tobuf { | |
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" | |
45c0fd36 | 264 | 0 "000e09487239995a5ee76b55f9c2f098000ea89ce5af8724c0a23e0e0ff77500"; |
21bebf11 | 265 | "ec { nist-p192 }" |
266 | "0, 0x8497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed" | |
267 | 0 "00010000188497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed"; | |
268 | } | |
269 | ||
270 | frombuf { | |
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 | |
286 | toraw { | |
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" | |
45c0fd36 | 297 | 0 "0409487239995a5ee76b55f9c2f098a89ce5af8724c0a23e0e0ff77500"; |
0f3faccd | 298 | "ec { nist-p192 }" |
299 | "0, 0x8497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed" | |
300 | 0 "040000000000000000000000000000000000000000000000008497a9fa119ff34c9c24a156ed0d44a0c5f5d1f19fc9f0ed"; | |
301 | } | |
302 | ||
303 | fromraw { | |
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 | } |