Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/bump-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ concurrency:
cancel-in-progress: true

on:
push:
branches:
- main
workflow_dispatch:
inputs:
version:
Expand All @@ -17,5 +14,6 @@ jobs:
bump:
uses: IronCoreLabs/workflows/.github/workflows/bump-version.yaml@bump-version-v1
with:
release_prereleases: false
version: ${{ inputs.version }}
secrets: inherit
13 changes: 13 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Typescript Publish
on:
release:
types:
- "created" # triggered by Bump Version creating a release
workflow_dispatch:
jobs:
typescript-release:
uses: IronCoreLabs/workflows/.github/workflows/typescript-release.yaml@typescript-release-v1
with:
pre_publish_steps: "./build.js"
publish_working_directory: "pkg"
secrets: inherit
54 changes: 28 additions & 26 deletions .github/workflows/wasm-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,40 @@ name: WASM CI
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
'on':
on:
push:
branches:
- main
pull_request: null
workflow_dispatch: null
- main
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-22.04
strategy:
matrix:
node_version:
- '18'
- 24
steps:
- uses: actions/checkout@v5
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
target: wasm32-unknown-unknown
- uses: taiki-e/cache-cargo-install-action@v2
with:
# needs to match Cargo.toml and flake.nix version
tool: [email protected]
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node_version }}
cache: yarn
- name: Install modules
run: yarn
- name: Compile
run: cargo update && yarn run compile
- name: Run tests
run: yarn run test
- uses: actions/checkout@v5
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
target: wasm32-unknown-unknown
- uses: taiki-e/cache-cargo-install-action@v2
with:
# needs to match Cargo.toml and flake.nix version
tool: [email protected]
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node_version }}
cache: yarn
- name: Install modules
run: yarn
- name: Compile
run: cargo update && yarn run compile
- name: Run tests
run: yarn run test
- name: Test build
run: ./build.js
52 changes: 29 additions & 23 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,66 @@
# Changelog

## 0.7.0

- Upgrade all JS and Rust dependencies
- Upgrade to Rust 2024 edition
- Rework release process

## 0.6.0

+ Removed `setRandomSeed` and `pbkdf2SHA256` from `recrypt_wasm_binding.d.ts` and related places. These were only needed for Edge Legacy and IE11 which are no longer supported by recrypt-wasm-binding.
+ Removed support for MS Edge Legacy (version <= 44) as Microsoft has ended support for Edge Legacy
+ Prep for Rust 2021 Edition
- Removed `setRandomSeed` and `pbkdf2SHA256` from `recrypt_wasm_binding.d.ts` and related places. These were only needed for Edge Legacy and IE11 which are no longer supported by recrypt-wasm-binding.
- Removed support for MS Edge Legacy (version <= 44) as Microsoft has ended support for Edge Legacy
- Prep for Rust 2021 Edition

## 0.5.8

+ Upgrade all JS and Rust dependencies.
- Upgrade all JS and Rust dependencies.

## 0.5.7

+ Upgrade `ironcore-search-helpers` to 0.1.2.
+ `Recrypt.EncryptedSearch.transliterateString` added to allow filtering of lists after encrypted search.
- Upgrade `ironcore-search-helpers` to 0.1.2.
- `Recrypt.EncryptedSearch.transliterateString` added to allow filtering of lists after encrypted search.

## 0.5.6

+ Upgrade `recrypt-rs` to 0.11.0
+ Expose new class for performing encrypted search. New class is `EncryptedSearch` and contains two methods for substring search.
+ `const encSearch = new Recrypt.EncryptedSearch();`
+ `encSearch.generateHashesForString(s: string, salt: Uint8Array, partitionId?: string): Uint32Array`
+ `encSearch.generateHashesForStringWithPadding(s: string, salt: Uint8Array, partitionId?: string): Uint32Array`
- Upgrade `recrypt-rs` to 0.11.0
- Expose new class for performing encrypted search. New class is `EncryptedSearch` and contains two methods for substring search.
- `const encSearch = new Recrypt.EncryptedSearch();`
- `encSearch.generateHashesForString(s: string, salt: Uint8Array, partitionId?: string): Uint32Array`
- `encSearch.generateHashesForStringWithPadding(s: string, salt: Uint8Array, partitionId?: string): Uint32Array`

