- 4835EBBC34C00A3A78A2A4EE13C9F553697525A2A21CB137E629D65D8B7E70A7DD1283F395A2C4590024E522C82D1DC027BBCBBB26C27A7D844B4A1FBD6F2941
+ C3156E1DD050F02D729572BAF449E973925BE2DF1464C3F7EB7A3430F016AD138205516BFF6ED1E2E580ECE5DB84B2DED1069863AD552E6ABE1443C8E3B0A574
smg_comms/rsa/tests/tests.c
(305 . 6)(305 . 104)
138
139 }
140
141 void test_rsa_8e(int nruns) {
142 RSA_secret_key sk;
143 int noctets = KEY_LENGTH_OCTETS;
144 int noctets_pq = noctets / 2;
145 int nlimbs_pq = mpi_nlimb_hint_from_nbytes(noctets_pq);
146
147 sk.n = mpi_alloc(0);
148 sk.e = mpi_alloc(0);
149 sk.d = mpi_alloc(0);
150 sk.p = mpi_alloc(0);
151 sk.q = mpi_alloc(0);
152 sk.u = mpi_alloc(0);
153
154 mpi_fromstr(sk.n, "0x\
155 B51BE851F39159EAC714F3E0376713A84DAD36A82D446D0A257A391870F45FAE13C4CC\
156 F400DDA9F604991134C0934161554EEFEAA3147BF0EADC77B99E2B9B6E4EE942EA9D07\
157 5F015EE2465B491F4130E04E1BBB6CCDC98F6E8789D4F7FCA3E3FF83C6100CAF2B764E\
158 A5AF7CBA9B27C13EE72EA7A8602F34B32E17C2BA56CFBA4223F7D9A03C23336095D34F\
159 BF66E88BF5CE661D66C251DFAD4CB2BA8D1E1669AC927894EA20DABABD2495BC2A4BA3\
160 A25C79ABEC2D57F45F0F889D962C777A663D0AB25D3650DFDC6D77C528803C0C6E12BD\
161 05281B33C603BEA66A0C2ACBEBD1CA53D32C2269294C9B93E742CA563AF39E939C32CE\
162 51D5ED827F9C217EF58CC518B635D0E03BA778BCEBAF9A2CDB493282D751A5977CB907\
163 C8708D1EF1CAE644C1F2525DDE98E29761B1ADF0965F08AA856DF540AEFD67F96B92AE\
164 83636C31A507C59635C6D435C5E7EE333DC2257C07BC0FCE27CF400F6EB7A6B90FFF00\
165 C3C1179615BF5DA6137476926C09D8CCD03257DFCAEF12BE9DC1D3F621D6C97D7F3E6D\
166 534337579B4B65AE212ACC26FC3861E24033E6F12A601D473A65EFC5F25ABD5D6049EA\
167 DD6D76BA60AA218C5EBE13439AAFFF0088C49ACC0E9F7DE56DB03F585E1AC2862EB990\
168 59724FD407C4ACD3DD14A53A6A35F6AFAE03EA53A4E742CC370087692E206A2422FF9D");
169
170 sk.e = mpi_alloc(nlimbs_pq);
171 int i;
172 char echar[109];
173 int ne = 109;
174 for (i=0;i<ne;i++)
175 echar[i] = 0;
176
177 echar[ne-1] = 59;
178 echar[ne-2] = 153;
179 echar[ne-3] = 145;
180 echar[ne-4] = 109;
181 echar[ne-5] = 236;
182 echar[ne-6] = 157;
183 echar[ne-7] = 64;
184 echar[ne-8] = 195;
185 //NB: this test WILL FAIL if only mpi_set_buffer called.
186 mpi_set_buffer(sk.e, echar, ne, 0);
187 mpi_normalize(sk.e);
188
189 mpi_fromstr(sk.d, "0x\
190 7694F5266A995D31DCF3AE40A35AAE4B6F6E2D625EDE8AEF3DF4418C1C5B6D46FBC8AC\
191 1C018B475BB531807C6CB649A3D2A3044B11560B15DFD17E29E2294CBBE4D2E787B048\
192 D7EF19DB02392534DBBE8C0F57DCA17448B5DCDA08A69C3177749BEA150BBC506372DD\
193 D6DBE48869567B31B00FB855AB4700A0458570393F2AA6A5887DAB0E6FD194B970AED2\
194 A6AA1AE13C1B4BA1154F7D2C55699429CD634425460B961C581639E6CC005B6FDEF273\
195 E5A8A34F39E5F7999AEA6E6767A9842203C00763BEDECFB2FCBC4D071AADB81D3DBB32\
196 58872EBA06804183AE66DE1859758BB1752486DC95887DA71BA231E115FFA43AB5F596\
197 21F5DA9BDF780BB35E3DAA06C2BE83FFE160BE6C625D8D33A42491510E22AD545AE0FE\
198 933F2A70FCBF794156EE6FDB4351404706EC528BD865A3F75B66ACE3186620B5713F44\
199 D2D185BC2F8B42B2C9BD8274D11D4E4449D9237398A4D576A0722871B96C2675E32EAD\
200 C8E2DB958FB016D9DBDE9653FC7A346689D348F1161C3E183C19DDD92A313E2191435E\
201 449E819FC3B04CA8B7874B3283AE52FEE822525BAAA14F7E28DF2B1EA9383FBEFA7A4B\
202 AB22BC178CDCF5064E09D8EAAAC4EEF50550E8CB5D3F3079D80FECC4A7B2587BFA6B68\
203 0798D6A6175BA3ABAC52B2BE583849FC3C47A6B7B9BB6CE18AF23BFC54E8F04AA6AF3");
204 mpi_fromstr(sk.p, "0x\
205 C9AE5920BA2CFC9A765C25D8B75E8A42845F5B13F8B9386698C31D01BDDE572BD181E4\
206 5FD46666BB9D3F5043D2B3F7B4B3D301DA403CED22ADBB60544D2000EBB3FEF3E1674D\
207 B2F2BB81A81573B3556689FD2AF740367EB9C7CFFC08BD95471849C456B9AD93BA9462\
208 A541FBD7618E9BF8F8B8DC76233D22826085E06F8CC22C4DB46DE8A6E666FBF678052E\
209 80B5D116B4CAC4FCA1C3348F45895D823842E6A4E2B605F0F8CCD9A75F59B3B4BBC102\
210 B9B7F948EC28AB60BF4FD5441E4EF48B25D6A50C5AAEB882EE9862E042F54510366730\
211 B8DD56C02FC43CD95F6EF7B92379E6DED28764CDD22899C845F484EF8F777B9A527FC1");
212 mpi_fromstr(sk.q, "0x\
213 E5E324CDCAEA29DE1EFB3E2280B51E4461A692A5844F64E6917677907A7825A8ABBEF1\
214 1E0D8A5D70DF703D4D4014FE0A125E5A409AD7DC9B5F2ECBDF518C8ECE783F217268CF\
215 ED93689AEB5D970B3C898B7ACB8868E2D284A85F1B82926C67F6F6675F78799CC280E4\
216 197AB3800B00ED9B063B9A00F483CDD5158DCE31B575F579E4206D32E483994B58D5EA\
217 7FBE224326672ED00BA1B432796E78B80816D641BE4F81BF8CCA5A2E93A0E9FA4D6133\
218 4E893903E133DA215295FAF00F9BA1F224BC700ABCD6A94FB4C1A006BD5673D304B207\
219 F8EE6752F41C4D2F7DE310266EAF61B0545A26FAC66A46B90015FC2374D4FD01F836DD");
220 mpi_fromstr(sk.u, "0x\
221 746B5BD406C84FDBC8EF4DEC7D79831630B45579D7865695BDB288C0E8DB39749200B0\
222 720F6FAF1CBB3F2EE6C6FF3DA72B4C8505D50732DBEE2E92CD9A13B6919D5173DBA708\
223 B44C36129A3494DCD77B9991F88F528FF11706E0D6EFC67705937F5A11FCBC984F89F2\
224 A4168A8ED2A391FAD06C1E15F838B890126DF650DA803661448F8CEA755F15432A83C8\
225 99CB0AFCB5D922514DF19697416DDC79CA2AC7CB30AEADEC2D68B0F43D178DAB33656E\
226 3CDF08A3D2B903797E74210478526D49AA740F906789740826DDD3CF2E5F032B9E0536\
227 85560848F127A1A844BF00C5819FFEB2016E0DBC86BF375554DC28EC2DC7FD8830AA3D");
228
229 test_rsa_keys(&sk, noctets_pq, stdout);
230
231 mpi_free(sk.n);
232 mpi_free(sk.e);
233 mpi_free(sk.d);
234 mpi_free(sk.p);
235 mpi_free(sk.q);
236 mpi_free(sk.u);
237 }
238
239 void test_rsa_exp() {
240 MPI msg = mpi_alloc(0);
241 MPI expected = mpi_alloc(0);
(588 . 6)(686 . 9)
243 case 13:
244 test_uint64_rng(nruns);
245 break;
246 case 14:
247 test_rsa_8e(nruns);
248 break;
249 default:
250 printf("Current test ids:\n");
251 printf("0 for timing entropy source\n");
(605 . 6)(706 . 7)
253 printf("11 for testing smg_rng ieee 745/1985 float\n");
254 printf("12 for testing smg_rng uint32 \n");
255 printf("13 for testing smg_rng uint64 \n");
256 printf("14 for testing rsa with 8-octets e \n");
257 }
258
259 return 0;