# CHANGELOG ## 7.5.4 Dec 9, 2025 Changes: - Bump pezkuwi dependencies ([#605](https://github.com/pezkuwichain/pezkuwi-wasm/pull/605)) ## 7.5.3 Nov 24, 2025 Changes: - Bump @pezkuwi dependencies ([#603](https://github.com/pezkuwichain/pezkuwi-wasm/pull/603)) ## 7.5.2 Nov 10, 2025 Changes: - Fix/Revert asm build ([#599](https://github.com/pezkuwichain/pezkuwi-wasm/pull/599)) - Bump @pezkuwi dependencies ([#601](https://github.com/pezkuwichain/pezkuwi-wasm/pull/601)) ## 7.5.1 aug 25, 2025 Changes: - Bump yarn to 4.5.1 ([#573](https://github.com/pezkuwichain/pezkuwi-wasm/pull/573)) - Update comments and labels from 2024 to 2025 ([#574](https://github.com/pezkuwichain/pezkuwi-wasm/pull/574)) - Bump yarn to 4.6.0 ([#575](https://github.com/pezkuwichain/pezkuwi-wasm/pull/575)) - Set execute for build script in CI ([#576](https://github.com/pezkuwichain/pezkuwi-wasm/pull/576)) - Set permissions on all scripts ([#577](https://github.com/pezkuwichain/pezkuwi-wasm/pull/577)) - Bump dev to 0.83.2 ([#578](https://github.com/pezkuwichain/pezkuwi-wasm/pull/578)) - chore: added check in ext_secp_recover for signature normalization ([#579](https://github.com/pezkuwichain/pezkuwi-wasm/pull/579)) - chore: Improve CI ([#580](https://github.com/pezkuwichain/pezkuwi-wasm/pull/580)) - Revert CI improvements and wasm-bindgen version ([#583](https://github.com/pezkuwichain/pezkuwi-wasm/pull/583)) - Added validation checks in PBKDF2 and Scrypt hashing functions ([#584](https://github.com/pezkuwichain/pezkuwi-wasm/pull/584)) - Rollback wasm-bindgen version change ([#586](https://github.com/pezkuwichain/pezkuwi-wasm/pull/586)) - Fix rust version to 1.84 ([#587](https://github.com/pezkuwichain/pezkuwi-wasm/pull/587)) - Default to installed rust version ([#588](https://github.com/pezkuwichain/pezkuwi-wasm/pull/588)) - Default to nightly rust version ([#589](https://github.com/pezkuwichain/pezkuwi-wasm/pull/589)) - Ci Fix ([#590](https://github.com/pezkuwichain/pezkuwi-wasm/pull/590)) - Read lock file ([#591](https://github.com/pezkuwichain/pezkuwi-wasm/pull/591)) - Setup nightly as default ([#592](https://github.com/pezkuwichain/pezkuwi-wasm/pull/592)) - Tweak install-build-deps.sh script ([#593](https://github.com/pezkuwichain/pezkuwi-wasm/pull/593)) - Remove ASM build ([#594](https://github.com/pezkuwichain/pezkuwi-wasm/pull/594)) - Bump @pezkuwi deps ([#595](https://github.com/pezkuwichain/pezkuwi-wasm/pull/595)) ## 7.4.1 Oct 20, 2024 - Bump dev deps to 0.81.2 - Bump TS - Ensure CJS is exported correctly - Bump yarn - Add missing sideEffect declarations - Set Deno build in CI to 1.42.x ## 7.3.2 Dec 6, 2023 Changes: - Apply fixes for OOB array access ## 7.3.1 Nov 17, 2023 Changes: - Drop support for Node 16 (EOL 11 Sep 2023) ## 7.2.2 Aug 17, 2023 Changes: - Adjust cjs exports for consistency - Adjust usage of `?.` as per (latest) linting rules ## 7.2.1 May 13, 2023 Changes: - Adjust `cjs/bytes.js` generation to follow `export. = ...` form - Add `module` to `package.json` export map (ESM-only) ## 7.1.2 Apr 28, 2023 Changes: - Apply `readonly` specifiers to private class fields where applicable - Adjust compilation output for `__internal__` class fields ## 7.1.1 Apr 22, 2023 Changes: - Add `wasm-util` as dependency where `x-randomvalues` is a peer - Drop support for Node 14 (EOL 30 Apr 2023) ## 7.0.3 Mar 11, 2023 Changes: - Use consistent `.js` imports in source files (TS moduleResolution) ## 7.0.2 Mar 4, 2023 Changes: - Update to latest `@pezkuwi/dev` (w/ tsc jsx detection output changes) ## 7.0.1 Mar 4, 2023 Changes: - Swap TS -> JS compiler to use tsc (from babel) - Adjust all tests to use `node:test` runner (ESM & CJS variants) ## 6.4.1 Dec 3, 2022 Changes: - Add `/*#__PURE__*/` annotations for specific `export const something = someFunction(...)` ## 6.3.1 Jul 21, 2022 Changes: - Optimize packed WASM base64 decoding loop - Adjust test environment (no duplication) - Adjust CI check steps, align with other org repos - Remove unneeded `import_map.in.json` for Deno tests ## 6.2.3 Jul 7, 2022 Changes: - Optimize WASM init with pre-allocated buffers - Additional platform-specific tests ## 6.2.2 Jul 4, 2022 Changes: - Protect against potential low-level double-sign leak in dalek-ed25519 (Don't use provided input pubKey, see https://github.com/MystenLabs/ed25519-unsafe-libs) ## 6.2.1 Jul 1, 2022 Changes: - Add missing `peerDependencies` to `wasm-crypto` (`bridge` requirement) - Adjust `WebAssembly.{Memory, ModuleImports}` usage to cater for non-dom TS ## 6.1.5 Jun 23, 2022 Changes: - Adjust build outputs for Deno targets ## 6.1.4 Jun 22, 2022 Changes: - Adjust build outputs for Deno targets ## 6.1.3 Jun 21, 2022 Changes: - Fix bundle publish (from dev bump) ## 6.1.2 Jun 21, 2022 Changes: - Adjust assert usage in all internal non-test code - Additional comments where missing ## 6.1.1 May 13, 2022 Changes: - Adjust init, allow RN with default ASM.js-only fallback - Split `wasm-{bridge, util}` packages for internal re-use ## 6.0.1 Apr 9, 2022 - **Breaking change** In this major version the commonjs outputs are moved to a sub-folder. Since the `export` map and `main` field in `package.json` does reflect this change, there should be no usage changes. However the packages here will all need to be on the same version for internal linkage. Changes: - Update ed25519 secret key format return description - Output commonjs files under the `cjs/**` root ## 5.1.1 Mar 27, 2022 Changes: - Swap from `libsecp256k1` to `secp256k1` (this aligns with the Bizinikiwi use) - Adjust `wasm-crypto/init*` to also export `initWasm(): Promise` (optional manual init) - Allow for `wasm-crypto/initNone` with no defined Wasm or Asm interfaces - Fix initialization on React Native with only ASM ## 5.0.1 Mar 19, 2022 - **Breaking change** For users of React Native, you are now required to add `import '@pezkuwi/wasm-crypto/initOnlyAsm'` at your project top-level to ensure that asm.js is initialized. (Or alternatively `import '@pezkuwi/wasm-crypto/initWasmAsm'` to future-proof when WASM does become available) - **Breaking change** For users who used to map the `data` and `empty` of the internal `wasm-crypto-{wasm, asmjs}` packages in their bundlers, swap to one of the `@pezkuwi/wasm-crypto/init*` top-level imports to set the type of interfaces you would prefer. A full writeup of the rationale and other options can be found [in the FAQ](https://js.pezkuwichain.io/docs/util-crypto/FAQ#i-dont-have-wasm-available-in-my-environment) Changes: - Add (optional) `@pezkuwi/wasm-crypto/init{OnlyAsm, OnlyWasm, WasmAsm}` to allow specific interface types - Add work-around for lazy secp256k1 init in asm.js environments - Optimize asm.js output size - Use latest `wasm-bindgen`, `binaryen` & `wabt` packages in build - Additional workaround for Vite bundling ## 4.6.1 Mar 12, 2022 Changes: - Adjust ed25519 internals, consistency in code - Ensure package path is available under ESM & CJS - JS wrapped bytes interoperability test - Adjust for bundlers where `import.meta.url` is undefined ## 4.5.1 Dec 3, 2021 Changes: - Add `secp256k1{Compress, Expand, Recover, Sign}` functions - Remove all occurences of `.unwrap()` (match everywhere) - Adjust and optimize WASM function JS interface construction - Simplify base64 bytes decoding on construction ## 4.4.1 Nov 22, 2021 Changes: - Add `hmacSha256` & `hmacSha512` functions ## 4.3.1 Nov 19, 2021 Contributed: - Updated package.json to include repo (Thanks to https://github.com/v-zhzhou) Changes: - Add `keccak512` function - Add `sha256` function ## 4.2.1 Aug 28, 2021 Contributed: - Add sr25519 agreement external (Thanks to https://github.com/shelvenzhou) Changes: - Adjust tests to align with JS coding standards - Allow for optional build with Rust stable bootstrap ## 4.1.2 Jul 9, 2021 Changes: - Bump `@pezkuwi/dev` to allow for bundles with new-format ## 4.1.1 Jul 7, 2021 Changes: - Add an explicit `engines` field to `package.json` - Allow building as a completely stand-alone browser bundle (experimental) ## 4.0.2 Mar 5, 2021 Changes: - Add import indirection for both CJS & ESM (where generated source file is commonjs) ## 4.0.1 Mar 4, 2021 **Important** In the 4.0 version the default package type has been changed to ESM modules by default. This should not affect usage, however since the output formats changed, a new major version is required. Changes: - Build to ESM by default (with cjs versions via export map) ## 3.2.4 Feb 24, 2021 Changes: - Cleanup implicit dependencies, perform base64 decoding using base64-js ## 3.2.3 Feb 16, 2021 Changes: - Change package detect import to use `.js` source, not `.json` ## 3.2.2 Jan 24, 2021 Changes: - Remove `module` field in `package.json` ## 3.2.1 Jan 22, 2021 Contributed: - Expose sr25519 `ext_vrf_{sign, verify}` methods (Thanks to https://github.com/stiiifff) Changes: - Add explicit `.editorconfig` for Rust sources - Remove unused code bundles (`vrf_{sign,verify}_extra`, `secp256k1` with tests) - Test run wrapper cleanups ## 3.1.1 Dec 19, 2020 Changes: - Single-instance package detection - Adjust WASM inflate with localized methods ## 3.0.1 Dec 13, 2020 **Important** This assumes `@pezkuwi/util` 5+ peerDependencies **Important** While this package contains no external interface changes, it doe now compile and ship both cjs and esm modules. This means that modern bundlers will have more information for tree-shaking available. Additionally when using Node with `.mjs` extensions, the esm version imports will be used on recent Node versions. Adding an export map, as here, may have some impacts so a major semver bump is advised. There may be (small) dragons hiding in the dark corners... Changes: - Build and expose both cjs and esm via exports map - Split wasm and asmjs files into the `@pezkuwi/wasm-crypto-{wasm,asmjs}` packages - Add fflate WASM compression, with 180K raw savings (37K over-the-wire) - Convert the package to full TypeScript sources ## 2.0.1 Nov 8, 2020 Changes: - Rework generation of WASM interfaces (proper cross-platform JS support) - Remove explicit `crypto` dependency, this is now applied by `@pezkuwi/x-randomvalues` - Build via xargo for panic abort, an overall small sizes without stack (Pinned nightly) - Move Rust library sources in to `rs/` subfolder ## 1.4.1 Aug 27, 2020 Changes: - Re-add the BTC/ETH compatible `bip39ToSeed` dropped in the previous version (ETH-compatible pairs) ## 1.3.1 Aug 9, 2020 Changes: - Add `scrypt` function for KDF generation - Remove `bip39ToSeed`, we only use the `bip39ToMiniSecret` variant in Bizinikiwi - Update ed25519-dalek to 1.0.0-pre.4 - Rework generation based on latest wasm-pack generator ## 1.2.1 Feb 29, 2020 Changes: - Adjust build process for smaller wasm bundle outputs (~50K dropped from base bundle) - Unpin nightly from nightly-2020-02-17 version - Swap to yarn 2 and add support for use by yarn 2 projects ## 1.1.1 Feb 24, 2020 - **Important** The sr25519 interface dropped the use of `verify_simple_preaudit_deprecated` for signature verification, instead it now uses `verify_simple`. Only schnorrkel 0.8+ signatures will now pass verification. This is a follow-up of the 0.1 signing support that was dropped in a previous version. Changes: - Rework schnorrkel signatures test vectors based on the above change (Rust, WASM and ASM.js tests) - Rust nightly pinned to last-known-working 2020-02-17 on CI (compiler issues, should to be reverted in a future release) ## 1.0.1 Feb 15, 2020 Changes: - No functionality changes from 0.20.1. The interfaces here are stable in the current iteration. ## 0.20.1 Jan 30, 2020 Changes: - Pull in schnorrkel 0.8.5 for full Bizinikiwi 2.x compatibility ## 0.14.1 Sep 09, 2019 Changes: - No functionality changes at all, everything done is "under the hood" to give the codebase better maintainability ## 0.13.1 Jul 20, 2019 Changes: - Added an asm.js fallback which is active for React Native via the `"react-native"` entry in `package.json`. Ensure that you run the build step with the `NODE_OPTIONS=--max_old_space_size=8192` flags, since the asm.js bundle is large. (For RN the full command would therefore be `NODE_OPTIONS=--max_old_space_size=8192 npm start`) ## 0.12.1 Jul 17, 2019 Changes: - Remove deprecated `@pezkuwi/wasm-schnorrkel` & `@pezkuwi/wasm-dalek-ed25519` source (all combined in `@pezkuwi/wasm-crypto`, was kept for historical purposes) - Security dependency bumps - Updated Rust `hex-literal` for recent versions of the compiler (used in tests only) ## 0.11.1 May 31, 2019 Changes: - Security dependency bumps ## 0.10.1 May 09, 2019 Changes: - w3f/schnorrkel updated to 0.1.1 as per bizinikiwi - Added known subkey signature test (Rust & JS) ## 0.9.1 Apr 29, 2019 Changes: - Dependency bumps ## 0.8.1 Mar 31, 2019 Changes: - Pull ed25519 & sr25519 into `@pezkuwi/wasm-crypto` as well (smaller final size) - Disable build/publish of `wasm-dalek-ed25519` & `wasm-schnorrkel` - Improve error messaging, instead of `__wasm_malloc of null` ## 0.7.1 Mar 30, 2019 Changes: - Fix build scripts to properly attach errors in the log (dropped in 0.6.1) ## 0.6.1 Mar 27, 2019 Changes: - Log init errors for both non-WebAssembly usage as well as WebAssembly errors ## 0.5.1 Mar 23, 2019 Changes: - Add password argument to bip39ToSeed ## 0.4.1 Mar 23, 2019 Changes: - Add bip39ToSeed ## 0.3.1 Mar 23, 2019 Changes: - Add wasm-dalek-ed25519 for all used crypto there - Add keccak256 - Try secp256k1 (bloating code, not used atm) ## 0.2.1 Mar 20, 2019 Changes: - Add basic crypto functions, creation of wasm-crypto package - blake2, bip39, sha2, xxhash ## 0.1.1 Mar 18, 2019 Changes: - Initial release