meteor-node-stubs 1.2.17 → 1.2.18

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 (427) hide show
  1. package/node_modules/@meteorjs/browserify-sign/browser/verify.js +1 -1
  2. package/node_modules/@meteorjs/browserify-sign/package.json +21 -5
  3. package/node_modules/@meteorjs/create-ecdh/browser.js +1 -1
  4. package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/deps/jodid.js +82 -0
  5. package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/deps/secp256k1.js +41 -0
  6. package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/index.js +153 -0
  7. package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/package.json +21 -0
  8. package/node_modules/@meteorjs/create-ecdh/elliptic/dist/.gitkeep +0 -0
  9. package/node_modules/@meteorjs/create-ecdh/elliptic/dist/elliptic.js +8961 -0
  10. package/node_modules/@meteorjs/create-ecdh/elliptic/dist/elliptic.min.js +1 -0
  11. package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic.js +1 -1
  12. package/node_modules/@meteorjs/create-ecdh/elliptic/test/api-test.js +20 -0
  13. package/node_modules/@meteorjs/create-ecdh/elliptic/test/curve-test.js +357 -0
  14. package/node_modules/@meteorjs/create-ecdh/elliptic/test/ecdh-test.js +43 -0
  15. package/node_modules/@meteorjs/create-ecdh/elliptic/test/ecdsa-test.js +547 -0
  16. package/node_modules/@meteorjs/create-ecdh/elliptic/test/ed25519-test.js +138 -0
  17. package/node_modules/@meteorjs/create-ecdh/elliptic/test/fixtures/derivation-fixtures.js +3842 -0
  18. package/node_modules/@meteorjs/create-ecdh/elliptic/test/fixtures/sign.input +1024 -0
  19. package/node_modules/@meteorjs/create-ecdh/elliptic/test/index.js +10 -0
  20. package/node_modules/@meteorjs/create-ecdh/elliptic/test/unittests.html +39 -0
  21. package/node_modules/@meteorjs/create-ecdh/node_modules/bn.js/lib/bn.js +1 -0
  22. package/node_modules/@meteorjs/create-ecdh/node_modules/bn.js/package.json +1 -1
  23. package/node_modules/@meteorjs/create-ecdh/package.json +23 -5
  24. package/node_modules/asn1.js/node_modules/bn.js/lib/bn.js +6 -5
  25. package/node_modules/asn1.js/node_modules/bn.js/package.json +1 -1
  26. package/node_modules/asn1.js/node_modules/bn.js/util/genCombMulTo.js +65 -0
  27. package/node_modules/asn1.js/node_modules/bn.js/util/genCombMulTo10.js +65 -0
  28. package/node_modules/available-typed-arrays/.eslintrc +0 -4
  29. package/node_modules/available-typed-arrays/CHANGELOG.md +21 -0
  30. package/node_modules/available-typed-arrays/README.md +16 -13
  31. package/node_modules/available-typed-arrays/index.d.ts +8 -0
  32. package/node_modules/available-typed-arrays/index.js +4 -14
  33. package/node_modules/available-typed-arrays/package.json +26 -15
  34. package/node_modules/available-typed-arrays/tsconfig.json +49 -0
  35. package/node_modules/bn.js/README.md +11 -5
  36. package/node_modules/bn.js/lib/bn.js +6 -5
  37. package/node_modules/bn.js/package.json +1 -1
  38. package/node_modules/browserify-rsa/CHANGELOG.md +98 -0
  39. package/node_modules/browserify-rsa/README.md +0 -2
  40. package/node_modules/browserify-rsa/index.js +31 -28
  41. package/node_modules/browserify-rsa/package.json +64 -29
  42. package/node_modules/call-bind/CHANGELOG.md +13 -0
  43. package/node_modules/call-bind/index.js +6 -17
  44. package/node_modules/call-bind/package.json +14 -16
  45. package/node_modules/call-bind/test/index.js +4 -10
  46. package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  47. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  48. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  49. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  50. package/node_modules/{has-proto → call-bind-apply-helpers}/LICENSE +1 -1
  51. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  52. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  53. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  54. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  55. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  56. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  57. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  58. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  59. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  60. package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  61. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  62. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  63. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  64. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  65. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  66. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  67. package/node_modules/call-bound/.eslintrc +13 -0
  68. package/node_modules/call-bound/.github/FUNDING.yml +12 -0
  69. package/node_modules/call-bound/.nycrc +9 -0
  70. package/node_modules/call-bound/CHANGELOG.md +42 -0
  71. package/node_modules/{@meteorjs/browserify-sign/node_modules/bn.js → call-bound}/LICENSE +3 -1
  72. package/node_modules/call-bound/README.md +53 -0
  73. package/node_modules/call-bound/index.d.ts +94 -0
  74. package/node_modules/call-bound/index.js +19 -0
  75. package/node_modules/call-bound/package.json +99 -0
  76. package/node_modules/call-bound/test/index.js +61 -0
  77. package/node_modules/call-bound/tsconfig.json +10 -0
  78. package/node_modules/cipher-base/.eslintrc +24 -1
  79. package/node_modules/cipher-base/.github/FUNDING.yml +12 -0
  80. package/node_modules/cipher-base/CHANGELOG.md +66 -0
  81. package/node_modules/cipher-base/index.js +145 -77
  82. package/node_modules/cipher-base/package.json +60 -30
  83. package/node_modules/cipher-base/test/index.js +221 -0
  84. package/node_modules/des.js/lib/des/cipher.js +1 -0
  85. package/node_modules/des.js/lib/des/des.js +8 -0
  86. package/node_modules/des.js/package.json +3 -4
  87. package/node_modules/des.js/test/cbc-test.js +5 -5
  88. package/node_modules/des.js/test/des-test.js +9 -9
  89. package/node_modules/des.js/test/ede-test.js +39 -6
  90. package/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js +6 -5
  91. package/node_modules/diffie-hellman/node_modules/bn.js/package.json +1 -1
  92. package/node_modules/diffie-hellman/node_modules/bn.js/util/genCombMulTo.js +65 -0
  93. package/node_modules/diffie-hellman/node_modules/bn.js/util/genCombMulTo10.js +65 -0
  94. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  95. package/node_modules/dunder-proto/.nycrc +13 -0
  96. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  97. package/node_modules/{@meteorjs/crypto-browserify/node_modules/hash-base → dunder-proto}/LICENSE +6 -6
  98. package/node_modules/dunder-proto/README.md +54 -0
  99. package/node_modules/dunder-proto/get.d.ts +5 -0
  100. package/node_modules/dunder-proto/get.js +30 -0
  101. package/node_modules/dunder-proto/package.json +76 -0
  102. package/node_modules/dunder-proto/set.d.ts +5 -0
  103. package/node_modules/dunder-proto/set.js +35 -0
  104. package/node_modules/dunder-proto/test/get.js +34 -0
  105. package/node_modules/dunder-proto/test/index.js +4 -0
  106. package/node_modules/dunder-proto/test/set.js +50 -0
  107. package/node_modules/dunder-proto/tsconfig.json +9 -0
  108. package/node_modules/es-define-property/CHANGELOG.md +14 -0
  109. package/node_modules/es-define-property/index.js +1 -3
  110. package/node_modules/es-define-property/package.json +12 -12
  111. package/node_modules/es-define-property/test/index.js +1 -0
  112. package/node_modules/es-define-property/tsconfig.json +2 -42
  113. package/node_modules/es-object-atoms/.eslintrc +16 -0
  114. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  115. package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  116. package/node_modules/{elliptic/node_modules/bn.js → es-object-atoms}/LICENSE +3 -1
  117. package/node_modules/es-object-atoms/README.md +63 -0
  118. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  119. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  120. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  121. package/node_modules/es-object-atoms/ToObject.js +10 -0
  122. package/node_modules/es-object-atoms/index.d.ts +3 -0
  123. package/node_modules/es-object-atoms/index.js +4 -0
  124. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  125. package/node_modules/es-object-atoms/isObject.js +6 -0
  126. package/node_modules/es-object-atoms/package.json +80 -0
  127. package/node_modules/es-object-atoms/test/index.js +38 -0
  128. package/node_modules/es-object-atoms/tsconfig.json +6 -0
  129. package/node_modules/for-each/.eslintrc +16 -2
  130. package/node_modules/{has-proto → for-each}/.github/FUNDING.yml +1 -1
  131. package/node_modules/for-each/.github/SECURITY.md +3 -0
  132. package/node_modules/for-each/.nycrc +8 -0
  133. package/node_modules/for-each/CHANGELOG.md +107 -0
  134. package/node_modules/for-each/README.md +0 -4
  135. package/node_modules/for-each/index.d.ts +35 -0
  136. package/node_modules/for-each/index.js +11 -4
  137. package/node_modules/for-each/package.json +47 -36
  138. package/node_modules/for-each/test/test.js +54 -12
  139. package/node_modules/for-each/tsconfig.json +8 -0
  140. package/node_modules/get-intrinsic/.eslintrc +4 -0
  141. package/node_modules/get-intrinsic/CHANGELOG.md +43 -0
  142. package/node_modules/get-intrinsic/index.js +40 -21
  143. package/node_modules/get-intrinsic/package.json +24 -20
  144. package/node_modules/get-intrinsic/test/GetIntrinsic.js +2 -2
  145. package/node_modules/get-proto/.eslintrc +10 -0
  146. package/node_modules/get-proto/.github/FUNDING.yml +12 -0
  147. package/node_modules/get-proto/.nycrc +9 -0
  148. package/node_modules/get-proto/CHANGELOG.md +21 -0
  149. package/node_modules/get-proto/LICENSE +21 -0
  150. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  151. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  152. package/node_modules/get-proto/README.md +50 -0
  153. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  154. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  155. package/node_modules/get-proto/index.d.ts +5 -0
  156. package/node_modules/get-proto/index.js +27 -0
  157. package/node_modules/{has-proto → get-proto}/package.json +33 -26
  158. package/node_modules/get-proto/test/index.js +68 -0
  159. package/node_modules/get-proto/tsconfig.json +9 -0
  160. package/node_modules/gopd/CHANGELOG.md +20 -0
  161. package/node_modules/gopd/gOPD.d.ts +1 -0
  162. package/node_modules/gopd/gOPD.js +4 -0
  163. package/node_modules/gopd/index.d.ts +5 -0
  164. package/node_modules/gopd/index.js +2 -3
  165. package/node_modules/gopd/package.json +16 -10
  166. package/node_modules/gopd/test/index.js +2 -1
  167. package/node_modules/gopd/tsconfig.json +9 -0
  168. package/node_modules/has-symbols/CHANGELOG.md +16 -0
  169. package/node_modules/has-symbols/index.d.ts +3 -0
  170. package/node_modules/has-symbols/index.js +1 -0
  171. package/node_modules/has-symbols/package.json +19 -9
  172. package/node_modules/has-symbols/shams.d.ts +3 -0
  173. package/node_modules/has-symbols/shams.js +5 -2
  174. package/node_modules/has-symbols/test/shams/core-js.js +1 -0
  175. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +1 -0
  176. package/node_modules/has-symbols/test/tests.js +4 -2
  177. package/node_modules/has-symbols/tsconfig.json +10 -0
  178. package/node_modules/has-tostringtag/.eslintrc +0 -6
  179. package/node_modules/has-tostringtag/.nycrc +13 -0
  180. package/node_modules/has-tostringtag/CHANGELOG.md +22 -0
  181. package/node_modules/has-tostringtag/index.d.ts +3 -0
  182. package/node_modules/has-tostringtag/index.js +1 -0
  183. package/node_modules/has-tostringtag/package.json +37 -13
  184. package/node_modules/has-tostringtag/shams.d.ts +3 -0
  185. package/node_modules/has-tostringtag/shams.js +1 -0
  186. package/node_modules/has-tostringtag/test/shams/core-js.js +3 -0
  187. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +2 -0
  188. package/node_modules/has-tostringtag/test/tests.js +2 -1
  189. package/node_modules/has-tostringtag/tsconfig.json +49 -0
  190. package/node_modules/hash-base/README.md +15 -15
  191. package/node_modules/hash-base/index.js +52 -9
  192. package/node_modules/hash-base/package.json +40 -40
  193. package/node_modules/hasown/CHANGELOG.md +20 -0
  194. package/node_modules/hasown/index.d.ts +3 -3
  195. package/node_modules/hasown/index.js +1 -1
  196. package/node_modules/hasown/package.json +16 -15
  197. package/node_modules/hasown/tsconfig.json +3 -46
  198. package/node_modules/is-arguments/.eslintrc +0 -1
  199. package/node_modules/is-arguments/CHANGELOG.md +22 -0
  200. package/node_modules/is-arguments/README.md +11 -11
  201. package/node_modules/is-arguments/index.d.ts +6 -0
  202. package/node_modules/is-arguments/index.js +19 -8
  203. package/node_modules/is-arguments/package.json +25 -11
  204. package/node_modules/is-arguments/test/index.js +4 -1
  205. package/node_modules/is-arguments/tsconfig.json +9 -0
  206. package/node_modules/is-generator-function/.eslintrc +1 -1
  207. package/node_modules/is-generator-function/CHANGELOG.md +21 -0
  208. package/node_modules/is-generator-function/index.d.ts +3 -0
  209. package/node_modules/is-generator-function/index.js +16 -7
  210. package/node_modules/is-generator-function/package.json +30 -11
  211. package/node_modules/is-generator-function/test/corejs.js +1 -0
  212. package/node_modules/is-generator-function/test/index.js +4 -7
  213. package/node_modules/is-generator-function/test/uglified.js +1 -0
  214. package/node_modules/is-generator-function/tsconfig.json +9 -0
  215. package/node_modules/is-regex/.editorconfig +23 -0
  216. package/node_modules/is-regex/.eslintrc +10 -0
  217. package/node_modules/is-regex/.nycrc +10 -0
  218. package/node_modules/is-regex/CHANGELOG.md +233 -0
  219. package/node_modules/is-regex/LICENSE +20 -0
  220. package/node_modules/is-regex/README.md +52 -0
  221. package/node_modules/is-regex/index.d.ts +3 -0
  222. package/node_modules/is-regex/index.js +69 -0
  223. package/node_modules/is-regex/package.json +104 -0
  224. package/node_modules/is-regex/test/index.js +121 -0
  225. package/node_modules/is-regex/tsconfig.json +9 -0
  226. package/node_modules/is-typed-array/CHANGELOG.md +32 -0
  227. package/node_modules/is-typed-array/index.d.ts +9 -0
  228. package/node_modules/is-typed-array/index.js +1 -0
  229. package/node_modules/is-typed-array/package.json +23 -10
  230. package/node_modules/is-typed-array/test/index.js +9 -1
  231. package/node_modules/is-typed-array/tsconfig.json +6 -0
  232. package/node_modules/math-intrinsics/.eslintrc +16 -0
  233. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  234. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  235. package/node_modules/math-intrinsics/LICENSE +21 -0
  236. package/node_modules/math-intrinsics/README.md +50 -0
  237. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  238. package/node_modules/math-intrinsics/abs.js +4 -0
  239. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  240. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  241. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  242. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  243. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  244. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  245. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  246. package/node_modules/math-intrinsics/floor.js +4 -0
  247. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  248. package/node_modules/math-intrinsics/isFinite.js +12 -0
  249. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  250. package/node_modules/math-intrinsics/isInteger.js +16 -0
  251. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  252. package/node_modules/math-intrinsics/isNaN.js +6 -0
  253. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  254. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  255. package/node_modules/math-intrinsics/max.d.ts +1 -0
  256. package/node_modules/math-intrinsics/max.js +4 -0
  257. package/node_modules/math-intrinsics/min.d.ts +1 -0
  258. package/node_modules/math-intrinsics/min.js +4 -0
  259. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  260. package/node_modules/math-intrinsics/mod.js +9 -0
  261. package/node_modules/math-intrinsics/package.json +86 -0
  262. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  263. package/node_modules/math-intrinsics/pow.js +4 -0
  264. package/node_modules/math-intrinsics/round.d.ts +1 -0
  265. package/node_modules/math-intrinsics/round.js +4 -0
  266. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  267. package/node_modules/math-intrinsics/sign.js +11 -0
  268. package/node_modules/math-intrinsics/test/index.js +192 -0
  269. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  270. package/node_modules/miller-rabin/node_modules/bn.js/lib/bn.js +6 -5
  271. package/node_modules/miller-rabin/node_modules/bn.js/package.json +1 -1
  272. package/node_modules/miller-rabin/node_modules/bn.js/util/genCombMulTo.js +65 -0
  273. package/node_modules/miller-rabin/node_modules/bn.js/util/genCombMulTo10.js +65 -0
  274. package/node_modules/object-inspect/CHANGELOG.md +20 -0
  275. package/node_modules/object-inspect/index.js +27 -10
  276. package/node_modules/object-inspect/package.json +9 -8
  277. package/node_modules/object-inspect/test/quoteStyle.js +9 -0
  278. package/node_modules/object-inspect/test/values.js +50 -0
  279. package/node_modules/object-is/.eslintrc +1 -1
  280. package/node_modules/object-is/.nycrc +0 -4
  281. package/node_modules/object-is/CHANGELOG.md +25 -0
  282. package/node_modules/object-is/README.md +20 -20
  283. package/node_modules/object-is/package.json +23 -14
  284. package/node_modules/object.assign/CHANGELOG.md +21 -0
  285. package/node_modules/object.assign/dist/browser.js +495 -135
  286. package/node_modules/object.assign/implementation.js +6 -6
  287. package/node_modules/object.assign/package.json +14 -14
  288. package/node_modules/object.assign/test/tests.js +2 -2
  289. package/node_modules/possible-typed-array-names/.eslintrc +5 -0
  290. package/node_modules/possible-typed-array-names/.github/FUNDING.yml +12 -0
  291. package/node_modules/possible-typed-array-names/CHANGELOG.md +29 -0
  292. package/node_modules/possible-typed-array-names/LICENSE +21 -0
  293. package/node_modules/possible-typed-array-names/README.md +50 -0
  294. package/node_modules/possible-typed-array-names/index.d.ts +16 -0
  295. package/node_modules/possible-typed-array-names/index.js +17 -0
  296. package/node_modules/possible-typed-array-names/package.json +84 -0
  297. package/node_modules/possible-typed-array-names/test/index.js +19 -0
  298. package/node_modules/possible-typed-array-names/tsconfig.json +9 -0
  299. package/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js +6 -5
  300. package/node_modules/public-encrypt/node_modules/bn.js/package.json +1 -1
  301. package/node_modules/public-encrypt/node_modules/bn.js/util/genCombMulTo.js +65 -0
  302. package/node_modules/public-encrypt/node_modules/bn.js/util/genCombMulTo10.js +65 -0
  303. package/node_modules/qs/.eslintrc +1 -0
  304. package/node_modules/qs/CHANGELOG.md +22 -0
  305. package/node_modules/qs/README.md +25 -1
  306. package/node_modules/qs/dist/qs.js +95 -44
  307. package/node_modules/qs/lib/parse.js +44 -12
  308. package/node_modules/qs/lib/stringify.js +11 -6
  309. package/node_modules/qs/lib/utils.js +7 -4
  310. package/node_modules/qs/package.json +9 -7
  311. package/node_modules/qs/test/parse.js +133 -27
  312. package/node_modules/qs/test/stringify.js +19 -11
  313. package/node_modules/qs/test/utils.js +126 -0
  314. package/node_modules/safe-regex-test/.eslintrc +9 -0
  315. package/node_modules/safe-regex-test/.github/FUNDING.yml +12 -0
  316. package/node_modules/safe-regex-test/.nycrc +13 -0
  317. package/node_modules/safe-regex-test/CHANGELOG.md +55 -0
  318. package/node_modules/safe-regex-test/LICENSE +21 -0
  319. package/node_modules/safe-regex-test/README.md +46 -0
  320. package/node_modules/safe-regex-test/index.d.ts +3 -0
  321. package/node_modules/safe-regex-test/index.js +17 -0
  322. package/node_modules/safe-regex-test/package.json +87 -0
  323. package/node_modules/safe-regex-test/test/index.js +41 -0
  324. package/node_modules/safe-regex-test/tsconfig.json +9 -0
  325. package/node_modules/side-channel/.eslintrc +1 -0
  326. package/node_modules/side-channel/CHANGELOG.md +15 -0
  327. package/node_modules/side-channel/README.md +60 -1
  328. package/node_modules/side-channel/index.d.ts +9 -22
  329. package/node_modules/side-channel/index.js +20 -106
  330. package/node_modules/side-channel/package.json +20 -19
  331. package/node_modules/side-channel/test/index.js +76 -55
  332. package/node_modules/side-channel/tsconfig.json +2 -43
  333. package/node_modules/side-channel-list/.editorconfig +9 -0
  334. package/node_modules/side-channel-list/.eslintrc +11 -0
  335. package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  336. package/node_modules/side-channel-list/.nycrc +13 -0
  337. package/node_modules/side-channel-list/CHANGELOG.md +15 -0
  338. package/node_modules/side-channel-list/LICENSE +21 -0
  339. package/node_modules/side-channel-list/README.md +62 -0
  340. package/node_modules/side-channel-list/index.d.ts +13 -0
  341. package/node_modules/side-channel-list/index.js +113 -0
  342. package/node_modules/side-channel-list/list.d.ts +14 -0
  343. package/node_modules/side-channel-list/package.json +77 -0
  344. package/node_modules/side-channel-list/test/index.js +104 -0
  345. package/node_modules/side-channel-list/tsconfig.json +9 -0
  346. package/node_modules/side-channel-map/.editorconfig +9 -0
  347. package/node_modules/side-channel-map/.eslintrc +11 -0
  348. package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  349. package/node_modules/side-channel-map/.nycrc +13 -0
  350. package/node_modules/side-channel-map/CHANGELOG.md +22 -0
  351. package/node_modules/side-channel-map/LICENSE +21 -0
  352. package/node_modules/side-channel-map/README.md +62 -0
  353. package/node_modules/side-channel-map/index.d.ts +15 -0
  354. package/node_modules/side-channel-map/index.js +68 -0
  355. package/node_modules/side-channel-map/package.json +80 -0
  356. package/node_modules/side-channel-map/test/index.js +114 -0
  357. package/node_modules/side-channel-map/tsconfig.json +9 -0
  358. package/node_modules/side-channel-weakmap/.editorconfig +9 -0
  359. package/node_modules/side-channel-weakmap/.eslintrc +12 -0
  360. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  361. package/node_modules/side-channel-weakmap/.nycrc +13 -0
  362. package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  363. package/node_modules/side-channel-weakmap/LICENSE +21 -0
  364. package/node_modules/side-channel-weakmap/README.md +62 -0
  365. package/node_modules/side-channel-weakmap/index.d.ts +15 -0
  366. package/node_modules/side-channel-weakmap/index.js +84 -0
  367. package/node_modules/side-channel-weakmap/package.json +87 -0
  368. package/node_modules/side-channel-weakmap/test/index.js +114 -0
  369. package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  370. package/node_modules/which-typed-array/.eslintrc +1 -0
  371. package/node_modules/which-typed-array/CHANGELOG.md +57 -0
  372. package/node_modules/which-typed-array/index.d.ts +62 -0
  373. package/node_modules/which-typed-array/index.js +50 -25
  374. package/node_modules/which-typed-array/package.json +28 -13
  375. package/node_modules/which-typed-array/test/index.js +7 -1
  376. package/node_modules/which-typed-array/tsconfig.json +9 -0
  377. package/package.json +2 -3
  378. package/node_modules/@meteorjs/browserify-sign/node_modules/bn.js/README.md +0 -214
  379. package/node_modules/@meteorjs/browserify-sign/node_modules/bn.js/lib/bn.js +0 -3547
  380. package/node_modules/@meteorjs/browserify-sign/node_modules/bn.js/package.json +0 -39
  381. package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/LICENSE +0 -21
  382. package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/README.md +0 -48
  383. package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/index.js +0 -138
  384. package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/package.json +0 -42
  385. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/README.md +0 -48
  386. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/index.js +0 -95
  387. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/package.json +0 -41
  388. package/node_modules/available-typed-arrays/.eslintignore +0 -1
  389. package/node_modules/bn.js/CHANGELOG.md +0 -51
  390. package/node_modules/cipher-base/.npmignore +0 -1
  391. package/node_modules/cipher-base/.travis.yml +0 -6
  392. package/node_modules/cipher-base/test.js +0 -111
  393. package/node_modules/elliptic/node_modules/bn.js/README.md +0 -200
  394. package/node_modules/elliptic/node_modules/bn.js/lib/bn.js +0 -3446
  395. package/node_modules/elliptic/node_modules/bn.js/package.json +0 -36
  396. package/node_modules/elliptic/package.json +0 -56
  397. package/node_modules/for-each/.travis.yml +0 -45
  398. package/node_modules/for-each/test/.eslintrc +0 -8
  399. package/node_modules/has-proto/CHANGELOG.md +0 -23
  400. package/node_modules/has-proto/README.md +0 -38
  401. package/node_modules/has-proto/index.js +0 -11
  402. package/node_modules/has-proto/test/index.js +0 -19
  403. package/node_modules/hasown/index.d.ts.map +0 -1
  404. package/node_modules/is-arguments/.eslintignore +0 -1
  405. package/node_modules/is-generator-function/.eslintignore +0 -1
  406. package/node_modules/object-is/.eslintignore +0 -1
  407. package/node_modules/object.assign/test.html +0 -18458
  408. package/node_modules/parse-asn1/node_modules/hash-base/LICENSE +0 -21
  409. package/node_modules/parse-asn1/node_modules/hash-base/README.md +0 -48
  410. package/node_modules/parse-asn1/node_modules/hash-base/index.js +0 -95
  411. package/node_modules/parse-asn1/node_modules/hash-base/package.json +0 -41
  412. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/README.md +0 -0
  413. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/base.js +0 -0
  414. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/edwards.js +0 -0
  415. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/index.js +0 -0
  416. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/mont.js +0 -0
  417. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/short.js +0 -0
  418. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curves.js +0 -0
  419. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/ec/index.js +0 -0
  420. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/ec/key.js +0 -0
  421. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/ec/signature.js +0 -0
  422. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/eddsa/index.js +0 -0
  423. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/eddsa/key.js +0 -0
  424. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/eddsa/signature.js +0 -0
  425. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/precomputed/secp256k1.js +0 -0
  426. /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/utils.js +0 -0
  427. /package/node_modules/{has-proto → dunder-proto}/.eslintrc +0 -0
