@@ -293,29 +293,64 @@ fns['bn.js'].k256 = 'k256' ;
293
293
function newFixture ( ) {
294
294
const fixture = { } ;
295
295
296
- const a = prng . randomBytes ( 32 ) . toString ( 'hex' ) ;
297
- const b = prng . randomBytes ( 32 ) . toString ( 'hex' ) ;
298
- const aj = prng . randomBytes ( 768 ) . toString ( 'hex' ) ;
299
- const bj = prng . randomBytes ( 768 ) . toString ( 'hex' ) ;
300
-
301
- const a10base = new bn ( a , 16 ) . toString ( 10 ) ;
302
- const a16base = new bn ( a , 16 ) . toString ( 16 ) ;
296
+ const _a32 = prng . randomBytes ( 32 ) . toString ( 'hex' ) ;
297
+ const _b32 = prng . randomBytes ( 32 ) . toString ( 'hex' ) ;
298
+ const _a64 = prng . randomBytes ( 64 ) . toString ( 'hex' ) ;
299
+ const _b64 = prng . randomBytes ( 64 ) . toString ( 'hex' ) ;
300
+ const _a128 = prng . randomBytes ( 128 ) . toString ( 'hex' ) ;
301
+ const _b128 = prng . randomBytes ( 128 ) . toString ( 'hex' ) ;
302
+ const _a256 = prng . randomBytes ( 256 ) . toString ( 'hex' ) ;
303
+ const _b256 = prng . randomBytes ( 256 ) . toString ( 'hex' ) ;
304
+ const _a512 = prng . randomBytes ( 512 ) . toString ( 'hex' ) ;
305
+ const _b512 = prng . randomBytes ( 512 ) . toString ( 'hex' ) ;
306
+ const _a768 = prng . randomBytes ( 768 ) . toString ( 'hex' ) ;
307
+ const _b768 = prng . randomBytes ( 768 ) . toString ( 'hex' ) ;
308
+ const _a1024 = prng . randomBytes ( 1024 ) . toString ( 'hex' ) ;
309
+ const _b1024 = prng . randomBytes ( 1024 ) . toString ( 'hex' ) ;
310
+ const _a2048 = prng . randomBytes ( 2048 ) . toString ( 'hex' ) ;
311
+ const _b2048 = prng . randomBytes ( 2048 ) . toString ( 'hex' ) ;
312
+ const _a4096 = prng . randomBytes ( 4096 ) . toString ( 'hex' ) ;
313
+ const _b4096 = prng . randomBytes ( 4096 ) . toString ( 'hex' ) ;
314
+ const _a8192 = prng . randomBytes ( 8192 ) . toString ( 'hex' ) ;
315
+ const _b8192 = prng . randomBytes ( 8192 ) . toString ( 'hex' ) ;
316
+
317
+ const a10base = new bn ( _a32 , 16 ) . toString ( 10 ) ;
318
+ const a16base = new bn ( _b32 , 16 ) . toString ( 16 ) ;
303
319
304
320
const init = fn => {
305
- const a1 = fn . from16 ( a ) ;
306
- const b1 = fn . from16 ( b ) ;
307
- const a1j = fn . from16 ( aj ) ;
308
- const b1j = fn . from16 ( bj ) ;
321
+ const a32 = fn . from16 ( _a32 ) ;
322
+ const b32 = fn . from16 ( _b32 ) ;
323
+ const a64 = fn . from16 ( _a64 ) ;
324
+ const b64 = fn . from16 ( _b64 ) ;
325
+ const a128 = fn . from16 ( _a128 ) ;
326
+ const b128 = fn . from16 ( _b128 ) ;
327
+ const a256 = fn . from16 ( _a256 ) ;
328
+ const b256 = fn . from16 ( _b256 ) ;
329
+ const a512 = fn . from16 ( _a512 ) ;
330
+ const b512 = fn . from16 ( _b512 ) ;
331
+ const a768 = fn . from16 ( _a768 ) ;
332
+ const b768 = fn . from16 ( _b768 ) ;
333
+ const a1024 = fn . from16 ( _a1024 ) ;
334
+ const b1024 = fn . from16 ( _b1024 ) ;
335
+ const a2048 = fn . from16 ( _a2048 ) ;
336
+ const b2048 = fn . from16 ( _b2048 ) ;
337
+ const a4096 = fn . from16 ( _a4096 ) ;
338
+ const b4096 = fn . from16 ( _b4096 ) ;
339
+ const a8192 = fn . from16 ( _a8192 ) ;
340
+ const b8192 = fn . from16 ( _b8192 ) ;
309
341
const x = fn . from16 ( '2adbeef' ) ;
310
- const as1 = fn . add ( fn . sqr ( a1 ) , x ) ;
311
- const am1 = fn . toRed && fn . toRed ( a1 ) ;
342
+ const as1 = fn . add ( fn . sqr ( a32 ) , x ) ;
343
+ const am1 = fn . toRed && fn . toRed ( a32 ) ;
312
344
const pow1 = fn . fromRed && fn . fromRed ( am1 ) ;
313
345
return {
314
- a1, b1, a1j, b1j, as1, am1, pow1, a10base, a16base,
346
+ a32, b32, a64, b64, a128, b128, a256, b256, a512, b512, a768, b768,
347
+ a1024, b1024, a2048, b2048, a4096, b4096, a8192, b8192,
348
+ as1, am1, pow1, a10base, a16base,
315
349
} ;
316
350
}
317
351
318
352
Object . keys ( fns ) . forEach ( name => {
353
+ if ( ! filter . test ( name ) ) return ;
319
354
fixture [ name ] = { } ;
320
355
fixture [ name ] . args = init ( fns [ name ] ) ;
321
356
fixture [ name ] . outs = { } ;
@@ -329,22 +364,32 @@ while (fixtures.length < NFIXTURES) fixtures.push(newFixture()) ;
329
364
330
365
add ( 'from10' , 'a10base' ) ;
331
366
add ( 'from16' , 'a16base' ) ;
332
- add ( 'to10' , 'a1' ) ;
333
- add ( 'to16' , 'a1' ) ;
334
- add ( 'add' , 'a1' , 'b1' ) ;
335
- add ( 'add' , 'a1j' , 'b1j' ) ;
336
- add ( 'sub' , 'a1' , 'b1' ) ;
337
- add ( 'sub' , 'a1j' , 'b1j' ) ;
338
- add ( 'mul' , 'a1' , 'b1' ) ;
339
- add ( 'mul' , 'a1j' , 'b1j' ) ;
340
- add ( 'sqr' , 'a1' ) ;
341
- add ( 'div' , 'as1' , 'a1' ) ;
342
- add ( 'mod' , 'as1' , 'a1' ) ;
367
+ add ( 'to10' , 'a32' ) ;
368
+ add ( 'to16' , 'a32' ) ;
369
+ add ( 'add' , 'a32' , 'b32' ) ;
370
+ add ( 'add' , 'a768' , 'b768' ) ;
371
+ add ( 'sub' , 'a32' , 'b32' ) ;
372
+ add ( 'sub' , 'a768' , 'b768' ) ;
373
+
374
+ add ( 'mul' , 'a32' , 'b32' ) ;
375
+ add ( 'mul' , 'a64' , 'b64' ) ;
376
+ add ( 'mul' , 'a128' , 'b128' ) ;
377
+ add ( 'mul' , 'a256' , 'b256' ) ;
378
+ add ( 'mul' , 'a512' , 'b512' ) ;
379
+ add ( 'mul' , 'a768' , 'b768' ) ;
380
+ add ( 'mul' , 'a1024' , 'b1024' ) ;
381
+ add ( 'mul' , 'a2048' , 'b2048' ) ;
382
+ add ( 'mul' , 'a4096' , 'b4096' ) ;
383
+ add ( 'mul' , 'a8192' , 'b8192' ) ;
384
+
385
+ add ( 'sqr' , 'a32' ) ;
386
+ add ( 'div' , 'as1' , 'a32' ) ;
387
+ add ( 'mod' , 'as1' , 'a32' ) ;
343
388
add ( 'sqrm' , 'am1' ) ;
344
389
add ( 'powm' , 'am1' , 'pow1' ) ;
345
390
add ( 'invm' , 'am1' ) ;
346
- add ( 'gcd' , 'a1 ' , 'b1 ' ) ;
347
- add ( 'egcd' , 'a1 ' , 'b1 ' ) ;
391
+ add ( 'gcd' , 'a32 ' , 'b32 ' ) ;
392
+ add ( 'egcd' , 'a32 ' , 'b32 ' ) ;
348
393
349
394
start ( ) ;
350
395
@@ -354,6 +399,7 @@ const results = new Array(NFIXTURES) ;
354
399
for ( let i = 0 ; i < NFIXTURES ; ++ i ) {
355
400
results [ i ] = { } ;
356
401
Object . keys ( fns ) . forEach ( name => {
402
+ if ( ! filter . test ( name ) ) return ;
357
403
const fn = fns [ name ] ;
358
404
const fixture = fixtures [ i ] [ name ] ;
359
405
Object . keys ( fixture . outs ) . forEach ( key => {
0 commit comments