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.
- package/node_modules/@meteorjs/browserify-sign/browser/verify.js +1 -1
- package/node_modules/@meteorjs/browserify-sign/package.json +21 -5
- package/node_modules/@meteorjs/create-ecdh/browser.js +1 -1
- package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/deps/jodid.js +82 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/deps/secp256k1.js +41 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/index.js +153 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/benchmarks/package.json +21 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/dist/.gitkeep +0 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/dist/elliptic.js +8961 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/dist/elliptic.min.js +1 -0
- package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic.js +1 -1
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/api-test.js +20 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/curve-test.js +357 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/ecdh-test.js +43 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/ecdsa-test.js +547 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/ed25519-test.js +138 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/fixtures/derivation-fixtures.js +3842 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/fixtures/sign.input +1024 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/index.js +10 -0
- package/node_modules/@meteorjs/create-ecdh/elliptic/test/unittests.html +39 -0
- package/node_modules/@meteorjs/create-ecdh/node_modules/bn.js/lib/bn.js +1 -0
- package/node_modules/@meteorjs/create-ecdh/node_modules/bn.js/package.json +1 -1
- package/node_modules/@meteorjs/create-ecdh/package.json +23 -5
- package/node_modules/asn1.js/node_modules/bn.js/lib/bn.js +6 -5
- package/node_modules/asn1.js/node_modules/bn.js/package.json +1 -1
- package/node_modules/asn1.js/node_modules/bn.js/util/genCombMulTo.js +65 -0
- package/node_modules/asn1.js/node_modules/bn.js/util/genCombMulTo10.js +65 -0
- package/node_modules/available-typed-arrays/.eslintrc +0 -4
- package/node_modules/available-typed-arrays/CHANGELOG.md +21 -0
- package/node_modules/available-typed-arrays/README.md +16 -13
- package/node_modules/available-typed-arrays/index.d.ts +8 -0
- package/node_modules/available-typed-arrays/index.js +4 -14
- package/node_modules/available-typed-arrays/package.json +26 -15
- package/node_modules/available-typed-arrays/tsconfig.json +49 -0
- package/node_modules/bn.js/README.md +11 -5
- package/node_modules/bn.js/lib/bn.js +6 -5
- package/node_modules/bn.js/package.json +1 -1
- package/node_modules/browserify-rsa/CHANGELOG.md +98 -0
- package/node_modules/browserify-rsa/README.md +0 -2
- package/node_modules/browserify-rsa/index.js +31 -28
- package/node_modules/browserify-rsa/package.json +64 -29
- package/node_modules/call-bind/CHANGELOG.md +13 -0
- package/node_modules/call-bind/index.js +6 -17
- package/node_modules/call-bind/package.json +14 -16
- package/node_modules/call-bind/test/index.js +4 -10
- package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/node_modules/{has-proto → call-bind-apply-helpers}/LICENSE +1 -1
- package/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/node_modules/call-bound/.eslintrc +13 -0
- package/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/node_modules/call-bound/.nycrc +9 -0
- package/node_modules/call-bound/CHANGELOG.md +42 -0
- package/node_modules/{@meteorjs/browserify-sign/node_modules/bn.js → call-bound}/LICENSE +3 -1
- package/node_modules/call-bound/README.md +53 -0
- package/node_modules/call-bound/index.d.ts +94 -0
- package/node_modules/call-bound/index.js +19 -0
- package/node_modules/call-bound/package.json +99 -0
- package/node_modules/call-bound/test/index.js +61 -0
- package/node_modules/call-bound/tsconfig.json +10 -0
- package/node_modules/cipher-base/.eslintrc +24 -1
- package/node_modules/cipher-base/.github/FUNDING.yml +12 -0
- package/node_modules/cipher-base/CHANGELOG.md +66 -0
- package/node_modules/cipher-base/index.js +145 -77
- package/node_modules/cipher-base/package.json +60 -30
- package/node_modules/cipher-base/test/index.js +221 -0
- package/node_modules/des.js/lib/des/cipher.js +1 -0
- package/node_modules/des.js/lib/des/des.js +8 -0
- package/node_modules/des.js/package.json +3 -4
- package/node_modules/des.js/test/cbc-test.js +5 -5
- package/node_modules/des.js/test/des-test.js +9 -9
- package/node_modules/des.js/test/ede-test.js +39 -6
- package/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js +6 -5
- package/node_modules/diffie-hellman/node_modules/bn.js/package.json +1 -1
- package/node_modules/diffie-hellman/node_modules/bn.js/util/genCombMulTo.js +65 -0
- package/node_modules/diffie-hellman/node_modules/bn.js/util/genCombMulTo10.js +65 -0
- package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/node_modules/dunder-proto/.nycrc +13 -0
- package/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/node_modules/{@meteorjs/crypto-browserify/node_modules/hash-base → dunder-proto}/LICENSE +6 -6
- package/node_modules/dunder-proto/README.md +54 -0
- package/node_modules/dunder-proto/get.d.ts +5 -0
- package/node_modules/dunder-proto/get.js +30 -0
- package/node_modules/dunder-proto/package.json +76 -0
- package/node_modules/dunder-proto/set.d.ts +5 -0
- package/node_modules/dunder-proto/set.js +35 -0
- package/node_modules/dunder-proto/test/get.js +34 -0
- package/node_modules/dunder-proto/test/index.js +4 -0
- package/node_modules/dunder-proto/test/set.js +50 -0
- package/node_modules/dunder-proto/tsconfig.json +9 -0
- package/node_modules/es-define-property/CHANGELOG.md +14 -0
- package/node_modules/es-define-property/index.js +1 -3
- package/node_modules/es-define-property/package.json +12 -12
- package/node_modules/es-define-property/test/index.js +1 -0
- package/node_modules/es-define-property/tsconfig.json +2 -42
- package/node_modules/es-object-atoms/.eslintrc +16 -0
- package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- package/node_modules/{elliptic/node_modules/bn.js → es-object-atoms}/LICENSE +3 -1
- package/node_modules/es-object-atoms/README.md +63 -0
- package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/node_modules/es-object-atoms/ToObject.js +10 -0
- package/node_modules/es-object-atoms/index.d.ts +3 -0
- package/node_modules/es-object-atoms/index.js +4 -0
- package/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/node_modules/es-object-atoms/isObject.js +6 -0
- package/node_modules/es-object-atoms/package.json +80 -0
- package/node_modules/es-object-atoms/test/index.js +38 -0
- package/node_modules/es-object-atoms/tsconfig.json +6 -0
- package/node_modules/for-each/.eslintrc +16 -2
- package/node_modules/{has-proto → for-each}/.github/FUNDING.yml +1 -1
- package/node_modules/for-each/.github/SECURITY.md +3 -0
- package/node_modules/for-each/.nycrc +8 -0
- package/node_modules/for-each/CHANGELOG.md +107 -0
- package/node_modules/for-each/README.md +0 -4
- package/node_modules/for-each/index.d.ts +35 -0
- package/node_modules/for-each/index.js +11 -4
- package/node_modules/for-each/package.json +47 -36
- package/node_modules/for-each/test/test.js +54 -12
- package/node_modules/for-each/tsconfig.json +8 -0
- package/node_modules/get-intrinsic/.eslintrc +4 -0
- package/node_modules/get-intrinsic/CHANGELOG.md +43 -0
- package/node_modules/get-intrinsic/index.js +40 -21
- package/node_modules/get-intrinsic/package.json +24 -20
- package/node_modules/get-intrinsic/test/GetIntrinsic.js +2 -2
- package/node_modules/get-proto/.eslintrc +10 -0
- package/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/node_modules/get-proto/.nycrc +9 -0
- package/node_modules/get-proto/CHANGELOG.md +21 -0
- package/node_modules/get-proto/LICENSE +21 -0
- package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/node_modules/get-proto/README.md +50 -0
- package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/node_modules/get-proto/index.d.ts +5 -0
- package/node_modules/get-proto/index.js +27 -0
- package/node_modules/{has-proto → get-proto}/package.json +33 -26
- package/node_modules/get-proto/test/index.js +68 -0
- package/node_modules/get-proto/tsconfig.json +9 -0
- package/node_modules/gopd/CHANGELOG.md +20 -0
- package/node_modules/gopd/gOPD.d.ts +1 -0
- package/node_modules/gopd/gOPD.js +4 -0
- package/node_modules/gopd/index.d.ts +5 -0
- package/node_modules/gopd/index.js +2 -3
- package/node_modules/gopd/package.json +16 -10
- package/node_modules/gopd/test/index.js +2 -1
- package/node_modules/gopd/tsconfig.json +9 -0
- package/node_modules/has-symbols/CHANGELOG.md +16 -0
- package/node_modules/has-symbols/index.d.ts +3 -0
- package/node_modules/has-symbols/index.js +1 -0
- package/node_modules/has-symbols/package.json +19 -9
- package/node_modules/has-symbols/shams.d.ts +3 -0
- package/node_modules/has-symbols/shams.js +5 -2
- package/node_modules/has-symbols/test/shams/core-js.js +1 -0
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +1 -0
- package/node_modules/has-symbols/test/tests.js +4 -2
- package/node_modules/has-symbols/tsconfig.json +10 -0
- package/node_modules/has-tostringtag/.eslintrc +0 -6
- package/node_modules/has-tostringtag/.nycrc +13 -0
- package/node_modules/has-tostringtag/CHANGELOG.md +22 -0
- package/node_modules/has-tostringtag/index.d.ts +3 -0
- package/node_modules/has-tostringtag/index.js +1 -0
- package/node_modules/has-tostringtag/package.json +37 -13
- package/node_modules/has-tostringtag/shams.d.ts +3 -0
- package/node_modules/has-tostringtag/shams.js +1 -0
- package/node_modules/has-tostringtag/test/shams/core-js.js +3 -0
- package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +2 -0
- package/node_modules/has-tostringtag/test/tests.js +2 -1
- package/node_modules/has-tostringtag/tsconfig.json +49 -0
- package/node_modules/hash-base/README.md +15 -15
- package/node_modules/hash-base/index.js +52 -9
- package/node_modules/hash-base/package.json +40 -40
- package/node_modules/hasown/CHANGELOG.md +20 -0
- package/node_modules/hasown/index.d.ts +3 -3
- package/node_modules/hasown/index.js +1 -1
- package/node_modules/hasown/package.json +16 -15
- package/node_modules/hasown/tsconfig.json +3 -46
- package/node_modules/is-arguments/.eslintrc +0 -1
- package/node_modules/is-arguments/CHANGELOG.md +22 -0
- package/node_modules/is-arguments/README.md +11 -11
- package/node_modules/is-arguments/index.d.ts +6 -0
- package/node_modules/is-arguments/index.js +19 -8
- package/node_modules/is-arguments/package.json +25 -11
- package/node_modules/is-arguments/test/index.js +4 -1
- package/node_modules/is-arguments/tsconfig.json +9 -0
- package/node_modules/is-generator-function/.eslintrc +1 -1
- package/node_modules/is-generator-function/CHANGELOG.md +21 -0
- package/node_modules/is-generator-function/index.d.ts +3 -0
- package/node_modules/is-generator-function/index.js +16 -7
- package/node_modules/is-generator-function/package.json +30 -11
- package/node_modules/is-generator-function/test/corejs.js +1 -0
- package/node_modules/is-generator-function/test/index.js +4 -7
- package/node_modules/is-generator-function/test/uglified.js +1 -0
- package/node_modules/is-generator-function/tsconfig.json +9 -0
- package/node_modules/is-regex/.editorconfig +23 -0
- package/node_modules/is-regex/.eslintrc +10 -0
- package/node_modules/is-regex/.nycrc +10 -0
- package/node_modules/is-regex/CHANGELOG.md +233 -0
- package/node_modules/is-regex/LICENSE +20 -0
- package/node_modules/is-regex/README.md +52 -0
- package/node_modules/is-regex/index.d.ts +3 -0
- package/node_modules/is-regex/index.js +69 -0
- package/node_modules/is-regex/package.json +104 -0
- package/node_modules/is-regex/test/index.js +121 -0
- package/node_modules/is-regex/tsconfig.json +9 -0
- package/node_modules/is-typed-array/CHANGELOG.md +32 -0
- package/node_modules/is-typed-array/index.d.ts +9 -0
- package/node_modules/is-typed-array/index.js +1 -0
- package/node_modules/is-typed-array/package.json +23 -10
- package/node_modules/is-typed-array/test/index.js +9 -1
- package/node_modules/is-typed-array/tsconfig.json +6 -0
- package/node_modules/math-intrinsics/.eslintrc +16 -0
- package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/node_modules/math-intrinsics/LICENSE +21 -0
- package/node_modules/math-intrinsics/README.md +50 -0
- package/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/node_modules/math-intrinsics/abs.js +4 -0
- package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/node_modules/math-intrinsics/floor.js +4 -0
- package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/node_modules/math-intrinsics/isFinite.js +12 -0
- package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/node_modules/math-intrinsics/isInteger.js +16 -0
- package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/node_modules/math-intrinsics/isNaN.js +6 -0
- package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/node_modules/math-intrinsics/max.d.ts +1 -0
- package/node_modules/math-intrinsics/max.js +4 -0
- package/node_modules/math-intrinsics/min.d.ts +1 -0
- package/node_modules/math-intrinsics/min.js +4 -0
- package/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/node_modules/math-intrinsics/mod.js +9 -0
- package/node_modules/math-intrinsics/package.json +86 -0
- package/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/node_modules/math-intrinsics/pow.js +4 -0
- package/node_modules/math-intrinsics/round.d.ts +1 -0
- package/node_modules/math-intrinsics/round.js +4 -0
- package/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/node_modules/math-intrinsics/sign.js +11 -0
- package/node_modules/math-intrinsics/test/index.js +192 -0
- package/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/node_modules/miller-rabin/node_modules/bn.js/lib/bn.js +6 -5
- package/node_modules/miller-rabin/node_modules/bn.js/package.json +1 -1
- package/node_modules/miller-rabin/node_modules/bn.js/util/genCombMulTo.js +65 -0
- package/node_modules/miller-rabin/node_modules/bn.js/util/genCombMulTo10.js +65 -0
- package/node_modules/object-inspect/CHANGELOG.md +20 -0
- package/node_modules/object-inspect/index.js +27 -10
- package/node_modules/object-inspect/package.json +9 -8
- package/node_modules/object-inspect/test/quoteStyle.js +9 -0
- package/node_modules/object-inspect/test/values.js +50 -0
- package/node_modules/object-is/.eslintrc +1 -1
- package/node_modules/object-is/.nycrc +0 -4
- package/node_modules/object-is/CHANGELOG.md +25 -0
- package/node_modules/object-is/README.md +20 -20
- package/node_modules/object-is/package.json +23 -14
- package/node_modules/object.assign/CHANGELOG.md +21 -0
- package/node_modules/object.assign/dist/browser.js +495 -135
- package/node_modules/object.assign/implementation.js +6 -6
- package/node_modules/object.assign/package.json +14 -14
- package/node_modules/object.assign/test/tests.js +2 -2
- package/node_modules/possible-typed-array-names/.eslintrc +5 -0
- package/node_modules/possible-typed-array-names/.github/FUNDING.yml +12 -0
- package/node_modules/possible-typed-array-names/CHANGELOG.md +29 -0
- package/node_modules/possible-typed-array-names/LICENSE +21 -0
- package/node_modules/possible-typed-array-names/README.md +50 -0
- package/node_modules/possible-typed-array-names/index.d.ts +16 -0
- package/node_modules/possible-typed-array-names/index.js +17 -0
- package/node_modules/possible-typed-array-names/package.json +84 -0
- package/node_modules/possible-typed-array-names/test/index.js +19 -0
- package/node_modules/possible-typed-array-names/tsconfig.json +9 -0
- package/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js +6 -5
- package/node_modules/public-encrypt/node_modules/bn.js/package.json +1 -1
- package/node_modules/public-encrypt/node_modules/bn.js/util/genCombMulTo.js +65 -0
- package/node_modules/public-encrypt/node_modules/bn.js/util/genCombMulTo10.js +65 -0
- package/node_modules/qs/.eslintrc +1 -0
- package/node_modules/qs/CHANGELOG.md +22 -0
- package/node_modules/qs/README.md +25 -1
- package/node_modules/qs/dist/qs.js +95 -44
- package/node_modules/qs/lib/parse.js +44 -12
- package/node_modules/qs/lib/stringify.js +11 -6
- package/node_modules/qs/lib/utils.js +7 -4
- package/node_modules/qs/package.json +9 -7
- package/node_modules/qs/test/parse.js +133 -27
- package/node_modules/qs/test/stringify.js +19 -11
- package/node_modules/qs/test/utils.js +126 -0
- package/node_modules/safe-regex-test/.eslintrc +9 -0
- package/node_modules/safe-regex-test/.github/FUNDING.yml +12 -0
- package/node_modules/safe-regex-test/.nycrc +13 -0
- package/node_modules/safe-regex-test/CHANGELOG.md +55 -0
- package/node_modules/safe-regex-test/LICENSE +21 -0
- package/node_modules/safe-regex-test/README.md +46 -0
- package/node_modules/safe-regex-test/index.d.ts +3 -0
- package/node_modules/safe-regex-test/index.js +17 -0
- package/node_modules/safe-regex-test/package.json +87 -0
- package/node_modules/safe-regex-test/test/index.js +41 -0
- package/node_modules/safe-regex-test/tsconfig.json +9 -0
- package/node_modules/side-channel/.eslintrc +1 -0
- package/node_modules/side-channel/CHANGELOG.md +15 -0
- package/node_modules/side-channel/README.md +60 -1
- package/node_modules/side-channel/index.d.ts +9 -22
- package/node_modules/side-channel/index.js +20 -106
- package/node_modules/side-channel/package.json +20 -19
- package/node_modules/side-channel/test/index.js +76 -55
- package/node_modules/side-channel/tsconfig.json +2 -43
- package/node_modules/side-channel-list/.editorconfig +9 -0
- package/node_modules/side-channel-list/.eslintrc +11 -0
- package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-list/.nycrc +13 -0
- package/node_modules/side-channel-list/CHANGELOG.md +15 -0
- package/node_modules/side-channel-list/LICENSE +21 -0
- package/node_modules/side-channel-list/README.md +62 -0
- package/node_modules/side-channel-list/index.d.ts +13 -0
- package/node_modules/side-channel-list/index.js +113 -0
- package/node_modules/side-channel-list/list.d.ts +14 -0
- package/node_modules/side-channel-list/package.json +77 -0
- package/node_modules/side-channel-list/test/index.js +104 -0
- package/node_modules/side-channel-list/tsconfig.json +9 -0
- package/node_modules/side-channel-map/.editorconfig +9 -0
- package/node_modules/side-channel-map/.eslintrc +11 -0
- package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-map/.nycrc +13 -0
- package/node_modules/side-channel-map/CHANGELOG.md +22 -0
- package/node_modules/side-channel-map/LICENSE +21 -0
- package/node_modules/side-channel-map/README.md +62 -0
- package/node_modules/side-channel-map/index.d.ts +15 -0
- package/node_modules/side-channel-map/index.js +68 -0
- package/node_modules/side-channel-map/package.json +80 -0
- package/node_modules/side-channel-map/test/index.js +114 -0
- package/node_modules/side-channel-map/tsconfig.json +9 -0
- package/node_modules/side-channel-weakmap/.editorconfig +9 -0
- package/node_modules/side-channel-weakmap/.eslintrc +12 -0
- package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-weakmap/.nycrc +13 -0
- package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- package/node_modules/side-channel-weakmap/LICENSE +21 -0
- package/node_modules/side-channel-weakmap/README.md +62 -0
- package/node_modules/side-channel-weakmap/index.d.ts +15 -0
- package/node_modules/side-channel-weakmap/index.js +84 -0
- package/node_modules/side-channel-weakmap/package.json +87 -0
- package/node_modules/side-channel-weakmap/test/index.js +114 -0
- package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- package/node_modules/which-typed-array/.eslintrc +1 -0
- package/node_modules/which-typed-array/CHANGELOG.md +57 -0
- package/node_modules/which-typed-array/index.d.ts +62 -0
- package/node_modules/which-typed-array/index.js +50 -25
- package/node_modules/which-typed-array/package.json +28 -13
- package/node_modules/which-typed-array/test/index.js +7 -1
- package/node_modules/which-typed-array/tsconfig.json +9 -0
- package/package.json +2 -3
- package/node_modules/@meteorjs/browserify-sign/node_modules/bn.js/README.md +0 -214
- package/node_modules/@meteorjs/browserify-sign/node_modules/bn.js/lib/bn.js +0 -3547
- package/node_modules/@meteorjs/browserify-sign/node_modules/bn.js/package.json +0 -39
- package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/LICENSE +0 -21
- package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/README.md +0 -48
- package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/index.js +0 -138
- package/node_modules/@meteorjs/browserify-sign/node_modules/hash-base/package.json +0 -42
- package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/README.md +0 -48
- package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/index.js +0 -95
- package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/package.json +0 -41
- package/node_modules/available-typed-arrays/.eslintignore +0 -1
- package/node_modules/bn.js/CHANGELOG.md +0 -51
- package/node_modules/cipher-base/.npmignore +0 -1
- package/node_modules/cipher-base/.travis.yml +0 -6
- package/node_modules/cipher-base/test.js +0 -111
- package/node_modules/elliptic/node_modules/bn.js/README.md +0 -200
- package/node_modules/elliptic/node_modules/bn.js/lib/bn.js +0 -3446
- package/node_modules/elliptic/node_modules/bn.js/package.json +0 -36
- package/node_modules/elliptic/package.json +0 -56
- package/node_modules/for-each/.travis.yml +0 -45
- package/node_modules/for-each/test/.eslintrc +0 -8
- package/node_modules/has-proto/CHANGELOG.md +0 -23
- package/node_modules/has-proto/README.md +0 -38
- package/node_modules/has-proto/index.js +0 -11
- package/node_modules/has-proto/test/index.js +0 -19
- package/node_modules/hasown/index.d.ts.map +0 -1
- package/node_modules/is-arguments/.eslintignore +0 -1
- package/node_modules/is-generator-function/.eslintignore +0 -1
- package/node_modules/object-is/.eslintignore +0 -1
- package/node_modules/object.assign/test.html +0 -18458
- package/node_modules/parse-asn1/node_modules/hash-base/LICENSE +0 -21
- package/node_modules/parse-asn1/node_modules/hash-base/README.md +0 -48
- package/node_modules/parse-asn1/node_modules/hash-base/index.js +0 -95
- package/node_modules/parse-asn1/node_modules/hash-base/package.json +0 -41
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/README.md +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/base.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/edwards.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/index.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/mont.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curve/short.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/curves.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/ec/index.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/ec/key.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/ec/signature.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/eddsa/index.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/eddsa/key.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/eddsa/signature.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/precomputed/secp256k1.js +0 -0
- /package/node_modules/{elliptic → @meteorjs/create-ecdh/elliptic}/lib/elliptic/utils.js +0 -0
- /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
|
+
});
|