RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [email protected]
  Module: rpm                              Date:   03-Aug-2009 12:44:38
  Branch: HEAD                             Handle: 2009080310443700

  Modified files:
    rpm/js/tscripts         Mpw.js

  Log:
    - js: add additional NIST vectors for ECDSA.

  Summary:
    Revision    Changes     Path
    1.13        +358 -14    rpm/js/tscripts/Mpw.js
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/js/tscripts/Mpw.js
  ============================================================================
  $ cvs diff -u -r1.12 -r1.13 Mpw.js
  --- rpm/js/tscripts/Mpw.js    2 Aug 2009 05:50:18 -0000       1.12
  +++ rpm/js/tscripts/Mpw.js    3 Aug 2009 10:44:37 -0000       1.13
  @@ -333,7 +333,7 @@
   
   // =======================================================
   // Return y^2 - x^3 + 3x (modulo p)
  -function vfycurve(p, x, y) {
  +function vfyPrimeCurve(p, x, y) {
       var t1 = mpw(y, y, "*");
       var t2 = mpw(mpw(mpw(x, x, "*"), p, "%"), x, "*");
       t1 = mpw(t1, t2, "-");
  @@ -344,6 +344,39 @@
       return t1;
   }
   
  +// =======================================================
  +// Return y^2 + xy - x^3 - x^2 (modulo p)
  +function vfyBinaryCurve(p, x, y) {
  +    var t1 = mpw(y, y, p, "mulm");
  +    var t2 = mpw(x, y, p, "mulm");
  +    t1 = mpw(t1, t2, p, "addm");
  +    t2 = mpw(x, x, p, "mulm");
  +    t1 = mpw(t1, t2, p, "subm");
  +    t2 = mpw(t2, x, p, "mulm");
  +    t1 = mpw(t1, t2, p, "subm");
  +    return t1;
  +}
  +
  +// =======================================================
  +// Return y^2 + xy - x^3 - 1 (modulo p)
  +function vfyKoblitzCurve0(p, x, y) {
  +    var t1 = mpw(mpw(mpw(x, y, "+"), y, "*"), p, "%");
  +    var t2 = mpw(mpw(mpw(x, x, "*"), p, "%"), x, "*");
  +    t1 = mpw(t1, t2, "-");
  +    t1 = mpw(t1, 1, "-");
  +    t1 = mpw(t1, p, "%");
  +    return t1;
  +}
  +
  +// =======================================================
  +// Return y^2 + xy - x^3 - x^2 - 1 (modulo p)
  +function vfyKoblitzCurve1(p, x, y) {
  +    var t1 = vfyBinaryCurve(p, x, y);
  +    t1 = mpw(t1, 1, "-");
  +    t1 = mpw(t1, p, "%");
  +    return t1;
  +}
  +
   // ===== secp 112r1
   print("===== SECP 112r1");
   var p    = mpw('db7c2abf62e35e668076bead208b');
  @@ -352,7 +385,7 @@
   var n    = mpw('db7c2abf62e35e7628dfac6561c5');
   var gx   = mpw('09487239995a5ee76b55f9c2f098');
   var gy   = mpw('a89ce5af8724c0a23e0e0ff77500');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   ack('t1.toString(16)', b.toString(16));
   
   // ===== SECP 128r1
  @@ -363,7 +396,7 @@
   var n    = mpw('fffffffe0000000075a30d1b9038a115');
   var gx   = mpw('161ff7528b899b2d0c28607ca52c5b86');
   var gy   = mpw('cf5ac8395bafeb13c02da292dded7a83');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   ack('t1.toString(16)', b.toString(16));
   
   // ===== SECP 160r1
  @@ -374,7 +407,7 @@
   var n    = mpw('0100000000000000000001f4c8f927aed3ca752257');
   var gx   = mpw('4a96b5688ef573284664698968c38bb913cbfc82');
   var gy   = mpw('23a628553168947d59dcc912042351377ac5fb32');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
  @@ -392,14 +425,14 @@
   
   var gx   = mpw('188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012');
   var gy   = mpw('07192b95ffc8da78631011ed6b24cdd573f977a11e794811');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
   var d    = mpw('7891686032fd8057f636b44b1f47cce564d2509923a7465b');
   var qx   = mpw('fba2aac647884b504eb8cd5a0a1287babcc62163f606a9a2');
   var qy   = mpw('dae6d4cc05ef4f27d79ee38b71c9c8ef4865d98850d84aa5');
  -var t1 = vfycurve(p, qx, qy);
  +var t1 = vfyPrimeCurve(p, qx, qy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
  @@ -432,13 +465,13 @@
   ack('mpw(mpw(b, b, "*", p, "%"), c, "*", p, "%").toString(10)', mpw(p, 27, 
"-").toString(10));
   var gx   = mpw('b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21');
   var gy   = mpw('bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   ack('t1.toString(16)', b.toString(16));
   
   var d    = mpw('3f0c488e987c80be0fee521f8d90be6034ec69ae11ca72aa777481e8');
   var qx   = mpw('e84fb0b8e7000cb657d7973cf6b42ed78b301674276df744af130b3e');
   var qy   = mpw('4376675c6fc5612c21a0ff2d2a89d2987df7a2bc52183b5982298555');
  -var t1 = vfycurve(p, qx, qy);
  +var t1 = vfyPrimeCurve(p, qx, qy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
  @@ -475,14 +508,14 @@
   ack('mpw(mpw(b, p, "sqrm"), c, p, "mulm").toString(10)', mpw(p, 27, 
"-").toString(10));
   var gx   = 
mpw('6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296');
   var gy   = 
mpw('4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
   var d    = 
mpw('c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96');
   var qx   = 
mpw('b7e08afdfe94bad3f1dc8c734798ba1c62b3a0ad1e9ea2a38201cd0889bc7a19');
   var qy   = 
mpw('3603f747959dbf7a4bb226e41928729063adc7ae43529e61b563bbc606cc5e09');
  -var t1 = vfycurve(p, qx, qy);
  +var t1 = vfyPrimeCurve(p, qx, qy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
  @@ -519,13 +552,13 @@
   ack('mpw(mpw(b, b, "*", p, "%"), c, "*", p, "%").toString(10)', mpw(p, 27, 
"-").toString(10));
   var gx   = 
mpw('aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7');
   var gy   = 
mpw('3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   ack('t1.toString(16)', b.toString(16));
   
   var d    = 
mpw('f92c02ed629e4b48c0584b1c6ce3a3e3b4faae4afc6acb0455e73dfc392e6a0ae393a8565e6b9714d1224b57d83f8a08');
   var qx   = 
mpw('3bf701bc9e9d36b4d5f1455343f09126f2564390f2b487365071243c61e6471fb9d2ab74657b82f9086489d9ef0f5cb5');
   var qy   = 
mpw('d1a358eafbf952e68d533855ccbdaa6ff75b137a5101443199325583552a6295ffe5382d00cfcda30344a9b5b68db855');
  -var t1 = vfycurve(p, qx, qy);
  +var t1 = vfyPrimeCurve(p, qx, qy);
   ack('t1.toString(16)', b.toString(16));
   
   var k    = 
mpw('2e44ef1f8c0bea8394e3dda81ec6a7842a459b534701749e2ed95f054f0137680878e0749fc43f85edcae06cc2f43fef');
  @@ -558,14 +591,14 @@
   // ack('mpw(mpw(b, p, "sqrm"), c, p, "mulm").toString(10)', mpw(p, 27, 
"-").toString(10));
   var gx   = 
mpw('c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66');
   var gy   = 
mpw('11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650');
  -var t1 = vfycurve(p, gx, gy);
  +var t1 = vfyPrimeCurve(p, gx, gy);
   t1 = mpw(t1, p, "+");
   ack('t1.toString(16)', b.toString(16));
   
   var d    = 
mpw('0100085f47b8e1b8b11b7eb33028c0b2888e304bfc98501955b45bba1478dc184eeedf09b86a5f7c21994406072787205e69a63709fe35aa93ba333514b24f961722');
   var qx   = 
mpw('0098e91eef9a68452822309c52fab453f5f117c1da8ed796b255e9ab8f6410cca16e59df403a6bdc6ca467a37056b1e54b3005d8ac030decfeb68df18b171885d5c4');
   var qy   = 
mpw('0164350c321aecfc1cca1ba4364c9b15656150b4b78d6a48d7d28e7f31985ef17be8554376b72900712c4b83ad668327231526e313f5f092999a4632fd50d946bc2e');
  -var t1 = vfycurve(p, qx, qy);
  +var t1 = vfyPrimeCurve(p, qx, qy);
   ack('t1.toString(16)', b.toString(16));
   
   var k    = 
mpw('c91e2349ef6ca22d2de39dd51819b6aad922d3aecdeab452ba172f7d63e370cecd70575f597c09a174ba76bed05a48e562be0625336d16b8703147a6a231d6bf');
  @@ -585,4 +618,315 @@
   ack('mpw(r, w, n, "mulm").toString(16)', u2.toString(16));
   var v    = 
mpw('0140c8edca57108ce3f7e7a240ddd3ad74d81e2de62451fc1d558fdc79269adacd1c2526eeeef32f8c0432a9d56e2b4a8a732891c37c9b96641a9254ccfe5dc3e2ba');
   
  +// ##############################################################
  +// Curve K-163
  +// ##############################################################
  +print("===== K-163");
  +var n    = mpw('0004000000000000000000020108a2e0cc0d99f8a5ef');
  +ack('n.toString(10)', '5846006549323611672814741753598448348329118574063');
  +
  +var d    = mpw('7ff9959e88692406041273ab70e00b88ea18c9e6');
  +var qx   = mpw('2cc266f6d83736500418d2e00ce2d07c2ff8f734');
  +var qy   = mpw('00028553ea0676c40d577dcfe5259968b341a1d33af2');
  +
  +var k    = mpw('1e7ec8c98ab49fc14e1bc841ebf61a0ad0961472');
  +var msg  = "Example of ECDSA with K-163"
  +
  +var rx   = mpw('000718ef5ef376b8f5301b5fd2a761989c417807a275');
  +
  +var e    = mpw('590d17df8bf17246eaf975b41864abcc7a747021');
  +var kinv = mpw('39252c5d41a936736cae1413da88924935f61b58');
  +
  +var r    = mpw('000318ef5ef376b8f5301b5dd19ebeb7d033de0efc86');
  +ack('r.toString(10)', '4526858839996231728501073084029310952934625705094');
  +var s    = mpw('0002fd6b089af933c881d4b9feb3a550cbded50cd7bd');
  +ack('s.toString(10)', '4369764869049498617479414634111521353329149794237');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = mpw('000332dd232ef2d65c09309d52c7be1646d41fc9de20');
  +var u2   = mpw('0003d355dad4b1418780a63a87dafc06d38bfc287312');
  +var rx   = mpw('000718ef5ef376b8f5301b5fd2a761989c417807a275');
  +var v    = mpw('000318ef5ef376b8f5301b5dd19ebeb7d033de0efc86');
  +
  +// ##############################################################
  +// Curve B-163
  +// ##############################################################
  +print("===== B-163");
  +var p    = mpw(2, 163, "**");
  +p = mpw(p, mpw(2,   7, "**"), "+");
  +p = mpw(p, mpw(2,   6, "**"), "+");
  +p = mpw(p, mpw(2,   3, "**"), "+");
  +p = mpw(p, 1, "+");
  +ack('p.toString(16)', '0x800000000000000000000000000000000000000c9');
  +var n    = mpw('00040000000000000000000292fe77e70c12a4234c33');
  +ack('n.toString(10)', '5846006549323611672814742442876390689256843201587');
  +
  +// polynomial basis
  +var b  = mpw('20a601907b8c953ca1481eb10512f78744a3205fd');
  +var gx = mpw('3f0eba16286a2d57ea0991168d4994637e8343e36');
  +var gy = mpw('0d51fbc6c71a0094fa2cdd545b11c5c0c797324f1');
  +// normal basis
  +// var b  = mpw('6645f3cacf1638e139c6cd13ef61734fbc9e3d9fb');
  +// var gx = mpw('0311103c17167564ace77ccb09c681f886ba54ee8');
  +// var gy = mpw('333ac13c6447f2e67613bf7009daf98c87bb50c7f');
  +
  +// var t1 = vfyBinaryCurve(p, gx, gy);
  +// ack('t1.toString(16)', b.toString(16));
  +
  +var d    = mpw('000348d138c2de9447bd288feed177222ee377fb7bea');
  +var qx   = mpw('00066b015c0b72b0f81b1ecba6f58e7545d94744644c');
  +var qy   = mpw('ba6d4d62419155b186a29784f4aa4b8e8e1e7f76');
  +
  +var k    = mpw('8ed0f93f7d492bb3991847d0e96f9cc3947259aa');
  +var msg  = "Example of ECDSA with B-163"
  +
  +var rx   = mpw('000760938a97d88b30fdfb2cce1a4c59783ad0ed8fde');
  +var e    = mpw('728d59bbe028509dd5d2ce480f458e2925232ac3');
  +var kinv = mpw('00036dc66491684211373aaa8bd16024dd0a12a8ff11');
  +
  +var r    = mpw('000360938a97d88b30fdfb2a3b1bd4726c282cca43ab');
  +ack('r.toString(10)', '4935858308701913308545983330530451819807197774763');
  +var s    = mpw('00019a7b5043d93a13d714b4717fc0698e6791cf7f7c');
  +ack('s.toString(10)', '2343436199767730626813973682401889576912314924924');
  +
  +var e    = mpw('728d59bbe028509dd5d2ce480f458e2925232ac3');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = mpw('0003c4099db241a80c807e02d81be10955b2eb2e5d8c');
  +var u2   = mpw('000160ccedabb7e3e767a604d8b042a65751708cc262');
  +var rx   = mpw('000760938a97d88b30fdfb2cce1a4c59783ad0ed8fde');
  +var v    = mpw('000360938a97d88b30fdfb2a3b1bd4726c282cca43ab');
  +
  +// ##############################################################
  +// Curve K-233
  +// ##############################################################
  +print("===== K-233");
  +var n    = 
mpw('008000000000000000000000000000069d5bb915bcd46efb1ad5f173abdf');
  +ack('n.toString(10)', 
'3450873173395281893717377931138512760570940988862252126328087024741343');
  +
  +var d    = mpw('8434613f4b799b4c26e4d7ab8e9481b04b09e648c94affd14b611a20');
  +var qx   = 
mpw('017c9dd766aefbe4de4b15f46db0671dc4ca0767ed51ecea94757d9c662e');
  +var qy   = 
mpw('01cdd726084837ae73c11c27d605c6eb2d5e31482358780305c2522b151b');
  +
  +var k    = 
mpw('000190da60fe3b179b96611db7c7e5217c9aff0aee435782ebfb2dfff27f');
  +var msg  = "Example of ECDSA with K-233"
  +
  +var rx   = 
mpw('01bea7231662e6516f11e37d59d500eae71d116e9b7bbce5964b88d4cc4d');
  +var e    = mpw('cb2314b21e913f4d345af272ed611f3eba00388056921da8a450f731');
  +var kinv = 
mpw('00759a37371c026e261add7278b81ee15d18e2b0d9bd1a077aebf96aa067');
  +
  +var r    = 
mpw('003ea7231662e6516f11e37d59d500d70f09e62d64fe6ff445c9b479c8b0');
  +ack('r.toString(10)', 
'1689118280210305605171693773892079201866275012021226933371217775282352');
  +var s    = 
mpw('007503ec8e630386ce36a6276f221bc8ee4592cca5960a1eabe3bd2a282a');
  +ack('s.toString(10)', 
'3154727010507234306862258506085323724325131083359956345879910870034474');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('0043a8ea51489b412b0a1ca97865a12491e8e144159e56cdc8bbe201d0d5');
  +var u2   = 
mpw('0036d6ac76bcac51707f796e6fa1cb649f7fd2c69aed93d01ab7c8ae35aa');
  +var rx   = 
mpw('01bea7231662e6516f11e37d59d500eae71d116e9b7bbce5964b88d4cc4d');
  +var v    = 
mpw('003ea7231662e6516f11e37d59d500d70f09e62d64fe6ff445c9b479c8b0');
  +
  +// ##############################################################
  +// Curve B-233
  +// ##############################################################
  +print("===== B-233");
  +var n    = 
mpw('01000000000000000000000000000013e974e72f8a6922031d2603cfe0d7');
  +ack('n.toString(10)', 
'6901746346790563787434755862277025555839812737345013555379383634485463');
  +
  +var d    = mpw('8af6d5a8e875977c7d4ba1f611cf7b6d70b26140bf84a1cc281f1b7b');
  +var qx   = 
mpw('01d3ad52d68f8383f582e2ba00f89ce1632211edc24440c31798e0c8ed40');
  +var qy   = 
mpw('006c3b96cc0e6bc59355a1294e22dbf1d4b9071c28da1389b6debe0e7f43');
  +
  +var k    = mpw('8a65482917ba18f1e8b266a3795b0a3a09c439fa6b611e37123baf72');
  +var msg  = "Example of ECDSA with B-233"
  +
  +var rx   = 
mpw('0186806715d9620f0a3e62c1ba593d9817b6dcb23de85bf504c326629e63');
  +var e    = mpw('6a8389d3644c7fa90d7f57e6049d0dd41b8e473cd296c71d0ff232b3');
  +var kinv = 
mpw('0097589e4b9b7c0f0c1e58d2ac61e8297d83fe7d00172e64b7d0df207dd9');
  +
  +var r    = 
mpw('0086806715d9620f0a3e62c1ba593d842e41f582b37f39f1e79d2292bd8c');
  +ack('r.toString(10)', 
'3626155233584346473011272901749115607875304189783836849535359105809804');
  +var s    = 
mpw('0040159539861be6673c0a3b2e49f5f6c9532b60130c6fc78826c9e900ef');
  +ack('s.toString(10)', 
'1727709532304725124330354137202758438690663000173119669782159003549935');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('0009621acb96ba987e2354a4ca3273c142bc963cce4cb84e17f4a6a8a3e1');
  +var u2   = 
mpw('006f64d0192b2965749d0ac29c7840245cc70bdb296f7e71cfc59c069515');
  +var rx   = 
mpw('0186806715d9620f0a3e62c1ba593d9817b6dcb23de85bf504c326629e63');
  +var v    = 
mpw('0086806715d9620f0a3e62c1ba593d842e41f582b37f39f1e79d2292bd8c');
  +
  +// ##############################################################
  +// Curve K-283
  +// ##############################################################
  +print("===== K-283");
  +var n    = 
mpw('01ffffffffffffffffffffffffffffffffffe9ae2ed07577265dff7f94451e061e163c61');
  +ack('n.toString(10)', 
'3885337784451458141838923813647037813284811733793061324295874997529815829704422603873');
  +
  +var d    = 
mpw('00069e6d19f7e454a83664ff49208f6038eaf842e164df42d0f64948ff9c94b014988329');
  +var qx   = 
mpw('01b64a60d4a365409635aaa27e1708d90b839afa2d9820e12b79c3af1094b6010aaef5be');
  +var qy   = 
mpw('0334b5f30ca21756bde6d47738f2458f56fbf6bdc76fcfb8f3e591455f041a952ee87a8e');
  +
  +var k    = 
mpw('e3084442d66fa9a02c42890163e57ee33ca1f4583c65bcbde92781c7a3c83e89b773');
  +var msg  = "Example of ECDSA with K-283"
  +
  +var rx   = 
mpw('07c973d58fd17a06aa8f39d5ec42e0a6b992f6cc61f157565dd7036c147d9005400c1328');
  +var e    = 
mpw('184f9aea741e7668b8b5c72c81617fa4068929628f77bd2f7a713a0a09916b81');
  +var kinv = 
mpw('0045d85f04239846deb60444da59f95ca0ca13fb9c30b6972e852e332e223067143d174d');
  +
  +var r    = 
mpw('01c973d58fd17a06aa8f39d5ec42e0a6b99339c1d57ff6f0eabd04ed57ae35f2e5c95e05');
  +ack('r.toString(10)', 
'3471401162510341375623239443838810951682842412872079937478668905492984462483269443077');
  +var s    = 
mpw('014a4ed02cbe4d76ed5ddaa34a9f2d7390af2de327edbc3335119d3e43cbb7fe0384d841');
  +ack('s.toString(10)', 
'2506557860315181892752630984589168964256966490874765067882847886248065073786590124097');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('001950717a3ba3fe8cc4677c5c6a1f9ec4c92a7d405e39e133250abc8038a945b86fbbb8');
  +var u2   = 
mpw('00b8d9b42e8b8c1c7b610132b88a9d3ddc8beae7bd8a7e5fc94fc937c46779bf8e33ca2a');
  +var rx   = 
mpw('07c973d58fd17a06aa8f39d5ec42e0a6b992f6cc61f157565dd7036c147d9005400c1328');
  +var v    = 
mpw('01c973d58fd17a06aa8f39d5ec42e0a6b99339c1d57ff6f0eabd04ed57ae35f2e5c95e05');
  +
  +// ##############################################################
  +// Curve B-283
  +// ##############################################################
  +print("===== B-283");
  +var n    = 
mpw('03ffffffffffffffffffffffffffffffffffef90399660fc938a90165b042a7cefadb307');
  +ack('n.toString(10)', 
'7770675568902916283677847627294075626569625924376904889109196526770044277787378692871');
  +
  +var d    = 
mpw('010652d37b0a9db64d4033ac6549cd1df37e1eede2612c2363257c6aff6c8cb5dcb63648');
  +var qx   = 
mpw('0390858e9327a714c74af0c3adedf4e6c75cafdcc46507a49e415b138a094b6f43e882ac');
  +var qy   = 
mpw('00d4a65d973cd150a5221bedf872a4ba207ff4427dfffd4827c5bf169e719162504d0631');
  +
  +var k    = 
mpw('0100ec321393e6dd6c4d47be5ae189e5e35408579d0862178f94ccbba3c4049a4d88e297');
  +var msg  = "Example of ECDSA with B-283"
  +
  +var rx   = 
mpw('077cb284ac41e72eda2a93eb8d6dff58620f6c69d528dfe90d909aa5cabc03a34e5d5a76');
  +var e    = 
mpw('f0bf4aef3f694ebdde0a79445c897adb2430b91877c772da9b7362cb03aea87f');
  +var kinv = 
mpw('00ab6d18af222d8fde7d93894d4faeeb36accd4fb68ec95d9e9bff4c08aff3c631a67be4');
  +
  +var r    = 
mpw('037cb284ac41e72eda2a93eb8d6dff58620f7cd99b927eec7a060a8f6fb7d9265eafa76f');
  +ack('r.toString(10)', 
'6774278697741420663687521446478692454362079599099886695356533960517936672443416422255');
  +var s    = 
mpw('00a37ac10aebfc22fc6e6ee22e8f235e3eeb0555a0f0f9da92d9ffa734ad767956d27f23');
  +ack('s.toString(10)', 
'1240572480066211322672976019324920068198845924194402393411512731505068634362155794211');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('01a9af084b9e04574c178a2d00c97cfe36f25d5f834fcd7044235a92e89ac3346c8c9af3');
  +var u2   = 
mpw('009949042a40d7613f3880cfcc3b3e9d22ee9c130651cee1f263efc881cf9a53a564fbce');
  +var rx   = 
mpw('077cb284ac41e72eda2a93eb8d6dff58620f6c69d528dfe90d909aa5cabc03a34e5d5a76');
  +var v    = 
mpw('037cb284ac41e72eda2a93eb8d6dff58620f7cd99b927eec7a060a8f6fb7d9265eafa76f');
  +
  +// ##############################################################
  +// Curve K-409
  +// ##############################################################
  +print("===== K-409");
  +var n    = 
mpw('007ffffffffffffffffffffffffffffffffffffffffffffffffffe5f83b2d4ea20400ec4557d5ed3e3e7ca5b4b5c83b8e01e5fcf');
  +ack('n.toString(10)', 
'330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358671');
  +
  +var d    = 
mpw('00019f5789fe26e0e700c69e253e9f74d76eafb4c979d0b1584d4fe98715d45b7baaa851e02a1ecaed8b96602cf611d8a504bbd5');
  +var qx   = 
mpw('0127065590df9265fdfba4ed6edf76a9bc8ce880b58b6f571a1ab62ba3401269441f3b95ecd0909465022240ae45c7b36a91de58');
  +var qy   = 
mpw('003c85268d9267302090425bbc14c3d9ae1c1cfc78e0bfcccfc1fb5dca5b195c6f8cfbe2d85e4071b71317aa2b0b65c391f82502');
  +
  +var k    = 
mpw('0001592048516ccd793c7b863b00985fdba71c3d1edf449f667ac0d05ef37d15a94ad3282f29f7e9fd9491872f931354a1ccfa39');
  +var msg  = "Example of ECDSA with K-409"
  +
  +var rx   = 
mpw('00ef421a230aa8b471939a77bf4f2c64fc0b4caa39edcd06337a9115af89df725e3c748ae018320e89d77abcd3aa13a6ccf10c34');
  +var e    = 
mpw('b18623fe7d6b79c3947651cf64a066400f89dc989d07bfd8c1aaf75e3c9b3d48fc457204168de4ed4eca8e240e009b95');
  +var kinv = 
mpw('0064d066b74c9771a843f341a1853f0520696aa57338c21c4a839507b5ee65cb98a7f87c8e53037c02980cf5185300b709901d59');
  +
  +var r    = 
mpw('006f421a230aa8b471939a77bf4f2c64fc0b4caa39edcd06337a92b62bd70a883dfc65c68a9ad33aa5efb061884d8fedecd2ac65');
  +ack('r.toString(10)', 
'287296502609903755047276062317671877380342987214246771450934811188142631858192434973293671444180485746280616241641144101989');
  +var s    = 
mpw('00425f2ff9cbbf1b9e3fc17c4b66303622d7749047373cc9f919758cd88420c4cd0fdf14b819a4ada9961c3e6095000467c2f823');
  +ack('s.toString(10)', 
'171388639085828986597824337788600168526139265051294280998358619335390078299394527527443716590351871100863295063908700846115');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('007fc6bdb66a9d2a23bf69d4f96bb3e7e24e365b45d111c666747a42b39275ed0ba4f2866d3723dd13851a45208c864525d5f530');
  +var u2   = 
mpw('0005e16d63457088b1f3012e844c852e23c9f1225aa569a883de8a5828dde30917d23c4d807a371aa1fc5db25149abbcd53f7558');
  +var rx   = 
mpw('00ef421a230aa8b471939a77bf4f2c64fc0b4caa39edcd06337a9115af89df725e3c748ae018320e89d77abcd3aa13a6ccf10c34');
  +var v    = 
mpw('006f421a230aa8b471939a77bf4f2c64fc0b4caa39edcd06337a92b62bd70a883dfc65c68a9ad33aa5efb061884d8fedecd2ac65');
  +
  +// ##############################################################
  +// Curve B-409
  +// ##############################################################
  +print("===== B-409");
  +var n    = 
mpw('010000000000000000000000000000000000000000000000000001e2aad6a612f33307be5fa47c3c9e052f838164cd37d9a21173');
  +ack('n.toString(10)', 
'661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526771');
  +
  +var d    = 
mpw('4af896db379abdf70c8fade9ebd28cd530f2ecb336b4de84bd6e065ef56c8c548c532d00fa55ca8acf3e98adbca9f78d241b');
  +var qx   = 
mpw('01951c5e41607e9317f247d49a389d0e120f479d47737543098ae5e1bb62bd59de70e1c584ae655c702d39dd4f7883e1876c4a9b');
  +var qy   = 
mpw('016b16b98a3353d75beb4d3576c64568ba381463cf77d4aeb85218d2d546e7a1ee3ab9316d8c7df00d155b7891b2c0bf4b5e942e');
  +
  +var k    = 
mpw('6a0b81d9320b5c305d730b1c1e74b03fafb88a7ec355990b75f9b70e8532433296a32492cba06f8583d5b19c5b8c5d6d07ec');
  +var msg  = "Example of ECDSA with B-409"
  +
  +var rx   = 
mpw('01f3e4da3101c64239d76831995c0ec1e56ce4690c42ddd53dbf3ef725d819df090b8632f327499b5b99c280d7f410cd7105c8db');
  +var e    = 
mpw('4bbf1bc0ddf9d3b7bfe21fc68642b3e5508ca6ba4d365c1d00abbfabdb0f3ec2b0be995ae803de47d0880bf192649edc');
  +var kinv = 
mpw('00a202ea455d0e1a5ef09054b39259c768db76ffd1a77b6281fc7056a4a23a1012cdd604e4d7993e0d9edd422defd782c1225a1a');
  +
  +var r    = 
mpw('00f3e4da3101c64239d76831995c0ec1e56ce4690c42ddd53dbf3d147b0173cc15d87e749382cd5ebd9492fd568f43959763b768');
  +ack('r.toString(10)', 
'629795133852997848663164416330632008108488131029367711198400899015295569161990628452056613359116571349413663774547185481576');
  +var s    = 
mpw('00292fa994dc6ea367236ad73956dbc1eb62b8779df438165407141587e3feed883741cdf5542f255bebc57b9d0c87ad403b8eab');
  +ack('s.toString(10)', 
'106353011790980050510402230388010919168837770971007460637281001297135413850335587267331709367101624723953375840680931987115');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('0033d4f3ce2b7d4f2548f54c92420a8c30e6b02d768cbd6ca4ab020e88be82eefe4d58a9b4db2854561ead8975e1a58fb45c2117');
  +var u2   = 
mpw('00eb0671192b38cbc911cade604d9e048c7e660af3c7085d54839c1b7549691e5f7fffdab4003ade05208775d4a0287e448740af');
  +var rx   = 
mpw('01f3e4da3101c64239d76831995c0ec1e56ce4690c42ddd53dbf3ef725d819df090b8632f327499b5b99c280d7f410cd7105c8db');
  +var v    = 
mpw('00f3e4da3101c64239d76831995c0ec1e56ce4690c42ddd53dbf3d147b0173cc15d87e749382cd5ebd9492fd568f43959763b768');
  +
  +// ##############################################################
  +// Curve K-571
  +// ##############################################################
  +print("===== K-571");
  +var n    = 
mpw('020000000000000000000000000000000000000000000000000000000000000000000000131850e1f19a63e4b391a8db917f4138b630d84be5d639381e91deb45cfe778f637c1001');
  +ack('n.toString(10)', 
'1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276673');
  +
  +var d    = 
mpw('01042fde4d66e76725e7957e208a85cf23bc0d5b8d001b36aeafb34ad1104004ccf99afdfabca11585a4eb5263c87052cb05ef7fb39d9e5f6cf495e9dce5840b83fbc5ff3ad8b2f3');
  +var qx   = 
mpw('04d9cfe0a7338fea703e007f5d10babd2df3f319b47df1e23c4f7e5abf5014c1390b78f117e6af8258a48f56acb9faac788530b5ccdb1ab7e9390ec5dd7a39d5eeaf6c41bf50ac76');
  +var qy   = 
mpw('064732c504f81dc5f9b0e882b6da46e124e8241358f077896d25ecf028ad0e6011993c85e68741a07d7817c400cf94b1a3f524f48668b5b970972618616db4362a769d16cac34bf0');
  +
  +var k    = 
mpw('0104063c918de62000a3fd87775d8d71398722bd153b8ea33060349c5fe6cf6cb4677957e6ba50d3c8a8b5182b9cf962954a6bbb5f7868b88e5778aa62a0cf8002bf19da3049ff51');
  +var msg  = "Example of ECDSA with K-571"
  +
  +var rx   = 
mpw('0668758c313fbf1945f775d95b25866dbc8d001d9c7ef4ffa53774e8c68927a52707f034cebb3a712be6d164f2ffe1897b069f8fbaec4650b5372ddfa31cdeccfa78569197cf50f1');
  +var e    = 
mpw('46e30abdd459269cf19af76900af7131b4f639227414719ebebe548ccd4026b75c1f52618547aa3821f29fcf685e33640bd9e29f7fe46817627d4139eee411c6');
  +var kinv = 
mpw('0075a02beaea51660a1d05053b173c9c6dccaeba80f72ca08dec3c32e2a47cbc5674998ad19fc77b6615bfbed482451af7fd9b416b64b0e8f8429449fa9685f2b9c8dc2108544d98');
  +
  +var r    = 
mpw('0068758c313fbf1945f775d95b25866dbc8d001d9c7ef4ffa53774e8c68927a52707f034957247cb5717a5b6d84ae6f6c688dbe59859bd6d03b48237476742afe37cefe36d5b20ee');
  +ack('r.toString(10)', 
'394224984077781794110496797090243013264310697694235133152929357615210591117311039789635553626060843213156329295090794526694846023847676866900261239702547152597222099198190');
  +var s    = 
mpw('00f5c8e975a1da26b2e0acd4f486c4a4231c1e29ee8ecfa03a697761498f5d53ff898afc16945975d328d34a8dcdc6d0613c73fe4f516f5685e23716fe105ed3472c3358b5b4ad41');
  +ack('s.toString(10)', 
'927582646247034536177419741157642737320661633591180227914401573622207818585635957265237189528319320264021523961000220604458498430712577999892194455415491822501994555551041');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('0121b1f8919c4ed41d4676bc6f417dbf7f93c2314c74796642d1b17df4fd04c114ae293707913e2ebb65e173d52c3678c8366eb3c94e7b7ecee53f6b0b625ac62b924e3d6b975ff3');
  +var u2   = 
mpw('01afbf8d1d31511413eb6846b32ced90d38e515ff26cb8334ef619677794cc3b92da014e9b0e39bf49d8933d3e998145594128612aeccbfc7004d08777fd90bc197d13dc6238bf0b');
  +var rx   = 
mpw('0668758c313fbf1945f775d95b25866dbc8d001d9c7ef4ffa53774e8c68927a52707f034cebb3a712be6d164f2ffe1897b069f8fbaec4650b5372ddfa31cdeccfa78569197cf50f1');
  +var v    = 
mpw('0068758c313fbf1945f775d95b25866dbc8d001d9c7ef4ffa53774e8c68927a52707f034957247cb5717a5b6d84ae6f6c688dbe59859bd6d03b48237476742afe37cefe36d5b20ee');
  +
  +// ##############################################################
  +// Curve B-571
  +// ##############################################################
  +print("===== B-571");
  +var n    = 
mpw('03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe661ce18ff55987308059b186823851ec7dd9ca1161de93d5174d66e8382e9bb2fe84e47');
  +ack('n.toString(10)', 
'3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285703');
  +
  +var d    = 
mpw('0003cce32ba00dc3a7eefc9eb6f6cbfb9c5f0e57f532b7ee6826d4a75d0e756fd533900f2cea8cccc50ee22ce079398d371ec4a2ec45cc24b887606678e9c67453d0f5e768e9d752');
  +var qx   = 
mpw('00310ead2bef3ddb84f9fc1777a7ee179ffcb77aab497bdc00e290597a5fce306fe419d2f1f208e54850516526db8e03b0519bef60e3a3cc8198fbca8c469acfe46ab70d5c31874f');
  +var qy   = 
mpw('0373ce6ea68f55d1501d5203aca03c5ab709a337a8e03b03838f47c06762065fbdd08a102a08c42ff1760145be54d8606d326ea22a54df034fac30988049820beba2b0af9f6404b3');
  +
  +var k    = 
mpw('01062ff6d95c49ac610cb9af9900d59c288669c3626306db7eb7f119499ba1d54cb6be888758caada69952675cc0cd4999176879bc302a7e2a5118dfc7d538da114ccac2baf9ad08');
  +var msg  = "Example of ECDSA with B-571"
  +
  +var rx   = 
mpw('00e17447e422a2c0085190354ac149210c1137a92c10f9b14d225e6510da76b19ef44d39390dd9d808c9dfbae67d9cf0e7be79a9e72fa8fa1dfe89f43fb6d093a6ceb30e136eaba3');
  +var e    = 
mpw('60edef7da1d9d35a77d1da441ebb63454501f2bb1af8a4c49d281298e5f4d4e6b7e9bce4b66b2512bf590288b57915bfd3aed2c2604a5c574107df674faf9779');
  +var kinv = 
mpw('028c3ae12bd7922b837fe05066136bb45eda0337d39e31c3d4b9164c93f17fd7549471eb0385fccea8768dd6e5925adf1d1888826ff6aecc48f3db39905d46a644eb2f0c3a3dcbbd');
  +
  +var r    = 
mpw('00e17447e422a2c0085190354ac149210c1137a92c10f9b14d225e6510da76b19ef44d39390dd9d808c9dfbae67d9cf0e7be79a9e72fa8fa1dfe89f43fb6d093a6ceb30e136eaba3');
  +ack('r.toString(10)', 
'850855762239502026591058023510563289273348857487181767834743944602362175979470988825265490247148142789747022832891719663177918797433599028444576028042439884754109942639523');
  +var s    = 
mpw('00624e852c7b6a061b4b39a907b518200fed380fd692c9ae147c5250f4852434afa24a1ca5062c48e5fc217fb689ab3a7266b5522f176f32a5cea22d6bf2820d349e4193bcee75c8');
  +ack('s.toString(10)', 
'371005865765721334746413249075321341103084481747665324048935832930246035334494733931256416306196179464892337407155249561524652370280994639556574699020735912775043796334024');
  +
  +var w    = mpw(s, n, "invm");
  +var u1   = 
mpw('01a73be1676983c3b1583a8504c46e290ac2ffc3fd7866e6242ae2a3dc40f362e2b799173698175f7f094e9fa06ee09b3aa7d284549b8fcf4671051b829aa38ef59d066b3554de19');
  +var u2   = 
mpw('010df449e4fb576079a7d63a59f000da5e24da7800fa29bf321084ed549834b1ed95e5baf48fd65830f2bd0957b6f709dac14af90be29993fe428bd7df93206cc9ed9296230b8657');
  +var rx   = 
mpw('00e17447e422a2c0085190354ac149210c1137a92c10f9b14d225e6510da76b19ef44d39390dd9d808c9dfbae67d9cf0e7be79a9e72fa8fa1dfe89f43fb6d093a6ceb30e136eaba3');
  +var v    = 
mpw('00e17447e422a2c0085190354ac149210c1137a92c10f9b14d225e6510da76b19ef44d39390dd9d808c9dfbae67d9cf0e7be79a9e72fa8fa1dfe89f43fb6d093a6ceb30e136eaba3');
  +
   if (loglvl) print("<-- Mpw.js");
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to