1..147
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 20 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 21 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 22 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 23 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 26 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 27 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 28 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 29 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 30 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 31 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 32 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 33 Ecurve validate secp256k1 should not validate P where P = O
ok 34 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 35 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 36 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 37 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 43 getCurveByName(curveName) when given secp128r1 should return the curve
ok 44 getCurveByName(curveName) when given secp160k1 should return the curve
ok 45 getCurveByName(curveName) when given secp160r1 should return the curve
ok 46 getCurveByName(curveName) when given secp192k1 should return the curve
ok 47 getCurveByName(curveName) when given secp192r1 should return the curve
ok 48 getCurveByName(curveName) when given secp256k1 should return the curve
ok 49 getCurveByName(curveName) when given secp256r1 should return the curve
ok 50 getCurveByName(curveName) when an unknown curve is requested should return null
ok 51 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 52 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 53 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 54 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 55 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 56 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 57 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 58 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 59 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 60 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 61 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 62 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 63 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 64 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 65 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 66 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 67 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 68 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 69 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 70 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 71 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 72 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 73 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 74 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 75 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 76 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 77 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 78 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 79 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 80 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 81 NIST Vectors p224sha1 missing secp224r1 # SKIP -
ok 82 NIST Vectors p224sha256 missing secp224r1 # SKIP -
ok 83 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 84 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 85 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 86 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 87 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 88 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 89 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 90 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 91 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 92 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 93 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 94 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 95 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 96 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 97 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 98 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 99 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 100 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 101 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 102 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 103 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 104 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 105 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 106 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 107 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 108 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 109 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 110 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 111 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 112 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 113 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 114 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 115 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 116 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 117 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 118 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 119 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 120 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 121 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 122 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 123 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 124 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 125 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 126 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 127 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 128 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 129 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 130 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 131 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 132 Point decodeFrom throws on Invalid sequence tag
ok 133 Point decodeFrom throws on Sequence too short
ok 134 Point decodeFrom throws on Sequence too short (compressed)
ok 135 Point decodeFrom throws on Sequence too long
ok 136 Point decodeFrom throws on Sequence too long (compressed)
ok 137 Point getEncoded compression defaults to Point field flag
ok 138 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 139 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 140 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 141 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 142 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 143 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 144 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 145 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 146 Point equals secp256k1 should return true when points are equal
ok 147 Point equals secp256k1 should return false when points are not equal
# tests 142
# pass 142
# fail 0
1..147
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 20 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 21 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 22 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 23 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 26 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 27 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 28 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 29 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 30 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 31 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 32 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 33 Ecurve validate secp256k1 should not validate P where P = O
ok 34 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 35 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 36 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 37 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 43 getCurveByName(curveName) when given secp128r1 should return the curve
ok 44 getCurveByName(curveName) when given secp160k1 should return the curve
ok 45 getCurveByName(curveName) when given secp160r1 should return the curve
ok 46 getCurveByName(curveName) when given secp192k1 should return the curve
ok 47 getCurveByName(curveName) when given secp192r1 should return the curve
ok 48 getCurveByName(curveName) when given secp256k1 should return the curve
ok 49 getCurveByName(curveName) when given secp256r1 should return the curve
ok 50 getCurveByName(curveName) when an unknown curve is requested should return null
ok 51 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 52 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 53 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 54 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 55 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 56 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 57 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 58 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 59 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 60 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 61 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 62 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 63 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 64 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 65 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 66 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 67 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 68 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 69 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 70 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 71 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 72 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 73 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 74 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 75 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 76 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 77 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 78 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 79 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 80 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 81 NIST Vectors p224sha1 missing secp224r1 # SKIP -
ok 82 NIST Vectors p224sha256 missing secp224r1 # SKIP -
ok 83 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 84 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 85 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 86 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 87 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 88 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 89 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 90 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 91 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 92 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 93 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 94 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 95 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 96 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 97 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 98 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 99 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 100 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 101 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 102 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 103 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 104 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 105 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 106 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 107 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 108 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 109 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 110 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 111 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 112 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 113 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 114 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 115 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 116 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 117 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 118 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 119 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 120 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 121 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 122 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 123 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 124 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 125 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 126 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 127 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 128 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 129 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 130 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 131 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 132 Point decodeFrom throws on Invalid sequence tag
ok 133 Point decodeFrom throws on Sequence too short
ok 134 Point decodeFrom throws on Sequence too short (compressed)
ok 135 Point decodeFrom throws on Sequence too long
ok 136 Point decodeFrom throws on Sequence too long (compressed)
ok 137 Point getEncoded compression defaults to Point field flag
ok 138 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 139 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 140 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 141 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 142 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 143 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 144 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 145 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 146 Point equals secp256k1 should return true when points are equal
ok 147 Point equals secp256k1 should return false when points are not equal
# tests 142
# pass 142
# fail 0
1..147
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 20 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 21 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 22 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 23 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 26 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 27 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 28 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 29 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 30 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 31 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 32 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 33 Ecurve validate secp256k1 should not validate P where P = O
ok 34 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 35 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 36 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 37 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 43 getCurveByName(curveName) when given secp128r1 should return the curve
ok 44 getCurveByName(curveName) when given secp160k1 should return the curve
ok 45 getCurveByName(curveName) when given secp160r1 should return the curve
ok 46 getCurveByName(curveName) when given secp192k1 should return the curve
ok 47 getCurveByName(curveName) when given secp192r1 should return the curve
ok 48 getCurveByName(curveName) when given secp256k1 should return the curve
ok 49 getCurveByName(curveName) when given secp256r1 should return the curve
ok 50 getCurveByName(curveName) when an unknown curve is requested should return null
ok 51 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 52 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 53 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 54 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 55 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 56 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 57 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 58 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 59 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 60 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 61 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 62 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 63 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 64 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 65 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 66 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 67 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 68 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 69 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 70 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 71 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 72 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 73 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 74 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 75 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 76 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 77 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 78 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 79 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 80 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 81 NIST Vectors p224sha1 missing secp224r1 # SKIP -
ok 82 NIST Vectors p224sha256 missing secp224r1 # SKIP -
ok 83 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 84 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 85 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 86 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 87 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 88 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 89 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 90 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 91 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 92 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 93 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 94 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 95 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 96 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 97 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 98 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 99 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 100 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 101 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 102 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 103 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 104 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 105 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 106 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 107 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 108 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 109 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 110 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 111 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 112 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 113 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 114 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 115 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 116 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 117 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 118 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 119 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 120 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 121 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 122 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 123 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 124 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 125 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 126 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 127 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 128 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 129 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 130 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 131 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 132 Point decodeFrom throws on Invalid sequence tag
ok 133 Point decodeFrom throws on Sequence too short
ok 134 Point decodeFrom throws on Sequence too short (compressed)
ok 135 Point decodeFrom throws on Sequence too long
ok 136 Point decodeFrom throws on Sequence too long (compressed)
ok 137 Point getEncoded compression defaults to Point field flag
ok 138 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 139 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 140 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 141 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 142 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 143 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 144 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 145 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 146 Point equals secp256k1 should return true when points are equal
ok 147 Point equals secp256k1 should return false when points are not equal
# tests 142
# pass 142
# fail 0
1..147
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 20 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 21 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 22 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 23 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 26 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 27 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 28 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 29 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 30 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 31 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 32 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 33 Ecurve validate secp256k1 should not validate P where P = O
ok 34 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 35 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 36 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 37 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 43 getCurveByName(curveName) when given secp128r1 should return the curve
ok 44 getCurveByName(curveName) when given secp160k1 should return the curve
ok 45 getCurveByName(curveName) when given secp160r1 should return the curve
ok 46 getCurveByName(curveName) when given secp192k1 should return the curve
ok 47 getCurveByName(curveName) when given secp192r1 should return the curve
ok 48 getCurveByName(curveName) when given secp256k1 should return the curve
ok 49 getCurveByName(curveName) when given secp256r1 should return the curve
ok 50 getCurveByName(curveName) when an unknown curve is requested should return null
ok 51 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 52 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 53 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 54 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 55 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 56 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 57 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 58 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 59 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 60 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 61 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 62 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 63 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 64 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 65 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 66 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 67 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 68 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 69 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 70 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 71 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 72 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 73 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 74 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 75 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 76 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 77 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 78 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 79 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 80 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 81 NIST Vectors p224sha1 missing secp224r1 # SKIP -
ok 82 NIST Vectors p224sha256 missing secp224r1 # SKIP -
ok 83 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 84 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 85 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 86 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 87 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 88 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 89 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 90 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 91 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 92 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 93 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 94 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 95 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 96 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 97 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 98 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 99 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 100 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 101 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 102 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 103 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 104 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 105 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 106 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 107 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 108 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 109 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 110 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 111 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 112 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 113 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 114 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 115 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 116 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 117 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 118 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 119 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 120 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 121 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 122 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 123 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 124 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 125 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 126 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 127 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 128 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 129 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 130 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 131 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 132 Point decodeFrom throws on Invalid sequence tag
ok 133 Point decodeFrom throws on Sequence too short
ok 134 Point decodeFrom throws on Sequence too short (compressed)
ok 135 Point decodeFrom throws on Sequence too long
ok 136 Point decodeFrom throws on Sequence too long (compressed)
ok 137 Point getEncoded compression defaults to Point field flag
ok 138 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 139 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 140 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 141 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 142 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 143 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 144 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 145 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 146 Point equals secp256k1 should return true when points are equal
ok 147 Point equals secp256k1 should return false when points are not equal
# tests 142
# pass 142
# fail 0
1..147
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 20 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 21 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 22 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 23 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 26 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 27 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 28 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 29 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 30 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 31 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 32 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 33 Ecurve validate secp256k1 should not validate P where P = O
ok 34 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 35 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 36 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 37 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 43 getCurveByName(curveName) when given secp128r1 should return the curve
ok 44 getCurveByName(curveName) when given secp160k1 should return the curve
ok 45 getCurveByName(curveName) when given secp160r1 should return the curve
ok 46 getCurveByName(curveName) when given secp192k1 should return the curve
ok 47 getCurveByName(curveName) when given secp192r1 should return the curve
ok 48 getCurveByName(curveName) when given secp256k1 should return the curve
ok 49 getCurveByName(curveName) when given secp256r1 should return the curve
ok 50 getCurveByName(curveName) when an unknown curve is requested should return null
ok 51 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 52 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 53 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 54 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 55 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 56 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 57 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 58 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 59 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 60 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 61 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 62 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 63 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 64 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 65 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 66 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 67 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 68 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 69 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 70 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 71 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 72 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 73 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 74 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 75 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 76 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 77 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 78 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 79 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 80 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 81 NIST Vectors p224sha1 missing secp224r1 # SKIP -
ok 82 NIST Vectors p224sha256 missing secp224r1 # SKIP -
ok 83 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 84 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 85 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 86 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 87 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 88 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 89 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 90 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 91 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 92 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 93 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 94 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 95 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 96 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 97 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 98 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 99 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 100 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 101 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 102 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 103 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 104 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 105 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 106 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 107 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 108 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 109 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 110 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 111 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 112 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 113 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 114 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 115 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 116 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 117 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 118 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 119 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 120 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 121 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 122 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 123 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 124 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 125 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 126 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 127 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 128 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 129 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 130 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 131 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 132 Point decodeFrom throws on Invalid sequence tag
ok 133 Point decodeFrom throws on Sequence too short
ok 134 Point decodeFrom throws on Sequence too short (compressed)
ok 135 Point decodeFrom throws on Sequence too long
ok 136 Point decodeFrom throws on Sequence too long (compressed)
ok 137 Point getEncoded compression defaults to Point field flag
ok 138 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 139 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 140 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 141 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 142 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 143 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 144 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 145 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 146 Point equals secp256k1 should return true when points are equal
ok 147 Point equals secp256k1 should return false when points are not equal
# tests 142
# pass 142
# fail 0
1..147
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 20 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 21 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 22 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 23 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 26 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 27 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 28 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 29 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 30 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 31 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 32 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 33 Ecurve validate secp256k1 should not validate P where P = O
ok 34 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 35 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 36 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 37 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 43 getCurveByName(curveName) when given secp128r1 should return the curve
ok 44 getCurveByName(curveName) when given secp160k1 should return the curve
ok 45 getCurveByName(curveName) when given secp160r1 should return the curve
ok 46 getCurveByName(curveName) when given secp192k1 should return the curve
ok 47 getCurveByName(curveName) when given secp192r1 should return the curve
ok 48 getCurveByName(curveName) when given secp256k1 should return the curve
ok 49 getCurveByName(curveName) when given secp256r1 should return the curve
ok 50 getCurveByName(curveName) when an unknown curve is requested should return null
ok 51 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 52 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 53 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 54 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 55 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 56 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 57 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 58 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 59 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 60 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 61 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 62 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 63 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 64 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 65 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 66 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 67 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 68 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 69 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 70 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 71 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 72 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 73 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 74 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 75 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 76 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 77 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 78 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 79 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 80 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 81 NIST Vectors p224sha1 missing secp224r1 # SKIP -
ok 82 NIST Vectors p224sha256 missing secp224r1 # SKIP -
ok 83 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 84 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 85 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 86 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 87 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 88 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 89 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 90 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 91 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 92 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 93 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 94 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 95 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 96 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 97 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 98 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 99 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 100 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 101 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 102 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 103 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 104 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 105 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 106 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 107 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 108 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 109 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 110 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 111 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 112 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 113 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 114 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 115 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 116 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 117 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 118 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 119 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 120 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 121 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 122 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 123 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 124 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 125 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 126 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 127 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 128 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 129 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 130 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 131 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 132 Point decodeFrom throws on Invalid sequence tag
ok 133 Point decodeFrom throws on Sequence too short
ok 134 Point decodeFrom throws on Sequence too short (compressed)
ok 135 Point decodeFrom throws on Sequence too long
ok 136 Point decodeFrom throws on Sequence too long (compressed)
ok 137 Point getEncoded compression defaults to Point field flag
ok 138 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 139 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 140 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 141 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 142 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 143 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 144 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 145 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 146 Point equals secp256k1 should return true when points are equal
ok 147 Point equals secp256k1 should return false when points are not equal
# tests 142
# pass 142
# fail 0
1..182
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 20 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 21 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 22 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 23 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 26 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 27 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 28 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 29 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 30 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 31 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 32 Ecurve validate should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 33 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 34 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 35 Ecurve validate secp256k1 should not validate P where P = O
ok 36 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 37 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 43 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 44 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 45 Ecurve pointFromX TODO: secp224r1, currently not supported # SKIP -
ok 46 getCurveByName(curveName) when given secp128r1 should return the curve
ok 47 getCurveByName(curveName) when given secp160k1 should return the curve
ok 48 getCurveByName(curveName) when given secp160r1 should return the curve
ok 49 getCurveByName(curveName) when given secp192k1 should return the curve
ok 50 getCurveByName(curveName) when given secp192r1 should return the curve
ok 51 getCurveByName(curveName) when given secp224r1 should return the curve
ok 52 getCurveByName(curveName) when given secp256k1 should return the curve
ok 53 getCurveByName(curveName) when given secp256r1 should return the curve
ok 54 getCurveByName(curveName) when an unknown curve is requested should return null
ok 55 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 56 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 57 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 58 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 59 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 60 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 61 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 62 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 63 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 64 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 65 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 66 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 67 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 68 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 69 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 70 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 71 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 72 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 73 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 74 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 75 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 76 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 77 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 78 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 79 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 80 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 81 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 82 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 83 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 84 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 85 NIST Vectors p224sha1 derives Q for 97c4b796e1639dd1035b708fc00dc7ba1682cec44a1002a1a820619f correctly
ok 86 NIST Vectors p224sha1 derives Q for e6f0a6ab81b7bd50dc5581b03d43308fb28356408392e29a5321ca7f correctly
ok 87 NIST Vectors p224sha1 derives Q for 3ad83662320c54cebad24be5de2ecbcbe30c2b69aa639ebe44a23654 correctly
ok 88 NIST Vectors p224sha1 derives Q for 9ac287e839788adac320d3157d36ed3f41e558381573a14d49afb201 correctly
ok 89 NIST Vectors p224sha1 derives Q for 4af8ad116c393082f245904b1e062ff32a818cf0d9974ad8046b363a correctly
ok 90 NIST Vectors p224sha1 derives Q for 2d90465e11c6ee4104f283ff4019779c5c9d5d0665e8552c6d58eec5 correctly
ok 91 NIST Vectors p224sha1 derives Q for 6ec68008dfba890356284849d5529d0a7405fb10c9338ff2092004a6 correctly
ok 92 NIST Vectors p224sha1 derives Q for 26b872a198bd4f39f9eff3d6038b49cf067611dc4e684ef24c1cf343 correctly
ok 93 NIST Vectors p224sha1 derives Q for 74cac3c4683b5b848832ce2c3157d1f4748ae2942a04f17e9c612956 correctly
ok 94 NIST Vectors p224sha1 derives Q for c6eb83bf50449807dd1b12946b4bb29aba4ccfd1fe9ef0203fd3440f correctly
ok 95 NIST Vectors p224sha1 derives Q for b89acbaa56807917b4d1325858a1d28993d8090808048a559ddcd343 correctly
ok 96 NIST Vectors p224sha1 derives Q for 19c9cbdecd6a0ab775c4101efa1a009efc2865a384ce232f8ac1873e correctly
ok 97 NIST Vectors p224sha1 derives Q for 41bb33d169c75ccf8ba2d5f5138fb5b6be4dc8fdcf53a8fdaa9cea72 correctly
ok 98 NIST Vectors p224sha1 derives Q for 36dd2974e764b3993477e8474f47f8aca2d3da794cf3ed76d59e42b2 correctly
ok 99 NIST Vectors p224sha1 derives Q for 6d423859ec293329a02a55659453059f130be9f70b38be8bc57b181e correctly
ok 100 NIST Vectors p224sha256 derives Q for 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa correctly
ok 101 NIST Vectors p224sha256 derives Q for 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972 correctly
ok 102 NIST Vectors p224sha256 derives Q for f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170 correctly
ok 103 NIST Vectors p224sha256 derives Q for c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85 correctly
ok 104 NIST Vectors p224sha256 derives Q for 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6 correctly
ok 105 NIST Vectors p224sha256 derives Q for 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39 correctly
ok 106 NIST Vectors p224sha256 derives Q for 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6 correctly
ok 107 NIST Vectors p224sha256 derives Q for 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b correctly
ok 108 NIST Vectors p224sha256 derives Q for 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b correctly
ok 109 NIST Vectors p224sha256 derives Q for 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8 correctly
ok 110 NIST Vectors p224sha256 derives Q for e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784 correctly
ok 111 NIST Vectors p224sha256 derives Q for 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c correctly
ok 112 NIST Vectors p224sha256 derives Q for 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583 correctly
ok 113 NIST Vectors p224sha256 derives Q for 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2 correctly
ok 114 NIST Vectors p224sha256 derives Q for f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc correctly
ok 115 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 116 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 117 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 118 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 119 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 120 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 121 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 122 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 123 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 124 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 125 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 126 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 127 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 128 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 129 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 130 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 131 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 132 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 133 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 134 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 135 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 136 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 137 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 138 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 139 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 140 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 141 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 142 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 143 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 144 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 145 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 146 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 147 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 148 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 149 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 150 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 151 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 152 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 153 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 154 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 155 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 156 Point multiply gives (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) for 1 on secp224r1
ok 157 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 158 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 159 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 160 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 161 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 162 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 163 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 164 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 165 Point decodeFrom TODO: secp224r1, currently not supported # SKIP -
ok 166 Point decodeFrom throws on Invalid sequence tag
ok 167 Point decodeFrom throws on Sequence too short
ok 168 Point decodeFrom throws on Sequence too short (compressed)
ok 169 Point decodeFrom throws on Sequence too long
ok 170 Point decodeFrom throws on Sequence too long (compressed)
ok 171 Point getEncoded compression defaults to Point field flag
ok 172 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 173 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 174 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 175 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 176 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 177 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 178 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 179 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 180 Point getEncoded encodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 on secp224r1 correctly
ok 181 Point equals secp256k1 should return true when points are equal
ok 182 Point equals secp256k1 should return false when points are not equal
# tests 177
# pass 177
# fail 0
1..182
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 20 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 21 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 22 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 23 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 26 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 27 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 28 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 29 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 30 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 31 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 32 Ecurve validate should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 33 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 34 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 35 Ecurve validate secp256k1 should not validate P where P = O
ok 36 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 37 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 43 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 44 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 45 Ecurve pointFromX TODO: secp224r1, currently not supported # SKIP -
ok 46 getCurveByName(curveName) when given secp128r1 should return the curve
ok 47 getCurveByName(curveName) when given secp160k1 should return the curve
ok 48 getCurveByName(curveName) when given secp160r1 should return the curve
ok 49 getCurveByName(curveName) when given secp192k1 should return the curve
ok 50 getCurveByName(curveName) when given secp192r1 should return the curve
ok 51 getCurveByName(curveName) when given secp224r1 should return the curve
ok 52 getCurveByName(curveName) when given secp256k1 should return the curve
ok 53 getCurveByName(curveName) when given secp256r1 should return the curve
ok 54 getCurveByName(curveName) when an unknown curve is requested should return null
ok 55 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 56 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 57 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 58 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 59 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 60 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 61 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 62 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 63 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 64 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 65 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 66 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 67 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 68 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 69 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 70 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 71 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 72 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 73 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 74 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 75 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 76 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 77 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 78 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 79 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 80 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 81 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 82 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 83 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 84 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 85 NIST Vectors p224sha1 derives Q for 97c4b796e1639dd1035b708fc00dc7ba1682cec44a1002a1a820619f correctly
ok 86 NIST Vectors p224sha1 derives Q for e6f0a6ab81b7bd50dc5581b03d43308fb28356408392e29a5321ca7f correctly
ok 87 NIST Vectors p224sha1 derives Q for 3ad83662320c54cebad24be5de2ecbcbe30c2b69aa639ebe44a23654 correctly
ok 88 NIST Vectors p224sha1 derives Q for 9ac287e839788adac320d3157d36ed3f41e558381573a14d49afb201 correctly
ok 89 NIST Vectors p224sha1 derives Q for 4af8ad116c393082f245904b1e062ff32a818cf0d9974ad8046b363a correctly
ok 90 NIST Vectors p224sha1 derives Q for 2d90465e11c6ee4104f283ff4019779c5c9d5d0665e8552c6d58eec5 correctly
ok 91 NIST Vectors p224sha1 derives Q for 6ec68008dfba890356284849d5529d0a7405fb10c9338ff2092004a6 correctly
ok 92 NIST Vectors p224sha1 derives Q for 26b872a198bd4f39f9eff3d6038b49cf067611dc4e684ef24c1cf343 correctly
ok 93 NIST Vectors p224sha1 derives Q for 74cac3c4683b5b848832ce2c3157d1f4748ae2942a04f17e9c612956 correctly
ok 94 NIST Vectors p224sha1 derives Q for c6eb83bf50449807dd1b12946b4bb29aba4ccfd1fe9ef0203fd3440f correctly
ok 95 NIST Vectors p224sha1 derives Q for b89acbaa56807917b4d1325858a1d28993d8090808048a559ddcd343 correctly
ok 96 NIST Vectors p224sha1 derives Q for 19c9cbdecd6a0ab775c4101efa1a009efc2865a384ce232f8ac1873e correctly
ok 97 NIST Vectors p224sha1 derives Q for 41bb33d169c75ccf8ba2d5f5138fb5b6be4dc8fdcf53a8fdaa9cea72 correctly
ok 98 NIST Vectors p224sha1 derives Q for 36dd2974e764b3993477e8474f47f8aca2d3da794cf3ed76d59e42b2 correctly
ok 99 NIST Vectors p224sha1 derives Q for 6d423859ec293329a02a55659453059f130be9f70b38be8bc57b181e correctly
ok 100 NIST Vectors p224sha256 derives Q for 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa correctly
ok 101 NIST Vectors p224sha256 derives Q for 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972 correctly
ok 102 NIST Vectors p224sha256 derives Q for f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170 correctly
ok 103 NIST Vectors p224sha256 derives Q for c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85 correctly
ok 104 NIST Vectors p224sha256 derives Q for 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6 correctly
ok 105 NIST Vectors p224sha256 derives Q for 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39 correctly
ok 106 NIST Vectors p224sha256 derives Q for 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6 correctly
ok 107 NIST Vectors p224sha256 derives Q for 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b correctly
ok 108 NIST Vectors p224sha256 derives Q for 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b correctly
ok 109 NIST Vectors p224sha256 derives Q for 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8 correctly
ok 110 NIST Vectors p224sha256 derives Q for e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784 correctly
ok 111 NIST Vectors p224sha256 derives Q for 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c correctly
ok 112 NIST Vectors p224sha256 derives Q for 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583 correctly
ok 113 NIST Vectors p224sha256 derives Q for 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2 correctly
ok 114 NIST Vectors p224sha256 derives Q for f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc correctly
ok 115 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 116 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 117 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 118 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 119 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 120 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 121 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 122 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 123 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 124 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 125 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 126 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 127 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 128 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 129 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 130 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 131 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 132 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 133 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 134 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 135 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 136 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 137 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 138 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 139 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 140 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 141 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 142 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 143 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 144 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 145 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 146 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 147 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 148 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 149 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 150 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 151 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 152 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 153 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 154 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 155 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 156 Point multiply gives (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) for 1 on secp224r1
ok 157 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 158 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 159 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 160 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 161 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 162 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 163 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 164 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 165 Point decodeFrom TODO: secp224r1, currently not supported # SKIP -
ok 166 Point decodeFrom throws on Invalid sequence tag
ok 167 Point decodeFrom throws on Sequence too short
ok 168 Point decodeFrom throws on Sequence too short (compressed)
ok 169 Point decodeFrom throws on Sequence too long
ok 170 Point decodeFrom throws on Sequence too long (compressed)
ok 171 Point getEncoded compression defaults to Point field flag
ok 172 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 173 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 174 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 175 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 176 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 177 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 178 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 179 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 180 Point getEncoded encodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 on secp224r1 correctly
ok 181 Point equals secp256k1 should return true when points are equal
ok 182 Point equals secp256k1 should return false when points are not equal
# tests 177
# pass 177
# fail 0
1..182
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 20 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 21 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 22 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 23 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 26 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 27 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 28 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 29 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 30 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 31 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 32 Ecurve validate should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 33 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 34 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 35 Ecurve validate secp256k1 should not validate P where P = O
ok 36 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 37 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 43 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 44 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 45 Ecurve pointFromX TODO: secp224r1, currently not supported # SKIP -
ok 46 getCurveByName(curveName) when given secp128r1 should return the curve
ok 47 getCurveByName(curveName) when given secp160k1 should return the curve
ok 48 getCurveByName(curveName) when given secp160r1 should return the curve
ok 49 getCurveByName(curveName) when given secp192k1 should return the curve
ok 50 getCurveByName(curveName) when given secp192r1 should return the curve
ok 51 getCurveByName(curveName) when given secp224r1 should return the curve
ok 52 getCurveByName(curveName) when given secp256k1 should return the curve
ok 53 getCurveByName(curveName) when given secp256r1 should return the curve
ok 54 getCurveByName(curveName) when an unknown curve is requested should return null
ok 55 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 56 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 57 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 58 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 59 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 60 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 61 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 62 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 63 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 64 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 65 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 66 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 67 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 68 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 69 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 70 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 71 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 72 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 73 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 74 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 75 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 76 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 77 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 78 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 79 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 80 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 81 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 82 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 83 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 84 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 85 NIST Vectors p224sha1 derives Q for 97c4b796e1639dd1035b708fc00dc7ba1682cec44a1002a1a820619f correctly
ok 86 NIST Vectors p224sha1 derives Q for e6f0a6ab81b7bd50dc5581b03d43308fb28356408392e29a5321ca7f correctly
ok 87 NIST Vectors p224sha1 derives Q for 3ad83662320c54cebad24be5de2ecbcbe30c2b69aa639ebe44a23654 correctly
ok 88 NIST Vectors p224sha1 derives Q for 9ac287e839788adac320d3157d36ed3f41e558381573a14d49afb201 correctly
ok 89 NIST Vectors p224sha1 derives Q for 4af8ad116c393082f245904b1e062ff32a818cf0d9974ad8046b363a correctly
ok 90 NIST Vectors p224sha1 derives Q for 2d90465e11c6ee4104f283ff4019779c5c9d5d0665e8552c6d58eec5 correctly
ok 91 NIST Vectors p224sha1 derives Q for 6ec68008dfba890356284849d5529d0a7405fb10c9338ff2092004a6 correctly
ok 92 NIST Vectors p224sha1 derives Q for 26b872a198bd4f39f9eff3d6038b49cf067611dc4e684ef24c1cf343 correctly
ok 93 NIST Vectors p224sha1 derives Q for 74cac3c4683b5b848832ce2c3157d1f4748ae2942a04f17e9c612956 correctly
ok 94 NIST Vectors p224sha1 derives Q for c6eb83bf50449807dd1b12946b4bb29aba4ccfd1fe9ef0203fd3440f correctly
ok 95 NIST Vectors p224sha1 derives Q for b89acbaa56807917b4d1325858a1d28993d8090808048a559ddcd343 correctly
ok 96 NIST Vectors p224sha1 derives Q for 19c9cbdecd6a0ab775c4101efa1a009efc2865a384ce232f8ac1873e correctly
ok 97 NIST Vectors p224sha1 derives Q for 41bb33d169c75ccf8ba2d5f5138fb5b6be4dc8fdcf53a8fdaa9cea72 correctly
ok 98 NIST Vectors p224sha1 derives Q for 36dd2974e764b3993477e8474f47f8aca2d3da794cf3ed76d59e42b2 correctly
ok 99 NIST Vectors p224sha1 derives Q for 6d423859ec293329a02a55659453059f130be9f70b38be8bc57b181e correctly
ok 100 NIST Vectors p224sha256 derives Q for 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa correctly
ok 101 NIST Vectors p224sha256 derives Q for 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972 correctly
ok 102 NIST Vectors p224sha256 derives Q for f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170 correctly
ok 103 NIST Vectors p224sha256 derives Q for c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85 correctly
ok 104 NIST Vectors p224sha256 derives Q for 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6 correctly
ok 105 NIST Vectors p224sha256 derives Q for 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39 correctly
ok 106 NIST Vectors p224sha256 derives Q for 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6 correctly
ok 107 NIST Vectors p224sha256 derives Q for 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b correctly
ok 108 NIST Vectors p224sha256 derives Q for 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b correctly
ok 109 NIST Vectors p224sha256 derives Q for 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8 correctly
ok 110 NIST Vectors p224sha256 derives Q for e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784 correctly
ok 111 NIST Vectors p224sha256 derives Q for 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c correctly
ok 112 NIST Vectors p224sha256 derives Q for 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583 correctly
ok 113 NIST Vectors p224sha256 derives Q for 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2 correctly
ok 114 NIST Vectors p224sha256 derives Q for f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc correctly
ok 115 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 116 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 117 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 118 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 119 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 120 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 121 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 122 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 123 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 124 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 125 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 126 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 127 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 128 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 129 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 130 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 131 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 132 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 133 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 134 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 135 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 136 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 137 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 138 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 139 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 140 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 141 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 142 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 143 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 144 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 145 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 146 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 147 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 148 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 149 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 150 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 151 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 152 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 153 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 154 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 155 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 156 Point multiply gives (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) for 1 on secp224r1
ok 157 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 158 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 159 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 160 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 161 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 162 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 163 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 164 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 165 Point decodeFrom TODO: secp224r1, currently not supported # SKIP -
ok 166 Point decodeFrom throws on Invalid sequence tag
ok 167 Point decodeFrom throws on Sequence too short
ok 168 Point decodeFrom throws on Sequence too short (compressed)
ok 169 Point decodeFrom throws on Sequence too long
ok 170 Point decodeFrom throws on Sequence too long (compressed)
ok 171 Point getEncoded compression defaults to Point field flag
ok 172 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 173 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 174 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 175 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 176 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 177 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 178 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 179 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 180 Point getEncoded encodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 on secp224r1 correctly
ok 181 Point equals secp256k1 should return true when points are equal
ok 182 Point equals secp256k1 should return false when points are not equal
# tests 177
# pass 177
# fail 0
1..182
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 20 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 21 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 22 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 23 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 26 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 27 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 28 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 29 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 30 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 31 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 32 Ecurve validate should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 33 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 34 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 35 Ecurve validate secp256k1 should not validate P where P = O
ok 36 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 37 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 43 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 44 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 45 Ecurve pointFromX TODO: secp224r1, currently not supported # SKIP -
ok 46 getCurveByName(curveName) when given secp128r1 should return the curve
ok 47 getCurveByName(curveName) when given secp160k1 should return the curve
ok 48 getCurveByName(curveName) when given secp160r1 should return the curve
ok 49 getCurveByName(curveName) when given secp192k1 should return the curve
ok 50 getCurveByName(curveName) when given secp192r1 should return the curve
ok 51 getCurveByName(curveName) when given secp224r1 should return the curve
ok 52 getCurveByName(curveName) when given secp256k1 should return the curve
ok 53 getCurveByName(curveName) when given secp256r1 should return the curve
ok 54 getCurveByName(curveName) when an unknown curve is requested should return null
ok 55 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 56 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 57 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 58 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 59 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 60 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 61 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 62 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 63 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 64 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 65 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 66 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 67 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 68 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 69 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 70 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 71 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 72 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 73 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 74 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 75 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 76 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 77 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 78 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 79 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 80 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 81 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 82 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 83 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 84 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 85 NIST Vectors p224sha1 derives Q for 97c4b796e1639dd1035b708fc00dc7ba1682cec44a1002a1a820619f correctly
ok 86 NIST Vectors p224sha1 derives Q for e6f0a6ab81b7bd50dc5581b03d43308fb28356408392e29a5321ca7f correctly
ok 87 NIST Vectors p224sha1 derives Q for 3ad83662320c54cebad24be5de2ecbcbe30c2b69aa639ebe44a23654 correctly
ok 88 NIST Vectors p224sha1 derives Q for 9ac287e839788adac320d3157d36ed3f41e558381573a14d49afb201 correctly
ok 89 NIST Vectors p224sha1 derives Q for 4af8ad116c393082f245904b1e062ff32a818cf0d9974ad8046b363a correctly
ok 90 NIST Vectors p224sha1 derives Q for 2d90465e11c6ee4104f283ff4019779c5c9d5d0665e8552c6d58eec5 correctly
ok 91 NIST Vectors p224sha1 derives Q for 6ec68008dfba890356284849d5529d0a7405fb10c9338ff2092004a6 correctly
ok 92 NIST Vectors p224sha1 derives Q for 26b872a198bd4f39f9eff3d6038b49cf067611dc4e684ef24c1cf343 correctly
ok 93 NIST Vectors p224sha1 derives Q for 74cac3c4683b5b848832ce2c3157d1f4748ae2942a04f17e9c612956 correctly
ok 94 NIST Vectors p224sha1 derives Q for c6eb83bf50449807dd1b12946b4bb29aba4ccfd1fe9ef0203fd3440f correctly
ok 95 NIST Vectors p224sha1 derives Q for b89acbaa56807917b4d1325858a1d28993d8090808048a559ddcd343 correctly
ok 96 NIST Vectors p224sha1 derives Q for 19c9cbdecd6a0ab775c4101efa1a009efc2865a384ce232f8ac1873e correctly
ok 97 NIST Vectors p224sha1 derives Q for 41bb33d169c75ccf8ba2d5f5138fb5b6be4dc8fdcf53a8fdaa9cea72 correctly
ok 98 NIST Vectors p224sha1 derives Q for 36dd2974e764b3993477e8474f47f8aca2d3da794cf3ed76d59e42b2 correctly
ok 99 NIST Vectors p224sha1 derives Q for 6d423859ec293329a02a55659453059f130be9f70b38be8bc57b181e correctly
ok 100 NIST Vectors p224sha256 derives Q for 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa correctly
ok 101 NIST Vectors p224sha256 derives Q for 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972 correctly
ok 102 NIST Vectors p224sha256 derives Q for f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170 correctly
ok 103 NIST Vectors p224sha256 derives Q for c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85 correctly
ok 104 NIST Vectors p224sha256 derives Q for 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6 correctly
ok 105 NIST Vectors p224sha256 derives Q for 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39 correctly
ok 106 NIST Vectors p224sha256 derives Q for 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6 correctly
ok 107 NIST Vectors p224sha256 derives Q for 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b correctly
ok 108 NIST Vectors p224sha256 derives Q for 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b correctly
ok 109 NIST Vectors p224sha256 derives Q for 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8 correctly
ok 110 NIST Vectors p224sha256 derives Q for e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784 correctly
ok 111 NIST Vectors p224sha256 derives Q for 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c correctly
ok 112 NIST Vectors p224sha256 derives Q for 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583 correctly
ok 113 NIST Vectors p224sha256 derives Q for 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2 correctly
ok 114 NIST Vectors p224sha256 derives Q for f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc correctly
ok 115 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 116 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 117 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 118 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 119 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 120 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 121 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 122 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 123 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 124 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 125 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 126 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 127 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 128 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 129 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 130 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 131 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 132 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 133 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 134 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 135 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 136 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 137 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 138 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 139 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 140 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 141 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 142 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 143 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 144 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 145 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 146 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 147 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 148 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 149 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 150 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 151 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 152 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 153 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 154 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 155 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 156 Point multiply gives (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) for 1 on secp224r1
ok 157 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 158 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 159 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 160 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 161 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 162 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 163 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 164 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 165 Point decodeFrom TODO: secp224r1, currently not supported # SKIP -
ok 166 Point decodeFrom throws on Invalid sequence tag
ok 167 Point decodeFrom throws on Sequence too short
ok 168 Point decodeFrom throws on Sequence too short (compressed)
ok 169 Point decodeFrom throws on Sequence too long
ok 170 Point decodeFrom throws on Sequence too long (compressed)
ok 171 Point getEncoded compression defaults to Point field flag
ok 172 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 173 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 174 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 175 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 176 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 177 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 178 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 179 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 180 Point getEncoded encodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 on secp224r1 correctly
ok 181 Point equals secp256k1 should return true when points are equal
ok 182 Point equals secp256k1 should return false when points are not equal
# tests 177
# pass 177
# fail 0
1..182
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 20 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 21 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 22 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 23 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 26 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 27 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 28 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 29 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 30 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 31 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 32 Ecurve validate should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 33 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 34 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 35 Ecurve validate secp256k1 should not validate P where P = O
ok 36 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 37 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 43 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 44 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 45 Ecurve pointFromX TODO: secp224r1, currently not supported # SKIP -
ok 46 getCurveByName(curveName) when given secp128r1 should return the curve
ok 47 getCurveByName(curveName) when given secp160k1 should return the curve
ok 48 getCurveByName(curveName) when given secp160r1 should return the curve
ok 49 getCurveByName(curveName) when given secp192k1 should return the curve
ok 50 getCurveByName(curveName) when given secp192r1 should return the curve
ok 51 getCurveByName(curveName) when given secp224r1 should return the curve
ok 52 getCurveByName(curveName) when given secp256k1 should return the curve
ok 53 getCurveByName(curveName) when given secp256r1 should return the curve
ok 54 getCurveByName(curveName) when an unknown curve is requested should return null
ok 55 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 56 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 57 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 58 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 59 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 60 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 61 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 62 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 63 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 64 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 65 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 66 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 67 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 68 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 69 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 70 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 71 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 72 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 73 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 74 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 75 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 76 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 77 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 78 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 79 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 80 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 81 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 82 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 83 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 84 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 85 NIST Vectors p224sha1 derives Q for 97c4b796e1639dd1035b708fc00dc7ba1682cec44a1002a1a820619f correctly
ok 86 NIST Vectors p224sha1 derives Q for e6f0a6ab81b7bd50dc5581b03d43308fb28356408392e29a5321ca7f correctly
ok 87 NIST Vectors p224sha1 derives Q for 3ad83662320c54cebad24be5de2ecbcbe30c2b69aa639ebe44a23654 correctly
ok 88 NIST Vectors p224sha1 derives Q for 9ac287e839788adac320d3157d36ed3f41e558381573a14d49afb201 correctly
ok 89 NIST Vectors p224sha1 derives Q for 4af8ad116c393082f245904b1e062ff32a818cf0d9974ad8046b363a correctly
ok 90 NIST Vectors p224sha1 derives Q for 2d90465e11c6ee4104f283ff4019779c5c9d5d0665e8552c6d58eec5 correctly
ok 91 NIST Vectors p224sha1 derives Q for 6ec68008dfba890356284849d5529d0a7405fb10c9338ff2092004a6 correctly
ok 92 NIST Vectors p224sha1 derives Q for 26b872a198bd4f39f9eff3d6038b49cf067611dc4e684ef24c1cf343 correctly
ok 93 NIST Vectors p224sha1 derives Q for 74cac3c4683b5b848832ce2c3157d1f4748ae2942a04f17e9c612956 correctly
ok 94 NIST Vectors p224sha1 derives Q for c6eb83bf50449807dd1b12946b4bb29aba4ccfd1fe9ef0203fd3440f correctly
ok 95 NIST Vectors p224sha1 derives Q for b89acbaa56807917b4d1325858a1d28993d8090808048a559ddcd343 correctly
ok 96 NIST Vectors p224sha1 derives Q for 19c9cbdecd6a0ab775c4101efa1a009efc2865a384ce232f8ac1873e correctly
ok 97 NIST Vectors p224sha1 derives Q for 41bb33d169c75ccf8ba2d5f5138fb5b6be4dc8fdcf53a8fdaa9cea72 correctly
ok 98 NIST Vectors p224sha1 derives Q for 36dd2974e764b3993477e8474f47f8aca2d3da794cf3ed76d59e42b2 correctly
ok 99 NIST Vectors p224sha1 derives Q for 6d423859ec293329a02a55659453059f130be9f70b38be8bc57b181e correctly
ok 100 NIST Vectors p224sha256 derives Q for 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa correctly
ok 101 NIST Vectors p224sha256 derives Q for 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972 correctly
ok 102 NIST Vectors p224sha256 derives Q for f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170 correctly
ok 103 NIST Vectors p224sha256 derives Q for c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85 correctly
ok 104 NIST Vectors p224sha256 derives Q for 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6 correctly
ok 105 NIST Vectors p224sha256 derives Q for 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39 correctly
ok 106 NIST Vectors p224sha256 derives Q for 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6 correctly
ok 107 NIST Vectors p224sha256 derives Q for 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b correctly
ok 108 NIST Vectors p224sha256 derives Q for 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b correctly
ok 109 NIST Vectors p224sha256 derives Q for 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8 correctly
ok 110 NIST Vectors p224sha256 derives Q for e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784 correctly
ok 111 NIST Vectors p224sha256 derives Q for 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c correctly
ok 112 NIST Vectors p224sha256 derives Q for 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583 correctly
ok 113 NIST Vectors p224sha256 derives Q for 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2 correctly
ok 114 NIST Vectors p224sha256 derives Q for f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc correctly
ok 115 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 116 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 117 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 118 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 119 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 120 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 121 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 122 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 123 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 124 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 125 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 126 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 127 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 128 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 129 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 130 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 131 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 132 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 133 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 134 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 135 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 136 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 137 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 138 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 139 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 140 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 141 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 142 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 143 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 144 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 145 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 146 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 147 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 148 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 149 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 150 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 151 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 152 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 153 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 154 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 155 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 156 Point multiply gives (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) for 1 on secp224r1
ok 157 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 158 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 159 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 160 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 161 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 162 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 163 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 164 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 165 Point decodeFrom TODO: secp224r1, currently not supported # SKIP -
ok 166 Point decodeFrom throws on Invalid sequence tag
ok 167 Point decodeFrom throws on Sequence too short
ok 168 Point decodeFrom throws on Sequence too short (compressed)
ok 169 Point decodeFrom throws on Sequence too long
ok 170 Point decodeFrom throws on Sequence too long (compressed)
ok 171 Point getEncoded compression defaults to Point field flag
ok 172 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 173 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 174 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 175 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 176 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 177 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 178 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 179 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 180 Point getEncoded encodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 on secp224r1 correctly
ok 181 Point equals secp256k1 should return true when points are equal
ok 182 Point equals secp256k1 should return false when points are not equal
# tests 177
# pass 177
# fail 0
1..182
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math pG = P = -P
ok 6 Ecurve Field math nG = O
ok 7 Ecurve Field math should validate field elements properly
ok 8 Ecurve Field math should negate field elements properly
ok 9 Ecurve Field math should add field elements properly
ok 10 Ecurve Field math should multiply field elements properly
ok 11 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 12 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 13 Ecurve isOnCurve should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 14 Ecurve isOnCurve should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 15 Ecurve isOnCurve should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 16 Ecurve isOnCurve should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 17 Ecurve isOnCurve should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 18 Ecurve isOnCurve should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 19 Ecurve isOnCurve should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 20 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 21 Ecurve isOnCurve secp256k1 should return true for a point on the curve
ok 22 Ecurve isOnCurve secp256k1 should return false for points not in the finite field
ok 23 Ecurve isOnCurve secp256k1 should return false for a point not on the curve
ok 24 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 25 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) on secp256k1
ok 26 Ecurve validate should return true for (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) on secp256k1
ok 27 Ecurve validate should return true for (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) on secp256k1
ok 28 Ecurve validate should return true for (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) on secp256k1
ok 29 Ecurve validate should return true for (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) on secp128r1
ok 30 Ecurve validate should return true for (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) on secp160k1
ok 31 Ecurve validate should return true for (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) on secp192k1
ok 32 Ecurve validate should return true for (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) on secp224r1
ok 33 Ecurve validate secp256k1 should validate P where y^2 == x^3 + ax + b (mod p)
ok 34 Ecurve validate secp256k1 should not validate P where y^2 != x^3 + ax + b (mod p)
ok 35 Ecurve validate secp256k1 should not validate P where P = O
ok 36 Ecurve validate secp256k1 TODO: should not validate P where nP = O # SKIP -
ok 37 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 38 Ecurve pointFromX derives Y coordinate 32670510020758816978083085130507043184471273380659243275938904335757337482424 for curve secp256k1 correctly
ok 39 Ecurve pointFromX derives Y coordinate 23739058578904784236915560265041168694780215705543362357495033621678991351768 for curve secp256k1 correctly
ok 40 Ecurve pointFromX derives Y coordinate 93521207164355458151597931319591130635754976513751247168472016818884561919702 for curve secp256k1 correctly
ok 41 Ecurve pointFromX derives Y coordinate 83121579216557378445487899878180864668798711284981320763518679672151497189239 for curve secp256k1 correctly
ok 42 Ecurve pointFromX derives Y coordinate 275621562871047521857442314737465260675 for curve secp128r1 correctly
ok 43 Ecurve pointFromX derives Y coordinate 842365456698940303598009444920994870805149798382 for curve secp160k1 correctly
ok 44 Ecurve pointFromX derives Y coordinate 3805108391982600717572440947423858335415441070543209377693 for curve secp192k1 correctly
ok 45 Ecurve pointFromX TODO: secp224r1, currently not supported # SKIP -
ok 46 getCurveByName(curveName) when given secp128r1 should return the curve
ok 47 getCurveByName(curveName) when given secp160k1 should return the curve
ok 48 getCurveByName(curveName) when given secp160r1 should return the curve
ok 49 getCurveByName(curveName) when given secp192k1 should return the curve
ok 50 getCurveByName(curveName) when given secp192r1 should return the curve
ok 51 getCurveByName(curveName) when given secp224r1 should return the curve
ok 52 getCurveByName(curveName) when given secp256k1 should return the curve
ok 53 getCurveByName(curveName) when given secp256r1 should return the curve
ok 54 getCurveByName(curveName) when an unknown curve is requested should return null
ok 55 NIST Vectors p192sha1 derives Q for e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3 correctly
ok 56 NIST Vectors p192sha1 derives Q for 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244 correctly
ok 57 NIST Vectors p192sha1 derives Q for e16f2aaee2aec553ecd538367a03c3d72bfcc5c7ab4d4ca0 correctly
ok 58 NIST Vectors p192sha1 derives Q for 2a004cbd89d7a6cbe2c39e362fb537845b19cd6c50e08527 correctly
ok 59 NIST Vectors p192sha1 derives Q for 6019413d76958e73e6ba530192f4851097b5ce075e1db438 correctly
ok 60 NIST Vectors p192sha1 derives Q for 3ebdf68ae0d42d48838f042aecff7ebbdf387ad82bfd3501 correctly
ok 61 NIST Vectors p192sha1 derives Q for 0ff956a1d81ab1f5c8a2e87340a2429d4b9b3cec54c58944 correctly
ok 62 NIST Vectors p192sha1 derives Q for f310bd616126225ddf94fb886b62f894585619365aba1317 correctly
ok 63 NIST Vectors p192sha1 derives Q for 63cd3c5af5d24d2f79f43a4b07a21191c7fc5ff5e1704713 correctly
ok 64 NIST Vectors p192sha1 derives Q for e4bce33ca654556851e4d6abf5730c54f8006076261f21dd correctly
ok 65 NIST Vectors p192sha1 derives Q for 42e9997dde0d1b11ec8fd0ff4a01d0b7123deb08b49aa8df correctly
ok 66 NIST Vectors p192sha1 derives Q for a4b8b72bda49d4b607c73c6765088e0ae8c7445bfd98163b correctly
ok 67 NIST Vectors p192sha1 derives Q for 47f1a1abb180378e2e0a69b8f1c5fb3f4b20a0604465d61c correctly
ok 68 NIST Vectors p192sha1 derives Q for 92dbfd711170c0064c3644a55165fc7253905cbc9aab85d4 correctly
ok 69 NIST Vectors p192sha1 derives Q for 27c1fe2d6dd9ade057b52ea08983d4373389b794776033e2 correctly
ok 70 NIST Vectors p192sha256 derives Q for 24edd22f7ddd6fa5bc61fc0653479aa40809ef865cf27a47 correctly
ok 71 NIST Vectors p192sha256 derives Q for e586581cf94fc8be2b9316aee98b42d9d3f446153019f297 correctly
ok 72 NIST Vectors p192sha256 derives Q for 8068271d4019a978ad6a5b642cf20c40c7318ad1b56be09e correctly
ok 73 NIST Vectors p192sha256 derives Q for c1be68b712e2f0ce5f2fb2b854e5566e0e220c4917ed1d50 correctly
ok 74 NIST Vectors p192sha256 derives Q for 97ed7b71cfd2e54fcbc3405eb1954fad518e8c6df1b39310 correctly
ok 75 NIST Vectors p192sha256 derives Q for 0908bba29266577f6187279b4e7b89c69c3c0a954c9b953e correctly
ok 76 NIST Vectors p192sha256 derives Q for cf86e30f9fb18c6b916a09ba6acf0ef6c05035f0b5153be9 correctly
ok 77 NIST Vectors p192sha256 derives Q for 8f7864b2b4e0f6135516d1b00c867953d4523571a1329e7b correctly
ok 78 NIST Vectors p192sha256 derives Q for 5e3c2eae83ee1bc82619c86a95524c288919e9de4ad0a521 correctly
ok 79 NIST Vectors p192sha256 derives Q for 29ac61422184d4e49b867afdb3eeb2f40df2e0bf3186c6ee correctly
ok 80 NIST Vectors p192sha256 derives Q for 44c91536b0467b4573cb595cc6b63939f0b8cb72d312b94f correctly
ok 81 NIST Vectors p192sha256 derives Q for 3707138933f4a3db2f593bc0984926abe3c8e0eebae679a1 correctly
ok 82 NIST Vectors p192sha256 derives Q for d1e976d6a5f85a37ef7b634cf15dccb833ca32d28e773ab9 correctly
ok 83 NIST Vectors p192sha256 derives Q for 2e646107f032b748be926ce821fff561d74c459cbb05919a correctly
ok 84 NIST Vectors p192sha256 derives Q for 70da499b104dfbcf883d222d06e7d0597f1d276af4650476 correctly
ok 85 NIST Vectors p224sha1 derives Q for 97c4b796e1639dd1035b708fc00dc7ba1682cec44a1002a1a820619f correctly
ok 86 NIST Vectors p224sha1 derives Q for e6f0a6ab81b7bd50dc5581b03d43308fb28356408392e29a5321ca7f correctly
ok 87 NIST Vectors p224sha1 derives Q for 3ad83662320c54cebad24be5de2ecbcbe30c2b69aa639ebe44a23654 correctly
ok 88 NIST Vectors p224sha1 derives Q for 9ac287e839788adac320d3157d36ed3f41e558381573a14d49afb201 correctly
ok 89 NIST Vectors p224sha1 derives Q for 4af8ad116c393082f245904b1e062ff32a818cf0d9974ad8046b363a correctly
ok 90 NIST Vectors p224sha1 derives Q for 2d90465e11c6ee4104f283ff4019779c5c9d5d0665e8552c6d58eec5 correctly
ok 91 NIST Vectors p224sha1 derives Q for 6ec68008dfba890356284849d5529d0a7405fb10c9338ff2092004a6 correctly
ok 92 NIST Vectors p224sha1 derives Q for 26b872a198bd4f39f9eff3d6038b49cf067611dc4e684ef24c1cf343 correctly
ok 93 NIST Vectors p224sha1 derives Q for 74cac3c4683b5b848832ce2c3157d1f4748ae2942a04f17e9c612956 correctly
ok 94 NIST Vectors p224sha1 derives Q for c6eb83bf50449807dd1b12946b4bb29aba4ccfd1fe9ef0203fd3440f correctly
ok 95 NIST Vectors p224sha1 derives Q for b89acbaa56807917b4d1325858a1d28993d8090808048a559ddcd343 correctly
ok 96 NIST Vectors p224sha1 derives Q for 19c9cbdecd6a0ab775c4101efa1a009efc2865a384ce232f8ac1873e correctly
ok 97 NIST Vectors p224sha1 derives Q for 41bb33d169c75ccf8ba2d5f5138fb5b6be4dc8fdcf53a8fdaa9cea72 correctly
ok 98 NIST Vectors p224sha1 derives Q for 36dd2974e764b3993477e8474f47f8aca2d3da794cf3ed76d59e42b2 correctly
ok 99 NIST Vectors p224sha1 derives Q for 6d423859ec293329a02a55659453059f130be9f70b38be8bc57b181e correctly
ok 100 NIST Vectors p224sha256 derives Q for 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa correctly
ok 101 NIST Vectors p224sha256 derives Q for 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972 correctly
ok 102 NIST Vectors p224sha256 derives Q for f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170 correctly
ok 103 NIST Vectors p224sha256 derives Q for c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85 correctly
ok 104 NIST Vectors p224sha256 derives Q for 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6 correctly
ok 105 NIST Vectors p224sha256 derives Q for 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39 correctly
ok 106 NIST Vectors p224sha256 derives Q for 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6 correctly
ok 107 NIST Vectors p224sha256 derives Q for 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b correctly
ok 108 NIST Vectors p224sha256 derives Q for 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b correctly
ok 109 NIST Vectors p224sha256 derives Q for 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8 correctly
ok 110 NIST Vectors p224sha256 derives Q for e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784 correctly
ok 111 NIST Vectors p224sha256 derives Q for 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c correctly
ok 112 NIST Vectors p224sha256 derives Q for 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583 correctly
ok 113 NIST Vectors p224sha256 derives Q for 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2 correctly
ok 114 NIST Vectors p224sha256 derives Q for f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc correctly
ok 115 NIST Vectors p256sha1 derives Q for be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25 correctly
ok 116 NIST Vectors p256sha1 derives Q for 1fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42 correctly
ok 117 NIST Vectors p256sha1 derives Q for 65dee450c43c222ca453b46375e63169b389b208e9c091974f258af09b8ab000 correctly
ok 118 NIST Vectors p256sha1 derives Q for e93ec1b3a4c69ebe0843b731625bbc020336593fb86ded4782cdfa447e49ebb3 correctly
ok 119 NIST Vectors p256sha1 derives Q for 1cfc39b35ef4afb8e0182f6aa5da8cef0925dd829d1e43f18caabacf3e5466fa correctly
ok 120 NIST Vectors p256sha1 derives Q for 533e7ec63dddc22071a5614409a68b3f99355de629abf2fb9dea696dd6bab1b2 correctly
ok 121 NIST Vectors p256sha1 derives Q for 9134c53bdf5a0fb7bd1d0afab6edeb0ad7270c5efc083f3256f0cb251fca3a7d correctly
ok 122 NIST Vectors p256sha1 derives Q for 2c678b91bc8c8f2610439bd586b69c0549847c32ef41b2d31bab4d90362cb76a correctly
ok 123 NIST Vectors p256sha1 derives Q for 1545750a9cf39b189e0fed21118c95aae771de4664552a2b36ba2cdafa072496 correctly
ok 124 NIST Vectors p256sha1 derives Q for b24cbf1f527b4f178fccab71f5397cfac08448b9466a94ea61dfa1fcd117bafc correctly
ok 125 NIST Vectors p256sha1 derives Q for 53e2db8a5e9b560f8e1271dccb0df690f086a6d7f35334853a2a01932da42737 correctly
ok 126 NIST Vectors p256sha1 derives Q for 9691aa416ea645de2fcea9041086a62da57f6ea7771eed2d88305aec3e91ce70 correctly
ok 127 NIST Vectors p256sha1 derives Q for f739a5d137495f5d5b6cf1eef062f0e2160940ef69c8b480505bcfa783c5f650 correctly
ok 128 NIST Vectors p256sha1 derives Q for fff2b2469b0cad0a6cd55936558f1d6af2644d0a5fc64136aa22bff38d27b9ae correctly
ok 129 NIST Vectors p256sha1 derives Q for a30a1a653c8ddf1b03dcccb15b96e76a9620ca7bcbb1bac3754e053fbc55c989 correctly
ok 130 NIST Vectors p256sha256 derives Q for 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 correctly
ok 131 NIST Vectors p256sha256 derives Q for 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 correctly
ok 132 NIST Vectors p256sha256 derives Q for e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef correctly
ok 133 NIST Vectors p256sha256 derives Q for a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 correctly
ok 134 NIST Vectors p256sha256 derives Q for 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d correctly
ok 135 NIST Vectors p256sha256 derives Q for 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d correctly
ok 136 NIST Vectors p256sha256 derives Q for 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab correctly
ok 137 NIST Vectors p256sha256 derives Q for 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a correctly
ok 138 NIST Vectors p256sha256 derives Q for 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 correctly
ok 139 NIST Vectors p256sha256 derives Q for f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 correctly
ok 140 NIST Vectors p256sha256 derives Q for b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 correctly
ok 141 NIST Vectors p256sha256 derives Q for d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 correctly
ok 142 NIST Vectors p256sha256 derives Q for b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c correctly
ok 143 NIST Vectors p256sha256 derives Q for 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 correctly
ok 144 NIST Vectors p256sha256 derives Q for 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 correctly
ok 145 NIST Vectors p256sha256 derives Q for 70a12c2db16845ed56ff68cfc21a472b3f04d7d6851bf6349f2d7d5b3452b38a correctly
ok 146 NIST Vectors p384sha1 missing secp384r1 # SKIP -
ok 147 NIST Vectors p384sha256 missing secp384r1 # SKIP -
ok 148 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 149 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424) for 1 on secp256k1
ok 150 Point multiply gives (83225686012142088543596389522774768397204444195709443235253141114409346958144, 23739058578904784236915560265041168694780215705543362357495033621678991351768) for 19898843618908353587043383062236220484949425084007183071220218307100305431102 on secp256k1
ok 151 Point multiply gives (30095590000961171681152428142595206241714764354580127609094760797518133922356, 93521207164355458151597931319591130635754976513751247168472016818884561919702) for 48968302285117906840285529799176770990048954789747953886390402978935544927851 on secp256k1
ok 152 Point multiply gives (55066263022277343669578718895168534326250603453777594175500187360389116729240, 83121579216557378445487899878180864668798711284981320763518679672151497189239) for 115792089237316195423570985008687907852837564279074904382605163141518161494336 on secp256k1
ok 153 Point multiply gives (29408993404948928992877151431649155974, 275621562871047521857442314737465260675) for 1 on secp128r1
ok 154 Point multiply gives (338530205676502674729549372677647997389429898939, 842365456698940303598009444920994870805149798382) for 1 on secp160k1
ok 155 Point multiply gives (5377521262291226325198505011805525673063229037935769709693, 3805108391982600717572440947423858335415441070543209377693) for 1 on secp192k1
ok 156 Point multiply gives (19277929113566293071110308034699488026831934219452440156649784352033, 19926808758034470970197974370888749184205991990603949537637343198772) for 1 on secp224r1
ok 157 Point decodeFrom decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 for secp256k1 correctly
ok 158 Point decodeFrom decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 159 Point decodeFrom decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 for secp256k1 correctly
ok 160 Point decodeFrom decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 for secp256k1 correctly
ok 161 Point decodeFrom decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 for secp256k1 correctly
ok 162 Point decodeFrom decodes 03161ff7528b899b2d0c28607ca52c5b86 for secp128r1 correctly
ok 163 Point decodeFrom decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb for secp160k1 correctly
ok 164 Point decodeFrom decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d for secp192k1 correctly
ok 165 Point decodeFrom TODO: secp224r1, currently not supported # SKIP -
ok 166 Point decodeFrom throws on Invalid sequence tag
ok 167 Point decodeFrom throws on Sequence too short
ok 168 Point decodeFrom throws on Sequence too short (compressed)
ok 169 Point decodeFrom throws on Sequence too long
ok 170 Point decodeFrom throws on Sequence too long (compressed)
ok 171 Point getEncoded compression defaults to Point field flag
ok 172 Point getEncoded encodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 on secp256k1 correctly
ok 173 Point getEncoded encodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 174 Point getEncoded encodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 on secp256k1 correctly
ok 175 Point getEncoded encodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 on secp256k1 correctly
ok 176 Point getEncoded encodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 on secp256k1 correctly
ok 177 Point getEncoded encodes 03161ff7528b899b2d0c28607ca52c5b86 on secp128r1 correctly
ok 178 Point getEncoded encodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb on secp160k1 correctly
ok 179 Point getEncoded encodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d on secp192k1 correctly
ok 180 Point getEncoded encodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 on secp224r1 correctly
ok 181 Point equals secp256k1 should return true when points are equal
ok 182 Point equals secp256k1 should return false when points are not equal
# tests 177
# pass 177
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
[object Object]
[object Object]
12
1..59
ok 1 Ecurve should create curve objects
ok 2 Ecurve calculates a public point for 971761939728640320549601132085879836204587084162
ok 3 Ecurve calculates a public point for 702232148019446860144825009548118511996283736794
ok 4 Ecurve calculates a public point for 399525573676508631577122671218044116107572676710
ok 5 Ecurve Field math should validate field elements properly
ok 6 Ecurve Field math should negate field elements properly
ok 7 Ecurve Field math should add field elements properly
ok 8 Ecurve Field math should multiply field elements properly
ok 9 Ecurve isOnCurve should return true for a point on the curve
ok 10 Ecurve isOnCurve should return true for points at (0, 0) if they are on the curve
ok 11 Ecurve isOnCurve should return false for points not in the finite field
ok 12 Ecurve isOnCurve should return false for a point not on the curve
ok 13 Ecurve validate should validate a point on the curve
ok 14 Ecurve validate should not validate a point not on the curve
ok 15 Ecurve validate should not validate the point at infinity
ok 16 + getCurveByName(curveName) > when the secp256k1 curve is passed should return the proper curve
ok 17 + getCurveByName(curveName) > when secp128r1 should return the curve
ok 18 + getCurveByName(curveName) > when secp160k1 should return the curve
ok 19 + getCurveByName(curveName) > when secp160r1 should return the curve
ok 20 + getCurveByName(curveName) > when secp192k1 should return the curve
ok 21 + getCurveByName(curveName) > when secp192r1 should return the curve
ok 22 + getCurveByName(curveName) > when secp224r1 should return the curve
ok 23 + getCurveByName(curveName) > when secp256k1 should return the curve
ok 24 + getCurveByName(curveName) > when secp256r1 should return the curve
ok 25 + getCurveByName(curveName) > when null is passed should return null for unknown curves
ok 26 Point + decodeFrom() should be an static (class) method
ok 27 Point + decodeFrom() should work with uncompressed keys
ok 28 Point + decodeFrom() should work with compressed keys
ok 29 Point + decodeFrom() decodes 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 30 Point + decodeFrom() decodes 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 31 Point + decodeFrom() decodes 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 32 Point + decodeFrom() decodes 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 33 Point + decodeFrom() decodes 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 34 Point + decodeFrom() decodes 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 35 Point + decodeFrom() decodes 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 36 Point + decodeFrom() decodes 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 37 Point + decodeFrom() decodes 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 38 Point + decodeFrom() throws on Invalid sequence tag
ok 39 Point + decodeFrom() throws on Sequence too short
ok 40 Point + decodeFrom() throws on Sequence too short (compressed)
ok 41 Point + decodeFrom() throws on Sequence too long
ok 42 Point + decodeFrom() throws on Sequence too long (compressed)
ok 43 Point - getEncoded() encode 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 correctly
ok 44 Point - getEncoded() encode 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 45 Point - getEncoded() encode 02b80011a883a0fd621ad46dfc405df1e74bf075cbaf700fd4aebef6e96f848340 correctly
ok 46 Point - getEncoded() encode 024289801366bcee6172b771cf5a7f13aaecd237a0b9a1ff9d769cabc2e6b70a34 correctly
ok 47 Point - getEncoded() encode 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 correctly
ok 48 Point - getEncoded() encode 03161ff7528b899b2d0c28607ca52c5b86 correctly
ok 49 Point - getEncoded() encode 023b4c382ce37aa192a4019e763036f4f5dd4d7ebb correctly
ok 50 Point - getEncoded() encode 03db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d correctly
ok 51 Point - getEncoded() encode 02b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 correctly
ok 52 Point - getEncoded() > when compressed flag is seassertto true > when false is passed should return encoded (noassertcompressed)
ok 53 Point - getEncoded() > when compressed flag is seassertto true > when true is passed should return encoded (noassertcompressed)
ok 54 Point - getEncoded() > when compressed flag is seassertto false > when false is passed should return encoded (noassertcompressed)
ok 55 Point - getEncoded() > when compressed flag is seassertto false > when true is passed should return encoded (noassertcompressed)
ok 56 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto false should return encoded (noassertcompressed)
ok 57 Point - getEncoded() > when getEncoded() has no parameter > when compressed flag is seassertto true should return encoded (noassertcompressed)
ok 58 Point - equals() should return true when points are equal
ok 59 Point - equals() should return false when points are noassertequal
# tests 59
# pass 59
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0
1..36
ok 1 Ecurve should create curve objects
ok 2 Ecurve should calculate keys correctly for secp160r1
ok 3 Ecurve Field math should validate field elements properly
ok 4 Ecurve Field math should negate field elements properly
ok 5 Ecurve Field math should add field elements properly
ok 6 Ecurve Field math should multiply field elements properly
ok 7 Ecurve - equals should return true when equal
ok 8 Ecurve - equals should return false when not equal
ok 9 + getECParams(curveName) > when the bitcoin curve is passed should return the proper curve
ok 10 + getECParams(curveName) > when secp128r1 should return the curve
ok 11 + getECParams(curveName) > when secp160k1 should return the curve
ok 12 + getECParams(curveName) > when secp160r1 should return the curve
ok 13 + getECParams(curveName) > when secp192k1 should return the curve
ok 14 + getECParams(curveName) > when secp192r1 should return the curve
ok 15 + getECParams(curveName) > when secp224r1 should return the curve
ok 16 + getECParams(curveName) > when secp256k1 should return the curve
ok 17 + getECParams(curveName) > when secp256r1 should return the curve
ok 18 + getECParams(curveName) > when null is passed should return null for unknown curves
ok 19 ECPointFp + decodeFrom() should be an static (class) method
ok 20 ECPointFp + decodeFrom() should work with uncompressed keys
ok 21 ECPointFp + decodeFrom() should work with compressed keys
ok 22 ECPointFp + decodeFrom() decodes the correct point
ok 23 ECPointFp + decodeFrom() throws on Invalid sequence tag
ok 24 ECPointFp + decodeFrom() throws on Sequence too short
ok 25 ECPointFp + decodeFrom() throws on Sequence too short (compressed)
ok 26 ECPointFp + decodeFrom() throws on Sequence too long
ok 27 ECPointFp + decodeFrom() throws on Sequence too long (compressed)
ok 28 ECPointFp - getEncoded() should properly get the encoded version
ok 29 ECPointFp - getEncoded() > when compressed flag is set to true > when false is passed should return encoded (not compressed)
ok 30 ECPointFp - getEncoded() > when compressed flag is set to true > when true is passed should return encoded (not compressed)
ok 31 ECPointFp - getEncoded() > when compressed flag is set to false > when false is passed should return encoded (not compressed)
ok 32 ECPointFp - getEncoded() > when compressed flag is set to false > when true is passed should return encoded (not compressed)
ok 33 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to false should return encoded (not compressed)
ok 34 ECPointFp - getEncoded() > when getEncoded() has no parameter > when compressed flag is set to true should return encoded (not compressed)
ok 35 ECPointFp - equals() should return true when points are equal
ok 36 ECPointFp - equals() should return false when points are not equal
# tests 36
# pass 36
# fail 0