## 0.5.5

+ Consume latest `0.9` release of Recrypt to consume bug fix for `addPrivateKeys` and `subtractPrivateKeys` methods to correctly support PrivateKey rotation.
- Consume latest `0.9` release of Recrypt to consume bug fix for `addPrivateKeys` and `subtractPrivateKeys` methods to correctly support PrivateKey rotation.

## 0.5.4

+ Upgrade `recrypt-rs` to 0.8.4
- Upgrade `recrypt-rs` to 0.8.4

## 0.5.3

+ Upgrade `recrypt-rs` to 0.8.2
+ Expose two new functions for adding or subtracting two private keys.
+ `Recrypt.addPrivateKeys(key1: Uint8Array, key2: Uint8Array): Uint8Array`
+ `Recrypt.subtractPrivateKeys(key1: Uint8Array, key2: Uint8Array): Uint8Array`
- Upgrade `recrypt-rs` to 0.8.2
- Expose two new functions for adding or subtracting two private keys.
- `Recrypt.addPrivateKeys(key1: Uint8Array, key2: Uint8Array): Uint8Array`
- `Recrypt.subtractPrivateKeys(key1: Uint8Array, key2: Uint8Array): Uint8Array`

## 0.5.1

+ Upgrade all dependencies to latest version, including recrypt-rs (0.7.1).
+ Enable feature flags to use u32 backend for `ed25519-dalek`. Reduces the size of the resulting WASM binary.
- Upgrade all dependencies to latest version, including recrypt-rs (0.7.1).
- Enable feature flags to use u32 backend for `ed25519-dalek`. Reduces the size of the resulting WASM binary.

## 0.4.3

+ Upgrade to the latest released version of recrypt-rs (0.6.1) to avoid depending on fork of ed25519.
- Upgrade to the latest released version of recrypt-rs (0.6.1) to avoid depending on fork of ed25519.

## 0.4.2

+ If/when random seed is set, it's value will be cleared after use so it cannot be used as a seed for any subsequent operations.
- If/when random seed is set, it's value will be cleared after use so it cannot be used as a seed for any subsequent operations.

## 0.4.1

+ Added new method `setRandomSeed(seed: Uint8Array)` that can be used to pre-seed the PRNG that is needed in order to use this library. This can be useful to support loading this WASM module in a WebWorker and also support MSEdge which doesn't allow for random number generation in a WebWorker. Without being able to pre-seed the PRNG this library would fail in MSEdge in a WebWorker. If using this random seed, it should be a 32 byte Uint8Array of random bytes and needs to be invoked before creating an instance of the `Api256` class.
+ Added a new method `pbkdf2SHA256(salt: Uint8Array, password: Uint8Array, iterations: number)` which adds support for generating a derived cryptographic key from the provided salt and password bytes. Will use SHA-256 as the hashing method to generate a 32 byte derived key based on the number of iterations provided.
- Added new method `setRandomSeed(seed: Uint8Array)` that can be used to pre-seed the PRNG that is needed in order to use this library. This can be useful to support loading this WASM module in a WebWorker and also support MSEdge which doesn't allow for random number generation in a WebWorker. Without being able to pre-seed the PRNG this library would fail in MSEdge in a WebWorker. If using this random seed, it should be a 32 byte Uint8Array of random bytes and needs to be invoked before creating an instance of the `Api256` class.
- Added a new method `pbkdf2SHA256(salt: Uint8Array, password: Uint8Array, iterations: number)` which adds support for generating a derived cryptographic key from the provided salt and password bytes. Will use SHA-256 as the hashing method to generate a 32 byte derived key based on the number of iterations provided.

## 0.4.0

Expand Down
Loading
Loading