Releases: paulmillr/noble-curves
Releases · paulmillr/noble-curves
1.6.0
What's Changed
- weierstrass, edwards: add multi-scalar-multiplication using Pippenger algorithm
- DER encoding: improve edge cases. Fixes p521 signatures
- hash-to-curve: add more type checks
- Export
abstract/tower
for pairing-friendly curves - Add support for node.js v14
- Upgrade hashes to v1.5.0
Full Changelog: 1.5.0...1.6.0
1.5.0
- Implement bn254 (aka alt_bn128) pairings, compatible with EVM and ZEC
- Point serialization is not implemented (but can be added in user-space), because there is no standard way of doing it. Check out README
- Refactor range checks for private keys and signatures, simplify them
- Add memoization for
toAffine
andassertValidity
, to speed-up BLS - Make all points immutable and frozen to improve security
Full Changelog: 1.4.2...1.5.0
1.4.2
- Typescript build: revert target from ES2022 to ES2020 due to compat issues
Full Changelog: 1.4.1...1.4.2
1.4.1
- bls12-381: Add mapToCurve; fix typescript types
- ed25519, utils: Improve tree-shaking
- Typescript build: emit separate type declarations for ESM, to improve compatibility
- Typescript build: change target from ES2020 to ES2022
New Contributors
Full Changelog: 1.4.0...1.4.1
1.4.0
- Fix verification of BLS short signatures when using hex
- Fix types in hash-to-field and weierstrass Entropy
- Update noble-hashes to v1.4, adding support for Big-Endian platforms
- Small utilities refactor to reduce code duplication
- tsconfig improvements
New Contributors
- @ardislu made their first contribution in #110
- @dhrubabasu made their first contribution in #117
- @xrchz made their first contribution in #129
Full Changelog: 1.3.0...1.4.0
1.3.0
- BLS:
- Add support for short signatures. Short sigs allow using G1 as sig and G2 as pubkeys, instead of wise-versa.
- Contributed by @randombit in #74
- Refactor mask-bit settings, improve encoding resiliency
- ed25519, ed448: implement
Group
interface forDecafPoint
andRistrettoPoint
by @sublimator in #85 - ed448: Fix x448 private keys, to be 56 bytes, not 57
- weierstrass: fix
weierstrassPoints
missing CURVE object by @secure12 in #92 - utils:
- Bump noble-hashes to 1.3.3
- Bump typescript version used to build the package to 5.3.2
New Contributors
- @randombit made their first contribution in #74
- @arobsn made their first contribution in #83
- @secure12 made their first contribution in #92
- @yhc125 made their first contribution in #93
Full Changelog: 1.2.0...1.3.0
1.2.0
- ed448: add decaf448 support
- weierstrass: improve security of random private keys
by decreasing bias from2^-64
to2^-curve_security_level
- weierstrass: allow extraEntropy to take any amount of bytes
- poseidon: improve security, make sboxPower mandatory and prohibit values other than 3, 5, 7; prohibit odd roundsFull
- hash-to-curve: allow string and Uint8Array DSTs
- tree-shaking improvements: add
sideEffects: false
to package.json,
add pure annotations to ed25519 - update noble-hashes to 1.3.2
New Contributors
- @stknob made their first contribution in #59
- @mahnunchik made their first contribution in #56
- @steveluscher made their first contribution in #62
Full Changelog: 1.1.0...1.2.0
1.1.0
What's Changed
- ed25519 and ed448
verify
now provide non-repudiation (Strongly Binding Signatures) when optionzip215: false
is used- non-repudiation is useful for e-voting and other systems
- The Provable Security of Ed25519: Theory and Practice
- Taming the many EdDSAs and NIST presentation
- Reduce common-case bundle size by 20% by using PURE annotation. It helps bundlers during tree-shaking and eliminates dead code.
- secp256k1: 75.4kb => 62.3kb
- ed25519: 67.5kb => 51.1kb
- ed448: 55.1kb => 44.0kb
- p256: 67.8kb => 59.8kb
- p384: 75.4kb => 67.4kb
- p521: 75.8kb => 67.8kb
weierstrass
:sign
return type was changed fromSignatureType
toRecoveredSignatureType
edwards
: renameedwardsToMontgomery
toedwardsToMontgomeryPub
, addedwardsToMontgomeryPriv
- bls12-381: improve friendliness to bad compilers by not using bigint literals
- Improve friendliness to bad compilers by not using exponentiation operator with bigints
- ed25519: fix ristrettoHash size typo in hashToCurve by @sublimator in #42
- utils: harmonize with noble-hashes
- utils: Fix utf8ToBytes in firefox extension context (bugzil.la/1681809)
New Contributors
- @mirceanis made their first contribution in #32
- @legobeat made their first contribution in #38
- @sublimator made their first contribution in #42
- Thanks to @Wind4Greg for the involvement in SBS
Full Changelog: 1.0.0...1.1.0
1.0.0
First stable release. API should remain stable now.
ed25519, ed448: changed API
context
is now an option insign
andverify
zip215
is a newverify
option that allows to conform to RFC8032 whenfalse
. Fortrue
it will instead match ZIP215.- Added
edwardsToMontgomery
function
bls12-381: changed API
CURVE
is no longer exposed, it was an internal property. UseG1.CURVE
,G2.CURVE
- Fields have been moved into
fields: {Fp, Fp2, Fp6, Fp12, Fr}
property - See README for new usage
weierstrass: improved DER decoding. Validate curve creation
Updated Wycheproof vectors to v0.9
hash-to-curve: restrict expand
to xmd
and xof
Full Changelog: 0.9.1...1.0.0
0.9.1
- Fix React Native like environments: remove bigint literals
- weierstrass, edwards: make points expose typescript x, y
- edwards: add toRawBytes to typescript type
Full Changelog: 0.9.0...0.9.1