Skip to content

Releases: paulmillr/noble-curves

1.6.0

03 Sep 22:44
1.6.0
c13d9d0
Compare
Choose a tag to compare

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

07 Aug 19:57
1.5.0
ad263ed
Compare
Choose a tag to compare
  • 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 and assertValidity, to speed-up BLS
  • Make all points immutable and frozen to improve security

Full Changelog: 1.4.2...1.5.0

1.4.2

01 Jul 15:28
1.4.2
501ba4d
Compare
Choose a tag to compare
  • Typescript build: revert target from ES2022 to ES2020 due to compat issues

Full Changelog: 1.4.1...1.4.2

1.4.1

01 Jul 14:22
1.4.1
dec75cb
Compare
Choose a tag to compare
  • 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

14 Mar 06:35
1.4.0
a0e3984
Compare
Choose a tag to compare
  • 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

Full Changelog: 1.3.0...1.4.0

1.3.0

11 Dec 23:25
1.3.0
4007ee9
Compare
Choose a tag to compare
  • 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 for DecafPoint and RistrettoPoint 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:
    • hexToBytes: speed-up 6x, improve error formatting by @arobsn in #83
    • isBytes: improve reliability in bad environments such as jsdom
    • concatBytes: improve safety by early-checking the type
    • equalBytes: make constant-time
  • Bump noble-hashes to 1.3.3
  • Bump typescript version used to build the package to 5.3.2

New Contributors

Full Changelog: 1.2.0...1.3.0

1.2.0

23 Aug 18:01
1.2.0
0d7756d
Compare
Choose a tag to compare
  • ed448: add decaf448 support
  • weierstrass: improve security of random private keys
    by decreasing bias from 2^-64 to 2^-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

Full Changelog: 1.1.0...1.2.0

1.1.0

03 Jun 12:39
1.1.0
62e806c
Compare
Choose a tag to compare

What's Changed

  • ed25519 and ed448 verify now provide non-repudiation (Strongly Binding Signatures) when option zip215: false is used
  • 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 from SignatureType to RecoveredSignatureType
  • edwards: rename edwardsToMontgomery to edwardsToMontgomeryPub, add edwardsToMontgomeryPriv
  • 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

Full Changelog: 1.0.0...1.1.0

1.0.0

12 Apr 02:42
1.0.0
d61c7ae
Compare
Choose a tag to compare

First stable release. API should remain stable now.

ed25519, ed448: changed API

  • context is now an option in sign and verify
  • zip215 is a new verify option that allows to conform to RFC8032 when false. For true it will instead match ZIP215.
  • Added edwardsToMontgomery function

bls12-381: changed API

  • CURVE is no longer exposed, it was an internal property. Use G1.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

31 Mar 13:41
0.9.1
19f04a4
Compare
Choose a tag to compare
  • 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