@noble/curves 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +103 -63
  2. package/_shortw_utils.d.ts +0 -1
  3. package/_shortw_utils.d.ts.map +1 -1
  4. package/abstract/bls.js +1 -1
  5. package/abstract/bls.js.map +1 -1
  6. package/abstract/montgomery.d.ts +3 -3
  7. package/abstract/montgomery.d.ts.map +1 -1
  8. package/abstract/montgomery.js +9 -7
  9. package/abstract/montgomery.js.map +1 -1
  10. package/abstract/weierstrass.d.ts +2 -3
  11. package/abstract/weierstrass.d.ts.map +1 -1
  12. package/abstract/weierstrass.js +29 -24
  13. package/abstract/weierstrass.js.map +1 -1
  14. package/ed25519.js +2 -2
  15. package/ed25519.js.map +1 -1
  16. package/ed448.js +2 -2
  17. package/ed448.js.map +1 -1
  18. package/esm/abstract/bls.js +1 -1
  19. package/esm/abstract/bls.js.map +1 -1
  20. package/esm/abstract/montgomery.js +9 -7
  21. package/esm/abstract/montgomery.js.map +1 -1
  22. package/esm/abstract/weierstrass.js +29 -24
  23. package/esm/abstract/weierstrass.js.map +1 -1
  24. package/esm/ed25519.js +2 -2
  25. package/esm/ed25519.js.map +1 -1
  26. package/esm/ed448.js +2 -2
  27. package/esm/ed448.js.map +1 -1
  28. package/esm/secp256k1.js +11 -1
  29. package/esm/secp256k1.js.map +1 -1
  30. package/esm/stark.js +4 -4
  31. package/esm/stark.js.map +1 -1
  32. package/p192.d.ts +0 -2
  33. package/p192.d.ts.map +1 -1
  34. package/p224.d.ts +0 -2
  35. package/p224.d.ts.map +1 -1
  36. package/p256.d.ts +0 -2
  37. package/p256.d.ts.map +1 -1
  38. package/p384.d.ts +0 -2
  39. package/p384.d.ts.map +1 -1
  40. package/p521.d.ts +0 -2
  41. package/p521.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/secp256k1.d.ts +5 -1
  44. package/secp256k1.d.ts.map +1 -1
  45. package/secp256k1.js +11 -1
  46. package/secp256k1.js.map +1 -1
  47. package/src/abstract/bls.ts +1 -1
  48. package/src/abstract/montgomery.ts +12 -10
  49. package/src/abstract/weierstrass.ts +30 -28
  50. package/src/ed25519.ts +2 -2
  51. package/src/ed448.ts +2 -2
  52. package/src/secp256k1.ts +11 -1
  53. package/src/stark.ts +4 -4
  54. package/stark.d.ts +0 -1
  55. package/stark.d.ts.map +1 -1
  56. package/stark.js +4 -4
  57. package/stark.js.map +1 -1
