Releases: zkemail/zk-email-verify
6.2.0
v6.1.6
What's Changed
- Fixed a bug in retrieving the DKIM public key by @jayden-sudo in #210
- Feat/fix select regex reveal by @SoraSuegami in #214
- Feat: Added Header Masking by @shreyas-londhe in #216
- Feat: Reveal Substring Template by @shreyas-londhe in #207
New Contributors
- @jayden-sudo made their first contribution in #210
Full Changelog: v.6.1.5...v6.1.6
v.6.1.5: Add body parsing circuits, Rust Verifier, and UserOverrideableDKIMRegistry.sol
What's Changed
- Add UserOverrideableDKIMRegistry.sol. by @wshino in #199
- add SplitBytesToWords circuit to bytes.circom by @remicolin in #201
- Feat: Circuit for Removing the Quoted Printable Encoding Newlines in Email Body by @shreyas-londhe in #202
- Feat/rust verifier by @zkfriendly in #204
- chore: add cosmos-friendly rust-verifier package to lock file by @zkfriendly in #206
- fix: remove-soft-line-break at the beginning by @shreyas-londhe in #208
- Feat: Added a Body masking Template by @shreyas-londhe in #203
Note that dist/ in @zk-email/helpers was incorrectly updated in 6.1.4, 6.1.5 fixes it.
Full Changelog: v6.1.1...v.6.1.4
Don't install these packages via the attached binaries, use npm instead.
v6.1.1
What's Changed
- Add poseidonLarge JS version by @saleel in #196
- Circuit fixes by @saleel in #197
- [BUG FIX] Fix SelectRegexReveal by @SoraSuegami in #200
Full Changelog: v6.0.3...v6.1.1
https://www.npmjs.com/package/@zk-email/circuits/v/6.1.1
https://www.npmjs.com/package/@zk-email/contracts/v/6.1.1
https://www.npmjs.com/package/@zk-email/helpers/v/6.1.1
v6.1.0
Updates
- circuit: fix log2Ceil
- circuit: update base64 doc
- circuit: fix array size warnings
- circuit: remove unconstrained assert() calls
- circuit: add range check for emailBodyLength and emailHeaderLength
- circuit: add input assumptions to docs
- circuit: add docs for FpMul
- circuit: remove unused templates
- circuit: add missing pragma in functions.circom
- circuit: add range check to ItemAtIndex
- circuit: fix PoseidonLarge when k is not 17
- circuit: fix off by one err in AssertZeroPadding
- helpers: add poseidonLarge JS version
Links
https://www.npmjs.com/package/@zk-email/circuits/v/6.1.0
https://www.npmjs.com/package/@zk-email/contracts/v/6.1.0
https://www.npmjs.com/package/@zk-email/helpers/v/6.1.0
v6.0.2
We are excited to announce the release of zk-email-verify v6..0.2 for our circuits, helpers and contracts packages. These updates improve our codebase, enhancing integration capabilities and usability. Please note, these are breaking changes that will affect all three packages, requiring updates for continued functionality.
What's Changed
@zk-email/circuits
Major Refactors: The EmailVerifier circuit has undergone a significant refactor with the intent of improving clarity and developer experience. Variable names have been made more descriptive to better reflect their functions.
(PR#185 PR#192) @saleel
EmailVerifier.circom
- Changes in variable names:
- in_padded -> emailHeader
- in_len_padded_bytes -> emailHeaderLength
- body_hash_idx -> bodyHashIndex
- precomputed_sha -> precomputedSHA
- in_body_padded -> emailBody
- in_body_len_padded_bytes -> emailBodyLength
- pubkey_hash -> pubkeyHash
RSA and SHA Circuit Updates:
rsa.circom
andsha.circom
moved to/lib
RSAVerify65537
renamed toRSAVerifier65537
basemessage
input inRSAVerifier65537
changed tomessage
.- In SHA circuits,
in_padded
andin_len_padded_bytes
were changed topaddedIn
andpaddedInLength
.
Repository Structure and Circuit Relocations:
- Circuits like
fp.circom
,base64.circom
,bigint.circom
, andbigint-func.circom
(renamed from bigint_func.circom) have been relocated to thelib
folder. - General utilities related to array and packing has been move to
/utils
in appropriate files. Refer to #185 to see all changes.
@zk-email/helpers
Refactoring and Improvements (PR#189 by @saleel)
binaryFormat
file renamed tobinary-format.ts
shaHash
renamed tosha-utils.ts
zkp.ts
renamed tochunked-zkey.ts
input-helpers.ts
renamed toinput-generators.ts
DKIM Edge Case Handling: Fixed multiple DKIM edge cases .
-
Input Generation from Raw EML: Added functionality to generate verification inputs directly from raw
.eml
files. -
Extended DKIM and Input Helper Tests: Introduced new tests focused on DKIM sanitization processes and the functionality of input helpers, ensuring that both new and existing features perform as expected.
-
Standardization of Codebase: Renaming of files and functions to standardize naming conventions
Improved DKIM Testing (PR#174 by @saleel):
- Standardized DKIM Retrieval: Using a standard npm package to fetch DKIM records. It's good for reliable DKIM processing across different environments.
- ARC Signature Handling: Handling emails with ARC signatures to maintain verification accuracy when DKIM checks fail.
- Email Header Restoration: Implemented functionality to revert alterations made to email headers by forwarders, such as restoring 'X-Message-ID' back to 'Message-ID', preserving the authenticity of the original email.
Partial SHA Skipping for Enhanced Performance (PR#186 by @saleel):
- Conditional SHA Computation: Enabled the skipping of partial SHA calculations when the
ignoreBodyHashCheck
is true. - Adjustable Body Parameters: Made email body parameters optional based on the
ignoreBodyHashCheck
setting.
@zk-email/contracts
Oz5 Compatibility Update (PR#190 by @Divide-By-0):
- DKIM Registry Testing: Updated contracts for AA Compatibility. Added a new unit test for the DKIM registry and modified the DKIMRegistry interface to require an initializer for the owner upon setup.
v3.3.1
zk-email-verify v3.3.1 Updates
In this release, we've introduced several key improvements and additions:
Key Updates
-
Environmental Configuration Enhancement: @alvinlee001 added the capability to pass
LOAD_URL
as a parameter by incorporating it into the.env
file. PR #156 -
Helpers Package Cleanup: @saleel made significant updates to the helpers package to improve efficiency and CI/CD workflows. Key changes include:
- Streamlining of the helpers package.
- Addition of ARC email handling.
- Switching testing to GitHub Actions, phasing out Circle CI.
- Introduction of specific CI for the helpers package to ensure quality.
-
Assert Padding Bug Fix: @0xSachinK patched a bug in our email verifier circuit by introducing assert valid padding. PR #168
-
PR Templates: @Metachaser24 created a
pull_request_template.md
to streamline the submission and review processes. PR #169 -
Utilities and Documentation Update: @Metachaser24 added utility circom templates to the
utils/
folder in the helpers package, along with documentation updates. PR #183
Full Changelog: v3.3.0...v3.3.1
v3.3.0
zk-email-verify v3.3.0 Updates
Key Updates
- DKIM Registry Enhancement: @saleel added functionality to set multiple keys for a domain in a single transaction. PR #130
- Scripts Package for DKIM Registry: @saleel updated the scripts package for the DKIM Registry. Updated the DKIM script to use Poseidon hash for public keys. PR #135
- Twitter Contract Update: Updated by @saleel to accommodate x.com and migrated the network from Goerli to Sepolia. PR #142
- Documentation Improvements: Comprehensive documentation updates by @Metachaser24. PR #139 & PR #145
- Automatic DKIM Registry Update: @Divide-By-0 automated the DKIM registry updates with selectors and domains, adding tools for scanning common selectors. PR #132
- Library Accessibility Enhancement: @isidroamv improved helper file imports by adding a
dist
folder for easier access. PR #153
Note: Change the way you import helper functions for streamlined code.
- Old Method:
import { toCircomBigIntBytes } from "@zk-email/helpers/src/binaryFormat";
- New Method:
import { toCircomBigIntBytes } from "@zk-email/helpers";
New Contributors
- Welcome to @Dhoni77, @Metachaser24, @foolo, and @isidroamv.
Full Changelog: View Changes from v3.2.0 to v3.3.0
Add StringUtils to /contracts on NPM, change hash to Poseidon for DKIM hashing, include zk regex bug
What's Changed
2.0.0 -> 3.1.3
- Use Poseidon for DKIM hash by @saleel in #115
- [Sora] Use zk regex by @Divide-By-0 in #117
- chore(deps): bump @babel/traverse from 7.21.2 to 7.23.2 in /packages/e2e-lambdatest by @dependabot in #123
- Add DKIMRegistry interface by @saleel in #122
- Fix shift malleability attack. by @SoraSuegami in #124
3.1.3 -> 3.2.0
- add string utils to have packsize improvements from zkp2p by @Divide-By-0 in #125
Note that the pre-generated regex contracts have not been updated to fix the shift malleability attack on zk regex. You MUST update your circuits to use ShiftAndPackMaskedStr instead of ShiftAndPack in order to be secure.
As usual, to get this release, use NPM:
yarn add @zk-email/circuits@latest
yarn add @zk-email/contracts@latest
Full Changelog: 2.0.1...v3.1.4
v2.0.1
Incorporate all of the fixes from our first audit.
What's Changed
- Add compressed filereading to frontend by @Divide-By-0 in #4
- [WIP] Twitter verification in Solidity by @Divide-By-0 in #26
- Fix tar gz localforage by @rmccrear in #28
- UI (draft) by @lermchair in #3
- Constraint count statistics by @vb7401 in #29
- Halo2 regex table gen by @Divide-By-0 in #30
- use .gz not .tar.gz by @rmccrear in #31
- CircleCI Unit tests and e2e tests by @rmccrear in #32
- TypeScript e2e tests by @rmccrear in #36
- Fix twitter: contracts and frontend by @Divide-By-0 in #39
- add git hook on push by @rmccrear in #42
- Bugfixes by @Divide-By-0 in #43
- add domain to zk email circuit by @Divide-By-0 in #40
- New circleci oz upgrade by @Divide-By-0 in #46
- Bump @openzeppelin/contracts from 4.8.0 to 4.8.2 by @dependabot in #38
- Upstream refactor by @Divide-By-0 in #50
- updated lexical to have some more parsing fns by @Divide-By-0 in #44
- Refactor circom and contracts to have more shared libs by @Divide-By-0 in #49
- Refactor twitter by @Divide-By-0 in #52
- philogy magic dust makes deploy one line by @Divide-By-0 in #51
- Bump @openzeppelin/contracts from 4.8.2 to 4.8.3 by @dependabot in #54
- fix: fetch DNS public key correctly when there's multiple DKIM sig by @richardliang in #57
- Twitter fixes by @Divide-By-0 in #61
- Added drag and drop feature by @Ocolus1 in #53
- refactor(twitter.circom): add minor syntax changes & fix style by @curryrasul in #55
- Refactor upstream by @Divide-By-0 in #77
- Refactor by @Divide-By-0 in #72
- Bump @openzeppelin/contracts from 4.8.3 to 4.9.1 by @dependabot in #78
- FE refactor by @saleel in #76
- Update contract address in UI by @saleel in #84
- Bump @openzeppelin/contracts from 4.9.1 to 4.9.2 by @dependabot in #83
- Switch to monorepo by @saleel in #80
- Update circuit paths + add a new flag by @saleel in #90
- Update circuits package version by @saleel in #93
- Circom improvements by @saleel in #94
- Fix Twitter contract tests in CircleCI by @saleel in #97
- chore(deps): bump @openzeppelin/contracts from 4.9.1 to 4.9.3 by @dependabot in #96
- Hash RSA public key in circuit by @saleel in #100
- chore(deps): bump @openzeppelin/contracts-upgradeable from 4.9.1 to 4.9.3 by @dependabot in #95
- chore(deps): bump semver from 6.3.0 to 6.3.1 in /packages/e2e-lambdatest by @dependabot in #86
- fix: assert error when using invalid base64 chars by @javiersuweijie in #103
- chore: clean up circuits by @javiersuweijie in #104
- Remove bad import in regex_to_dfa.js by @Divide-By-0 in #112
- Updated copy at top of readme by @Divide-By-0 in #113
New Contributors
- @rmccrear fixes targz unzipping in #28
- @lermchair writes our staging frontends in #3
- @vb7401 profiles our circuits in #29
- @dependabot made their first contribution in #38
- @richardliang fetches multiple dns keys correctly from contracts in #57
- @Ocolus1 added .eml drag and drop to the frontend in #53
- @curryrasul improved style in #55
- @saleel refactored frontend to vite in #76
- @javiersuweijie fixed audit bugs in #103
Full Changelog: https://github.com/zkemail/zk-email-verify/commits/2.0.1