@noble/curves 0.6.3 → 0.7.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 (172) hide show
  1. package/README.md +429 -281
  2. package/{lib/_shortw_utils.d.ts → _shortw_utils.d.ts} +3 -1
  3. package/_shortw_utils.d.ts.map +1 -0
  4. package/{lib/_shortw_utils.js → _shortw_utils.js} +2 -0
  5. package/_shortw_utils.js.map +1 -0
  6. package/{lib/abstract → abstract}/bls.d.ts +4 -9
  7. package/abstract/bls.d.ts.map +1 -0
  8. package/{lib/abstract → abstract}/bls.js +12 -25
  9. package/abstract/bls.js.map +1 -0
  10. package/{lib/abstract → abstract}/curve.d.ts +1 -0
  11. package/abstract/curve.d.ts.map +1 -0
  12. package/{lib/abstract → abstract}/curve.js +1 -0
  13. package/abstract/curve.js.map +1 -0
  14. package/{lib/abstract → abstract}/edwards.d.ts +1 -0
  15. package/abstract/edwards.d.ts.map +1 -0
  16. package/{lib/abstract → abstract}/edwards.js +9 -15
  17. package/abstract/edwards.js.map +1 -0
  18. package/{lib/abstract → abstract}/hash-to-curve.d.ts +5 -5
  19. package/abstract/hash-to-curve.d.ts.map +1 -0
  20. package/{lib/abstract → abstract}/hash-to-curve.js +41 -38
  21. package/abstract/hash-to-curve.js.map +1 -0
  22. package/{lib/abstract → abstract}/modular.d.ts +1 -0
  23. package/abstract/modular.d.ts.map +1 -0
  24. package/{lib/abstract → abstract}/modular.js +2 -1
  25. package/abstract/modular.js.map +1 -0
  26. package/{lib/abstract → abstract}/montgomery.d.ts +1 -0
  27. package/abstract/montgomery.d.ts.map +1 -0
  28. package/{lib/abstract → abstract}/montgomery.js +3 -2
  29. package/abstract/montgomery.js.map +1 -0
  30. package/{lib/abstract → abstract}/poseidon.d.ts +1 -0
  31. package/abstract/poseidon.d.ts.map +1 -0
  32. package/{lib/abstract → abstract}/poseidon.js +1 -0
  33. package/abstract/poseidon.js.map +1 -0
  34. package/{lib/abstract → abstract}/utils.d.ts +12 -1
  35. package/abstract/utils.d.ts.map +1 -0
  36. package/{lib/abstract → abstract}/utils.js +96 -10
  37. package/abstract/utils.js.map +1 -0
  38. package/{lib/abstract → abstract}/weierstrass.d.ts +6 -4
  39. package/abstract/weierstrass.d.ts.map +1 -0
  40. package/{lib/abstract → abstract}/weierstrass.js +55 -93
  41. package/abstract/weierstrass.js.map +1 -0
  42. package/{lib/bls12-381.d.ts → bls12-381.d.ts} +1 -0
  43. package/bls12-381.d.ts.map +1 -0
  44. package/{lib/bls12-381.js → bls12-381.js} +41 -7
  45. package/bls12-381.js.map +1 -0
  46. package/{lib/bn.d.ts → bn.d.ts} +1 -0
  47. package/bn.d.ts.map +1 -0
  48. package/{lib/bn.js → bn.js} +1 -0
  49. package/bn.js.map +1 -0
  50. package/{lib/ed25519.d.ts → ed25519.d.ts} +2 -1
  51. package/ed25519.d.ts.map +1 -0
  52. package/{lib/ed25519.js → ed25519.js} +4 -3
  53. package/ed25519.js.map +1 -0
  54. package/{lib/ed448.d.ts → ed448.d.ts} +2 -1
  55. package/ed448.d.ts.map +1 -0
  56. package/{lib/ed448.js → ed448.js} +2 -1
  57. package/ed448.js.map +1 -0
  58. package/{lib/esm → esm}/_shortw_utils.js +2 -0
  59. package/esm/_shortw_utils.js.map +1 -0
  60. package/{lib/esm → esm}/abstract/bls.js +13 -26
  61. package/esm/abstract/bls.js.map +1 -0
  62. package/{lib/esm → esm}/abstract/curve.js +1 -0
  63. package/esm/abstract/curve.js.map +1 -0
  64. package/{lib/esm → esm}/abstract/edwards.js +9 -15
  65. package/esm/abstract/edwards.js.map +1 -0
  66. package/{lib/esm → esm}/abstract/hash-to-curve.js +40 -36
  67. package/esm/abstract/hash-to-curve.js.map +1 -0
  68. package/{lib/esm → esm}/abstract/modular.js +2 -1
  69. package/esm/abstract/modular.js.map +1 -0
  70. package/{lib/esm → esm}/abstract/montgomery.js +3 -2
  71. package/esm/abstract/montgomery.js.map +1 -0
  72. package/{lib/esm → esm}/abstract/poseidon.js +1 -0
  73. package/esm/abstract/poseidon.js.map +1 -0
  74. package/{lib/esm → esm}/abstract/utils.js +93 -9
  75. package/esm/abstract/utils.js.map +1 -0
  76. package/{lib/esm → esm}/abstract/weierstrass.js +55 -93
  77. package/esm/abstract/weierstrass.js.map +1 -0
  78. package/{lib/esm → esm}/bls12-381.js +41 -7
  79. package/esm/bls12-381.js.map +1 -0
  80. package/{lib/esm → esm}/bn.js +1 -0
  81. package/esm/bn.js.map +1 -0
  82. package/{lib/esm → esm}/ed25519.js +5 -4
  83. package/esm/ed25519.js.map +1 -0
  84. package/{lib/esm → esm}/ed448.js +2 -1
  85. package/esm/ed448.js.map +1 -0
  86. package/{lib → esm}/index.js +1 -0
  87. package/esm/index.js.map +1 -0
  88. package/{lib/esm → esm}/jubjub.js +1 -0
  89. package/esm/jubjub.js.map +1 -0
  90. package/{lib/esm → esm}/p192.js +1 -0
  91. package/esm/p192.js.map +1 -0
  92. package/{lib/esm → esm}/p224.js +1 -0
  93. package/esm/p224.js.map +1 -0
  94. package/{lib/esm → esm}/p256.js +2 -1
  95. package/esm/p256.js.map +1 -0
  96. package/{lib/esm → esm}/p384.js +2 -1
  97. package/esm/p384.js.map +1 -0
  98. package/{lib/esm → esm}/p521.js +2 -1
  99. package/esm/p521.js.map +1 -0
  100. package/{lib/esm → esm}/package.json +0 -0
  101. package/{lib/esm → esm}/pasta.js +1 -0
  102. package/esm/pasta.js.map +1 -0
  103. package/{lib/esm → esm}/secp256k1.js +41 -50
  104. package/esm/secp256k1.js.map +1 -0
  105. package/{lib/esm → esm}/stark.js +1 -0
  106. package/esm/stark.js.map +1 -0
  107. package/index.d.ts +1 -0
  108. package/index.d.ts.map +1 -0
  109. package/index.js +3 -0
  110. package/index.js.map +1 -0
  111. package/{lib/jubjub.d.ts → jubjub.d.ts} +1 -0
  112. package/jubjub.d.ts.map +1 -0
  113. package/{lib/jubjub.js → jubjub.js} +1 -0
  114. package/jubjub.js.map +1 -0
  115. package/{lib/p192.d.ts → p192.d.ts} +5 -2
  116. package/p192.d.ts.map +1 -0
  117. package/{lib/p192.js → p192.js} +1 -0
  118. package/p192.js.map +1 -0
  119. package/{lib/p224.d.ts → p224.d.ts} +5 -2
  120. package/p224.d.ts.map +1 -0
  121. package/{lib/p224.js → p224.js} +1 -0
  122. package/p224.js.map +1 -0
  123. package/{lib/p256.d.ts → p256.d.ts} +6 -3
  124. package/p256.d.ts.map +1 -0
  125. package/{lib/p256.js → p256.js} +2 -1
  126. package/p256.js.map +1 -0
  127. package/{lib/p384.d.ts → p384.d.ts} +6 -3
  128. package/p384.d.ts.map +1 -0
  129. package/{lib/p384.js → p384.js} +2 -1
  130. package/p384.js.map +1 -0
  131. package/{lib/p521.d.ts → p521.d.ts} +6 -3
  132. package/p521.d.ts.map +1 -0
  133. package/{lib/p521.js → p521.js} +2 -1
  134. package/p521.js.map +1 -0
  135. package/package.json +84 -79
  136. package/{lib/pasta.d.ts → pasta.d.ts} +1 -0
  137. package/pasta.d.ts.map +1 -0
  138. package/{lib/pasta.js → pasta.js} +1 -0
  139. package/pasta.js.map +1 -0
  140. package/{lib/secp256k1.d.ts → secp256k1.d.ts} +17 -6
  141. package/secp256k1.d.ts.map +1 -0
  142. package/{lib/secp256k1.js → secp256k1.js} +38 -47
  143. package/secp256k1.js.map +1 -0
  144. package/src/_shortw_utils.ts +20 -0
  145. package/src/abstract/bls.ts +376 -0
  146. package/src/abstract/curve.ts +199 -0
  147. package/src/abstract/edwards.ts +479 -0
  148. package/src/abstract/hash-to-curve.ts +220 -0
  149. package/src/abstract/modular.ts +417 -0
  150. package/src/abstract/montgomery.ts +184 -0
  151. package/src/abstract/poseidon.ts +119 -0
  152. package/src/abstract/utils.ts +246 -0
  153. package/src/abstract/weierstrass.ts +1175 -0
  154. package/src/bls12-381.ts +1274 -0
  155. package/src/bn.ts +21 -0
  156. package/src/ed25519.ts +428 -0
  157. package/src/ed448.ts +241 -0
  158. package/{lib/esm/index.js → src/index.ts} +0 -1
  159. package/src/jubjub.ts +58 -0
  160. package/src/p192.ts +25 -0
  161. package/src/p224.ts +25 -0
  162. package/src/p256.ts +53 -0
  163. package/src/p384.ts +57 -0
  164. package/src/p521.ts +57 -0
  165. package/src/pasta.ts +31 -0
  166. package/src/secp256k1.ts +260 -0
  167. package/src/stark.ts +356 -0
  168. package/{lib/stark.d.ts → stark.d.ts} +3 -1
  169. package/stark.d.ts.map +1 -0
  170. package/{lib/stark.js → stark.js} +1 -0
  171. package/stark.js.map +1 -0
  172. package/lib/index.d.ts +0 -0
