@noble/curves 0.7.3 → 0.8.0

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 (105) hide show
  1. package/README.md +8 -4
  2. package/_shortw_utils.js +8 -13
  3. package/_shortw_utils.js.map +1 -1
  4. package/abstract/bls.js +12 -16
  5. package/abstract/bls.js.map +1 -1
  6. package/abstract/curve.js +7 -12
  7. package/abstract/curve.js.map +1 -1
  8. package/abstract/edwards.js +16 -20
  9. package/abstract/edwards.js.map +1 -1
  10. package/abstract/hash-to-curve.d.ts +5 -3
  11. package/abstract/hash-to-curve.d.ts.map +1 -1
  12. package/abstract/hash-to-curve.js +25 -33
  13. package/abstract/hash-to-curve.js.map +1 -1
  14. package/abstract/modular.d.ts.map +1 -1
  15. package/abstract/modular.js +25 -44
  16. package/abstract/modular.js.map +1 -1
  17. package/abstract/montgomery.js +11 -15
  18. package/abstract/montgomery.js.map +1 -1
  19. package/abstract/poseidon.js +6 -12
  20. package/abstract/poseidon.js.map +1 -1
  21. package/abstract/utils.js +19 -41
  22. package/abstract/utils.js.map +1 -1
  23. package/abstract/weierstrass.d.ts.map +1 -1
  24. package/abstract/weierstrass.js +25 -37
  25. package/abstract/weierstrass.js.map +1 -1
  26. package/bls12-381.js +63 -66
  27. package/bls12-381.js.map +1 -1
  28. package/bn.js +7 -10
  29. package/bn.js.map +1 -1
  30. package/ed25519.d.ts +3 -0
  31. package/ed25519.d.ts.map +1 -1
  32. package/ed25519.js +81 -74
  33. package/ed25519.js.map +1 -1
  34. package/ed448.js +37 -41
  35. package/ed448.js.map +1 -1
  36. package/jubjub.js +17 -22
  37. package/jubjub.js.map +1 -1
  38. package/p256.js +13 -17
  39. package/p256.js.map +1 -1
  40. package/p384.js +13 -17
  41. package/p384.js.map +1 -1
  42. package/p521.js +13 -17
  43. package/p521.js.map +1 -1
  44. package/package.json +4 -26
  45. package/pasta.js +16 -19
  46. package/pasta.js.map +1 -1
  47. package/secp256k1.d.ts +0 -6
  48. package/secp256k1.d.ts.map +1 -1
  49. package/secp256k1.js +58 -63
  50. package/secp256k1.js.map +1 -1
  51. package/src/abstract/hash-to-curve.ts +13 -12
  52. package/src/abstract/modular.ts +1 -0
  53. package/src/abstract/weierstrass.ts +4 -10
  54. package/src/ed25519.ts +17 -1
  55. package/src/secp256k1.ts +7 -7
  56. package/src/stark.ts +50 -27
  57. package/stark.d.ts +17 -19
  58. package/stark.d.ts.map +1 -1
  59. package/stark.js +76 -72
  60. package/stark.js.map +1 -1
  61. package/esm/_shortw_utils.js +0 -17
  62. package/esm/_shortw_utils.js.map +0 -1
  63. package/esm/abstract/bls.js +0 -226
  64. package/esm/abstract/bls.js.map +0 -1
  65. package/esm/abstract/curve.js +0 -152
  66. package/esm/abstract/curve.js.map +0 -1
  67. package/esm/abstract/edwards.js +0 -409
  68. package/esm/abstract/edwards.js.map +0 -1
  69. package/esm/abstract/hash-to-curve.js +0 -166
  70. package/esm/abstract/hash-to-curve.js.map +0 -1
  71. package/esm/abstract/modular.js +0 -345
  72. package/esm/abstract/modular.js.map +0 -1
  73. package/esm/abstract/montgomery.js +0 -157
  74. package/esm/abstract/montgomery.js.map +0 -1
  75. package/esm/abstract/poseidon.js +0 -110
  76. package/esm/abstract/poseidon.js.map +0 -1
  77. package/esm/abstract/utils.js +0 -222
  78. package/esm/abstract/utils.js.map +0 -1
  79. package/esm/abstract/weierstrass.js +0 -1016
  80. package/esm/abstract/weierstrass.js.map +0 -1
  81. package/esm/bls12-381.js +0 -1173
  82. package/esm/bls12-381.js.map +0 -1
  83. package/esm/bn.js +0 -22
  84. package/esm/bn.js.map +0 -1
  85. package/esm/ed25519.js +0 -385
  86. package/esm/ed25519.js.map +0 -1
  87. package/esm/ed448.js +0 -213
  88. package/esm/ed448.js.map +0 -1
  89. package/esm/index.js +0 -3
  90. package/esm/index.js.map +0 -1
  91. package/esm/jubjub.js +0 -54
  92. package/esm/jubjub.js.map +0 -1
  93. package/esm/p256.js +0 -42
  94. package/esm/p256.js.map +0 -1
  95. package/esm/p384.js +0 -47
  96. package/esm/p384.js.map +0 -1
  97. package/esm/p521.js +0 -48
  98. package/esm/p521.js.map +0 -1
  99. package/esm/package.json +0 -7
  100. package/esm/pasta.js +0 -30
  101. package/esm/pasta.js.map +0 -1
  102. package/esm/secp256k1.js +0 -253
  103. package/esm/secp256k1.js.map +0 -1
  104. package/esm/stark.js +0 -251
  105. package/esm/stark.js.map +0 -1
