Package Exports
- simple-js-ec-math
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-js-ec-math) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
simple-js-ec-math
this project is intended to make easier and faster crytography projects. it is intended to be very lightweight and thus will not have many dependencies
to create a new curve to do math on:
const g = new ModPoint(16n, 5n)
const curve = new Curve(9n, 17n, 23n, 23n, g)
g is your starting point on the curve with g you can do abstract math instead of 1 + 2 you would add g + 2g as an example
adding two points:
curve.add(<ModPoint>, <ModPoint>)
subtracting two points:
curve.subtract(<ModPoint>, <ModPoint>)
multiplication:
curve.multiply(<ModPoint>, <scalar>)
// e.g.
curve.multiply(g, 100n)
doubling:
curve.double(g)
note division is not possible in elliptic curves. this is knows as the "elliptic curve discrete logarithm problem" (ECDLP) and is useful for security practices because it creates 1 way mathematics that are insolvable
to verify point is curve:
const point = curve.multiply(g, 100n)
curve.verify(point)
retrieving y coordinate from x coordinate:
curve.xToY(<x coordinate>, <is odd?>)
curve.xToY(0xfe973c43d29ce39f940d3186a5a57c98231d59c7cedaa2387d07734777efed80n) =>
126044836b26d12486de99ec2754ba7f5835cf83e369533f1d1844adab9b2c2b, ed9fbb7c94d92edb79216613d8ab4580a7ca307c1c96acc0e2e7bb515464d004
curve.xToY(0xfe973c43d29ce39f940d3186a5a57c98231d59c7cedaa2387d07734777efed80n, true) =>
126044836b26d12486de99ec2754ba7f5835cf83e369533f1d1844adab9b2c2b
curve.xToY(0x8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0dan, false) =>
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82
contribute
bitcoin address: 1KKiniL7QnMPZZLjgGB2Kq1d7zsjUr6TnS
ethereum address: 0x177b258bD53A8F7d8C609A9277A60A51d1e7e0e0