@@ -43,10 +43,11 @@ export declare const P256: Readonly<{
43
43
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
44
44
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
45
45
  utils: {
46
- _normalizePrivateKey: (key: import("./abstract/utils.js").PrivKey) => bigint;
46
+ normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
47
47
  isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
48
48
  hashToPrivateKey: (hash: import("./abstract/utils.js").Hex) => Uint8Array;
49
49
  randomPrivateKey: () => Uint8Array;
50
+ precompute: (windowSize?: number | undefined, point?: import("./abstract/weierstrass.js").ProjPointType<bigint> | undefined) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
50
51
  };
51
52
  }>;
52
53
  export declare const secp256r1: Readonly<{
@@ -93,11 +94,13 @@ export declare const secp256r1: Readonly<{
93
94
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
94
95
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
95
96
  utils: {
96
- _normalizePrivateKey: (key: import("./abstract/utils.js").PrivKey) => bigint;
97
+ normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
97
98
  isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
98
99
  hashToPrivateKey: (hash: import("./abstract/utils.js").Hex) => Uint8Array;
99
100
  randomPrivateKey: () => Uint8Array;
101
+ precompute: (windowSize?: number | undefined, point?: import("./abstract/weierstrass.js").ProjPointType<bigint> | undefined) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
100
102
  };
101
103
  }>;
102
- declare const hashToCurve: (msg: import("./abstract/utils.js").Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: import("./abstract/utils.js").Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
104
+ declare const hashToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
103
105
  export { hashToCurve, encodeToCurve };
106
+ //# sourceMappingURL=p256.d.ts.map
package/p256.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p256.d.ts","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAgBnD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAehB,CAAC;AACF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAO,CAAC;AAE9B,QAAA,MAAQ,WAAW,qFAAE,aAAa,mFAYjC,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
@@ -32,7 +32,7 @@ exports.P256 = (0, _shortw_utils_js_1.createCurve)({
32
32
  lowS: false,
33
33
  }, sha256_1.sha256);
34
34
  exports.secp256r1 = exports.P256;
35
- const { hashToCurve, encodeToCurve } = htf.hashToCurve(exports.secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
35
+ const { hashToCurve, encodeToCurve } = htf.createHasher(exports.secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
36
36
  DST: 'P256_XMD:SHA-256_SSWU_RO_',
37
37
  encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
38
38
  p: Fp.ORDER,
@@ -43,3 +43,4 @@ const { hashToCurve, encodeToCurve } = htf.hashToCurve(exports.secp256r1.Project
43
43
  });
44
44
  exports.hashToCurve = hashToCurve;
45
45
  exports.encodeToCurve = encodeToCurve;
46
+ //# sourceMappingURL=p256.js.map
package/p256.js.map ADDED
@@ -0,0 +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"}
@@ -43,10 +43,11 @@ export declare const P384: Readonly<{
43
43
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
44
44
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
45
45
  utils: {
46
- _normalizePrivateKey: (key: import("./abstract/utils.js").PrivKey) => bigint;
46
+ normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
47
47
  isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
48
48
  hashToPrivateKey: (hash: import("./abstract/utils.js").Hex) => Uint8Array;
49
49
  randomPrivateKey: () => Uint8Array;
50
+ precompute: (windowSize?: number | undefined, point?: import("./abstract/weierstrass.js").ProjPointType<bigint> | undefined) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
50
51
  };
51
52
  }>;
52
53
  export declare const secp384r1: Readonly<{
@@ -93,11 +94,13 @@ export declare const secp384r1: Readonly<{
93
94
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
94
95
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
95
96
  utils: {
96
- _normalizePrivateKey: (key: import("./abstract/utils.js").PrivKey) => bigint;
97
+ normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
97
98
  isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
98
99
  hashToPrivateKey: (hash: import("./abstract/utils.js").Hex) => Uint8Array;
99
100
  randomPrivateKey: () => Uint8Array;
101
+ precompute: (windowSize?: number | undefined, point?: import("./abstract/weierstrass.js").ProjPointType<bigint> | undefined) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
100
102
  };
101
103
  }>;
102
- declare const hashToCurve: (msg: import("./abstract/utils.js").Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: import("./abstract/utils.js").Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
104
+ declare const hashToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
103
105
  export { hashToCurve, encodeToCurve };
106
+ //# sourceMappingURL=p384.d.ts.map
package/p384.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p384.d.ts","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAoBnD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAehB,CAAC;AACF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAO,CAAC;AAE9B,QAAA,MAAQ,WAAW,qFAAE,aAAa,mFAYjC,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
@@ -37,7 +37,7 @@ exports.P384 = (0, _shortw_utils_js_1.createCurve)({
37
37
  lowS: false,
38
38
  }, sha512_1.sha384);
39
39
  exports.secp384r1 = exports.P384;
40
- const { hashToCurve, encodeToCurve } = htf.hashToCurve(exports.secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
40
+ const { hashToCurve, encodeToCurve } = htf.createHasher(exports.secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
41
41
  DST: 'P384_XMD:SHA-384_SSWU_RO_',
42
42
  encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
43
43
  p: Fp.ORDER,
@@ -48,3 +48,4 @@ const { hashToCurve, encodeToCurve } = htf.hashToCurve(exports.secp384r1.Project
48
48
  });
49
49
  exports.hashToCurve = hashToCurve;
50
50
  exports.encodeToCurve = encodeToCurve;
51
+ //# sourceMappingURL=p384.js.map
package/p384.js.map ADDED
@@ -0,0 +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"}
@@ -43,10 +43,11 @@ export declare const P521: Readonly<{
43
43
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
44
44
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
45
45
  utils: {
46
- _normalizePrivateKey: (key: import("./abstract/utils.js").PrivKey) => bigint;
46
+ normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
47
47
  isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
48
48
  hashToPrivateKey: (hash: import("./abstract/utils.js").Hex) => Uint8Array;
49
49
  randomPrivateKey: () => Uint8Array;
50
+ precompute: (windowSize?: number | undefined, point?: import("./abstract/weierstrass.js").ProjPointType<bigint> | undefined) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
50
51
  };
51
52
  }>;
52
53
  export declare const secp521r1: Readonly<{
@@ -93,11 +94,13 @@ export declare const secp521r1: Readonly<{
93
94
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
94
95
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
95
96
  utils: {
96
- _normalizePrivateKey: (key: import("./abstract/utils.js").PrivKey) => bigint;
97
+ normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
97
98
  isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
98
99
  hashToPrivateKey: (hash: import("./abstract/utils.js").Hex) => Uint8Array;
99
100
  randomPrivateKey: () => Uint8Array;
101
+ precompute: (windowSize?: number | undefined, point?: import("./abstract/weierstrass.js").ProjPointType<bigint> | undefined) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
100
102
  };
101
103
  }>;
102
- declare const hashToCurve: (msg: import("./abstract/utils.js").Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: import("./abstract/utils.js").Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
104
+ declare const hashToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
103
105
  export { hashToCurve, encodeToCurve };
106
+ //# sourceMappingURL=p521.d.ts.map
package/p521.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p521.d.ts","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAsBnD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaE,CAAC;AACpB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAO,CAAC;AAE9B,QAAA,MAAQ,WAAW,qFAAE,aAAa,mFAYjC,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
@@ -38,7 +38,7 @@ exports.P521 = (0, _shortw_utils_js_1.createCurve)({
38
38
  allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b
39
39
  }, sha512_1.sha512);
40
40
  exports.secp521r1 = exports.P521;
41
- const { hashToCurve, encodeToCurve } = htf.hashToCurve(exports.secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
41
+ const { hashToCurve, encodeToCurve } = htf.createHasher(exports.secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
42
42
  DST: 'P521_XMD:SHA-512_SSWU_RO_',
43
43
  encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
44
44
  p: Fp.ORDER,
@@ -49,3 +49,4 @@ const { hashToCurve, encodeToCurve } = htf.hashToCurve(exports.secp521r1.Project
49
49
  });
50
50
  exports.hashToCurve = hashToCurve;
51
51
  exports.encodeToCurve = encodeToCurve;
52
+ //# sourceMappingURL=p521.js.map
package/p521.js.map ADDED
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "name": "@noble/curves",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "description": "Minimal, auditable JS implementation of elliptic curve cryptography",
5
5
  "files": [
6
- "lib"
6
+ "abstract",
7
+ "esm",
8
+ "src",
9
+ "*.js",
10
+ "*.js.map",
11
+ "*.d.ts",
12
+ "*.d.ts.map"
7
13
  ],
8
14
  "scripts": {
9
15
  "bench": "cd benchmark; node secp256k1.js; node curves.js; node stark.js; node bls.js",
@@ -24,12 +30,11 @@
24
30
  "@noble/hashes": "1.2.0"
25
31
  },
26
32
  "devDependencies": {
27
- "@scure/base": "~1.1.1",
28
33
  "@scure/bip32": "~1.1.5",
29
34
  "@scure/bip39": "~1.1.1",
30
35
  "@types/node": "18.11.3",
31
36
  "fast-check": "3.0.0",
32
- "micro-bmark": "0.3.0",
37
+ "micro-bmark": "0.3.1",
33
38
  "micro-should": "0.4.0",
34
39
  "prettier": "2.8.3",
35
40
  "typescript": "4.7.3"
@@ -37,129 +42,129 @@
37
42
  "main": "index.js",
38
43
  "exports": {
39
44
  ".": {
40
- "types": "./lib/index.d.ts",
41
- "import": "./lib/esm/index.js",
42
- "default": "./lib/index.js"
45
+ "types": "./index.d.ts",
46
+ "import": "./esm/index.js",
47
+ "default": "./index.js"
43
48
  },
44
49
  "./abstract/edwards": {
45
- "types": "./lib/abstract/edwards.d.ts",
46
- "import": "./lib/esm/abstract/edwards.js",
47
- "default": "./lib/abstract/edwards.js"
50
+ "types": "./abstract/edwards.d.ts",
51
+ "import": "./esm/abstract/edwards.js",
52
+ "default": "./abstract/edwards.js"
48
53
  },
49
54
  "./abstract/modular": {
50
- "types": "./lib/abstract/modular.d.ts",
51
- "import": "./lib/esm/abstract/modular.js",
52
- "default": "./lib/abstract/modular.js"
55
+ "types": "./abstract/modular.d.ts",
56
+ "import": "./esm/abstract/modular.js",
57
+ "default": "./abstract/modular.js"
53
58
  },
54
59
  "./abstract/montgomery": {
55
- "types": "./lib/abstract/montgomery.d.ts",
56
- "import": "./lib/esm/abstract/montgomery.js",
57
- "default": "./lib/abstract/montgomery.js"
60
+ "types": "./abstract/montgomery.d.ts",
61
+ "import": "./esm/abstract/montgomery.js",
62
+ "default": "./abstract/montgomery.js"
58
63
  },
59
64
  "./abstract/weierstrass": {
60
- "types": "./lib/abstract/weierstrass.d.ts",
61
- "import": "./lib/esm/abstract/weierstrass.js",
62
- "default": "./lib/abstract/weierstrass.js"
65
+ "types": "./abstract/weierstrass.d.ts",
66
+ "import": "./esm/abstract/weierstrass.js",
67
+ "default": "./abstract/weierstrass.js"
63
68
  },
64
69
  "./abstract/bls": {
65
- "types": "./lib/abstract/bls.d.ts",
66
- "import": "./lib/esm/abstract/bls.js",
67
- "default": "./lib/abstract/bls.js"
70
+ "types": "./abstract/bls.d.ts",
71
+ "import": "./esm/abstract/bls.js",
72
+ "default": "./abstract/bls.js"
68
73
  },
69
74
  "./abstract/hash-to-curve": {
70
- "types": "./lib/abstract/hash-to-curve.d.ts",
71
- "import": "./lib/esm/abstract/hash-to-curve.js",
72
- "default": "./lib/abstract/hash-to-curve.js"
75
+ "types": "./abstract/hash-to-curve.d.ts",
76
+ "import": "./esm/abstract/hash-to-curve.js",
77
+ "default": "./abstract/hash-to-curve.js"
73
78
  },
74
79
  "./abstract/curve": {
75
- "types": "./lib/abstract/curve.d.ts",
76
- "import": "./lib/esm/abstract/curve.js",
77
- "default": "./lib/abstract/curve.js"
80
+ "types": "./abstract/curve.d.ts",
81
+ "import": "./esm/abstract/curve.js",
82
+ "default": "./abstract/curve.js"
78
83
  },
79
84
  "./abstract/utils": {
80
- "types": "./lib/abstract/utils.d.ts",
81
- "import": "./lib/esm/abstract/utils.js",
82
- "default": "./lib/abstract/utils.js"
85
+ "types": "./abstract/utils.d.ts",
86
+ "import": "./esm/abstract/utils.js",
87
+ "default": "./abstract/utils.js"
83
88
  },
84
89
  "./abstract/poseidon": {
85
- "types": "./lib/abstract/poseidon.d.ts",
86
- "import": "./lib/esm/abstract/poseidon.js",
87
- "default": "./lib/abstract/poseidon.js"
90
+ "types": "./abstract/poseidon.d.ts",
91
+ "import": "./esm/abstract/poseidon.js",
92
+ "default": "./abstract/poseidon.js"
88
93
  },
89
94
  "./_shortw_utils": {
90
- "types": "./lib/_shortw_utils.d.ts",
91
- "import": "./lib/esm/_shortw_utils.js",
92
- "default": "./lib/_shortw_utils.js"
95
+ "types": "./_shortw_utils.d.ts",
96
+ "import": "./esm/_shortw_utils.js",
97
+ "default": "./_shortw_utils.js"
93
98
  },
94
99
  "./bls12-381": {
95
- "types": "./lib/bls12-381.d.ts",
96
- "import": "./lib/esm/bls12-381.js",
97
- "default": "./lib/bls12-381.js"
100
+ "types": "./bls12-381.d.ts",
101
+ "import": "./esm/bls12-381.js",
102
+ "default": "./bls12-381.js"
98
103
  },
99
104
  "./bn": {
100
- "types": "./lib/bn.d.ts",
101
- "import": "./lib/esm/bn.js",
102
- "default": "./lib/bn.js"
105
+ "types": "./bn.d.ts",
106
+ "import": "./esm/bn.js",
107
+ "default": "./bn.js"
103
108
  },
104
109
  "./ed25519": {
105
- "types": "./lib/ed25519.d.ts",
106
- "import": "./lib/esm/ed25519.js",
107
- "default": "./lib/ed25519.js"
110
+ "types": "./ed25519.d.ts",
111
+ "import": "./esm/ed25519.js",
112
+ "default": "./ed25519.js"
108
113
  },
109
114
  "./ed448": {
110
- "types": "./lib/ed448.d.ts",
111
- "import": "./lib/esm/ed448.js",
112
- "default": "./lib/ed448.js"
115
+ "types": "./ed448.d.ts",
116
+ "import": "./esm/ed448.js",
117
+ "default": "./ed448.js"
113
118
  },
114
119
  "./index": {
115
- "types": "./lib/index.d.ts",
116
- "import": "./lib/esm/index.js",
117
- "default": "./lib/index.js"
120
+ "types": "./index.d.ts",
121
+ "import": "./esm/index.js",
122
+ "default": "./index.js"
118
123
  },
119
124
  "./jubjub": {
120
- "types": "./lib/jubjub.d.ts",
121
- "import": "./lib/esm/jubjub.js",
122
- "default": "./lib/jubjub.js"
125
+ "types": "./jubjub.d.ts",
126
+ "import": "./esm/jubjub.js",
127
+ "default": "./jubjub.js"
123
128
  },
124
129
  "./p192": {
125
- "types": "./lib/p192.d.ts",
126
- "import": "./lib/esm/p192.js",
127
- "default": "./lib/p192.js"
130
+ "types": "./p192.d.ts",
131
+ "import": "./esm/p192.js",
132
+ "default": "./p192.js"
128
133
  },
129
134
  "./p224": {
130
- "types": "./lib/p224.d.ts",
131
- "import": "./lib/esm/p224.js",
132
- "default": "./lib/p224.js"
135
+ "types": "./p224.d.ts",
136
+ "import": "./esm/p224.js",
137
+ "default": "./p224.js"
133
138
  },
134
139
  "./p256": {
135
- "types": "./lib/p256.d.ts",
136
- "import": "./lib/esm/p256.js",
137
- "default": "./lib/p256.js"
140
+ "types": "./p256.d.ts",
141
+ "import": "./esm/p256.js",
142
+ "default": "./p256.js"
138
143
  },
139
144
  "./p384": {
140
- "types": "./lib/p384.d.ts",
141
- "import": "./lib/esm/p384.js",
142
- "default": "./lib/p384.js"
145
+ "types": "./p384.d.ts",
146
+ "import": "./esm/p384.js",
147
+ "default": "./p384.js"
143
148
  },
144
149
  "./p521": {
145
- "types": "./lib/p521.d.ts",
146
- "import": "./lib/esm/p521.js",
147
- "default": "./lib/p521.js"
150
+ "types": "./p521.d.ts",
151
+ "import": "./esm/p521.js",
152
+ "default": "./p521.js"
148
153
  },
149
154
  "./pasta": {
150
- "types": "./lib/pasta.d.ts",
151
- "import": "./lib/esm/pasta.js",
152
- "default": "./lib/pasta.js"
155
+ "types": "./pasta.d.ts",
156
+ "import": "./esm/pasta.js",
157
+ "default": "./pasta.js"
153
158
  },
154
159
  "./secp256k1": {
155
- "types": "./lib/secp256k1.d.ts",
156
- "import": "./lib/esm/secp256k1.js",
157
- "default": "./lib/secp256k1.js"
160
+ "types": "./secp256k1.d.ts",
161
+ "import": "./esm/secp256k1.js",
162
+ "default": "./secp256k1.js"
158
163
  },
159
164
  "./stark": {
160
- "types": "./lib/stark.d.ts",
161
- "import": "./lib/esm/stark.js",
162
- "default": "./lib/stark.js"
165
+ "types": "./stark.d.ts",
166
+ "import": "./esm/stark.js",
167
+ "default": "./stark.js"
163
168
  }
164
169
  },
165
170
  "keywords": [
@@ -2,3 +2,4 @@ export declare const p: bigint;
2
2
  export declare const q: bigint;
3
3
  export declare const pallas: import("./abstract/weierstrass.js").CurveFn;
4
4
  export declare const vesta: import("./abstract/weierstrass.js").CurveFn;
5
+ //# sourceMappingURL=pasta.d.ts.map
package/pasta.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pasta.d.ts","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,CAAC,QAA+E,CAAC;AAC9F,eAAO,MAAM,CAAC,QAA+E,CAAC;AAG9F,eAAO,MAAM,MAAM,6CASjB,CAAC;AAEH,eAAO,MAAM,KAAK,6CAShB,CAAC"}
@@ -30,3 +30,4 @@ exports.vesta = (0, weierstrass_js_1.weierstrass)({
30
30
  h: BigInt(1),
31
31
  ...(0, _shortw_utils_js_1.getHash)(sha256_1.sha256),
32
32
  });
33
+ //# sourceMappingURL=pasta.js.map
package/pasta.js.map ADDED
@@ -0,0 +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,6 +1,7 @@
1
1
  import { mod } from './abstract/modular.js';
2
2
  import { ProjPointType as PointType } from './abstract/weierstrass.js';
3
- import { Hex, bytesToNumberBE as bytesToInt, PrivKey } from './abstract/utils.js';
3
+ import type { Hex, PrivKey } from './abstract/utils.js';
4
+ import { bytesToNumberBE } from './abstract/utils.js';
4
5
  import * as htf from './abstract/hash-to-curve.js';
5
6
  export declare const secp256k1: Readonly<{
6
7
  create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
@@ -46,10 +47,11 @@ export declare const secp256k1: Readonly<{
46
47
  ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
47
48
  Signature: import("./abstract/weierstrass.js").SignatureConstructor;
48
49
  utils: {
49
- _normalizePrivateKey: (key: PrivKey) => bigint;
50
+ normPrivateKeyToScalar: (key: PrivKey) => bigint;
50
51
  isValidPrivateKey(privateKey: PrivKey): boolean;
51
52
  hashToPrivateKey: (hash: Hex) => Uint8Array;
52
53
  randomPrivateKey: () => Uint8Array;
54
+ precompute: (windowSize?: number | undefined, point?: PointType<bigint> | undefined) => PointType<bigint>;
53
55
  };
54
56
  }>;
55
57
  declare function taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array;
@@ -59,10 +61,17 @@ declare function schnorrGetExtPubKey(priv: PrivKey): {
59
61
  bytes: Uint8Array;
60
62
  };
61
63
  declare function lift_x(x: bigint): PointType<bigint>;
64
+ /**
65
+ * Schnorr public key is just `x` coordinate of Point as per BIP340.
66
+ */
62
67
  declare function schnorrGetPublicKey(privateKey: Hex): Uint8Array;
68
+ /**
69
+ * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.
70
+ * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.
71
+ */
63
72
  declare function schnorrSign(message: Hex, privateKey: PrivKey, auxRand?: Hex): Uint8Array;
64
73
  /**
65
- * Verifies Schnorr signature synchronously.
74
+ * Verifies Schnorr signature.
66
75
  */
67
76
  declare function schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean;
68
77
  export declare const schnorr: {
@@ -70,14 +79,16 @@ export declare const schnorr: {
70
79
  sign: typeof schnorrSign;
71
80
  verify: typeof schnorrVerify;
72
81
  utils: {
82
+ randomPrivateKey: () => Uint8Array;
73
83
  getExtendedPublicKey: typeof schnorrGetExtPubKey;
74
84
  lift_x: typeof lift_x;
75
85
  pointToBytes: (point: PointType<bigint>) => Uint8Array;
76
86
  numberToBytesBE: (n: bigint, len: number) => Uint8Array;
77
- bytesToNumberBE: typeof bytesToInt;
87
+ bytesToNumberBE: typeof bytesToNumberBE;
78
88
  taggedHash: typeof taggedHash;
79
89
  mod: typeof mod;
80
90
  };
81
91
  };
82
- declare const hashToCurve: (msg: Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: Hex, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
83
- export { hashToCurve, encodeToCurve };
92
+ export declare const hashToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>, encodeToCurve: (msg: Uint8Array, options?: htf.htfBasicOpts | undefined) => htf.H2CPoint<bigint>;
93
+ export {};
94
+ //# sourceMappingURL=secp256k1.d.ts.map
@@ -0,0 +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;AASD,iBAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO;;;;EAKzC;AACD,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAS5C;AAKD;;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;;GAEG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAiB5E;AAED,eAAO,MAAM,OAAO;;;;;;;;8BAlFS,UAAU,MAAM,CAAC;;;;;;CAgG7C,CAAC;AAuCF,eAAO,MAAQ,WAAW,qFAAE,aAAa,mFAexC,CAAC"}