@@ -122,7 +122,7 @@ function validatePointOpts<T>(curve: CurvePointsType<T>) {
122
122
 
123
123
  export type CurvePointsRes<T> = {
124
124
  ProjectivePoint: ProjConstructor<T>;
125
- normalizePrivateKey: (key: PrivKey) => bigint;
125
+ normPrivateKeyToScalar: (key: PrivKey) => bigint;
126
126
  weierstrassEquation: (x: T) => T;
127
127
  isWithinCurveOrder: (num: bigint) => boolean;
128
128
  };
@@ -203,8 +203,8 @@ export function weierstrassPoints<T>(opts: CurvePointsType<T>) {
203
203
  if (!isWithinCurveOrder(num)) throw new Error('Expected valid bigint: 0 < bigint < curve.n');
204
204
  }
205
205
  // Validates if priv key is valid and converts it to bigint.
206
- // Supports options CURVE.normalizePrivateKey and CURVE.wrapPrivateKey.
207
- function normalizePrivateKey(key: PrivKey): bigint {
206
+ // Supports options allowedPrivateKeyLengths and wrapPrivateKey.
207
+ function normPrivateKeyToScalar(key: PrivKey): bigint {
208
208
  const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;
209
209
  if (lengths && typeof key !== 'bigint') {
210
210
  if (key instanceof Uint8Array) key = ut.bytesToHex(key);
@@ -287,7 +287,7 @@ export function weierstrassPoints<T>(opts: CurvePointsType<T>) {
287
287
 
288
288
  // Multiplies generator point by privateKey.
289
289
  static fromPrivateKey(privateKey: PrivKey) {
290
- return Point.BASE.multiply(normalizePrivateKey(privateKey));
290
+ return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));
291
291
  }
292
292
 
293
293
  // We calculate precomputes for elliptic curve point multiplication
@@ -488,8 +488,9 @@ export function weierstrassPoints<T>(opts: CurvePointsType<T>) {
488
488
  * Constant time multiplication.
489
489
  * Uses wNAF method. Windowed method may be 10% faster,
490
490
  * but takes 2x longer to generate and consumes 2x memory.
491
+ * Uses precomputes when available.
492
+ * Uses endomorphism for Koblitz curves.
491
493
  * @param scalar by which the point would be multiplied
492
- * @param affinePoint optional point ot save cached precompute windows on it
493
494
  * @returns New point
494
495
  */
495
496
  multiply(scalar: bigint): Point {
@@ -517,6 +518,8 @@ export function weierstrassPoints<T>(opts: CurvePointsType<T>) {
517
518
 
518
519
  /**
519
520
  * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.
521
+ * Not using Strauss-Shamir trick: precomputation tables are faster.
522
+ * The trick could be useful if both P and Q are not G (not in our case).
520
523
  * @returns non-zero affine point
521
524
  */
522
525
  multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {
@@ -572,7 +575,7 @@ export function weierstrassPoints<T>(opts: CurvePointsType<T>) {
572
575
 
573
576
  return {
574
577
  ProjectivePoint: Point as ProjConstructor<T>,
575
- normalizePrivateKey,
578
+ normPrivateKeyToScalar,
576
579
  weierstrassEquation,
577
580
  isWithinCurveOrder,
578
581
  };
@@ -642,7 +645,6 @@ export type CurveFn = {
642
645
  utils: {
643
646
  normPrivateKeyToScalar: (key: PrivKey) => bigint;
644
647
  isValidPrivateKey(privateKey: PrivKey): boolean;
645
- hashToPrivateKey: (hash: Hex) => Uint8Array;
646
648
  randomPrivateKey: () => Uint8Array;
647
649
  precompute: (windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint>;
648
650
  };
@@ -667,7 +669,7 @@ export function weierstrass(curveDef: CurveType): CurveFn {
667
669
 
668
670
  const {
669
671
  ProjectivePoint: Point,
670
- normalizePrivateKey,
672
+ normPrivateKeyToScalar,
671
673
  weierstrassEquation,
672
674
  isWithinCurveOrder,
673
675
  } = weierstrassPoints({
@@ -677,7 +679,6 @@ export function weierstrass(curveDef: CurveType): CurveFn {
677
679
  const x = Fp.toBytes(a.x);
678
680
  const cat = ut.concatBytes;
679
681
  if (isCompressed) {
680
- // TODO: hasEvenY
681
682
  return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);
682
683
  } else {
683
684
  return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));
@@ -801,37 +802,35 @@ export function weierstrass(curveDef: CurveType): CurveFn {
801
802
  const utils = {
802
803
  isValidPrivateKey(privateKey: PrivKey) {
803
804
  try {
804
- normalizePrivateKey(privateKey);
805
+ normPrivateKeyToScalar(privateKey);
805
806
  return true;
806
807
  } catch (error) {
807
808
  return false;
808
809
  }
809
810
  },
810
- normPrivateKeyToScalar: normalizePrivateKey,
811
-
812
- /**
813
- * Converts some bytes to a valid private key. Needs at least (nBitLength+64) bytes.
814
- */
815
- hashToPrivateKey: (hash: Hex): Uint8Array =>
816
- ut.numberToBytesBE(mod.hashToPrivateScalar(hash, CURVE_ORDER), CURVE.nByteLength),
811
+ normPrivateKeyToScalar: normPrivateKeyToScalar,
817
812
 
818
813
  /**
819
814
  * Produces cryptographically secure private key from random of size (nBitLength+64)
820
815
  * as per FIPS 186 B.4.1 with modulo bias being neglible.
821
816
  */
822
- randomPrivateKey: (): Uint8Array => utils.hashToPrivateKey(CURVE.randomBytes(Fp.BYTES + 8)),
817
+ randomPrivateKey: (): Uint8Array => {
818
+ const rand = CURVE.randomBytes(Fp.BYTES + 8);
819
+ const num = mod.hashToPrivateScalar(rand, CURVE_ORDER);
820
+ return ut.numberToBytesBE(num, CURVE.nByteLength);
821
+ },
823
822
 
824
823
  /**
825
- * 1. Returns cached point which you can use to pass to `getSharedSecret` or `#multiply` by it.
826
- * 2. Precomputes point multiplication table. Is done by default on first `getPublicKey()` call.
827
- * If you want your first getPublicKey to take 0.16ms instead of 20ms, make sure to call
828
- * utils.precompute() somewhere without arguments first.
829
- * @param windowSize 2, 4, 8, 16
824
+ * Creates precompute table for an arbitrary EC point. Makes point "cached".
825
+ * Allows to massively speed-up `point.multiply(scalar)`.
830
826
  * @returns cached point
827
+ * @example
828
+ * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));
829
+ * fast.multiply(privKey); // much faster ECDH now
831
830
  */
832
831
  precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {
833
832
  point._setWindowSize(windowSize);
834
- point.multiply(BigInt(3));
833
+ point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here
835
834
  return point;
836
835
  },
837
836
  };
@@ -862,7 +861,8 @@ export function weierstrass(curveDef: CurveType): CurveFn {
862
861
  /**
863
862
  * ECDH (Elliptic Curve Diffie Hellman).
864
863
  * Computes shared public key from private key and public key.
865
- * Checks: 1) private key validity 2) shared key is on-curve
864
+ * Checks: 1) private key validity 2) shared key is on-curve.
865
+ * Does NOT hash the result.
866
866
  * @param privateA private key
867
867
  * @param publicB different public key
868
868
  * @param isCompressed whether to return compact (default), or full key
@@ -872,7 +872,7 @@ export function weierstrass(curveDef: CurveType): CurveFn {
872
872
  if (isProbPub(privateA)) throw new Error('first arg must be private key');
873
873
  if (!isProbPub(publicB)) throw new Error('second arg must be public key');
874
874
  const b = Point.fromHex(publicB); // check for being on-curve
875
- return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);
875
+ return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);
876
876
  }
877
877
 
878
878
  // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.
@@ -895,10 +895,12 @@ export function weierstrass(curveDef: CurveType): CurveFn {
895
895
  };
896
896
  // NOTE: pads output with zero as per spec
897
897
  const ORDER_MASK = ut.bitMask(CURVE.nBitLength);
898
+ /**
899
+ * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.
900
+ */
898
901
  function int2octets(num: bigint): Uint8Array {
899
902
  if (typeof num !== 'bigint') throw new Error('bigint expected');
900
903
  if (!(_0n <= num && num < ORDER_MASK))
901
- // n in [0..ORDER_MASK-1]
902
904
  throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);
903
905
  // works with order, can have different size than numToField!
904
906
  return ut.numberToBytesBE(num, CURVE.nByteLength);
@@ -922,7 +924,7 @@ export function weierstrass(curveDef: CurveType): CurveFn {
922
924
  // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.
923
925
  // const bits2octets = (bits) => int2octets(bits2int_modN(bits))
924
926
  const h1int = bits2int_modN(msgHash);
925
- const d = normalizePrivateKey(privateKey); // validate private key, convert to bigint
927
+ const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint
926
928
  const seedArgs = [int2octets(d), int2octets(h1int)];
927
929
  // extraEntropy. RFC6979 3.6: additional k' (optional).
928
930
  if (ent != null) {
package/src/ed25519.ts CHANGED
@@ -138,10 +138,10 @@ export const ed25519ph = twistedEdwards({
138
138
 
139
139
  export const x25519 = montgomery({
140
140
  P: ED25519_P,
141
- a24: BigInt('121665'),
141
+ a: BigInt(486662),
142
142
  montgomeryBits: 255, // n is 253 bits
143
143
  nByteLength: 32,
144
- Gu: '0900000000000000000000000000000000000000000000000000000000000000',
144
+ Gu: BigInt(9),
145
145
  powPminus2: (x: bigint): bigint => {
146
146
  const P = ED25519_P;
147
147
  // x^(p-2) aka x^(2^255-21)
package/src/ed448.ts CHANGED
@@ -122,11 +122,11 @@ export const ed448 = twistedEdwards(ED448_DEF);
122
122
  export const ed448ph = twistedEdwards({ ...ED448_DEF, preHash: shake256_64 });
123
123
 
124
124
  export const x448 = montgomery({
125
- a24: BigInt(39081),
125
+ a: BigInt(156326),
126
126
  montgomeryBits: 448,
127
127
  nByteLength: 57,
128
128
  P: ed448P,
129
- Gu: '0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
129
+ Gu: BigInt(5),
130
130
  powPminus2: (x: bigint): bigint => {
131
131
  const P = ed448P;
132
132
  const Pminus3div4 = ed448_pow_Pminus3div4(x);
package/src/secp256k1.ts CHANGED
@@ -107,6 +107,7 @@ function taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {
107
107
  return sha256(concatBytes(tagP, ...messages));
108
108
  }
109
109
 
110
+ // ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03
110
111
  const pointToBytes = (point: PointType<bigint>) => point.toRawBytes(true).slice(1);
111
112
  const numTo32b = (n: bigint) => numberToBytesBE(n, 32);
112
113
  const modP = (x: bigint) => mod(x, secp256k1P);
@@ -114,12 +115,17 @@ const modN = (x: bigint) => mod(x, secp256k1N);
114
115
  const Point = secp256k1.ProjectivePoint;
115
116
  const GmulAdd = (Q: PointType<bigint>, a: bigint, b: bigint) =>
116
117
  Point.BASE.multiplyAndAddUnsafe(Q, a, b);
118
+ // Calculate point, scalar and bytes
117
119
  function schnorrGetExtPubKey(priv: PrivKey) {
118
- const d = secp256k1.utils.normPrivateKeyToScalar(priv);
120
+ const d = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey
119
121
  const point = Point.fromPrivateKey(d); // P = d'⋅G; 0 < d' < n check is done inside
120
122
  const scalar = point.hasEvenY() ? d : modN(-d); // d = d' if has_even_y(P), otherwise d = n-d'
121
123
  return { point, scalar, bytes: pointToBytes(point) };
122
124
  }
125
+ /**
126
+ * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.
127
+ * @returns valid point checked for being on-curve
128
+ */
123
129
  function lift_x(x: bigint): PointType<bigint> {
124
130
  if (!fe(x)) throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.
125
131
  const xx = modP(x * x);
@@ -130,6 +136,9 @@ function lift_x(x: bigint): PointType<bigint> {
130
136
  p.assertValidity();
131
137
  return p;
132
138
  }
139
+ /**
140
+ * Create tagged hash, convert it to bigint, reduce modulo-n.
141
+ */
133
142
  function challenge(...args: Uint8Array[]): bigint {
134
143
  return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args)));
135
144
  }
@@ -169,6 +178,7 @@ function schnorrSign(
169
178
 
170
179
  /**
171
180
  * Verifies Schnorr signature.
181
+ * Will swallow errors & return false except for initial type validation of arguments.
172
182
  */
173
183
  function schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {
174
184
  const sig = ensureBytes('signature', signature, 64);
package/src/stark.ts CHANGED
@@ -94,19 +94,19 @@ function ensureBytes0x(hex: Hex): Uint8Array {
94
94
  return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes0x(hex);
95
95
  }
96
96
 
97
- function normalizePrivateKey(privKey: Hex) {
97
+ function normPrivKey(privKey: Hex) {
98
98
  return cutils.bytesToHex(ensureBytes0x(privKey)).padStart(64, '0');
99
99
  }
100
100
  function getPublicKey0x(privKey: Hex, isCompressed = false) {
101
- return starkCurve.getPublicKey(normalizePrivateKey(privKey), isCompressed);
101
+ return starkCurve.getPublicKey(normPrivKey(privKey), isCompressed);
102
102
  }
103
103
  function getSharedSecret0x(privKeyA: Hex, pubKeyB: Hex) {
104
- return starkCurve.getSharedSecret(normalizePrivateKey(privKeyA), pubKeyB);
104
+ return starkCurve.getSharedSecret(normPrivKey(privKeyA), pubKeyB);
105
105
  }
106
106
 
107
107
  function sign0x(msgHash: Hex, privKey: Hex, opts?: any) {
108
108
  if (typeof privKey === 'string') privKey = strip0x(privKey).padStart(64, '0');
109
- return starkCurve.sign(ensureBytes0x(msgHash), normalizePrivateKey(privKey), opts);
109
+ return starkCurve.sign(ensureBytes0x(msgHash), normPrivKey(privKey), opts);
110
110
  }
111
111
  function verify0x(signature: Hex, msgHash: Hex, pubKey: Hex) {
112
112
  const sig = signature instanceof Signature ? signature : ensureBytes0x(signature);
package/stark.d.ts CHANGED
@@ -42,7 +42,6 @@ declare const CURVE: Readonly<{
42
42
  export declare const utils: {
43
43
  normPrivateKeyToScalar: (key: cutils.PrivKey) => bigint;
44
44
  isValidPrivateKey(privateKey: cutils.PrivKey): boolean;
45
- hashToPrivateKey: (hash: cutils.Hex) => Uint8Array;
46
45
  randomPrivateKey: () => Uint8Array;
47
46
  precompute: (windowSize?: number | undefined, point?: ProjPointType<bigint> | undefined) => ProjPointType<bigint>;
48
47
  };
package/stark.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stark.d.ts","sourceRoot":"","sources":["src/stark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stark.d.ts","sourceRoot":"","sources":["src/stark.ts"],"names":[],"mappings":"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"}
package/stark.js CHANGED
@@ -95,21 +95,21 @@ function ensureBytes0x(hex) {
95
95
  // is instance of Uint8Array, and its slice() creates **mutable** copy
96
96
  return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes0x(hex);
97
97
  }
98
- function normalizePrivateKey(privKey) {
98
+ function normPrivKey(privKey) {
99
99
  return cutils.bytesToHex(ensureBytes0x(privKey)).padStart(64, '0');
100
100
  }
101
101
  function getPublicKey0x(privKey, isCompressed = false) {
102
- return exports.starkCurve.getPublicKey(normalizePrivateKey(privKey), isCompressed);
102
+ return exports.starkCurve.getPublicKey(normPrivKey(privKey), isCompressed);
103
103
  }
104
104
  exports.getPublicKey = getPublicKey0x;
105
105
  function getSharedSecret0x(privKeyA, pubKeyB) {
106
- return exports.starkCurve.getSharedSecret(normalizePrivateKey(privKeyA), pubKeyB);
106
+ return exports.starkCurve.getSharedSecret(normPrivKey(privKeyA), pubKeyB);
107
107
  }
108
108
  exports.getSharedSecret = getSharedSecret0x;
109
109
  function sign0x(msgHash, privKey, opts) {
110
110
  if (typeof privKey === 'string')
111
111
  privKey = (0, exports.strip0x)(privKey).padStart(64, '0');
112
- return exports.starkCurve.sign(ensureBytes0x(msgHash), normalizePrivateKey(privKey), opts);
112
+ return exports.starkCurve.sign(ensureBytes0x(msgHash), normPrivKey(privKey), opts);
113
113
  }
114
114
  exports.sign = sign0x;
115
115
  function verify0x(signature, msgHash, pubKey) {
package/stark.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stark.js","sourceRoot":"","sources":["src/stark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stark.js","sourceRoot":"","sources":["src/stark.ts"],"names":[],"mappings":"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"}