test: probe node/crypto API in crosstest for browserify compat #44
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This allows running tests in bundle mode under different engines
In bundle,
reqire('crypto')
is https://www.npmjs.com/package/crypto-browserifyFor compatibility:
iv = null
, pass an empty Uint8Array instance instead tocrypto.createCipheriv
/crypto.createDecipheriv
crypto
implementation supportschacha20
,chacha20-poly1305
,aes*-wrap
before using themTo test:
npm run lint && npm run test
node test/crosstest.test.js
and check that modified ciphers have Node.js implementation cross-tested (unlike e.g.xchacha20poly1305
)npx @exodus/test test/*.test.js
(Node.js)This is also faster than
npm test
here 🙃 (not very noticeable, both are fast)npx @exodus/test --engine jsc:bundle --bundle-entropy-size=10000000 --testTimeout 5000000 test/*.test.js
(JSC)Requires
jsc
being available in PATHNote that due to
micro-should
relying on Node.js unhandled rejection handling to update the process exit code andjsc
cli not supporting that, reported process status will be incorrect.micro-should
stdout output indicates a pass though.npx @exodus/test --engine hermes:bundle --bundle-entropy-size=10000000 --testTimeout 5000000 test/*.test.js
(Hermes)Requires
hermes
being available in PATH or https://npmjs.com/hermes-engine-cli installed with@exodus/test
:npm add @exodus/test hermes-engine-cli
This one sets proper process exit code on unhandled rejections.
Refs: paulmillr/noble-curves#166