@@ -0,0 +1,547 @@
1
+ /* eslint-env node, mocha */
2
+ 'use strict';
3
+
4
+ var assert = require('assert');
5
+ var elliptic = require('../');
6
+ var Signature = require('../lib/elliptic/ec/signature');
7
+ var BN = require('bn.js');
8
+ var hash = require('hash.js');
9
+
10
+ var entropy = [
11
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
12
+ 21, 22, 23, 24, 25,
13
+ ];
14
+
15
+ var msg = 'deadbeef';
16
+
17
+ describe('ECDSA', function() {
18
+ function test(name) {
19
+ describe('curve ' + name, function() {
20
+ var curve;
21
+ var ecdsa;
22
+ var keys;
23
+
24
+ beforeEach(function() {
25
+ curve = elliptic.curves[name];
26
+ assert(curve);
27
+
28
+ ecdsa = new elliptic.ec(curve);
29
+ keys = ecdsa.genKeyPair({
30
+ entropy: entropy,
31
+ });
32
+ });
33
+
34
+ it('should generate proper key pair', function() {
35
+ var keylen = 64;
36
+ if (name === 'p384') {
37
+ keylen = 96;
38
+ } else if (name === 'p521') {
39
+ keylen = 132;
40
+ }
41
+ // Get keys out of pair
42
+ assert(keys.getPublic().x && keys.getPublic().y);
43
+ assert(keys.getPrivate().length > 0);
44
+ assert.equal(keys.getPrivate('hex').length, keylen);
45
+ assert(keys.getPublic('hex').length > 0);
46
+ assert(keys.getPrivate('hex').length > 0);
47
+ assert(keys.validate().result);
48
+ });
49
+
50
+ it('should sign and verify', function() {
51
+ var signature = ecdsa.sign(msg, keys);
52
+ assert(ecdsa.verify(msg, signature, keys), 'Normal verify');
53
+ });
54
+
55
+ it('should sign and verify using key\'s methods', function() {
56
+ var signature = keys.sign(msg);
57
+ assert(keys.verify(msg, signature), 'On-key verify');
58
+ });
59
+
60
+ it('should load private key from the hex value', function() {
61
+ var copy = ecdsa.keyFromPrivate(keys.getPrivate('hex'), 'hex');
62
+ var signature = ecdsa.sign(msg, copy);
63
+ assert(ecdsa.verify(msg, signature, copy), 'hex-private verify');
64
+ });
65
+
66
+ it('should have `signature.s <= keys.ec.nh`', function() {
67
+ // key.sign(msg, options)
68
+ var sign = keys.sign('hello', { canonical: true });
69
+ assert(sign.s.cmp(keys.ec.nh) <= 0);
70
+ });
71
+
72
+ it('should support `options.k`', function() {
73
+ var sign = keys.sign(msg, {
74
+ k: function(iter) {
75
+ assert(iter >= 0);
76
+ return new BN(1358);
77
+ },
78
+ });
79
+ assert(ecdsa.verify(msg, sign, keys), 'custom-k verify');
80
+ });
81
+
82
+ it('should have another signature with pers', function () {
83
+ var sign1 = keys.sign(msg);
84
+ var sign2 = keys.sign(msg, { pers: '1234', persEnc: 'hex' });
85
+ assert.notEqual(sign1.r.toArray().concat(sign1.s.toArray()),
86
+ sign2.r.toArray().concat(sign2.s.toArray()));
87
+ });
88
+
89
+ it('should load public key from compact hex value', function() {
90
+ var pub = keys.getPublic(true, 'hex');
91
+ var copy = ecdsa.keyFromPublic(pub, 'hex');
92
+ assert.equal(copy.getPublic(true, 'hex'), pub);
93
+ });
94
+
95
+ it('should load public key from hex value', function() {
96
+ var pub = keys.getPublic('hex');
97
+ var copy = ecdsa.keyFromPublic(pub, 'hex');
98
+ assert.equal(copy.getPublic('hex'), pub);
99
+ });
100
+
101
+ it('should support hex DER encoding of signatures', function() {
102
+ var signature = ecdsa.sign(msg, keys);
103
+ var dsign = signature.toDER('hex');
104
+ assert(ecdsa.verify(msg, dsign, keys), 'hex-DER encoded verify');
105
+ });
106
+
107
+ it('should support DER encoding of signatures', function() {
108
+ var signature = ecdsa.sign(msg, keys);
109
+ var dsign = signature.toDER();
110
+ assert(ecdsa.verify(msg, dsign, keys), 'DER encoded verify');
111
+ });
112
+
113
+ it('should not verify signature with wrong public key', function() {
114
+ var signature = ecdsa.sign(msg, keys);
115
+
116
+ var wrong = ecdsa.genKeyPair();
117
+ assert(!ecdsa.verify(msg, signature, wrong), 'Wrong key verify');
118
+ });
119
+
120
+ it('should not verify signature with wrong private key', function() {
121
+ var signature = ecdsa.sign(msg, keys);
122
+
123
+ var wrong = ecdsa.keyFromPrivate(keys.getPrivate('hex') +
124
+ keys.getPrivate('hex'));
125
+ assert(!ecdsa.verify(msg, signature, wrong), 'Wrong key verify');
126
+ });
127
+ });
128
+ }
129
+ test('secp256k1');
130
+ test('ed25519');
131
+ test('p256');
132
+ test('p384');
133
+ test('p521');
134
+
135
+ describe('RFC6979 vector', function() {
136
+ function test(opt) {
137
+ opt.cases.forEach(function(c) {
138
+ var ecdsa = elliptic.ec({
139
+ curve: opt.curve,
140
+ hash: c.hash,
141
+ });
142
+ var descr = 'should not fail on "' + opt.name + '" ' +
143
+ 'and hash ' + c.hash.name + ' on "' + c.message + '"';
144
+ it(descr, function() {
145
+ var dgst = c.hash().update(c.message).digest();
146
+ var sign = ecdsa.sign(dgst, opt.key);
147
+ assert.equal(sign.r.toString(16), c.r);
148
+ assert.equal(sign.s.toString(16), c.s);
149
+ assert.ok(ecdsa.keyFromPublic(opt.pub).validate().result,
150
+ 'Invalid public key');
151
+ assert.ok(ecdsa.verify(dgst, sign, opt.pub),
152
+ 'Invalid signature');
153
+ });
154
+ });
155
+ }
156
+
157
+ test({
158
+ name: 'ECDSA, 192 Bits (Prime Field)',
159
+ curve: elliptic.curves.p192,
160
+ key: '6fab034934e4c0fc9ae67f5b5659a9d7d1fefd187ee09fd4',
161
+ pub: {
162
+ x: 'ac2c77f529f91689fea0ea5efec7f210d8eea0b9e047ed56',
163
+ y: '3bc723e57670bd4887ebc732c523063d0a7c957bc97c1c43',
164
+ },
165
+ cases: [
166
+ {
167
+ message: 'sample',
168
+ hash: hash.sha224,
169
+ r: 'a1f00dad97aeec91c95585f36200c65f3c01812aa60378f5',
170
+ s: 'e07ec1304c7c6c9debbe980b9692668f81d4de7922a0f97a',
171
+ },
172
+ {
173
+ message: 'sample',
174
+ hash: hash.sha256,
175
+ r: '4b0b8ce98a92866a2820e20aa6b75b56382e0f9bfd5ecb55',
176
+ s: 'ccdb006926ea9565cbadc840829d8c384e06de1f1e381b85',
177
+ },
178
+ {
179
+ message: 'test',
180
+ hash: hash.sha224,
181
+ r: '6945a1c1d1b2206b8145548f633bb61cef04891baf26ed34',
182
+ s: 'b7fb7fdfc339c0b9bd61a9f5a8eaf9be58fc5cba2cb15293',
183
+ },
184
+ {
185
+ message: 'test',
186
+ hash: hash.sha256,
187
+ r: '3a718bd8b4926c3b52ee6bbe67ef79b18cb6eb62b1ad97ae',
188
+ s: '5662e6848a4a19b1f1ae2f72acd4b8bbe50f1eac65d9124f',
189
+ },
190
+ ],
191
+ });
192
+
193
+ test({
194
+ name: 'ECDSA, 224 Bits (Prime Field)',
195
+ curve: elliptic.curves.p224,
196
+ key: 'f220266e1105bfe3083e03ec7a3a654651f45e37167e88600bf257c1',
197
+ pub: {
198
+ x: '00cf08da5ad719e42707fa431292dea11244d64fc51610d94b130d6c',
199
+ y: 'eeab6f3debe455e3dbf85416f7030cbd94f34f2d6f232c69f3c1385a',
200
+ },
201
+ cases: [
202
+ {
203
+ message: 'sample',
204
+ hash: hash.sha224,
205
+ r: '1cdfe6662dde1e4a1ec4cdedf6a1f5a2fb7fbd9145c12113e6abfd3e',
206
+ s: 'a6694fd7718a21053f225d3f46197ca699d45006c06f871808f43ebc',
207
+ },
208
+ {
209
+ message: 'sample',
210
+ hash: hash.sha256,
211
+ r: '61aa3da010e8e8406c656bc477a7a7189895e7e840cdfe8ff42307ba',
212
+ s: 'bc814050dab5d23770879494f9e0a680dc1af7161991bde692b10101',
213
+ },
214
+ {
215
+ message: 'test',
216
+ hash: hash.sha224,
217
+ r: 'c441ce8e261ded634e4cf84910e4c5d1d22c5cf3b732bb204dbef019',
218
+ s: '902f42847a63bdc5f6046ada114953120f99442d76510150f372a3f4',
219
+ },
220
+ {
221
+ message: 'test',
222
+ hash: hash.sha256,
223
+ r: 'ad04dde87b84747a243a631ea47a1ba6d1faa059149ad2440de6fba6',
224
+ s: '178d49b1ae90e3d8b629be3db5683915f4e8c99fdf6e666cf37adcfd',
225
+ },
226
+ ],
227
+ });
228
+
229
+ test({
230
+ name: 'ECDSA, 256 Bits (Prime Field)',
231
+ curve: elliptic.curves.p256,
232
+ key: 'c9afa9d845ba75166b5c215767b1d6934e50c3db36e89b127b8a622b120f6721',
233
+ pub: {
234
+ x: '60fed4ba255a9d31c961eb74c6356d68c049b8923b61fa6ce669622e60f29fb6',
235
+ y: '7903fe1008b8bc99a41ae9e95628bc64f2f1b20c2d7e9f5177a3c294d4462299',
236
+ },
237
+ cases: [
238
+ {
239
+ message: 'sample',
240
+ hash: hash.sha224,
241
+ r: '53b2fff5d1752b2c689df257c04c40a587fababb3f6fc2702f1343af7ca9aa3f',
242
+ s: 'b9afb64fdc03dc1a131c7d2386d11e349f070aa432a4acc918bea988bf75c74c',
243
+ },
244
+ {
245
+ message: 'sample',
246
+ hash: hash.sha256,
247
+ r: 'efd48b2aacb6a8fd1140dd9cd45e81d69d2c877b56aaf991c34d0ea84eaf3716',
248
+ s: 'f7cb1c942d657c41d436c7a1b6e29f65f3e900dbb9aff4064dc4ab2f843acda8',
249
+ },
250
+ {
251
+ message: 'test',
252
+ hash: hash.sha224,
253
+ r: 'c37edb6f0ae79d47c3c27e962fa269bb4f441770357e114ee511f662ec34a692',
254
+ s: 'c820053a05791e521fcaad6042d40aea1d6b1a540138558f47d0719800e18f2d',
255
+ },
256
+ {
257
+ message: 'test',
258
+ hash: hash.sha256,
259
+ r: 'f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d38367',
260
+ s: '19f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083',
261
+ },
262
+ ],
263
+ });
264
+
265
+ test({
266
+ name: 'ECDSA, 384 Bits (Prime Field)',
267
+ curve: elliptic.curves.p384,
268
+ key: '6b9d3dad2e1b8c1c05b19875b6659f4de23c3b667bf297ba9aa4774078713' +
269
+ '7d896d5724e4c70a825f872c9ea60d2edf5',
270
+ pub: {
271
+ x: 'ec3a4e415b4e19a4568618029f427fa5da9a8bc4ae92e02e06aae5286b30' +
272
+ '0c64def8f0ea9055866064a254515480bc13',
273
+ y: '8015d9b72d7d57244ea8ef9ac0c621896708a59367f9dfb9f54ca84b3f' +
274
+ '1c9db1288b231c3ae0d4fe7344fd2533264720',
275
+ },
276
+ cases: [
277
+ {
278
+ message: 'sample',
279
+ hash: hash.sha224,
280
+ r: '42356e76b55a6d9b4631c865445dbe54e056d3b3431766d05092447' +
281
+ '93c3f9366450f76ee3de43f5a125333a6be060122',
282
+ s: '9da0c81787064021e78df658f2fbb0b042bf304665db721f077a429' +
283
+ '8b095e4834c082c03d83028efbf93a3c23940ca8d',
284
+ },
285
+ {
286
+ message: 'sample',
287
+ hash: hash.sha384,
288
+ r: '94edbb92a5ecb8aad4736e56c691916b3f88140666ce9fa73d6' +
289
+ '4c4ea95ad133c81a648152e44acf96e36dd1e80fabe46',
290
+ s: '99ef4aeb15f178cea1fe40db2603138f130e740a19624526203b' +
291
+ '6351d0a3a94fa329c145786e679e7b82c71a38628ac8',
292
+ },
293
+ {
294
+ message: 'test',
295
+ hash: hash.sha384,
296
+ r: '8203b63d3c853e8d77227fb377bcf7b7b772e97892a80f36a' +
297
+ 'b775d509d7a5feb0542a7f0812998da8f1dd3ca3cf023db',
298
+ s: 'ddd0760448d42d8a43af45af836fce4de8be06b485e9b61b827c2f13' +
299
+ '173923e06a739f040649a667bf3b828246baa5a5',
300
+ },
301
+ ],
302
+ });
303
+
304
+ test({
305
+ name: 'ECDSA, 521 Bits (Prime Field)',
306
+ curve: elliptic.curves.p521,
307
+ key: '0fad06daa62ba3b25d2fb40133da757205de67f5bb0018fee8c86e1b68c7e75' +
308
+ 'caa896eb32f1f47c70855836a6d16fcc1466f6d8fbec67db89ec0c08b0e996b' +
309
+ '83538',
310
+ pub: {
311
+ x: '1894550d0785932e00eaa23b694f213f8c3121f86dc97a04e5a7167db4e5bcd3' +
312
+ '71123d46e45db6b5d5370a7f20fb633155d38ffa16d2bd761dcac474b9a2f502' +
313
+ '3a4',
314
+ y: '0493101c962cd4d2fddf782285e64584139c2f91b47f87ff82354d6630f746a2' +
315
+ '8a0db25741b5b34a828008b22acc23f924faafbd4d33f81ea66956dfeaa2bfdfcf5',
316
+ },
317
+ cases: [
318
+ {
319
+ message: 'sample',
320
+ hash: hash.sha384,
321
+ r: '1ea842a0e17d2de4f92c15315c63ddf72685c18195c2bb95e572b9c5136ca4' +
322
+ 'b4b576ad712a52be9730627d16054ba40cc0b8d3ff035b12ae75168397f5' +
323
+ 'd50c67451',
324
+ s: '1f21a3cee066e1961025fb048bd5fe2b7924d0cd797babe0a83b66f1e35ee' +
325
+ 'af5fde143fa85dc394a7dee766523393784484bdf3e00114a1c857cde1aa2' +
326
+ '03db65d61',
327
+ },
328
+ {
329
+ message: 'sample',
330
+ hash: hash.sha512,
331
+ r: 'c328fafcbd79dd77850370c46325d987cb525569fb63c5d3bc53950e6d4c5f1' +
332
+ '74e25a1ee9017b5d450606add152b534931d7d4e8455cc91f9b15bf05ec36e3' +
333
+ '77fa',
334
+ s: '617cce7cf5064806c467f678d3b4080d6f1cc50af26ca209417308281b68af2' +
335
+ '82623eaa63e5b5c0723d8b8c37ff0777b1a20f8ccb1dccc43997f1ee0e44da4' +
336
+ 'a67a',
337
+ },
338
+ {
339
+ message: 'test',
340
+ hash: hash.sha512,
341
+ r: '13e99020abf5cee7525d16b69b229652ab6bdf2affcaef38773b4b7d087' +
342
+ '25f10cdb93482fdcc54edcee91eca4166b2a7c6265ef0ce2bd7051b7cef945' +
343
+ 'babd47ee6d',
344
+ s: '1fbd0013c674aa79cb39849527916ce301c66ea7ce8b80682786ad60f98' +
345
+ 'f7e78a19ca69eff5c57400e3b3a0ad66ce0978214d13baf4e9ac60752f7b15' +
346
+ '5e2de4dce3',
347
+ },
348
+ ],
349
+ });
350
+ });
351
+
352
+ describe('Maxwell\'s trick', function() {
353
+ var p256 = elliptic.curves.p256;
354
+ assert(p256);
355
+ var p384 = elliptic.curves.p384;
356
+ assert(p384);
357
+
358
+ var msg =
359
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
360
+
361
+ var vectors = [
362
+ {
363
+ curve: p256,
364
+ pub: '041548fc88953e06cd34d4b300804c5322cb48c24aaaa4d0' +
365
+ '7a541b0f0ccfeedeb0ae4991b90519ea405588bdf699f5e6' +
366
+ 'd0c6b2d5217a5c16e8371062737aa1dae1',
367
+ message: msg,
368
+ sig: '3006020106020104',
369
+ result: true,
370
+ },
371
+ {
372
+ curve: p256,
373
+ pub: '04ad8f60e4ec1ebdb6a260b559cb55b1e9d2c5ddd43a41a2' +
374
+ 'd11b0741ef2567d84e166737664104ebbc337af3d861d352' +
375
+ '4cfbc761c12edae974a0759750c8324f9a',
376
+ message: msg,
377
+ sig: '3006020106020104',
378
+ result: true,
379
+ },
380
+ {
381
+ curve: p256,
382
+ pub: '0445bd879143a64af5746e2e82aa65fd2ea07bba4e355940' +
383
+ '95a981b59984dacb219d59697387ac721b1f1eccf4b11f43' +
384
+ 'ddc39e8367147abab3084142ed3ea170e4',
385
+ message: msg,
386
+ sig: '301502104319055358e8617b0c46353d039cdaae020104',
387
+ result: true,
388
+ },
389
+ {
390
+ curve: p256,
391
+ pub: '040feb5df4cc78b35ec9c180cc0de5842f75f088b4845697' +
392
+ '8ffa98e716d94883e1e6500b2a1f6c1d9d493428d7ae7d9a' +
393
+ '8a560fff30a3d14aa160be0c5e7edcd887',
394
+ message: msg,
395
+ sig: '301502104319055358e8617b0c46353d039cdaae020104',
396
+ result: false,
397
+ },
398
+ {
399
+ curve: p384,
400
+ pub: '0425e299eea9927b39fa92417705391bf17e8110b4615e9e' +
401
+ 'b5da471b57be0c30e7d89dbdc3e5da4eae029b300344d385' +
402
+ '1548b59ed8be668813905105e673319d59d32f574e180568' +
403
+ '463c6186864888f6c0b67b304441f82aab031279e48f047c31',
404
+ message: msg,
405
+ sig: '3006020103020104',
406
+ result: true,
407
+ },
408
+ {
409
+ curve: p384,
410
+ pub: '04a328f65c22307188b4af65779c1d2ec821c6748c6bd8dc' +
411
+ '0e6a008135f048f832df501f7f3f79966b03d5bef2f187ec' +
412
+ '34d85f6a934af465656fb4eea8dd9176ab80fbb4a27a649f' +
413
+ '526a7dfe616091b78d293552bc093dfde9b31cae69d51d3afb',
414
+ message: msg,
415
+ sig: '3006020103020104',
416
+ result: true,
417
+ },
418
+ {
419
+ curve: p384,
420
+ pub: '04242e8585eaa7a28cc6062cab4c9c5fd536f46b17be1728' +
421
+ '288a2cda5951df4941aed1d712defda023d10aca1c5ee014' +
422
+ '43e8beacd821f7efa27847418ab95ce2c514b2b6b395ee73' +
423
+ '417c83dbcad631421f360d84d64658c98a62d685b220f5aad4',
424
+ message: msg,
425
+ sig: '301d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68e020104',
426
+ result: true,
427
+ },
428
+ {
429
+ curve: p384,
430
+ pub: '04cdf865dd743fe1c23757ec5e65fd5e4038b472ded2af26' +
431
+ '1e3d8343c595c8b69147df46379c7ca40e60e80170d34a11' +
432
+ '88dbb2b6f7d3934c23d2f78cfb0db3f3219959fad63c9b61' +
433
+ '2ef2f20d679777b84192ce86e781c14b1bbb77eacd6e0520e2',
434
+ message: msg,
435
+ sig: '301d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68e020104',
436
+ result: false,
437
+ },
438
+ ];
439
+
440
+ vectors.forEach(function(vector, i) {
441
+ it('should pass on vector#' + i, function() {
442
+ var ecdsa = new elliptic.ec(vector.curve);
443
+ var key = ecdsa.keyFromPublic(vector.pub, 'hex');
444
+ var msg = vector.message;
445
+ var sig = vector.sig;
446
+
447
+ var actual = ecdsa.verify(msg, sig, key);
448
+ assert.equal(actual, vector.result);
449
+ });
450
+ });
451
+ });
452
+
453
+ it('should deterministically generate private key', function() {
454
+ var curve = elliptic.curves.secp256k1;
455
+ assert(curve);
456
+
457
+ var ecdsa = new elliptic.ec(curve);
458
+ var keys = ecdsa.genKeyPair({
459
+ pers: 'my.pers.string',
460
+ entropy: hash.sha256().update('hello world').digest(),
461
+ });
462
+ assert.equal(
463
+ keys.getPrivate('hex'),
464
+ '6160edb2b218b7f1394b9ca8eb65a72831032a1f2f3dc2d99291c2f7950ed887');
465
+ });
466
+
467
+ it('should recover the public key from a signature', function() {
468
+ var ec = new elliptic.ec('secp256k1');
469
+ var key = ec.genKeyPair();
470
+ var msg = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
471
+ var signature = key.sign(msg);
472
+ var recid = ec.getKeyRecoveryParam(msg, signature, key.getPublic());
473
+ var r = ec.recoverPubKey(msg, signature, recid);
474
+ assert(key.getPublic().eq(r), 'the keys should match');
475
+ });
476
+
477
+ it('should fail to recover key when no quadratic residue available',
478
+ function() {
479
+ var ec = new elliptic.ec('secp256k1');
480
+
481
+ var message =
482
+ 'f75c6b18a72fabc0f0b888c3da58e004f0af1fe14f7ca5d8c897fe164925d5e9';
483
+
484
+ assert.throws(function() {
485
+ ec.recoverPubKey(message, {
486
+ r: 'fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140',
487
+ s: '8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3',
488
+ }, 0);
489
+ });
490
+ });
491
+
492
+ it('Wycheproof special hash case with hex', function() {
493
+ var curve = new elliptic.ec('p192');
494
+ var msg =
495
+ '00000000690ed426ccf17803ebe2bd0884bcd58a1bb5e7477ead3645f356e7a9';
496
+ var sig = '303502186f20676c0d04fc40ea55d5702f798355787363a9' +
497
+ '1e97a7e50219009d1c8c171b2b02e7d791c204c17cea4cf5' +
498
+ '56a2034288885b';
499
+ var pub = '04cd35a0b18eeb8fcd87ff019780012828745f046e785deb' +
500
+ 'a28150de1be6cb4376523006beff30ff09b4049125ced29723';
501
+ var pubKey = curve.keyFromPublic(pub, 'hex');
502
+ assert(pubKey.verify(msg, sig) === true);
503
+ });
504
+
505
+ it('Wycheproof special hash case with Array', function() {
506
+ var curve = new elliptic.ec('p192');
507
+ var msg = [
508
+ 0x00, 0x00, 0x00, 0x00, 0x69, 0x0e, 0xd4, 0x26, 0xcc, 0xf1, 0x78,
509
+ 0x03, 0xeb, 0xe2, 0xbd, 0x08, 0x84, 0xbc, 0xd5, 0x8a, 0x1b, 0xb5,
510
+ 0xe7, 0x47, 0x7e, 0xad, 0x36, 0x45, 0xf3, 0x56, 0xe7, 0xa9,
511
+ ];
512
+ var sig = '303502186f20676c0d04fc40ea55d5702f798355787363a9' +
513
+ '1e97a7e50219009d1c8c171b2b02e7d791c204c17cea4cf5' +
514
+ '56a2034288885b';
515
+ var pub = '04cd35a0b18eeb8fcd87ff019780012828745f046e785deb' +
516
+ 'a28150de1be6cb4376523006beff30ff09b4049125ced29723';
517
+ var pubKey = curve.keyFromPublic(pub, 'hex');
518
+ assert(pubKey.verify(msg, sig) === true);
519
+ });
520
+
521
+ it('Wycheproof special hash case with BN', function() {
522
+ var curve = new elliptic.ec('p192');
523
+ var msg = new BN(
524
+ '00000000690ed426ccf17803ebe2bd0884bcd58a1bb5e7477ead3645f356e7a9',
525
+ 16,
526
+ );
527
+ var sig = '303502186f20676c0d04fc40ea55d5702f798355787363a9' +
528
+ '1e97a7e50219009d1c8c171b2b02e7d791c204c17cea4cf5' +
529
+ '56a2034288885b';
530
+ var pub = '04cd35a0b18eeb8fcd87ff019780012828745f046e785deb' +
531
+ 'a28150de1be6cb4376523006beff30ff09b4049125ced29723';
532
+ var pubKey = curve.keyFromPublic(pub, 'hex');
533
+ assert(pubKey.verify(msg, sig, { msgBitLength: 32 * 8 }) === true);
534
+ });
535
+
536
+ describe('Signature', function () {
537
+ it('recoveryParam is 0', function () {
538
+ var sig = new Signature({ r: '00', s: '00', recoveryParam: 0 });
539
+ assert.equal(sig.recoveryParam, 0);
540
+ });
541
+
542
+ it('recoveryParam is 1', function () {
543
+ var sig = new Signature({ r: '00', s: '00', recoveryParam: 1 });
544
+ assert.equal(sig.recoveryParam, 1);
545
+ });
546
+ });
547
+ });
@@ -0,0 +1,138 @@
1
+ /* eslint-env node, mocha */
2
+ 'use strict';
3
+
4
+ var assert = require('assert');
5
+ var elliptic = require('../');
6
+ var utils = elliptic.utils;
7
+ var toArray = elliptic.utils.toArray;
8
+ var eddsa = elliptic.eddsa;
9
+
10
+ function toHex(arr) {
11
+ return elliptic.utils.toHex(arr).toUpperCase();
12
+ }
13
+
14
+ var MAX_PROGRAMMATIC = process.env.CI ? Infinity : 50;
15
+
16
+ describe('ed25519 derivations', function() {
17
+ var expectedTests = 256;
18
+ var ed25519;
19
+ var derivations;
20
+
21
+ before(function() {
22
+ ed25519 = new eddsa('ed25519');
23
+ derivations = require('./fixtures/derivation-fixtures');
24
+ assert.equal(derivations.length, expectedTests);
25
+ });
26
+
27
+ function testFactory(i) {
28
+ it('can compute correct a and A for secret: ' + i, function() {
29
+ var test = derivations[i];
30
+ var secret = utils.toArray(test.secret_hex, 'hex');
31
+ var key = ed25519.keyFromSecret(secret);
32
+ assert.equal(toHex(key.privBytes()), test.a_hex);
33
+ var xRecovered = toHex(ed25519.encodeInt(
34
+ ed25519.decodePoint(key.pubBytes()).getX()));
35
+ assert.equal(xRecovered, test.A_P.x);
36
+ assert.equal(toHex(key.pubBytes()), test.A_hex);
37
+ });
38
+ }
39
+
40
+ for (var i = 0; i < Math.min(expectedTests, MAX_PROGRAMMATIC); i++)
41
+ testFactory(i);
42
+ });
43
+
44
+ describe('sign.input ed25519 test vectors', function() {
45
+ var expectedTests = 1024;
46
+ var ed25519;
47
+ var lines;
48
+
49
+ before(function(done) {
50
+ ed25519 = new eddsa('ed25519');
51
+ require('fs').readFile(__dirname + '/fixtures/sign.input', function(err, f) {
52
+ lines = f.toString().split('\n');
53
+ assert.equal(lines.length, expectedTests + 1 /*blank line*/);
54
+ done();
55
+ });
56
+ });
57
+
58
+ function testFactory(i) {
59
+ it('vector ' + i, function() {
60
+ var split = lines[i].toUpperCase().split(':');
61
+ var key = ed25519.keyFromSecret(split[0].slice(0, 64));
62
+ var expectedPk = split[0].slice(64);
63
+
64
+ assert.equal(toHex(key.pubBytes()), expectedPk);
65
+
66
+ var msg = toArray(split[2], 'hex');
67
+ var sig = key.sign(msg).toHex();
68
+ var sigR = sig.slice(0, 64);
69
+ var sigS = sig.slice(64);
70
+
71
+ assert.equal(sigR, split[3].slice(0, 64));
72
+ assert.equal(sigS, split[3].slice(64, 128));
73
+ assert(key.verify(msg, sig));
74
+
75
+ var forged = msg.length === 0 ? [ 0x78 ] /*ord('x')*/:
76
+ msg.slice(0, msg.length - 1).concat(
77
+ (msg[(msg.length - 1)] + 1) % 256);
78
+
79
+ assert.equal(msg.length || 1, forged.length);
80
+ assert(!key.verify(forged, sig));
81
+ });
82
+ }
83
+ for (var i = 0; i < Math.min(expectedTests, MAX_PROGRAMMATIC); i++)
84
+ testFactory(i);
85
+ });
86
+
87
+ describe('EDDSA(\'ed25519\')', function() {
88
+ var ed25519;
89
+
90
+ before(function() {
91
+ ed25519 = new eddsa('ed25519');
92
+ });
93
+
94
+ it('has encodingLength of 32', function() {
95
+ assert.equal(32, ed25519.encodingLength);
96
+ });
97
+
98
+ it('can sign/verify messages', function() {
99
+ var secret = toArray(new Array(65).join('0'), 'hex');
100
+ assert(secret.length === 32);
101
+ var msg = [ 0xB, 0xE, 0xE, 0xF ];
102
+ var key = ed25519.keyFromSecret(secret);
103
+ var sig = key.sign(msg).toHex();
104
+
105
+ var R = '8F1B9A7FDB22BCD2C15D4695B1CE2B063CBFAEC9B00BE360427BAC9533943F6C';
106
+ var S = '5F0B380FD7F2E43B70AB2FA29F6C6E3FFC1012710E174786814012324BF19B0C';
107
+
108
+ assert.equal(sig.slice(0, 64), R);
109
+ assert.equal(sig.slice(64), S);
110
+
111
+ assert(key.verify(msg, sig));
112
+ });
113
+
114
+ describe('KeyPair', function() {
115
+ var pair;
116
+ var secret = '00000000000000000000000000000000' +
117
+ '00000000000000000000000000000000';
118
+
119
+ before(function() {
120
+ pair = ed25519.keyFromSecret(secret);
121
+ });
122
+
123
+ it('can be created with keyFromSecret/keyFromPublic', function() {
124
+ var pubKey = ed25519.keyFromPublic(toHex(pair.pubBytes()));
125
+ assert(pubKey.pub() instanceof ed25519.pointClass);
126
+ assert(pubKey.pub().eq(pair.pub()));
127
+ });
128
+ it('#getSecret returns bytes with optional encoding', function() {
129
+ assert(Array.isArray(pair.getSecret()));
130
+ assert(pair.getSecret('hex') === secret);
131
+ });
132
+ it('#getPub returns bytes with optional encoding', function() {
133
+ assert(Array.isArray(pair.getPublic()));
134
+ assert.equal(pair.getPublic('hex'),
135
+ '3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29');
136
+ });
137
+ });
138
+ });