package/jubjub.js CHANGED
@@ -1,24 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findGroupHash = exports.groupHash = exports.jubjub = void 0;
4
1
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
- const sha512_1 = require("@noble/hashes/sha512");
6
- const utils_1 = require("@noble/hashes/utils");
7
- const edwards_js_1 = require("./abstract/edwards.js");
8
- const blake2s_1 = require("@noble/hashes/blake2s");
9
- const modular_js_1 = require("./abstract/modular.js");
2
+ import { sha512 } from '@noble/hashes/sha512';
3
+ import { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils';
4
+ import { twistedEdwards } from './abstract/edwards.js';
5
+ import { blake2s } from '@noble/hashes/blake2s';
6
+ import { Fp } from './abstract/modular.js';
10
7
  /**
11
8
  * jubjub Twisted Edwards curve.
12
9
  * https://neuromancer.sk/std/other/JubJub
13
10
  * jubjub does not use EdDSA, so `hash`/sha512 params are passed because interface expects them.
14
11
  */
15
- exports.jubjub = (0, edwards_js_1.twistedEdwards)({
12
+ export const jubjub = twistedEdwards({
16
13
  // Params: a, d
17
14
  a: BigInt('0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000'),
18
15
  d: BigInt('0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1'),
19
16
  // Finite field 𝔽p over which we'll do calculations
20
17
  // Same value as bls12-381 Fr (not Fp)
21
- Fp: (0, modular_js_1.Fp)(BigInt('0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001')),
18
+ Fp: Fp(BigInt('0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001')),
22
19
  // Subgroup order: how many points curve has
23
20
  n: BigInt('0xe7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7'),
24
21
  // Cofactor
@@ -26,26 +23,25 @@ exports.jubjub = (0, edwards_js_1.twistedEdwards)({
26
23
  // Base point (x, y) aka generator point
27
24
  Gx: BigInt('0x11dafe5d23e1218086a365b99fbf3d3be72f6afd7d1f72623e6b071492d1122b'),
28
25
  Gy: BigInt('0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa'),
29
- hash: sha512_1.sha512,
30
- randomBytes: utils_1.randomBytes,
26
+ hash: sha512,
27
+ randomBytes,
31
28
  });
32
- const GH_FIRST_BLOCK = (0, utils_1.utf8ToBytes)('096b36a5804bfacef1691e173c366a47ff5ba84a44f26ddd7e8d9f79d5b42df0');
29
+ const GH_FIRST_BLOCK = utf8ToBytes('096b36a5804bfacef1691e173c366a47ff5ba84a44f26ddd7e8d9f79d5b42df0');
33
30
  // Returns point at JubJub curve which is prime order and not zero
34
- function groupHash(tag, personalization) {
35
- const h = blake2s_1.blake2s.create({ personalization, dkLen: 32 });
31
+ export function groupHash(tag, personalization) {
32
+ const h = blake2s.create({ personalization, dkLen: 32 });
36
33
  h.update(GH_FIRST_BLOCK);
37
34
  h.update(tag);
38
35
  // NOTE: returns ExtendedPoint, in case it will be multiplied later
39
- let p = exports.jubjub.ExtendedPoint.fromHex(h.digest());
36
+ let p = jubjub.ExtendedPoint.fromHex(h.digest());
40
37
  // NOTE: cannot replace with isSmallOrder, returns Point*8
41
- p = p.multiply(exports.jubjub.CURVE.h);
42
- if (p.equals(exports.jubjub.ExtendedPoint.ZERO))
38
+ p = p.multiply(jubjub.CURVE.h);
39
+ if (p.equals(jubjub.ExtendedPoint.ZERO))
43
40
  throw new Error('Point has small order');
44
41
  return p;
45
42
  }
46
- exports.groupHash = groupHash;
47
- function findGroupHash(m, personalization) {
48
- const tag = (0, utils_1.concatBytes)(m, new Uint8Array([0]));
43
+ export function findGroupHash(m, personalization) {
44
+ const tag = concatBytes(m, new Uint8Array([0]));
49
45
  for (let i = 0; i < 256; i++) {
50
46
  tag[tag.length - 1] = i;
51
47
  try {
@@ -55,5 +51,4 @@ function findGroupHash(m, personalization) {
55
51
  }
56
52
  throw new Error('findGroupHash tag overflow');
57
53
  }
58
- exports.findGroupHash = findGroupHash;
59
54
  //# sourceMappingURL=jubjub.js.map
package/jubjub.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jubjub.js","sourceRoot":"","sources":["src/jubjub.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,iDAA8C;AAC9C,+CAA4E;AAC5E,sDAAuD;AACvD,mDAAgD;AAChD,sDAA2C;AAE3C;;;;GAIG;AAEU,QAAA,MAAM,GAAG,IAAA,2BAAc,EAAC;IACnC,eAAe;IACf,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,oDAAoD;IACpD,sCAAsC;IACtC,EAAE,EAAE,IAAA,eAAE,EAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC;IACpF,4CAA4C;IAC5C,CAAC,EAAE,MAAM,CAAC,mEAAmE,CAAC;IAC9E,WAAW;IACX,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,IAAI,EAAE,eAAM;IACZ,WAAW,EAAX,mBAAW;CACH,CAAC,CAAC;AAEZ,MAAM,cAAc,GAAG,IAAA,mBAAW,EAChC,kEAAkE,CACnE,CAAC;AAEF,kEAAkE;AAClE,SAAgB,SAAS,CAAC,GAAe,EAAE,eAA2B;IACpE,MAAM,CAAC,GAAG,iBAAO,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACd,mEAAmE;IACnE,IAAI,CAAC,GAAG,cAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,0DAA0D;IAC1D,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,MAAM,CAAC,cAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClF,OAAO,CAAC,CAAC;AACX,CAAC;AAVD,8BAUC;AAED,SAAgB,aAAa,CAAC,CAAa,EAAE,eAA2B;IACtE,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5B,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI;YACF,OAAO,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChD,CAAC;AATD,sCASC"}
1
+ {"version":3,"file":"jubjub.js","sourceRoot":"","sources":["src/jubjub.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAE3C;;;;GAIG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,cAAc,CAAC;IACnC,eAAe;IACf,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,oDAAoD;IACpD,sCAAsC;IACtC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC;IACpF,4CAA4C;IAC5C,CAAC,EAAE,MAAM,CAAC,mEAAmE,CAAC;IAC9E,WAAW;IACX,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,IAAI,EAAE,MAAM;IACZ,WAAW;CACH,CAAC,CAAC;AAEZ,MAAM,cAAc,GAAG,WAAW,CAChC,kEAAkE,CACnE,CAAC;AAEF,kEAAkE;AAClE,MAAM,UAAU,SAAS,CAAC,GAAe,EAAE,eAA2B;IACpE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACd,mEAAmE;IACnE,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,0DAA0D;IAC1D,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAa,EAAE,eAA2B;IACtE,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5B,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI;YACF,OAAO,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChD,CAAC"}
package/p256.js CHANGED
@@ -1,24 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeToCurve = exports.hashToCurve = exports.secp256r1 = exports.P256 = void 0;
4
1
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
- const _shortw_utils_js_1 = require("./_shortw_utils.js");
6
- const sha256_1 = require("@noble/hashes/sha256");
7
- const modular_js_1 = require("./abstract/modular.js");
8
- const weierstrass_js_1 = require("./abstract/weierstrass.js");
9
- const htf = require("./abstract/hash-to-curve.js");
2
+ import { createCurve } from './_shortw_utils.js';
3
+ import { sha256 } from '@noble/hashes/sha256';
4
+ import { Fp as Field } from './abstract/modular.js';
5
+ import { mapToCurveSimpleSWU } from './abstract/weierstrass.js';
6
+ import * as htf from './abstract/hash-to-curve.js';
10
7
  // NIST secp256r1 aka P256
11
8
  // https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-256
12
9
  // Field over which we'll do calculations; 2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n
13
- const Fp = (0, modular_js_1.Fp)(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));
10
+ const Fp = Field(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));
14
11
  const CURVE_A = Fp.create(BigInt('-3'));
15
12
  const CURVE_B = BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b');
16
- const mapSWU = (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {
13
+ const mapSWU = mapToCurveSimpleSWU(Fp, {
17
14
  A: CURVE_A,
18
15
  B: CURVE_B,
19
16
  Z: Fp.create(BigInt('-10')),
20
17
  });
21
- exports.P256 = (0, _shortw_utils_js_1.createCurve)({
18
+ export const P256 = createCurve({
22
19
  // Params: a, b
23
20
  a: CURVE_A,
24
21
  b: CURVE_B,
@@ -30,17 +27,16 @@ exports.P256 = (0, _shortw_utils_js_1.createCurve)({
30
27
  Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),
31
28
  h: BigInt(1),
32
29
  lowS: false,
33
- }, sha256_1.sha256);
34
- exports.secp256r1 = exports.P256;
35
- const { hashToCurve, encodeToCurve } = htf.createHasher(exports.secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
30
+ }, sha256);
31
+ export const secp256r1 = P256;
32
+ const { hashToCurve, encodeToCurve } = htf.createHasher(secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
36
33
  DST: 'P256_XMD:SHA-256_SSWU_RO_',
37
34
  encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
38
35
  p: Fp.ORDER,
39
36
  m: 1,
40
37
  k: 128,
41
38
  expand: 'xmd',
42
- hash: sha256_1.sha256,
39
+ hash: sha256,
43
40
  });
44
- exports.hashToCurve = hashToCurve;
45
- exports.encodeToCurve = encodeToCurve;
41
+ export { hashToCurve, encodeToCurve };
46
42
  //# sourceMappingURL=p256.js.map
package/p256.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p256.js","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,yDAAiD;AACjD,iDAA8C;AAC9C,sDAAoD;AACpD,8DAAgE;AAChE,mDAAmD;AAEnD,0BAA0B;AAC1B,0EAA0E;AAE1E,0FAA0F;AAC1F,MAAM,EAAE,GAAG,IAAA,eAAK,EAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;AAC/F,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE7F,MAAM,MAAM,GAAG,IAAA,oCAAmB,EAAC,EAAE,EAAE;IACrC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEU,QAAA,IAAI,GAAG,IAAA,8BAAW,EAC7B;IACE,eAAe;IACf,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE;IACF,wDAAwD;IACxD,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EACV,eAAM,CACP,CAAC;AACW,QAAA,SAAS,GAAG,YAAI,CAAC;AAE9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,YAAY,CACrD,iBAAS,CAAC,eAAe,EACzB,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzC;IACE,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CACF,CAAC;AACO,kCAAW;AAAE,sCAAa"}
1
+ {"version":3,"file":"p256.js","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAEnD,0BAA0B;AAC1B,0EAA0E;AAE1E,0FAA0F;AAC1F,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;AAC/F,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE7F,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE;IACrC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAC7B;IACE,eAAe;IACf,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE;IACF,wDAAwD;IACxD,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EACV,MAAM,CACP,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,YAAY,CACrD,SAAS,CAAC,eAAe,EACzB,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzC;IACE,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,MAAM;CACb,CACF,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
package/p384.js CHANGED
@@ -1,28 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeToCurve = exports.hashToCurve = exports.secp384r1 = exports.P384 = void 0;
4
1
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
- const _shortw_utils_js_1 = require("./_shortw_utils.js");
6
- const sha512_1 = require("@noble/hashes/sha512");
7
- const modular_js_1 = require("./abstract/modular.js");
8
- const weierstrass_js_1 = require("./abstract/weierstrass.js");
9
- const htf = require("./abstract/hash-to-curve.js");
2
+ import { createCurve } from './_shortw_utils.js';
3
+ import { sha384 } from '@noble/hashes/sha512';
4
+ import { Fp as Field } from './abstract/modular.js';
5
+ import { mapToCurveSimpleSWU } from './abstract/weierstrass.js';
6
+ import * as htf from './abstract/hash-to-curve.js';
10
7
  // NIST secp384r1 aka P384
11
8
  // https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-384
12
9
  // Field over which we'll do calculations. 2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n
13
10
  // prettier-ignore
14
11
  const P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff');
15
- const Fp = (0, modular_js_1.Fp)(P);
12
+ const Fp = Field(P);
16
13
  const CURVE_A = Fp.create(BigInt('-3'));
17
14
  // prettier-ignore
18
15
  const CURVE_B = BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef');
19
- const mapSWU = (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {
16
+ const mapSWU = mapToCurveSimpleSWU(Fp, {
20
17
  A: CURVE_A,
21
18
  B: CURVE_B,
22
19
  Z: Fp.create(BigInt('-12')),
23
20
  });
24
21
  // prettier-ignore
25
- exports.P384 = (0, _shortw_utils_js_1.createCurve)({
22
+ export const P384 = createCurve({
26
23
  // Params: a, b
27
24
  a: CURVE_A,
28
25
  b: CURVE_B,
@@ -35,17 +32,16 @@ exports.P384 = (0, _shortw_utils_js_1.createCurve)({
35
32
  Gy: BigInt('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f'),
36
33
  h: BigInt(1),
37
34
  lowS: false,
38
- }, sha512_1.sha384);
39
- exports.secp384r1 = exports.P384;
40
- const { hashToCurve, encodeToCurve } = htf.createHasher(exports.secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
35
+ }, sha384);
36
+ export const secp384r1 = P384;
37
+ const { hashToCurve, encodeToCurve } = htf.createHasher(secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
41
38
  DST: 'P384_XMD:SHA-384_SSWU_RO_',
42
39
  encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
43
40
  p: Fp.ORDER,
44
41
  m: 1,
45
42
  k: 192,
46
43
  expand: 'xmd',
47
- hash: sha512_1.sha384,
44
+ hash: sha384,
48
45
  });
49
- exports.hashToCurve = hashToCurve;
50
- exports.encodeToCurve = encodeToCurve;
46
+ export { hashToCurve, encodeToCurve };
51
47
  //# sourceMappingURL=p384.js.map
package/p384.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p384.js","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,yDAAiD;AACjD,iDAA8C;AAC9C,sDAAoD;AACpD,8DAAgE;AAChE,mDAAmD;AAEnD,0BAA0B;AAC1B,0EAA0E;AAE1E,uFAAuF;AACvF,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AACvH,MAAM,EAAE,GAAG,IAAA,eAAK,EAAC,CAAC,CAAC,CAAC;AACpB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,kBAAkB;AAClB,MAAM,OAAO,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AAE7H,MAAM,MAAM,GAAG,IAAA,oCAAmB,EAAC,EAAE,EAAE;IACrC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,kBAAkB;AACL,QAAA,IAAI,GAAG,IAAA,8BAAW,EAAC;IAC5B,eAAe;IACf,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,uFAAuF;IACvF,EAAE;IACF,yDAAyD;IACzD,CAAC,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAC/G,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EACV,eAAM,CACP,CAAC;AACW,QAAA,SAAS,GAAG,YAAI,CAAC;AAE9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,YAAY,CACrD,iBAAS,CAAC,eAAe,EACzB,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzC;IACE,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CACF,CAAC;AACO,kCAAW;AAAE,sCAAa"}
1
+ {"version":3,"file":"p384.js","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAEnD,0BAA0B;AAC1B,0EAA0E;AAE1E,uFAAuF;AACvF,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AACvH,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,kBAAkB;AAClB,MAAM,OAAO,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AAE7H,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE;IACrC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;IAC5B,eAAe;IACf,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,uFAAuF;IACvF,EAAE;IACF,yDAAyD;IACzD,CAAC,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAC/G,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EACV,MAAM,CACP,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,YAAY,CACrD,SAAS,CAAC,eAAe,EACzB,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzC;IACE,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,MAAM;CACb,CACF,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
package/p521.js CHANGED
@@ -1,29 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeToCurve = exports.hashToCurve = exports.secp521r1 = exports.P521 = void 0;
4
1
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
- const _shortw_utils_js_1 = require("./_shortw_utils.js");
6
- const sha512_1 = require("@noble/hashes/sha512");
7
- const modular_js_1 = require("./abstract/modular.js");
8
- const weierstrass_js_1 = require("./abstract/weierstrass.js");
9
- const htf = require("./abstract/hash-to-curve.js");
2
+ import { createCurve } from './_shortw_utils.js';
3
+ import { sha512 } from '@noble/hashes/sha512';
4
+ import { Fp as Field } from './abstract/modular.js';
5
+ import { mapToCurveSimpleSWU } from './abstract/weierstrass.js';
6
+ import * as htf from './abstract/hash-to-curve.js';
10
7
  // NIST secp521r1 aka P521
11
8
  // Note that it's 521, which differs from 512 of its hash function.
12
9
  // https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-521
13
10
  // Field over which we'll do calculations; 2n**521n - 1n
14
11
  // prettier-ignore
15
12
  const P = BigInt('0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
16
- const Fp = (0, modular_js_1.Fp)(P);
13
+ const Fp = Field(P);
17
14
  const CURVE_A = Fp.create(BigInt('-3'));
18
15
  // prettier-ignore
19
16
  const CURVE_B = BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00');
20
- const mapSWU = (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {
17
+ const mapSWU = mapToCurveSimpleSWU(Fp, {
21
18
  A: CURVE_A,
22
19
  B: CURVE_B,
23
20
  Z: Fp.create(BigInt('-4')),
24
21
  });
25
22
  // prettier-ignore
26
- exports.P521 = (0, _shortw_utils_js_1.createCurve)({
23
+ export const P521 = createCurve({
27
24
  // Params: a, b
28
25
  a: CURVE_A,
29
26
  b: CURVE_B,
@@ -36,17 +33,16 @@ exports.P521 = (0, _shortw_utils_js_1.createCurve)({
36
33
  h: BigInt(1),
37
34
  lowS: false,
38
35
  allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b
39
- }, sha512_1.sha512);
40
- exports.secp521r1 = exports.P521;
41
- const { hashToCurve, encodeToCurve } = htf.createHasher(exports.secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
36
+ }, sha512);
37
+ export const secp521r1 = P521;
38
+ const { hashToCurve, encodeToCurve } = htf.createHasher(secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
42
39
  DST: 'P521_XMD:SHA-512_SSWU_RO_',
43
40
  encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
44
41
  p: Fp.ORDER,
45
42
  m: 1,
46
43
  k: 256,
47
44
  expand: 'xmd',
48
- hash: sha512_1.sha512,
45
+ hash: sha512,
49
46
  });
50
- exports.hashToCurve = hashToCurve;
51
- exports.encodeToCurve = encodeToCurve;
47
+ export { hashToCurve, encodeToCurve };
52
48
  //# sourceMappingURL=p521.js.map
package/p521.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p521.js","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,yDAAiD;AACjD,iDAA8C;AAC9C,sDAAoD;AACpD,8DAAgE;AAChE,mDAAmD;AAEnD,0BAA0B;AAC1B,mEAAmE;AACnE,0EAA0E;AAE1E,wDAAwD;AACxD,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,uIAAuI,CAAC,CAAC;AAC1J,MAAM,EAAE,GAAG,IAAA,eAAK,EAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,kBAAkB;AAClB,MAAM,OAAO,GAAG,MAAM,CAAC,wIAAwI,CAAC,CAAC;AAEjK,MAAM,MAAM,GAAG,IAAA,oCAAmB,EAAC,EAAE,EAAE;IACrC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,kBAAkB;AACL,QAAA,IAAI,GAAG,IAAA,8BAAW,EAAC;IAC9B,eAAe;IACf,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE;IACF,wDAAwD;IACxD,CAAC,EAAE,MAAM,CAAC,wIAAwI,CAAC;IACnJ,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,wIAAwI,CAAC;IACpJ,EAAE,EAAE,MAAM,CAAC,wIAAwI,CAAC;IACpJ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;IACX,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mDAAmD;CACrF,EAAE,eAAM,CAAC,CAAC;AACP,QAAA,SAAS,GAAG,YAAI,CAAC;AAE9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,YAAY,CACrD,iBAAS,CAAC,eAAe,EACzB,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzC;IACE,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CACF,CAAC;AACO,kCAAW;AAAE,sCAAa"}
1
+ {"version":3,"file":"p521.js","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAEnD,0BAA0B;AAC1B,mEAAmE;AACnE,0EAA0E;AAE1E,wDAAwD;AACxD,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,uIAAuI,CAAC,CAAC;AAC1J,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,kBAAkB;AAClB,MAAM,OAAO,GAAG,MAAM,CAAC,wIAAwI,CAAC,CAAC;AAEjK,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE;IACrC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;IAC9B,eAAe;IACf,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE;IACF,wDAAwD;IACxD,CAAC,EAAE,MAAM,CAAC,wIAAwI,CAAC;IACnJ,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC,wIAAwI,CAAC;IACpJ,EAAE,EAAE,MAAM,CAAC,wIAAwI,CAAC;IACpJ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;IACX,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mDAAmD;CACrF,EAAE,MAAM,CAAC,CAAC;AACpB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,YAAY,CACrD,SAAS,CAAC,eAAe,EACzB,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzC;IACE,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,MAAM;CACb,CACF,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@noble/curves",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "description": "Minimal, auditable JS implementation of elliptic curve cryptography",
5
5
  "files": [
6
6
  "abstract",
7
- "esm",
8
7
  "src",
9
8
  "*.js",
10
9
  "*.js.map",
@@ -13,7 +12,8 @@
13
12
  ],
14
13
  "scripts": {
15
14
  "bench": "cd benchmark; node secp256k1.js; node curves.js; node ecdh.js; node stark.js; node bls.js",
16
- "build": "tsc && tsc -p tsconfig.esm.json",
15
+ "build": "tsc",
16
+ "build:clean": "rm *.{js,d.ts,js.map} esm/*.{js,js.map} 2> /dev/null",
17
17
  "build:release": "rollup -c rollup.config.js",
18
18
  "lint": "prettier --check 'src/**/*.{js,ts}' 'test/*.js'",
19
19
  "format": "prettier --write 'src/**/*.{js,ts}' 'test/*.js'",
@@ -40,120 +40,98 @@
40
40
  "typescript": "4.7.3"
41
41
  },
42
42
  "main": "index.js",
43
+ "type": "module",
43
44
  "exports": {
44
45
  ".": {
45
46
  "types": "./index.d.ts",
46
- "import": "./esm/index.js",
47
47
  "default": "./index.js"
48
48
  },
49
49
  "./abstract/edwards": {
50
50
  "types": "./abstract/edwards.d.ts",
51
- "import": "./esm/abstract/edwards.js",
52
51
  "default": "./abstract/edwards.js"
53
52
  },
54
53
  "./abstract/modular": {
55
54
  "types": "./abstract/modular.d.ts",
56
- "import": "./esm/abstract/modular.js",
57
55
  "default": "./abstract/modular.js"
58
56
  },
59
57
  "./abstract/montgomery": {
60
58
  "types": "./abstract/montgomery.d.ts",
61
- "import": "./esm/abstract/montgomery.js",
62
59
  "default": "./abstract/montgomery.js"
63
60
  },
64
61
  "./abstract/weierstrass": {
65
62
  "types": "./abstract/weierstrass.d.ts",
66
- "import": "./esm/abstract/weierstrass.js",
67
63
  "default": "./abstract/weierstrass.js"
68
64
  },
69
65
  "./abstract/bls": {
70
66
  "types": "./abstract/bls.d.ts",
71
- "import": "./esm/abstract/bls.js",
72
67
  "default": "./abstract/bls.js"
73
68
  },
74
69
  "./abstract/hash-to-curve": {
75
70
  "types": "./abstract/hash-to-curve.d.ts",
76
- "import": "./esm/abstract/hash-to-curve.js",
77
71
  "default": "./abstract/hash-to-curve.js"
78
72
  },
79
73
  "./abstract/curve": {
80
74
  "types": "./abstract/curve.d.ts",
81
- "import": "./esm/abstract/curve.js",
82
75
  "default": "./abstract/curve.js"
83
76
  },
84
77
  "./abstract/utils": {
85
78
  "types": "./abstract/utils.d.ts",
86
- "import": "./esm/abstract/utils.js",
87
79
  "default": "./abstract/utils.js"
88
80
  },
89
81
  "./abstract/poseidon": {
90
82
  "types": "./abstract/poseidon.d.ts",
91
- "import": "./esm/abstract/poseidon.js",
92
83
  "default": "./abstract/poseidon.js"
93
84
  },
94
85
  "./_shortw_utils": {
95
86
  "types": "./_shortw_utils.d.ts",
96
- "import": "./esm/_shortw_utils.js",
97
87
  "default": "./_shortw_utils.js"
98
88
  },
99
89
  "./bls12-381": {
100
90
  "types": "./bls12-381.d.ts",
101
- "import": "./esm/bls12-381.js",
102
91
  "default": "./bls12-381.js"
103
92
  },
104
93
  "./bn": {
105
94
  "types": "./bn.d.ts",
106
- "import": "./esm/bn.js",
107
95
  "default": "./bn.js"
108
96
  },
109
97
  "./ed25519": {
110
98
  "types": "./ed25519.d.ts",
111
- "import": "./esm/ed25519.js",
112
99
  "default": "./ed25519.js"
113
100
  },
114
101
  "./ed448": {
115
102
  "types": "./ed448.d.ts",
116
- "import": "./esm/ed448.js",
117
103
  "default": "./ed448.js"
118
104
  },
119
105
  "./index": {
120
106
  "types": "./index.d.ts",
121
- "import": "./esm/index.js",
122
107
  "default": "./index.js"
123
108
  },
124
109
  "./jubjub": {
125
110
  "types": "./jubjub.d.ts",
126
- "import": "./esm/jubjub.js",
127
111
  "default": "./jubjub.js"
128
112
  },
129
113
  "./p256": {
130
114
  "types": "./p256.d.ts",
131
- "import": "./esm/p256.js",
132
115
  "default": "./p256.js"
133
116
  },
134
117
  "./p384": {
135
118
  "types": "./p384.d.ts",
136
- "import": "./esm/p384.js",
137
119
  "default": "./p384.js"
138
120
  },
139
121
  "./p521": {
140
122
  "types": "./p521.d.ts",
141
- "import": "./esm/p521.js",
142
123
  "default": "./p521.js"
143
124
  },
144
125
  "./pasta": {
145
126
  "types": "./pasta.d.ts",
146
- "import": "./esm/pasta.js",
147
127
  "default": "./pasta.js"
148
128
  },
149
129
  "./secp256k1": {
150
130
  "types": "./secp256k1.d.ts",
151
- "import": "./esm/secp256k1.js",
152
131
  "default": "./secp256k1.js"
153
132
  },
154
133
  "./stark": {
155
134
  "types": "./stark.d.ts",
156
- "import": "./esm/stark.js",
157
135
  "default": "./stark.js"
158
136
  }
159
137
  },
package/pasta.js CHANGED
@@ -1,33 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.vesta = exports.pallas = exports.q = exports.p = void 0;
4
1
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
- const sha256_1 = require("@noble/hashes/sha256");
6
- const weierstrass_js_1 = require("./abstract/weierstrass.js");
7
- const _shortw_utils_js_1 = require("./_shortw_utils.js");
8
- const mod = require("./abstract/modular.js");
9
- exports.p = BigInt('0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001');
10
- exports.q = BigInt('0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001');
2
+ import { sha256 } from '@noble/hashes/sha256';
3
+ import { weierstrass } from './abstract/weierstrass.js';
4
+ import { getHash } from './_shortw_utils.js';
5
+ import * as mod from './abstract/modular.js';
6
+ export const p = BigInt('0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001');
7
+ export const q = BigInt('0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001');
11
8
  // https://neuromancer.sk/std/other/Pallas
12
- exports.pallas = (0, weierstrass_js_1.weierstrass)({
9
+ export const pallas = weierstrass({
13
10
  a: BigInt(0),
14
11
  b: BigInt(5),
15
- Fp: mod.Fp(exports.p),
16
- n: exports.q,
17
- Gx: mod.mod(BigInt(-1), exports.p),
12
+ Fp: mod.Fp(p),
13
+ n: q,
14
+ Gx: mod.mod(BigInt(-1), p),
18
15
  Gy: BigInt(2),
19
16
  h: BigInt(1),
20
- ...(0, _shortw_utils_js_1.getHash)(sha256_1.sha256),
17
+ ...getHash(sha256),
21
18
  });
22
19
  // https://neuromancer.sk/std/other/Vesta
23
- exports.vesta = (0, weierstrass_js_1.weierstrass)({
20
+ export const vesta = weierstrass({
24
21
  a: BigInt(0),
25
22
  b: BigInt(5),
26
- Fp: mod.Fp(exports.q),
27
- n: exports.p,
28
- Gx: mod.mod(BigInt(-1), exports.q),
23
+ Fp: mod.Fp(q),
24
+ n: p,
25
+ Gx: mod.mod(BigInt(-1), q),
29
26
  Gy: BigInt(2),
30
27
  h: BigInt(1),
31
- ...(0, _shortw_utils_js_1.getHash)(sha256_1.sha256),
28
+ ...getHash(sha256),
32
29
  });
33
30
  //# sourceMappingURL=pasta.js.map
package/pasta.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,iDAA8C;AAC9C,8DAAwD;AACxD,yDAA6C;AAC7C,6CAA6C;AAEhC,QAAA,CAAC,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AACjF,QAAA,CAAC,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE9F,0CAA0C;AAC7B,QAAA,MAAM,GAAG,IAAA,4BAAW,EAAC;IAChC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,SAAC,CAAC;IACb,CAAC,EAAE,SAAC;IACJ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAC,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,IAAA,0BAAO,EAAC,eAAM,CAAC;CACnB,CAAC,CAAC;AACH,yCAAyC;AAC5B,QAAA,KAAK,GAAG,IAAA,4BAAW,EAAC;IAC/B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,SAAC,CAAC;IACb,CAAC,EAAE,SAAC;IACJ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAC,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,IAAA,0BAAO,EAAC,eAAM,CAAC;CACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE9F,0CAA0C;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,CAAC;IACJ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,OAAO,CAAC,MAAM,CAAC;CACnB,CAAC,CAAC;AACH,yCAAyC;AACzC,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,CAAC;IACJ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,OAAO,CAAC,MAAM,CAAC;CACnB,CAAC,CAAC"}
package/secp256k1.d.ts CHANGED
@@ -54,11 +54,6 @@ export declare const secp256k1: Readonly<{
54
54
  };
55
55
  }>;
56
56
  declare function taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array;
57
- declare function schnorrGetExtPubKey(priv: PrivKey): {
58
- point: PointType<bigint>;
59
- scalar: bigint;
60
- bytes: Uint8Array;
61
- };
62
57
  /**
63
58
  * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.
64
59
  * @returns valid point checked for being on-curve
@@ -84,7 +79,6 @@ export declare const schnorr: {
84
79
  verify: typeof schnorrVerify;
85
80
  utils: {
86
81
  randomPrivateKey: () => Uint8Array;
87
- getExtendedPublicKey: typeof schnorrGetExtPubKey;
88
82
  lift_x: typeof lift_x;
89
83
  pointToBytes: (point: PointType<bigint>) => Uint8Array;
90
84
  numberToBytesBE: (n: bigint, len: number) => Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,GAAG,EAAQ,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAA6C,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAwCnD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CrB,CAAC;AASF,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,CAQtE;AAWD,iBAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO;;;;EAKzC;AACD;;;GAGG;AACH,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAS5C;AAQD;;GAEG;AACH,iBAAS,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,UAAU,CAExD;AAED;;;GAGG;AACH,iBAAS,WAAW,CAClB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,GAAqB,GAC7B,UAAU,CAgBZ;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAiB5E;AAED,eAAO,MAAM,OAAO;;;;;;;;8BA3FS,UAAU,MAAM,CAAC;;;;;;CAyG7C,CAAC;AAuCF,eAAO,MAAQ,WAAW,qFAAE,aAAa,mFAexC,CAAC"}
1
+ {"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,GAAG,EAAQ,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAA6C,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAwCnD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CrB,CAAC;AASF,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,CAQtE;AAkBD;;;GAGG;AACH,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAS5C;AAQD;;GAEG;AACH,iBAAS,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,UAAU,CAExD;AAED;;;GAGG;AACH,iBAAS,WAAW,CAClB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,GAAqB,GAC7B,UAAU,CAgBZ;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAiB5E;AAED,eAAO,MAAM,OAAO;;;;;;;8BA5FS,UAAU,MAAM,CAAC;;;;;;CAyG7C,CAAC;AAuCF,eAAO,MAAQ,WAAW,qFAAE,aAAa,mFAexC,CAAC"}